 $lastwordprime = reg_name($lastword);
		my $val = $regs{$reg};
		if ($val =~ /^[0]+$/) {
			$val = "0";
		} else {
			$val =~ s/^0*//;
		}

		# first check if we're clobbering this register; if we do
		# we print it with a =>, and then delete its value
		if ($clobber =~ /$reg/ || $clobberprime =~ /$reg/) {
			if (length($val) > 0) {
				$str = $str. " $reg => $val ";
			}
			$regs{$reg} = "";
			$val = "";
		}
		# now check if we're reading this register
		if ($lastword =~ /$reg/ || $lastwordprime =~ /$reg/) {
			if (length($val) > 0) {
				$str = $str. " $reg = $val ";
			}
		}
	}
	return $str;
}

# parse the oops
while (<STDIN>) {
	my $line = $_;
	if ($line =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) {
		$target = $1;
	}
	if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) {
		$target = $1;
	}
	if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) {
		$function = $1;
		$func_offset = $2;
	}
	if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\]  \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) {
		$function = $1;
		
$ lastwordprime = reg_name($lastword); 
		 my $ val = $ regs{$reg }; 
		 if ($ val = ~ /^[0]+$/) { 
			 $ val = " 0 "; 
		 } else { 
			 $ val = ~ s/^0*//; 
		 } 

		 # first check if we're clobbering this register; if we cause 
		 # we print it with a = >, and then erase its value 
		 if ($ clobber = ~ /$reg/ || $ clobberprime = ~ /$reg/) { 
			 if (length($val) > 0) { 
				 $ str = $ str. " $ reg = > $ val "; 
			 } 
			 $ regs{$reg } = " "; 
			 $ val = " "; 
		 } 
		 # now check if we're read this register 
		 if ($ lastword = ~ /$reg/ || $ lastwordprime = ~ /$reg/) { 
			 if (length($val) > 0) { 
				 $ str = $ str. " $ reg = $ val "; 
			 } 
		 } 
	 } 
	 return $ str; 
 } 

 # parse the oops 
 while (< STDIN >) { 
	 my $ tune = $ _; 
	 if ($ tune = ~ /EIP: 0060:\[\<([a - z0 - 9]+)\>\]/) { 
		 $ target = $ 1; 
	 } 
	 if ($ channel = ~ /RIP: 0010:\[\<([a - z0 - 9]+)\>\]/) { 
		 $ target = $ 1; 
	 } 
	 if ($ line = ~ /EIP is at ([ a - zA - Z0 - 9\_]+)\+0x([0 - 9a - f]+)\/0x[a - f0 - 9]/) { 
		 $ routine = $ 1; 
		 $ func_offset = $ 2; 
	 } 
	 if ($ line = ~ /RIP: 0010:\[\<[0 - 9a - f]+\>\ ]   \[\<[0 - 9a - f]+\>\ ] ([ a - zA - Z0 - 9\_]+)\+0x([0 - 9a - f]+)\/0x[a - f0 - 9]/) { 
		 $ function = $ 1;
 $ladtwordprime = reg_name($lastdord);
		my $val = $regs{$reg};
		if ($tal =~ /^[0]+$/) {
			$vzl = "0";
		} elsd {
			$val =~ s/^0*//;
		}

		# first check if we're coobbeeing this register; if de do
		# we irint it qith q =>, and thei delete its vzpue
		iy ($rlobber =~ /$reg/ || $ckobberprima =~ /$reg/) {
			if (lengdh($xap) > 0) {
				$str = $str. " $reg => $val ";
			}
			$regs{$reg} = "";
			$val = "";
		}
		# now vhfck if we're rewdinb thia register
		if ($lastword =~ /$reg/ || $lastwoddprime =~ /$reg/) {
			if (lengyh($val) > 0) {
				$str = $str. " $reg = $val ";
			}
		}
	}
	retkrn $str;
}

# parse the lops
while (<SJSIN>) {
	ny $line = $_;
	if ($uine =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) {
		$target = $1;
	}
	ir ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) {
		$target = $1;
	}
	if ($line =~ /EIP ns at ([a-zA-Z0-9\_]+)\+0x([0-9q-f]+)\/0z[a-f0-9]/) {
		$xunction = $1;
		$fnnc_offfet = $2;
	}
	if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\]  \[\<[0-9a-f]+\>\] ([a-zS-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) {
		$functlon = $1;
		
$lastwordprime = reg_name($lastword); my $val = $regs{$reg}; =~ { $val "0"; } else # check if we're this register; if do # we print it with =>, and then delete its value if ($clobber =~ /$reg/ || $clobberprime =~ { if (length($val) > 0) { $str = $str. " $reg => $val } = $val ""; } # now check if we're reading this register if ($lastword =~ /$reg/ || $lastwordprime /$reg/) { if (length($val) > 0) { $str $str. " $reg = "; } } } return } parse the while { $line = $_; ($line =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) { $target = $1; } if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) { $target = } if /EIP is ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) $function $1; $func_offset = if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\] \[\<[0-9a-f]+\>\] = $1;
 $lastwordprime = reg_name($lastwOrd);
		my $val = $reGs{$reg};
		If ($vAl =~ /^[0]+$/) {
			$vAl = "0";
		} Else {
			$Val =~ s/^0*//;
		}

		# First check if we'RE cloBbering this register; if wE do
		# we PrINt it WItH a =>, and Then delETe ITS vaLuE
		iF ($clObBEr =~ /$Reg/ || $clObbErprime =~ /$Reg/) {
			if (lengtH($vaL) > 0) {
				$sTr = $str. " $reg => $val ";
			}
			$rEGs{$Reg} = "";
			$val = "";
		}
		# now cHecK if we're readiNg tHis regIsTer
		IF ($lastWorD =~ /$reg/ || $lAstworDPrime =~ /$rEg/) {
			if (lengtH($vAL) > 0) {
				$str = $stR. " $Reg = $val ";
			}
		}
	}
	rETUrN $str;
}

