<?php
class EAHashor {
private $right32;
//initialise the class
public function __construct() {
// This is a 32- and 64-bit safe way to get an integer with only the
// right-most 32-bits set
$this->right32 = ~((-1 << 16) << 16);
}
public function eaEncode($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";
$words = $this->init($string);
for($i = 0; $i <= count($words)/16-1; $i++){
$A = $a;
$B = $b;
$C = $c;
$D = $d;
/* ROUND 1 */
$this->FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478");
$this->FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756");
$this->FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db");
$this->FF ($B, $C, $D, $A, $words[3 + ($i * 16)], 22, "c1bdceee");
$this->FF ($A, $B, $C, $D, $words[4 + ($i * 16)], 7, "f57c0faf");
$this->FF ($D, $A, $B, $C, $words[5 + ($i * 16)], 12, "4787c62a");
$this->FF ($C, $D, $A, $B, $words[6 + ($i * 16)], 17, "a8304613");
$this->FF ($B, $C, $D, $A, $words[7 + ($i * 16)], 22, "fd469501");
$this->FF ($A, $B, $C, $D, $words[8 + ($i * 16)], 7, "698098d8");
$this->FF ($D, $A, $B, $C, $words[9 + ($i * 16)], 12, "8b44f7af");
$this->FF ($C, $D, $A, $B, $words[10 + ($i * 16)], 17, "ffff5bb1");
$this->FF ($B, $C, $D, $A, $words[11 + ($i * 16)], 22, "895cd7be");
$this->FF ($A, $B, $C, $D, $words[12 + ($i * 16)], 7, "6b901122");
$this->FF ($D, $A, $B, $C, $words[13 + ($i * 16)], 12, "fd987193");
$this->FF ($C, $D, $A, $B, $words[14 + ($i * 16)], 17, "a679438e");
$this->FF ($B, $C, $D, $A, $words[15 + ($i * 16)], 22, "49b40821");
/* ROUND 2 */
$this->GG ($A, $B, $C, $D, $words[1 + ($i * 16)], 5, "f61e2562");
$this->GG ($D, $A, $B, $C, $words[6 + ($i * 16)], 9, "c040b340");
$this->GG ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "265e5a51");
$this->GG ($B, $C, $D, $A, $words[0 + ($i * 16)], 20, "e9b6c7aa");
$this->GG ($A, $B, $C, $D, $words[5 + ($i * 16)], 5, "d62f105d");
$this->GG ($D, $A, $B, $C, $words[10 + ($i * 16)], 9, "02441453");
$this->GG ($C, $D, $A, $B, $words[15 + ($i * 16)], 14, "d8a1e681");
$this->GG ($B, $C, $D, $A, $words[4 + ($i * 16)], 20, "e7d3fbc8");
$this->GG ($A, $B, $C, $D, $words[9 + ($i * 16)], 5, "21e1cde6");
$this->GG ($D, $A, $B, $C, $words[14 + ($i * 16)], 9, "c33707d6");
$this->GG ($C, $D, $A, $B, $words[3 + ($i * 16)], 14, "f4d50d87");
$this->GG ($B, $C, $D, $A, $words[8 + ($i * 16)], 20, "455a14ed");
$this->GG ($A, $B, $C, $D, $words[13 + ($i * 16)], 5, "a9e3e905");
$this->GG ($D, $A, $B, $C, $words[2 + ($i * 16)], 9, "fcefa3f8");
$this->GG ($C, $D, $A, $B, $words[7 + ($i * 16)], 14, "676f02d9");
$this->GG ($B, $C, $D, $A, $words[12 + ($i * 16)], 20, "8d2a4c8a");
/* ROUND 3 */
$this->HH ($A, $B, $C, $D, $words[5 + ($i * 16)], 4, "fffa3942");
$this->HH ($D, $A, $B, $C, $words[8 + ($i * 16)], 11, "8771f681");
//HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 16, "6d9d6122");
//the line below has been changed to use 14 rather than 16 as seen in the commented line
$this->HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "6d9d6122");
$this->HH ($B, $C, $D, $A, $words[14 + ($i * 16)], 23, "fde5380c");
$this->HH ($A, $B, $C, $D, $words[1 + ($i * 16)], 4, "a4beea44");
$this->HH ($D, $A, $B, $C, $words[4 + ($i * 16)], 11, "4bdecfa9");
$this->HH ($C, $D, $A, $B, $words[7 + ($i * 16)], 16, "f6bb4b60");
$this->HH ($B, $C, $D, $A, $words[10 + ($i * 16)], 23, "bebfbc70");
$this->HH ($A, $B, $C, $D, $words[13 + ($i * 16)], 4, "289b7ec6");
$this->HH ($D, $A, $B, $C, $words[0 + ($i * 16)], 11, "eaa127fa");
$this->HH ($C, $D, $A, $B, $words[3 + ($i * 16)], 16, "d4ef3085");
$this->HH ($B, $C, $D, $A, $words[6 + ($i * 16)], 23, "04881d05");
$this->HH ($A, $B, $C, $D, $words[9 + ($i * 16)], 4, "d9d4d039");
$this->HH ($D, $A, $B, $C, $words[12 + ($i * 16)], 11, "e6db99e5");
$this->HH ($C, $D, $A, $B, $words[15 + ($i * 16)], 16, "1fa27cf8");
$this->HH ($B, $C, $D, $A, $words[2 + ($i * 16)], 23, "c4ac5665");
/* ROUND 4 */
$this->II ($A, $B, $C, $D, $words[0 + ($i * 16)], 6, "f4292244");
$this->II ($D, $A, $B, $C, $words[7 + ($i * 16)], 10, "432aff97");
$this->II ($C, $D, $A, $B, $words[14 + ($i * 16)], 15, "ab9423a7");
$this->II ($B, $C, $D, $A, $words[5 + ($i * 16)], 21, "fc93a039");
$this->II ($A, $B, $C, $D, $words[12 + ($i * 16)], 6, "655b59c3");
$this->II ($D, $A, $B, $C, $words[3 + ($i * 16)], 10, "8f0ccc92");
$this->II ($C, $D, $A, $B, $words[10 + ($i * 16)], 15, "ffeff47d");
$this->II ($B, $C, $D, $A, $words[1 + ($i * 16)], 21, "85845dd1");
$this->II ($A, $B, $C, $D, $words[8 + ($i * 16)], 6, "6fa87e4f");
$this->II ($D, $A, $B, $C, $words[15 + ($i * 16)], 10, "fe2ce6e0");
$this->II ($C, $D, $A, $B, $words[6 + ($i * 16)], 15, "a3014314");
$this->II ($B, $C, $D, $A, $words[13 + ($i * 16)], 21, "4e0811a1");
$this->II ($A, $B, $C, $D, $words[4 + ($i * 16)], 6, "f7537e82");
$this->II ($D, $A, $B, $C, $words[11 + ($i * 16)], 10, "bd3af235");
$this->II ($C, $D, $A, $B, $words[2 + ($i * 16)], 15, "2ad7d2bb");
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
//this last line is used twice
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
$this->addVars($a, $b, $c, $d, $A, $B, $C, $D);
}
$MD5 = '';
foreach (array($a, $b, $c, $d) as $x) {
$MD5 .= implode('', array_reverse(str_split($this->leftpad($x, 8), 2)));
}
return $MD5;
}
/* General functions */
private function hexbin($str){
$hexbinmap = array( "0" => "0000",
"1" => "0001",
"2" => "0010",
"3" => "0011"
, "4" => "0100"
, "5" => "0101"
, "6" => "0110"
, "7" => "0111"
, "8" => "1000"
, "9" => "1001"
, "A" => "1010"
, "a" => "1010"
, "B" => "1011"
, "b" => "1011"
, "C" => "1100"
, "c" => "1100"
, "D" => "1101"
, "d" => "1101"
, "E" => "1110"
, "e" => "1110"
, "F" => "1111"
, "f" => "1111");
$bin = "";
for ($i = 0; $i < strlen($str); $i++){
$bin .= $hexbinmap[$str[$i]];
}
$bin = ltrim($bin, '0');
// echo "Original: ".$str." New: ".$bin."<br />";
return $bin;
}
private function strhex($str){
$hex = "";
for ($i = 0; $i < strlen($str); $i++){
$hex = $hex.$this->leftpad(dechex(ord($str[$i])), 2);
}
return $hex;
}
/* MD5-specific functions */
private function init($string){
$len = strlen($string) * 8;
$hex = $this->strhex($string); // convert ascii string to hex
$bin = $this->leftpad($this->hexbin($hex), $len); // convert hex string to bin
$padded = $this->pad($bin);
$padded = $this->pad($padded, 1, $len);
$block = str_split($padded, 32);
foreach ($block as &$b) {
$b = implode('', array_reverse(str_split($b, 8)));
}
return $block;
}
private function pad($bin, $type=0, $len = 0){
if($type == 0){
$bin = $bin."1";
$buff = strlen($bin) % 512;
if($buff != 448){
while(strlen($bin) % 512 != 448){
$bin = $bin."0";
}
}
}
// append length (b) of string to latter 64 bits
elseif($type == 1){
$bLen = $this->leftpad(decbin($len), 64);
$bin .= implode('', array_reverse(str_split($bLen, 8)));
}
return $bin;
}
/* MD5 base functions */
private function F($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
private function G($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
private function H($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
private function I($X, $Y, $Z){
$X = hexdec($X);
$Y = hexdec($Y);
$Z = hexdec($Z);
$calc = ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z)
return $calc;
}
/* MD5 round functions */
/* $A - hex, $B - hex, $C - hex, $D - hex (F - dec)
$M - binary
$s - decimal
$t - hex
*/
private function FF(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->F($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
private function GG(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->G($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
private function HH(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->H($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
private function II(&$A, $B, $C, $D, $M, $s, $t){
$A = hexdec($A);
$t = hexdec($t);
$M = bindec($M);
$A = $this->add($A, $this->I($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add(hexdec($B), hexdec($A)) & $this->right32);
}
// shift
private function rotate ($decimal, $bits) { //returns hex
return dechex((($decimal << $bits) | ($decimal >> (32 - $bits))) & $this->right32);
}
private function addVars(&$a, &$b, &$c, &$d, $A, $B, $C, $D){
$A = hexdec($A);
$B = hexdec($B);
$C = hexdec($C);
$D = hexdec($D);
$aa = hexdec($a);
$bb = hexdec($b);
$cc = hexdec($c);
$dd = hexdec($d);
$aa = $this->add($aa, $A) & $this->right32;
$bb = $this->add($bb, $B) & $this->right32;
$cc = $this->add($cc, $C) & $this->right32;
$dd = $this->add($dd, $D) & $this->right32;
$a = dechex($aa);
$b = dechex($bb);
$c = dechex($cc);
$d = dechex($dd);
}
private function leftpad($needs_padding, $alignment) {
if (strlen($needs_padding) % $alignment) {
$pad_amount = $alignment - strlen($needs_padding) % $alignment;
$left_pad = implode('', array_fill(0, $pad_amount, '0'));
$needs_padding = $left_pad . $needs_padding;
}
return $needs_padding;
}
// shamelessly stolen from http://stackoverflow.com/a/4068918/889949
private function binarySafeAddition($a, $b) {
$carry = $a & $b;
$result = $a ^ $b;
while($carry != 0) {
$shiftedcarry = $carry << 1;
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return $result;
}
private function add() {
$result = 0;
foreach (func_get_args() as $int) {
$result = $this->binarySafeAddition($result, $int);
}
return $result;
}
}
$eahashor = new EAHashor();
$hash = $eahashor->eaEncode('test');
echo $hash;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/7Scfd
function name: (null)
number of ops: 9
compiled vars: !0 = $eahashor, !1 = $hash
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
330 0 E > NEW $2 'EAHashor'
1 DO_FCALL 0
2 ASSIGN !0, $2
331 3 INIT_METHOD_CALL !0, 'eaEncode'
4 SEND_VAL_EX 'test'
5 DO_FCALL 0 $5
6 ASSIGN !1, $5
332 7 ECHO !1
8 > RETURN 1
Class EAHashor:
Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/7Scfd
function name: __construct
number of ops: 3
compiled vars: none
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
10 0 E > ASSIGN_OBJ 'right32'
1 OP_DATA 4294967295
11 2 > RETURN null
End of function __construct
Function eaencode:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 871
Branch analysis from position: 871
2 jumps found. (Code = 44) Position 1 = 876, Position 2 = 11
Branch analysis from position: 876
2 jumps found. (Code = 77) Position 1 = 882, Position 2 = 900
Branch analysis from position: 882
2 jumps found. (Code = 78) Position 1 = 883, Position 2 = 900
Branch analysis from position: 883
1 jumps found. (Code = 42) Position 1 = 882
Branch analysis from position: 882
Branch analysis from position: 900
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 900
Branch analysis from position: 11
2 jumps found. (Code = 44) Position 1 = 876, Position 2 = 11
Branch analysis from position: 876
Branch analysis from position: 11
filename: /in/7Scfd
function name: eaEncode
number of ops: 903
compiled vars: !0 = $string, !1 = $a, !2 = $b, !3 = $c, !4 = $d, !5 = $words, !6 = $i, !7 = $A, !8 = $B, !9 = $C, !10 = $D, !11 = $MD5, !12 = $x
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
13 0 E > RECV !0
14 1 ASSIGN !1, '67452301'
15 2 ASSIGN !2, 'EFCDAB89'
16 3 ASSIGN !3, '98BADCFE'
17 4 ASSIGN !4, '10325476'
19 5 INIT_METHOD_CALL 'init'
6 SEND_VAR_EX !0
7 DO_FCALL 0 $17
8 ASSIGN !5, $17
21 9 ASSIGN !6, 0
10 > JMP ->871
22 11 > ASSIGN !7, !1
23 12 ASSIGN !8, !2
24 13 ASSIGN !9, !3
25 14 ASSIGN !10, !4
28 15 INIT_METHOD_CALL 'FF'
16 SEND_VAR_EX !7
17 SEND_VAR_EX !8
18 SEND_VAR_EX !9
19 SEND_VAR_EX !10
20 CHECK_FUNC_ARG
21 MUL ~24 !6, 16
22 ADD ~25 0, ~24
23 FETCH_DIM_FUNC_ARG $26 !5, ~25
24 SEND_FUNC_ARG $26
25 SEND_VAL_EX 7
26 SEND_VAL_EX 'd76aa478'
27 DO_FCALL 0
29 28 INIT_METHOD_CALL 'FF'
29 SEND_VAR_EX !10
30 SEND_VAR_EX !7
31 SEND_VAR_EX !8
32 SEND_VAR_EX !9
33 CHECK_FUNC_ARG
34 MUL ~28 !6, 16
35 ADD ~29 1, ~28
36 FETCH_DIM_FUNC_ARG $30 !5, ~29
37 SEND_FUNC_ARG $30
38 SEND_VAL_EX 12
39 SEND_VAL_EX 'e8c7b756'
40 DO_FCALL 0
30 41 INIT_METHOD_CALL 'FF'
42 SEND_VAR_EX !9
43 SEND_VAR_EX !10
44 SEND_VAR_EX !7
45 SEND_VAR_EX !8
46 CHECK_FUNC_ARG
47 MUL ~32 !6, 16
48 ADD ~33 2, ~32
49 FETCH_DIM_FUNC_ARG $34 !5, ~33
50 SEND_FUNC_ARG $34
51 SEND_VAL_EX 17
52 SEND_VAL_EX '242070db'
53 DO_FCALL 0
31 54 INIT_METHOD_CALL 'FF'
55 SEND_VAR_EX !8
56 SEND_VAR_EX !9
57 SEND_VAR_EX !10
58 SEND_VAR_EX !7
59 CHECK_FUNC_ARG
60 MUL ~36 !6, 16
61 ADD ~37 3, ~36
62 FETCH_DIM_FUNC_ARG $38 !5, ~37
63 SEND_FUNC_ARG $38
64 SEND_VAL_EX 22
65 SEND_VAL_EX 'c1bdceee'
66 DO_FCALL 0
32 67 INIT_METHOD_CALL 'FF'
68 SEND_VAR_EX !7
69 SEND_VAR_EX !8
70 SEND_VAR_EX !9
71 SEND_VAR_EX !10
72 CHECK_FUNC_ARG
73 MUL ~40 !6, 16
74 ADD ~41 4, ~40
75 FETCH_DIM_FUNC_ARG $42 !5, ~41
76 SEND_FUNC_ARG $42
77 SEND_VAL_EX 7
78 SEND_VAL_EX 'f57c0faf'
79 DO_FCALL 0
33 80 INIT_METHOD_CALL 'FF'
81 SEND_VAR_EX !10
82 SEND_VAR_EX !7
83 SEND_VAR_EX !8
84 SEND_VAR_EX !9
85 CHECK_FUNC_ARG
86 MUL ~44 !6, 16
87 ADD ~45 5, ~44
88 FETCH_DIM_FUNC_ARG $46 !5, ~45
89 SEND_FUNC_ARG $46
90 SEND_VAL_EX 12
91 SEND_VAL_EX '4787c62a'
92 DO_FCALL 0
34 93 INIT_METHOD_CALL 'FF'
94 SEND_VAR_EX !9
95 SEND_VAR_EX !10
96 SEND_VAR_EX !7
97 SEND_VAR_EX !8
98 CHECK_FUNC_ARG
99 MUL ~48 !6, 16
100 ADD ~49 6, ~48
101 FETCH_DIM_FUNC_ARG $50 !5, ~49
102 SEND_FUNC_ARG $50
103 SEND_VAL_EX 17
104 SEND_VAL_EX 'a8304613'
105 DO_FCALL 0
35 106 INIT_METHOD_CALL 'FF'
107 SEND_VAR_EX !8
108 SEND_VAR_EX !9
109 SEND_VAR_EX !10
110 SEND_VAR_EX !7
111 CHECK_FUNC_ARG
112 MUL ~52 !6, 16
113 ADD ~53 7, ~52
114 FETCH_DIM_FUNC_ARG $54 !5, ~53
115 SEND_FUNC_ARG $54
116 SEND_VAL_EX 22
117 SEND_VAL_EX 'fd469501'
118 DO_FCALL 0
36 119 INIT_METHOD_CALL 'FF'
120 SEND_VAR_EX !7
121 SEND_VAR_EX !8
122 SEND_VAR_EX !9
123 SEND_VAR_EX !10
124 CHECK_FUNC_ARG
125 MUL ~56 !6, 16
126 ADD ~57 8, ~56
127 FETCH_DIM_FUNC_ARG $58 !5, ~57
128 SEND_FUNC_ARG $58
129 SEND_VAL_EX 7
130 SEND_VAL_EX '698098d8'
131 DO_FCALL 0
37 132 INIT_METHOD_CALL 'FF'
133 SEND_VAR_EX !10
134 SEND_VAR_EX !7
135 SEND_VAR_EX !8
136 SEND_VAR_EX !9
137 CHECK_FUNC_ARG
138 MUL ~60 !6, 16
139 ADD ~61 9, ~60
140 FETCH_DIM_FUNC_ARG $62 !5, ~61
141 SEND_FUNC_ARG $62
142 SEND_VAL_EX 12
143 SEND_VAL_EX '8b44f7af'
144 DO_FCALL 0
38 145 INIT_METHOD_CALL 'FF'
146 SEND_VAR_EX !9
147 SEND_VAR_EX !10
148 SEND_VAR_EX !7
149 SEND_VAR_EX !8
150 CHECK_FUNC_ARG
151 MUL ~64 !6, 16
152 ADD ~65 10, ~64
153 FETCH_DIM_FUNC_ARG $66 !5, ~65
154 SEND_FUNC_ARG $66
155 SEND_VAL_EX 17
156 SEND_VAL_EX 'ffff5bb1'
157 DO_FCALL 0
39 158 INIT_METHOD_CALL 'FF'
159 SEND_VAR_EX !8
160 SEND_VAR_EX !9
161 SEND_VAR_EX !10
162 SEND_VAR_EX !7
163 CHECK_FUNC_ARG
164 MUL ~68 !6, 16
165 ADD ~69 11, ~68
166 FETCH_DIM_FUNC_ARG $70 !5, ~69
167 SEND_FUNC_ARG $70
168 SEND_VAL_EX 22
169 SEND_VAL_EX '895cd7be'
170 DO_FCALL 0
40 171 INIT_METHOD_CALL 'FF'
172 SEND_VAR_EX !7
173 SEND_VAR_EX !8
174 SEND_VAR_EX !9
175 SEND_VAR_EX !10
176 CHECK_FUNC_ARG
177 MUL ~72 !6, 16
178 ADD ~73 12, ~72
179 FETCH_DIM_FUNC_ARG $74 !5, ~73
180 SEND_FUNC_ARG $74
181 SEND_VAL_EX 7
182 SEND_VAL_EX '6b901122'
183 DO_FCALL 0
41 184 INIT_METHOD_CALL 'FF'
185 SEND_VAR_EX !10
186 SEND_VAR_EX !7
187 SEND_VAR_EX !8
188 SEND_VAR_EX !9
189 CHECK_FUNC_ARG
190 MUL ~76 !6, 16
191 ADD ~77 13, ~76
192 FETCH_DIM_FUNC_ARG $78 !5, ~77
193 SEND_FUNC_ARG $78
194 SEND_VAL_EX 12
195 SEND_VAL_EX 'fd987193'
196 DO_FCALL 0
42 197 INIT_METHOD_CALL 'FF'
198 SEND_VAR_EX !9
199 SEND_VAR_EX !10
200 SEND_VAR_EX !7
201 SEND_VAR_EX !8
202 CHECK_FUNC_ARG
203 MUL ~80 !6, 16
204 ADD ~81 14, ~80
205 FETCH_DIM_FUNC_ARG $82 !5, ~81
206 SEND_FUNC_ARG $82
207 SEND_VAL_EX 17
208 SEND_VAL_EX 'a679438e'
209 DO_FCALL 0
43 210 INIT_METHOD_CALL 'FF'
211 SEND_VAR_EX !8
212 SEND_VAR_EX !9
213 SEND_VAR_EX !10
214 SEND_VAR_EX !7
215 CHECK_FUNC_ARG
216 MUL ~84 !6, 16
217 ADD ~85 15, ~84
218 FETCH_DIM_FUNC_ARG $86 !5, ~85
219 SEND_FUNC_ARG $86
220 SEND_VAL_EX 22
221 SEND_VAL_EX '49b40821'
222 DO_FCALL 0
46 223 INIT_METHOD_CALL 'GG'
224 SEND_VAR_EX !7
225 SEND_VAR_EX !8
226 SEND_VAR_EX !9
227 SEND_VAR_EX !10
228 CHECK_FUNC_ARG
229 MUL ~88 !6, 16
230 ADD ~89 1, ~88
231 FETCH_DIM_FUNC_ARG $90 !5, ~89
232 SEND_FUNC_ARG $90
233 SEND_VAL_EX 5
234 SEND_VAL_EX 'f61e2562'
235 DO_FCALL 0
47 236 INIT_METHOD_CALL 'GG'
237 SEND_VAR_EX !10
238 SEND_VAR_EX !7
239 SEND_VAR_EX !8
240 SEND_VAR_EX !9
241 CHECK_FUNC_ARG
242 MUL ~92 !6, 16
243 ADD ~93 6, ~92
244 FETCH_DIM_FUNC_ARG $94 !5, ~93
245 SEND_FUNC_ARG $94
246 SEND_VAL_EX 9
247 SEND_VAL_EX 'c040b340'
248 DO_FCALL 0
48 249 INIT_METHOD_CALL 'GG'
250 SEND_VAR_EX !9
251 SEND_VAR_EX !10
252 SEND_VAR_EX !7
253 SEND_VAR_EX !8
254 CHECK_FUNC_ARG
255 MUL ~96 !6, 16
256 ADD ~97 11, ~96
257 FETCH_DIM_FUNC_ARG $98 !5, ~97
258 SEND_FUNC_ARG $98
259 SEND_VAL_EX 14
260 SEND_VAL_EX '265e5a51'
261 DO_FCALL 0
49 262 INIT_METHOD_CALL 'GG'
263 SEND_VAR_EX !8
264 SEND_VAR_EX !9
265 SEND_VAR_EX !10
266 SEND_VAR_EX !7
267 CHECK_FUNC_ARG
268 MUL ~100 !6, 16
269 ADD ~101 0, ~100
270 FETCH_DIM_FUNC_ARG $102 !5, ~101
271 SEND_FUNC_ARG $102
272 SEND_VAL_EX 20
273 SEND_VAL_EX 'e9b6c7aa'
274 DO_FCALL 0
50 275 INIT_METHOD_CALL 'GG'
276 SEND_VAR_EX !7
277 SEND_VAR_EX !8
278 SEND_VAR_EX !9
279 SEND_VAR_EX !10
280 CHECK_FUNC_ARG
281 MUL ~104 !6, 16
282 ADD ~105 5, ~104
283 FETCH_DIM_FUNC_ARG $106 !5, ~105
284 SEND_FUNC_ARG $106
285 SEND_VAL_EX 5
286 SEND_VAL_EX 'd62f105d'
287 DO_FCALL 0
51 288 INIT_METHOD_CALL 'GG'
289 SEND_VAR_EX !10
290 SEND_VAR_EX !7
291 SEND_VAR_EX !8
292 SEND_VAR_EX !9
293 CHECK_FUNC_ARG
294 MUL ~108 !6, 16
295 ADD ~109 10, ~108
296 FETCH_DIM_FUNC_ARG $110 !5, ~109
297 SEND_FUNC_ARG $110
298 SEND_VAL_EX 9
299 SEND_VAL_EX '02441453'
300 DO_FCALL 0
52 301 INIT_METHOD_CALL 'GG'
302 SEND_VAR_EX !9
303 SEND_VAR_EX !10
304 SEND_VAR_EX !7
305 SEND_VAR_EX !8
306 CHECK_FUNC_ARG
307 MUL ~112 !6, 16
308 ADD ~113 15, ~112
309 FETCH_DIM_FUNC_ARG $114 !5, ~113
310 SEND_FUNC_ARG $114
311 SEND_VAL_EX 14
312 SEND_VAL_EX 'd8a1e681'
313 DO_FCALL 0
53 314 INIT_METHOD_CALL 'GG'
315 SEND_VAR_EX !8
316 SEND_VAR_EX !9
317 SEND_VAR_EX !10
318 SEND_VAR_EX !7
319 CHECK_FUNC_ARG
320 MUL ~116 !6, 16
321 ADD ~117 4, ~116
322 FETCH_DIM_FUNC_ARG $118 !5, ~117
323 SEND_FUNC_ARG $118
324 SEND_VAL_EX 20
325 SEND_VAL_EX 'e7d3fbc8'
326 DO_FCALL 0
54 327 INIT_METHOD_CALL 'GG'
328 SEND_VAR_EX !7
329 SEND_VAR_EX !8
330 SEND_VAR_EX !9
331 SEND_VAR_EX !10
332 CHECK_FUNC_ARG
333 MUL ~120 !6, 16
334 ADD ~121 9, ~120
335 FETCH_DIM_FUNC_ARG $122 !5, ~121
336 SEND_FUNC_ARG $122
337 SEND_VAL_EX 5
338 SEND_VAL_EX '21e1cde6'
339 DO_FCALL 0
55 340 INIT_METHOD_CALL 'GG'
341 SEND_VAR_EX !10
342 SEND_VAR_EX !7
343 SEND_VAR_EX !8
344 SEND_VAR_EX !9
345 CHECK_FUNC_ARG
346 MUL ~124 !6, 16
347 ADD ~125 14, ~124
348 FETCH_DIM_FUNC_ARG $126 !5, ~125
349 SEND_FUNC_ARG $126
350 SEND_VAL_EX 9
351 SEND_VAL_EX 'c33707d6'
352 DO_FCALL 0
56 353 INIT_METHOD_CALL 'GG'
354 SEND_VAR_EX !9
355 SEND_VAR_EX !10
356 SEND_VAR_EX !7
357 SEND_VAR_EX !8
358 CHECK_FUNC_ARG
359 MUL ~128 !6, 16
360 ADD ~129 3, ~128
361 FETCH_DIM_FUNC_ARG $130 !5, ~129
362 SEND_FUNC_ARG $130
363 SEND_VAL_EX 14
364 SEND_VAL_EX 'f4d50d87'
365 DO_FCALL 0
57 366 INIT_METHOD_CALL 'GG'
367 SEND_VAR_EX !8
368 SEND_VAR_EX
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
251.5 ms | 1431 KiB | 14 Q