for( my $h = 16; $h < 80; $h++ ) { $i[$h] = a2( ( ( ( ( ( $i[$h - 3] ^ $i[$h - 8] ) & 0xffffffff ) ^ $i[$h - 14] ) & 0xffffffff ) ^ $i[$h - 16] ) & 0xffffffff , 1 ); } print "@i"; sub a2 { my ($b, $a) = @_; my $c = $b >> 32 - $a; my $e = (1 << 32 - $a) - 1; my $d = $b & $e; return tos($d << $a | $c); } sub tos { my ($num) = @_; $num = $num - 4294967296 if $num > 4294967295; $num = $num + 4294967296 if $num < -2147483648; if ($num >= 0) { $num = $num - 2 ** 32 if ($num >> 31); } return $num; }