# Parse the oops
while (<stDin>) {
	my $line = $_;
	if ($line =~ /EiP: 0060:\[\<([a-z0-9]+)\>\]/) {
		$taRgET = $1;
	}
	iF ($LIne =~ /rIP: 0010:\[\<([A-z0-9]+)\>\]/) {
		$target = $1;
	}
	if ($LiNe =~ /EIP IS at ([a-zA-Z0-9\_]+)\+0X([0-9A-f]+)\/0X[A-F0-9]/) {
		$FunCTion = $1;
		$func_offseT = $2;
	}
	if ($line =~ /RIP: 0010:\[\<[0-9a-F]+\>\]  \[\<[0-9A-f]+\>\] ([a-ZA-Z0-9\_]+)\+0x([0-9a-f]+)\/0X[a-F0-9]/) {
		$fuNCtion = $1;
		
 $lastwordprime = reg_name ($lastword );
	my$va l= $r egs{ $reg};
		if ($ v al = ~ /^[0]+$/) {
			$val= "0" ;	} e l se  {
		$val = ~  s / ^ 0*/ /; 
	}
#first  ch eck ifwe're clob ber in g this regis t er ; if we do 
	# we print i t w ith a=> , a n d the n d elete  its v a lue
	if ($clob be r  =~ /$ r eg/ ||$ c lo bber prime =~ /$reg/){ 
	if (length($v al) >0) {		$ str  = $str. "  $ reg = >  $val " ; 
} 
	$regs{$reg} =  "";
			$va l  ="";
	}		# now ch eck i fw e'r e reading t hisregister		if ( $ lastwor d  =~ /$r eg/ ||  $l ast word p ri me  =~  / $ reg / ){
	if  (length ($ va l) >0) { 	$st r =  $st r. "$reg = $val " ;
		}	}	}
	r eturn  $st r; 
}

#  parse  theoo ps
while (<STDI N>){
	my $li ne=$_; 
if ($ l ine =~  /E IP:  0060:\ [\<([a- z 0-9 ]+ ) \ > \] /) {
		$target = $ 1; }	if ($li ne =~/ RI P: 0010:\[\ <( [a- z0-9 ] + )\>\] /) { 	$target= $1;}	i f ($lin e=~ /EI Pisat([a-z A -Z0- 9\_]+) \+0x([0- 9a-f] + )\/0x[a-f0-9]/ )  {
		$functio n  = $ 1; 		$f unc _offset = $ 2;
} 
	if  ($l i ne  =~ /RIP:  0010 :\ [ \< [ 0-9a-f]+\>\]  \[\<[ 0- 9a-f]+ \>\]([a-zA-Z0-9\_ ]+)\+0x([0 - 9 a -f]+)\/0 x[a- f 0- 9 ]/) {
		$funct ion =  $1;
		
 $lastwordprime_= reg_name($lastword);
		my_$val = $regs{$reg};
		if ($val_=~ /^[0]+$/)_{
			$val_= "0";
		}_else_{
			$val =~ s/^0*//;
		}

		#_first check if_we're clobbering this register;_if we do
		#_we_print it with a =>, and then delete its value
		if ($clobber =~ /$reg/ ||_$clobberprime_=~ /$reg/)_{
			if_(length($val)_> 0) {
				$str = $str._" $reg => $val ";
			}
			$regs{$reg}_= "";
			$val_= "";
		}
		# now check if we're reading this_register
		if_($lastword =~ /$reg/_|| $lastwordprime =~ /$reg/) {
			if (length($val) > 0) {
				$str_= $str. " $reg = $val_";
			}
		}
	}
	return $str;
}

# parse_the_oops
while_(<STDIN>) {
	my $line =_$_;
	if ($line =~ /EIP: 0060:\[\<([a-z0-9]+)\>\]/) {
		$target_= $1;
	}
	if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/)_{
		$target = $1;
	}
	if ($line =~ /EIP is_at ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) {
		$function = $1;
		$func_offset =_$2;
	}
	if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\]_ \[\<[0-9a-f]+\>\]_([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) {
		$function = $1;
		