Last active
December 15, 2016 08:20
-
-
Save Swyter/5ca9cf32a7f6ddc4e146e360c17f40a2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.spotify.core | |
{ | |
import avm2.intrinsics.memory.li32; | |
import avm2.intrinsics.memory.li8; | |
import avm2.intrinsics.memory.si32; | |
import avm2.intrinsics.memory.si8; | |
import com.spotify.core_2F_var_2F_folders_2F_9w_2F_1qgqt2cn279bvq4xrmv1c2_80000gn_2F_T_2F__2F_ccfk1YOK_2E_lto_2E_bc_3A_71C87280_2D_0648_2D_4E44_2D_97CD_2D_27E77AB5FB54.___unnamed_66; | |
import com.spotify.core_2F_var_2F_folders_2F_9w_2F_1qgqt2cn279bvq4xrmv1c2_80000gn_2F_T_2F__2F_ccfk1YOK_2E_lto_2E_bc_3A_71C87280_2D_0648_2D_4E44_2D_97CD_2D_27E77AB5FB54.___unnamed_67; | |
import com.spotify.core_2F_var_2F_folders_2F_9w_2F_1qgqt2cn279bvq4xrmv1c2_80000gn_2F_T_2F__2F_ccfk1YOK_2E_lto_2E_bc_3A_71C87280_2D_0648_2D_4E44_2D_97CD_2D_27E77AB5FB54.___unnamed_68; | |
import com.spotify.core_2F_var_2F_folders_2F_9w_2F_1qgqt2cn279bvq4xrmv1c2_80000gn_2F_T_2F__2F_ccfk1YOK_2E_lto_2E_bc_3A_71C87280_2D_0648_2D_4E44_2D_97CD_2D_27E77AB5FB54.F___unnamed_4; | |
import com.spotify.core_2F_var_2F_folders_2F_9w_2F_1qgqt2cn279bvq4xrmv1c2_80000gn_2F_T_2F__2F_ccfk1YOK_2E_lto_2E_bc_3A_71C87280_2D_0648_2D_4E44_2D_97CD_2D_27E77AB5FB54.F___unnamed_57_possibly_free_or_destructor; | |
import com.spotify.core_2F_var_2F_folders_2F_9w_2F_1qgqt2cn279bvq4xrmv1c2_80000gn_2F_T_2F__2F_ccfk1YOK_2E_lto_2E_bc_3A_71C87280_2D_0648_2D_4E44_2D_97CD_2D_27E77AB5FB54.___unnamed_69; | |
// public function evaluate(__param1_extra_key__:String, __param2_hardcoded_key__:String) : String | |
function evaluate(__param1_extra_key__, __param2_hardcoded_key__) | |
{ | |
function int(a) {return a}; | |
function uint(a) {return a}; | |
ESP = 512; | |
a = {}; | |
CModule = {}; | |
CModule.mallocString = function(str) {}; | |
CModule.readString = function(str) {}; | |
F_malloc = function() {}; | |
F___unnamed_4 = function() {}; | |
F___unnamed_57_possibly_free_or_destructor = function() {}; | |
var __ESP_ORIG__ = 0; | |
var __RET__ = null; | |
var __ptr_param1_extra_key__ = 0; | |
var __ptr_param2_hardcoded_key__ = 0; | |
var _param1_counter_ = 0; | |
var _tmp_ = 0; | |
var _loc19_ = 0; | |
var _loc21_ = 0; | |
var _loc3_ = 0; | |
var _loc17_ = 0; | |
var _cur_ptr_ = 0; | |
var _loc10_ = 0; | |
var _loc11_ = 0; | |
var _loc13_ = 0; | |
var _loc12_ = 0; | |
var _loc9_ = 0; | |
var __ESP__ = int(ESP); | |
__ESP_ORIG__ = __ESP__; | |
__ESP__ = 352 - __ESP__; | |
ESP = __ESP__ & 0xFFFFFFF0; | |
__ptr_param1_extra_key__ = CModule.mallocString(__param1_extra_key__); | |
_loc21_ = __ptr_param1_extra_key__ & 0xFFFFFFFC; | |
ESP = __ESP__ & 0xFFFFFFF0; | |
__ptr_param2_hardcoded_key__ = CModule.mallocString(__param2_hardcoded_key__); | |
// determine if one of the bytes in a 4 byte word is zero | |
_loc19_ = a[_loc21_] | |
_tmp_ = 0xFEFEFEFF + _loc19_; | |
_loc19_ = _loc19_ & 0x80808080; | |
_loc19_ = _loc19_ ^ 0x80808080; | |
_tmp_ = _loc19_ & _tmp_; | |
if(_tmp_ != 0) | |
{ | |
_loc17_ = _loc21_ + 4; | |
_param1_counter_ = 0; | |
// check that the extra key is not zero, count byte size | |
while(true) | |
{ | |
_cur_ptr_ = __ptr_param1_extra_key__ + _param1_counter_; | |
if(uint(_cur_ptr_) < uint(_loc17_)) | |
{ | |
_tmp_ = a[_cur_ptr_] | |
if(_tmp_ != 0) | |
{ | |
_param1_counter_ = 1 + _param1_counter_; | |
continue; | |
} | |
break; | |
} | |
} | |
_tmp_ = int(_param1_counter_ >>> 31); | |
_tmp_ += _param1_counter_; | |
_tmp_ >>= 1; | |
_tmp_ = 1 + _tmp_; | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = _tmp_; | |
ESP = __ESP__; | |
F_malloc(); | |
_loc17_ = __ptr_param1_extra_key__ + 1; | |
_cur_ptr_ = 0; | |
__ESP__ = 16 + __ESP__; | |
__ptr_param1_extra_key__ = eax; | |
for(; uint(_cur_ptr_) < uint(_param1_counter_); _tmp_ = _cur_ptr_ + __ptr_param1_extra_key__,_loc19_ = _loc21_ << 4,_loc19_ = _loc19_ + _loc3_,a[_tmp_] = _loc19_,_loc17_ = _loc17_ + 2,_cur_ptr_ = _cur_ptr_ + 1) | |
{ | |
_loc13_ = a[_loc17_ - 1] | |
_loc21_ = -48 + _loc13_; | |
_tmp_ = _loc21_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc21_ = _loc13_ & 223; | |
_tmp_ = -65 + _loc21_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc21_ = -55 + _loc21_; | |
} | |
break; | |
} | |
_loc13_ = a[_loc17_] | |
_loc3_ = _loc13_ + -48; | |
_tmp_ = _loc3_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc13_ = _loc13_ & 223; | |
_tmp_ = -65 + _loc13_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc3_ = _loc13_ + -55; | |
continue; | |
} | |
break; | |
} | |
} | |
// reset to zero | |
_loc13_ = 0; | |
a[__ESP_ORIG__ - 212] = _loc13_; | |
a[__ESP_ORIG__ - 216] = _loc13_; | |
a[__ESP_ORIG__ - 220] = _loc13_; | |
a[__ESP_ORIG__ - 224] = _loc13_; | |
a[__ESP_ORIG__ - 228] = _loc13_; | |
a[__ESP_ORIG__ - 232] = _loc13_; | |
a[__ESP_ORIG__ - 236] = _loc13_; | |
a[__ESP_ORIG__ - 240] = _loc13_; | |
a[__ESP_ORIG__ - 244] = _loc13_; | |
a[__ESP_ORIG__ - 248] = _loc13_; | |
a[__ESP_ORIG__ - 252] = _loc13_; | |
a[__ESP_ORIG__ - 256] = _loc13_; | |
a[__ESP_ORIG__ - 260] = _loc13_; | |
a[__ESP_ORIG__ - 264] = _loc13_; | |
a[__ESP_ORIG__ - 268] = _loc13_; | |
a[__ESP_ORIG__ - 272] = _loc13_; | |
a[__ESP_ORIG__ - 276] = _loc13_; | |
a[__ESP_ORIG__ - 280] = _loc13_; | |
a[__ESP_ORIG__ - 284] = _loc13_; | |
a[__ESP_ORIG__ - 288] = _loc13_; | |
a[__ESP_ORIG__ - 292] = _loc13_; | |
a[__ESP_ORIG__ - 296] = _loc13_; | |
a[__ESP_ORIG__ - 300] = _loc13_; | |
a[__ESP_ORIG__ - 304] = _loc13_; | |
a[__ESP_ORIG__ - 308] = _loc13_; | |
a[__ESP_ORIG__ - 312] = _loc13_; | |
a[__ESP_ORIG__ - 316] = _loc13_; | |
a[__ESP_ORIG__ - 320] = _loc13_; | |
a[__ESP_ORIG__ - 324] = _loc13_; | |
a[__ESP_ORIG__ - 328] = _loc13_; | |
a[__ESP_ORIG__ - 332] = _loc13_; | |
a[__ESP_ORIG__ - 336] = _loc13_; | |
a[__ESP_ORIG__ - 340] = _loc13_; | |
a[__ESP_ORIG__ - 344] = _loc13_; | |
a[__ESP_ORIG__ - 348] = _loc13_; | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = 17; | |
ESP = __ESP__; | |
F_malloc(); | |
__ESP__ = 16 + __ESP__; | |
_loc21_ = int(eax); | |
a[_loc21_ + 16] = _loc13_; | |
a[_loc21_ + 12] = _loc13_; | |
a[_loc21_ + 8] = _loc13_; | |
a[_loc21_ + 4] = _loc13_; | |
a[_loc21_] = _loc13_; | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = 17; | |
ESP = __ESP__; | |
F_malloc(); | |
__ESP__ = 16 + __ESP__; | |
_loc17_ = eax; | |
a[_loc17_ + 16] = _loc13_; | |
a[_loc17_ + 12] = _loc13_; | |
a[_loc17_ + 8] = _loc13_; | |
a[_loc17_ + 4] = _loc13_; | |
a[_loc17_] = _loc13_; | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = 17; | |
ESP = __ESP__; | |
F_malloc(); | |
__ESP__ = 16 + __ESP__; | |
_cur_ptr_ = eax; | |
a[_cur_ptr_ + 16] = _loc13_; | |
a[_cur_ptr_ + 12] = _loc13_; | |
a[_cur_ptr_ + 8] = _loc13_; | |
a[_cur_ptr_ + 4] = _loc13_; | |
a[_cur_ptr_] = _loc13_; | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = 33; | |
ESP = __ESP__; | |
F_malloc(); | |
__ESP__ = 16 + __ESP__; | |
_param1_counter_ = int(eax); | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__ + 8] = 33; | |
a[__ESP__ + 4] = _loc13_; | |
a[__ESP__] = _param1_counter_; | |
ESP = __ESP__; | |
Fmemset(); | |
__ESP__ = 16 + __ESP__; | |
_tmp_ = a[__ptr_param1_extra_key__ + 12] | |
a[__ESP_ORIG__ - 236] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 8] | |
a[__ESP_ORIG__ - 240] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 4] | |
a[__ESP_ORIG__ - 244] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__] | |
a[__ESP_ORIG__ - 248] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 28] | |
a[__ESP_ORIG__ - 216] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 24] | |
a[__ESP_ORIG__ - 220] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 20] | |
a[__ESP_ORIG__ - 224] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 16] | |
a[__ESP_ORIG__ - 228] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 44] | |
a[__ESP_ORIG__ - 276] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 40] | |
a[__ESP_ORIG__ - 280] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 36] | |
a[__ESP_ORIG__ - 284] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 32] | |
a[__ESP_ORIG__ - 288] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 60] | |
a[__ESP_ORIG__ - 256] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 56] | |
a[__ESP_ORIG__ - 260] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 52] | |
a[__ESP_ORIG__ - 264] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 48] | |
a[__ESP_ORIG__ - 268] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 76] | |
a[__ESP_ORIG__ - 316] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 72] | |
a[__ESP_ORIG__ - 320] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 68] | |
a[__ESP_ORIG__ - 324] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 64] | |
a[__ESP_ORIG__ - 328] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 92] | |
a[__ESP_ORIG__ - 296] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 88] | |
a[__ESP_ORIG__ - 300] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 84] | |
a[__ESP_ORIG__ - 304] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 80] | |
a[__ESP_ORIG__ - 308] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 108] | |
a[__ESP_ORIG__ - 336] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 104] | |
a[__ESP_ORIG__ - 340] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 100] | |
a[__ESP_ORIG__ - 344] = _tmp_; | |
_tmp_ = a[__ptr_param1_extra_key__ + 96] | |
a[__ESP_ORIG__ - 348] = _tmp_; | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = 17; | |
ESP = __ESP__; | |
F_malloc(); | |
__ESP__ = 16 + __ESP__; | |
__ptr_param1_extra_key__ = eax; | |
a[__ptr_param1_extra_key__ + 16] = _loc13_; | |
a[__ptr_param1_extra_key__ + 12] = _loc13_; | |
a[__ptr_param1_extra_key__ + 8] = _loc13_; | |
a[__ptr_param1_extra_key__ + 4] = _loc13_; | |
a[__ptr_param1_extra_key__] = _loc13_; | |
_loc3_ = __ptr_param2_hardcoded_key__ + 1; | |
for(; uint(_loc13_) < 16; _tmp_ = 160 - __ESP_ORIG__,_tmp_ = _loc13_ + _tmp_,_loc19_ = _loc10_ << 4,_loc19_ = _loc19_ + _loc11_,a[_tmp_] = _loc19_,_loc3_ = _loc3_ + 2,_loc13_ = 1 + _loc13_) | |
{ | |
_loc9_ = a[_loc3_ - 1] | |
_loc10_ = -48 + _loc9_; | |
_tmp_ = _loc10_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc10_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc10_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc10_ = -55 + _loc10_; | |
} | |
break; | |
} | |
_loc9_ = a[_loc3_] | |
_loc11_ = -48 + _loc9_; | |
_tmp_ = _loc11_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc9_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc9_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc11_ = -55 + _loc9_; | |
continue; | |
} | |
break; | |
} | |
} | |
_loc13_ = 1 + ___unnamed_66; | |
_loc3_ = 0; | |
for(; uint(_loc3_) < 16; _tmp_ = 176 - __ESP_ORIG__,_tmp_ = _loc3_ + _tmp_,_loc19_ = _loc10_ << 4,_loc19_ = _loc19_ + _loc11_,a[_tmp_] = _loc19_,_loc13_ = 2 + _loc13_,_loc3_ = _loc3_ + 1) | |
{ | |
_loc9_ = a[_loc13_ - 1] | |
_loc10_ = -48 + _loc9_; | |
_tmp_ = _loc10_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc10_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc10_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc10_ = -55 + _loc10_; | |
} | |
break; | |
} | |
_loc9_ = a[_loc13_] | |
_loc11_ = -48 + _loc9_; | |
_tmp_ = _loc11_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc9_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc9_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc11_ = -55 + _loc9_; | |
continue; | |
} | |
break; | |
} | |
} | |
_loc13_ = 1 + ___unnamed_67; | |
_loc3_ = 0; | |
for(; uint(_loc3_) < 16; _tmp_ = 192 - __ESP_ORIG__,_tmp_ = _loc3_ + _tmp_,_loc19_ = _loc10_ << 4,_loc19_ = _loc19_ + _loc11_,a[_tmp_] = _loc19_,_loc13_ = 2 + _loc13_,_loc3_ = _loc3_ + 1) | |
{ | |
_loc9_ = a[_loc13_ - 1] | |
_loc10_ = -48 + _loc9_; | |
_tmp_ = _loc10_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc10_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc10_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc10_ = -55 + _loc10_; | |
} | |
break; | |
} | |
_loc9_ = a[_loc13_] | |
_loc11_ = -48 + _loc9_; | |
_tmp_ = _loc11_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc9_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc9_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc11_ = -55 + _loc9_; | |
continue; | |
} | |
break; | |
} | |
} | |
_loc13_ = 1 + ___unnamed_68; | |
_loc3_ = 0; | |
for(; uint(_loc3_) < 16; _tmp_ = 208 - __ESP_ORIG__,_tmp_ = _loc3_ + _tmp_,_loc19_ = _loc10_ << 4,_loc19_ = _loc19_ + _loc11_,a[_tmp_] = _loc19_,_loc13_ = 2 + _loc13_,_loc3_ = _loc3_ + 1) | |
{ | |
_loc9_ = a[_loc13_ - 1] | |
_loc10_ = -48 + _loc9_; | |
_tmp_ = _loc10_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc10_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc10_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc10_ = -55 + _loc10_; | |
} | |
break; | |
} | |
_loc9_ = a[_loc13_] | |
_loc11_ = -48 + _loc9_; | |
_tmp_ = _loc11_ & 255; | |
if(uint(_tmp_) >= 10) | |
{ | |
_loc9_ = _loc9_ & 223; | |
_tmp_ = -65 + _loc9_; | |
_tmp_ = _tmp_ & 255; | |
if(uint(_tmp_) <= 5) | |
{ | |
_loc11_ = -55 + _loc9_; | |
continue; | |
} | |
break; | |
} | |
} | |
__ESP__ = 16 - __ESP__; | |
_loc10_ = 248 - __ESP_ORIG__; | |
a[__ESP__ + 4] = _loc10_; | |
_tmp_ = 176 - __ESP_ORIG__; | |
a[__ESP__] = _tmp_; | |
_tmp_ = 144 - __ESP_ORIG__; | |
a[__ESP__ + 8] = _tmp_; | |
ESP = __ESP__; | |
F___unnamed_4(); | |
__ESP__ = 16 + __ESP__; | |
_loc19_ = a[__ESP_ORIG__ - 132] | |
a[_loc21_ + 12] = _loc19_; | |
_loc19_ = a[__ESP_ORIG__ - 136] | |
a[_loc21_ + 8] = _loc19_; | |
_tmp_ = _tmp_ | 4; | |
_tmp_ = a[_tmp_] | |
a[_loc21_ + 4] = _tmp_; | |
_tmp_ = a[__ESP_ORIG__ - 144] | |
a[_loc21_] = _tmp_; | |
__ESP__ = 16 - __ESP__; | |
_loc3_ = __ESP_ORIG__ - 288; | |
a[__ESP__ + 4] = _loc3_; | |
_tmp_ = 192 - __ESP_ORIG__; | |
a[__ESP__] = _tmp_; | |
_tmp_ = 120 - __ESP_ORIG__; | |
a[__ESP__ + 8] = _tmp_; | |
ESP = __ESP__; | |
F___unnamed_4(); | |
__ESP__ = 16 + __ESP__; | |
_loc19_ = a[__ESP_ORIG__ - 108] | |
a[_loc17_ + 12] = _loc19_; | |
_loc19_ = a[__ESP_ORIG__ - 112] | |
a[_loc17_ + 8] = _loc19_; | |
_tmp_ = _tmp_ | 4; | |
_tmp_ = a[_tmp_] | |
a[_loc17_ + 4] = _tmp_; | |
_tmp_ = a[__ESP_ORIG__ - 120] | |
a[_loc17_] = _tmp_; | |
__ESP__ = 16 - __ESP__; | |
_loc13_ = 328 - __ESP_ORIG__; | |
a[__ESP__ + 4] = _loc13_; | |
_tmp_ = 208 - __ESP_ORIG__; | |
a[__ESP__] = _tmp_; | |
_tmp_ = 96 - __ESP_ORIG__; | |
a[__ESP__ + 8] = _tmp_; | |
ESP = __ESP__; | |
F___unnamed_4(); | |
__ESP__ = 16 + __ESP__; | |
_loc19_ = a[__ESP_ORIG__ - 84] | |
a[_cur_ptr_ + 12] = _loc19_; | |
_loc19_ = a[__ESP_ORIG__ - 88] | |
a[_cur_ptr_ + 8] = _loc19_; | |
_tmp_ = _tmp_ | 4; | |
_tmp_ = a[_tmp_] | |
a[_cur_ptr_ + 4] = _tmp_; | |
_tmp_ = a[__ESP_ORIG__ - 96] | |
a[_cur_ptr_] = _tmp_; | |
_loc9_ = 0; | |
_loc12_ = _loc9_; | |
loop6: | |
while(true) | |
{ | |
_tmp_ = 228 - __ESP_ORIG__; | |
_tmp_ = _loc12_ - _tmp_; | |
_tmp_ = a[_tmp_] | |
_loc19_ = _loc12_ - _loc21_; | |
_loc19_ = a[_loc19_] | |
_loc11_ = _loc9_; | |
if(_loc19_ == _tmp_) | |
{ | |
_loc12_ = -1 + _loc12_; | |
if(_loc12_ == 0xFFFFFFF0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
_loc13_ = 72 - __ESP_ORIG__; | |
a[__ESP__ + 8] = _loc13_; | |
a[__ESP__ + 4] = _loc10_; | |
_tmp_ = 160 - __ESP_ORIG__; | |
a[__ESP__] = _tmp_; | |
ESP = __ESP__; | |
F___unnamed_4(); | |
__ESP__ = 16 + __ESP__; | |
_loc3_ = 0; | |
while(true) | |
{ | |
_tmp_ = 348 - __ESP_ORIG__; | |
_tmp_ = _loc3_ - _tmp_; | |
_tmp_ = a[_tmp_] | |
_loc19_ = _loc3_ - _loc13_; | |
_loc19_ = a[_loc19_] | |
_tmp_ = _loc19_ ^ _tmp_; | |
_loc19_ = _loc3_ - __ptr_param1_extra_key__; | |
a[_loc19_] = _tmp_; | |
_loc3_ = _loc3_ + -1; | |
if(_loc3_ != 0xFFFFFFF0) | |
{ | |
continue; | |
} | |
break loop6; | |
} | |
} | |
else | |
{ | |
continue; | |
} | |
} | |
else | |
{ | |
while(true) | |
{ | |
_tmp_ = 268 - __ESP_ORIG__; | |
_tmp_ = _loc11_ - _tmp_; | |
_tmp_ = a[_tmp_] | |
_loc19_ = _loc11_ - _loc17_; | |
_loc19_ = a[_loc19_] | |
if(_loc19_ == _tmp_) | |
{ | |
_loc11_ = -1 + _loc11_; | |
if(_loc11_ == 0xFFFFFFF0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
_loc13_ = 48 - __ESP_ORIG__; | |
a[__ESP__ + 8] = _loc13_; | |
a[__ESP__ + 4] = _loc3_; | |
_tmp_ = 160 - __ESP_ORIG__; | |
a[__ESP__] = _tmp_; | |
ESP = __ESP__; | |
F___unnamed_4(); | |
__ESP__ = 16 + __ESP__; | |
_loc3_ = 0; | |
while(true) | |
{ | |
_tmp_ = 348 - __ESP_ORIG__; | |
_tmp_ = _loc3_ - _tmp_; | |
_tmp_ = a[_tmp_] | |
_loc19_ = _loc3_ - _loc13_; | |
_loc19_ = a[_loc19_] | |
_loc19_ = _loc19_ ^ _tmp_; | |
_tmp_ = _loc3_ - __ptr_param1_extra_key__; | |
a[_tmp_] = _loc19_; | |
_loc3_ = _loc3_ + -1; | |
if(_loc3_ != 0xFFFFFFF0) | |
{ | |
continue; | |
} | |
break loop6; | |
} | |
} | |
else | |
{ | |
continue; | |
} | |
} | |
else | |
{ | |
while(true) | |
{ | |
_tmp_ = 308 - __ESP_ORIG__; | |
_tmp_ = _loc9_ - _tmp_; | |
_tmp_ = a[_tmp_] | |
_loc19_ = _loc9_ - _cur_ptr_; | |
_loc19_ = a[_loc19_] | |
if(_loc19_ == _tmp_) | |
{ | |
_loc9_ = -1 + _loc9_; | |
if(_loc9_ == 0xFFFFFFF0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
_loc3_ = __ESP_ORIG__ - 24; | |
a[__ESP__ + 8] = _loc3_; | |
a[__ESP__ + 4] = _loc13_; | |
_tmp_ = 160 - __ESP_ORIG__; | |
a[__ESP__] = _tmp_; | |
ESP = __ESP__; | |
F___unnamed_4(); | |
__ESP__ = 16 + __ESP__; | |
_loc13_ = 0; | |
while(true) | |
{ | |
_tmp_ = 348 - __ESP_ORIG__; | |
_tmp_ = _loc13_ - _tmp_; | |
_tmp_ = a[_tmp_] | |
_loc19_ = _loc13_ - _loc3_; | |
_loc19_ = a[_loc19_] | |
_loc19_ = _loc19_ ^ _tmp_; | |
_tmp_ = _loc13_ - __ptr_param1_extra_key__; | |
a[_tmp_] = _loc19_; | |
_loc13_ = -1 + _loc13_; | |
if(_loc13_ == 0xFFFFFFF0) | |
{ | |
break loop6; | |
} | |
} | |
} | |
else | |
{ | |
continue; | |
} | |
} | |
break loop6; | |
} | |
} | |
} | |
} | |
} | |
if(_loc21_ != 0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = _loc21_; | |
ESP = __ESP__; | |
F___unnamed_57_possibly_free_or_destructor(); | |
__ESP__ = 16 + __ESP__; | |
} | |
if(_loc17_ != 0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = _loc17_; | |
ESP = __ESP__; | |
F___unnamed_57_possibly_free_or_destructor(); | |
__ESP__ = 16 + __ESP__; | |
} | |
if(_cur_ptr_ != 0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = _cur_ptr_; | |
ESP = __ESP__; | |
F___unnamed_57_possibly_free_or_destructor(); | |
__ESP__ = 16 + __ESP__; | |
} | |
_cur_ptr_ = 0; | |
if(__ptr_param2_hardcoded_key__ != 0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = __ptr_param2_hardcoded_key__; | |
ESP = __ESP__; | |
F___unnamed_57_possibly_free_or_destructor(); | |
__ESP__ = 16 + __ESP__; | |
_cur_ptr_ = 0; | |
} | |
do | |
{ | |
_tmp_ = _cur_ptr_ << 1; | |
_tmp_ = _tmp_ - _param1_counter_; | |
_loc19_ = _cur_ptr_ - __ptr_param1_extra_key__; | |
_loc19_ = a[_loc19_] | |
var _loc5_ = int(_loc19_ >>> 4); | |
_loc5_ = _loc5_ + ___unnamed_69; | |
_loc5_ = a[_loc5_] | |
a[_tmp_] = _loc5_; | |
_loc19_ = _loc19_ & 15; | |
_loc19_ = _loc19_ + ___unnamed_69; | |
_loc19_ = a[_loc19_] | |
a[_tmp_ + 1] = _loc19_; | |
_cur_ptr_ = _cur_ptr_ + -1; | |
} | |
while(_cur_ptr_ != 0xFFFFFFF0); | |
a[_param1_counter_ + 32] = 0; | |
__RET__ = CModule.readString(_param1_counter_, 32); | |
a[_param1_counter_ + 12] = 0; | |
a[_param1_counter_ + 8] = 0; | |
a[_param1_counter_ + 4] = 0; | |
a[_param1_counter_] = 0; | |
if(__ptr_param1_extra_key__ != 0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = __ptr_param1_extra_key__; | |
ESP = __ESP__; | |
F___unnamed_57_possibly_free_or_destructor(); | |
__ESP__ = 16 + __ESP__; | |
} | |
if(_param1_counter_ != 0) | |
{ | |
__ESP__ = 16 - __ESP__; | |
a[__ESP__] = _param1_counter_; | |
ESP = __ESP__; | |
F___unnamed_57_possibly_free_or_destructor(); | |
__ESP__ = 16 + __ESP__; | |
} | |
var __RET_B__ = __RET__; | |
__ESP__ = __ESP_ORIG__; | |
ESP = __ESP__; | |
return __RET_B__; | |
} | |
_cur_ptr_ = _loc21_ + 4; | |
while(true) | |
{ | |
// determine if one of the bytes in a 4 byte word is zero | |
_param1_counter_ = a[_cur_ptr_] | |
_tmp_ = 0xFEFEFEFF + _param1_counter_; | |
_loc19_ = _param1_counter_ & 0x80808080; | |
_loc19_ = _loc19_ ^ 0x80808080; | |
_tmp_ = _loc19_ & _tmp_; | |
if(_tmp_ != 0) | |
{ | |
_tmp_ = _param1_counter_ & 255; | |
if(_tmp_ == 0) | |
{ | |
_param1_counter_ = __ptr_param1_extra_key__ - _cur_ptr_; | |
} | |
else | |
{ | |
_tmp_ = a[_cur_ptr_ + 1] | |
if(_tmp_ == 0) | |
{ | |
_tmp_ = __ptr_param1_extra_key__ - 1; | |
_param1_counter_ = _cur_ptr_ + _tmp_; | |
} | |
else | |
{ | |
_tmp_ = a[_cur_ptr_ + 2] | |
if(_tmp_ == 0) | |
{ | |
_tmp_ = __ptr_param1_extra_key__ - 2; | |
_param1_counter_ = _cur_ptr_ + _tmp_; | |
} | |
else | |
{ | |
_tmp_ = a[_cur_ptr_ + 3] | |
if(_tmp_ == 0) | |
{ | |
_tmp_ = __ptr_param1_extra_key__ - 3; | |
_param1_counter_ = _cur_ptr_ + _tmp_; | |
} | |
else | |
{ | |
continue; | |
} | |
} | |
} | |
} | |
goto(addr241); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks!